public class GUI_rsLatch extends SimpleRectangularSubmodelComponent
{
- private StandardHighLevelStateHandler highLevelStateHandler;
-
public GUI_rsLatch(ViewModelModifiable model)
{
this(model, null);
new Point(65, 12.5));
GUIWire wire_Q = new GUIWire(submodelModifiable, "_q", cp2, _Q, new Point[0]);
- highLevelStateHandler = new StandardHighLevelStateHandler(this);
+ StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
highLevelStateHandler.addAtomicHighLevelState("q", WireForcingAtomicHighLevelStateHandler::new).set(Arrays.asList(wireQ),
Arrays.asList(wire_Q));
- }
-
- @Override
- public Object getHighLevelState(String stateID)
- {
- return highLevelStateHandler.getHighLevelState(stateID);
- }
-
- @Override
- public void setHighLevelState(String stateID, Object newState)
- {
- highLevelStateHandler.setHighLevelState(stateID, newState);
+ setHighLevelStateHandler(highLevelStateHandler);
}
static
public class GUIdff extends SimpleRectangularSubmodelComponent
{
- private StandardHighLevelStateHandler highLevelStateHandler;
-
public GUIdff(ViewModelModifiable model)
{
this(model, null);
new GUIWire(submodelModifiable, _rsLatch2.getPin("Q"), Q);
new GUIWire(submodelModifiable, _rsLatch2.getPin("_Q"), _Q);
- highLevelStateHandler = new StandardHighLevelStateHandler(this);
+ StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
highLevelStateHandler.addAtomicHighLevelState("q", DelegatingAtomicHighLevelStateHandler::new).set(_rsLatch2, "q");
- }
-
- @Override
- public Object getHighLevelState(String stateID)
- {
- return highLevelStateHandler.getHighLevelState(stateID);
- }
-
- @Override
- public void setHighLevelState(String stateID, Object newState)
- {
- highLevelStateHandler.setHighLevelState(stateID, newState);
+ setHighLevelStateHandler(highLevelStateHandler);
}
static
public class GUIdlatch extends SimpleRectangularSubmodelComponent
{
- private StandardHighLevelStateHandler highLevelStateHandler;
-
public GUIdlatch(ViewModelModifiable model)
{
this(model, null);
new GUIWire(submodelModifiable, _rsLatch.getPin("Q"), Q, new Point[0]);
new GUIWire(submodelModifiable, _rsLatch.getPin("_Q"), _Q);
- highLevelStateHandler = new StandardHighLevelStateHandler(this);
+ StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
highLevelStateHandler.addAtomicHighLevelState("q", DelegatingAtomicHighLevelStateHandler::new).set(_rsLatch, "q");
- }
-
- @Override
- public Object getHighLevelState(String stateID)
- {
- return highLevelStateHandler.getHighLevelState(stateID);
- }
-
- @Override
- public void setHighLevelState(String stateID, Object newState)
- {
- highLevelStateHandler.setHighLevelState(stateID, newState);
+ setHighLevelStateHandler(highLevelStateHandler);
}
static
public class GUIdlatch4 extends SimpleRectangularSubmodelComponent
{
- private StandardHighLevelStateHandler highLevelStateHandler;
-
public GUIdlatch4(ViewModelModifiable model)
{
this(model, null);
new GUIWire(submodelModifiable, dlatch3.getPin("Q"), Q3, new Point[0]);
new GUIWire(submodelModifiable, dlatch4.getPin("Q"), Q4, new Point[0]);
- highLevelStateHandler = new StandardHighLevelStateHandler(this);
+ StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
highLevelStateHandler.addAtomicHighLevelState("q1", DelegatingAtomicHighLevelStateHandler::new).set(dlatch1, "q");
highLevelStateHandler.addAtomicHighLevelState("q2", DelegatingAtomicHighLevelStateHandler::new).set(dlatch2, "q");
highLevelStateHandler.addAtomicHighLevelState("q3", DelegatingAtomicHighLevelStateHandler::new).set(dlatch3, "q");
highLevelStateHandler.addAtomicHighLevelState("q4", DelegatingAtomicHighLevelStateHandler::new).set(dlatch4, "q");
highLevelStateHandler.addAtomicHighLevelState("q", BitVectorSplittingAtomicHighLevelStateHandler::new)
.set(Arrays.asList("q1", "q2", "q3", "q4"), Arrays.asList(1, 1, 1, 1));
- }
-
- @Override
- public Object getHighLevelState(String stateID)
- {
- return highLevelStateHandler.getHighLevelState(stateID);
- }
-
- @Override
- public void setHighLevelState(String stateID, Object newState)
- {
- highLevelStateHandler.setHighLevelState(stateID, newState);
+ setHighLevelStateHandler(highLevelStateHandler);
}
static
public class GUIram2 extends SimpleRectangularSubmodelComponent
{
- private StandardHighLevelStateHandler highLevelStateHandler;
-
public GUIram2(ViewModelModifiable model)
{
this(model, null);
new GUIWire(submodelModifiable, andorB11.getPin("Y4"), QB4 , new Point(175, 770), new Point(175, 895), new Point(340, 895), new Point(340, 750));
//@formatter:on
- highLevelStateHandler = new StandardHighLevelStateHandler(this);
+ StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
highLevelStateHandler.addSubcomponentHighLevelState("c00", DelegatingSubcomponentHighLevelStateHandler::new).set(cell00, null);
highLevelStateHandler.addSubcomponentHighLevelState("c01", DelegatingSubcomponentHighLevelStateHandler::new).set(cell01, null);
highLevelStateHandler.addSubcomponentHighLevelState("c10", DelegatingSubcomponentHighLevelStateHandler::new).set(cell10, null);
highLevelStateHandler.addSubcomponentHighLevelState("c11", DelegatingSubcomponentHighLevelStateHandler::new).set(cell11, null);
highLevelStateHandler.addAtomicHighLevelState("q", BitVectorSplittingAtomicHighLevelStateHandler::new)
.set(Arrays.asList("c00.q", "c01.q", "c10.q", "c11.q"), Arrays.asList(4, 4, 4, 4));
- }
-
- @Override
- public Object getHighLevelState(String stateID)
- {
- return highLevelStateHandler.getHighLevelState(stateID);
- }
-
- @Override
- public void setHighLevelState(String stateID, Object newState)
- {
- highLevelStateHandler.setHighLevelState(stateID, newState);
+ setHighLevelStateHandler(highLevelStateHandler);
}
static
public class GUIram4 extends SimpleRectangularSubmodelComponent
{
- private StandardHighLevelStateHandler highLevelStateHandler;
-
public GUIram4(ViewModelModifiable model)
{
this(model, null);
new GUIWire(submodelModifiable, andorA11.getPin("Y4"), QA4 , new Point(195, 770), new Point(195, 895), new Point(325, 895), new Point(325, 350));
//@formatter:on
- highLevelStateHandler = new StandardHighLevelStateHandler(this);
+ StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
highLevelStateHandler.addSubcomponentHighLevelState("c00", DelegatingSubcomponentHighLevelStateHandler::new).set(cell00, null);
highLevelStateHandler.addSubcomponentHighLevelState("c01", DelegatingSubcomponentHighLevelStateHandler::new).set(cell01, null);
highLevelStateHandler.addSubcomponentHighLevelState("c10", DelegatingSubcomponentHighLevelStateHandler::new).set(cell10, null);
highLevelStateHandler.addAtomicHighLevelState("q", BitVectorSplittingAtomicHighLevelStateHandler::new)
.set(Arrays.asList("c00.q", "c01.q", "c10.q", "c11.q"), Arrays.asList(16, 16, 16, 16));
- }
-
- @Override
- public Object getHighLevelState(String stateID)
- {
- return highLevelStateHandler.getHighLevelState(stateID);
- }
-
- @Override
- public void setHighLevelState(String stateID, Object newState)
- {
- highLevelStateHandler.setHighLevelState(stateID, newState);
+ setHighLevelStateHandler(highLevelStateHandler);
}
static
public class GUIAm2901 extends SimpleRectangularSubmodelComponent
{
- private StandardHighLevelStateHandler highLevelStateHandler;
-
public GUIAm2901(ViewModelModifiable model)
{
this(model, null);
new GUIWire(submodelModifiable, cpFneq0, notFneq0.getPin("B"), new Point(315, 455));
new GUIWire(submodelModifiable, notFneq0.getPin("Y"), Feq0, new Point[0]);
- highLevelStateHandler = new StandardHighLevelStateHandler(this);
+ StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
highLevelStateHandler.addSubcomponentHighLevelState("regs", DelegatingSubcomponentHighLevelStateHandler::new).set(ram, null);
highLevelStateHandler.addSubcomponentHighLevelState("qreg", DelegatingSubcomponentHighLevelStateHandler::new).set(qreg, null);
- }
-
- @Override
- public Object getHighLevelState(String stateID)
- {
- return highLevelStateHandler.getHighLevelState(stateID);
- }
-
- @Override
- public void setHighLevelState(String stateID, Object newState)
- {
- highLevelStateHandler.setHighLevelState(stateID, newState);
+ setHighLevelStateHandler(highLevelStateHandler);
}
static
public class GUIAm2901QReg extends SimpleRectangularSubmodelComponent
{
- private StandardHighLevelStateHandler highLevelStateHandler;
-
public GUIAm2901QReg(ViewModelModifiable model)
{
this(model, null);
new GUIWire(submodelModifiable, dff3.getPin("Q"), Q3, new Point[0]);
new GUIWire(submodelModifiable, dff4.getPin("Q"), Q4, new Point[0]);
- highLevelStateHandler = new StandardHighLevelStateHandler(this);
+ StandardHighLevelStateHandler highLevelStateHandler = new StandardHighLevelStateHandler(this);
highLevelStateHandler.addAtomicHighLevelState("q1", DelegatingAtomicHighLevelStateHandler::new).set(dff1, "q");
highLevelStateHandler.addAtomicHighLevelState("q2", DelegatingAtomicHighLevelStateHandler::new).set(dff2, "q");
highLevelStateHandler.addAtomicHighLevelState("q3", DelegatingAtomicHighLevelStateHandler::new).set(dff3, "q");
highLevelStateHandler.addAtomicHighLevelState("q4", DelegatingAtomicHighLevelStateHandler::new).set(dff4, "q");
highLevelStateHandler.addAtomicHighLevelState("q", BitVectorSplittingAtomicHighLevelStateHandler::new)
.set(Arrays.asList("q1", "q2", "q3", "q4"), Arrays.asList(1, 1, 1, 1));
- }
-
- @Override
- public Object getHighLevelState(String stateID)
- {
- return highLevelStateHandler.getHighLevelState(stateID);
- }
-
- @Override
- public void setHighLevelState(String stateID, Object newState)
- {
- highLevelStateHandler.setHighLevelState(stateID, newState);
+ setHighLevelStateHandler(highLevelStateHandler);
}
static
package net.mograsim.logic.model.editor;
-import org.eclipse.swt.graphics.Color;
-
-import net.haspamelodica.swt.helper.gcs.GeneralGC;
-import net.haspamelodica.swt.helper.swtobjectwrappers.Font;
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
import net.mograsim.logic.model.model.ViewModelModifiable;
import net.mograsim.logic.model.model.wires.MovablePin;
-import net.mograsim.logic.model.model.wires.Pin;
import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
-import net.mograsim.preferences.Preferences;
+import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer;
+import net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer;
+import net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer.SimpleRectangularLikeParams;
public class EditableSubmodelComponent extends DeserializedSubmodelComponent
{
this.label = label;
setSubmodelScale(0.2);
addSubmodelInterface(new MovablePin(this, "A Pin", 1, 0, 10));
-
- }
-
- public ViewModelModifiable getSubmodelModifiable()
- {
- return submodelModifiable;
- }
-
- @Override
- protected void renderOutline(GeneralGC gc, Rectangle visibleRegion)
- {
- Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground");
- if (foreground != null)
- gc.setForeground(foreground);
- gc.drawRectangle(getBounds());
- }
-
- @Override
- protected void renderSymbol(GeneralGC gc, Rectangle visibleRegion)
- {
- Font oldFont = gc.getFont();
- gc.setFont(new Font(oldFont.getName(), labelFontHeight, oldFont.getStyle()));
- Point textExtent = gc.textExtent(label);
- Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text");
- if (textColor != null)
- gc.setForeground(textColor);
- gc.drawText(label, getPosX() + (getWidth() - textExtent.x) / 2, getPosY() + (getHeight() - textExtent.y) / 2, true);
- gc.setFont(new Font(oldFont.getName(), pinNameFontHeight, oldFont.getStyle()));
- for (String name : pinsUnmodifiable.keySet())
- {
- Pin p = pinsUnmodifiable.get(name);
- Point pos = p.getPos();
- gc.drawText(name, pos.x, pos.y, true);
- }
- gc.setFont(oldFont);
- }
-
- public void setSubmodelScale(double scale)
- {
- super.setSubmodelScale(scale);
- }
-
- public double getSubmodelScale()
- {
- return super.getSubmodelScale();
+ updateSymbolRenderer();
+ setOutlineRenderer(new DefaultOutlineRenderer(this));
}
- public void setSize(double width, double height)
+ private void updateSymbolRenderer()
{
- super.setSize(width, height);
+ SimpleRectangularLikeParams rendererParams = new SimpleRectangularLikeParams();
+ rendererParams.centerText = label;
+ rendererParams.centerTextHeight = labelFontHeight;
+ rendererParams.horizontalComponentCenter = getWidth() / 2;
+ rendererParams.pinLabelHeight = pinNameFontHeight;
+ rendererParams.pinLabelMargin = 0;
+ setSymbolRenderer(new SimpleRectangularLikeSymbolRenderer(this, rendererParams));
}
public String getLabel()
public void setLabel(String label)
{
this.label = label;
+ updateSymbolRenderer();
}
}
private final List<Runnable> redrawListeners;
private final Runnable redrawListenerForSubcomponents;
+
+ private HighLevelStateHandler highLevelStateHandler;
+
// creation and destruction
public GUIComponent(ViewModelModifiable model, String name)
// high-level access
+ /**
+ * @author Daniel Kirschten
+ */
+ protected void setHighLevelStateHandler(HighLevelStateHandler highLevelStateHandler)
+ {
+ this.highLevelStateHandler = highLevelStateHandler;
+ }
+
/**
* Gets the current value of the given high-level state. <br>
* See {@link HighLevelStateHandler} for an explanation of high-level state IDs.
*
* @author Daniel Kirschten
*/
- @SuppressWarnings("static-method") // this method is intended to be overridden
public Object getHighLevelState(String stateID)
{
- throw new IllegalArgumentException("No high level state with ID " + stateID);
+ return highLevelStateHandler.getHighLevelState(stateID);
}
/**
*
* @author Daniel Kirschten
*/
- @SuppressWarnings({ "static-method", "unused" }) // this method is intended to be overridden
public void setHighLevelState(String stateID, Object newState)
{
- throw new IllegalArgumentException("No high level state with ID " + stateID);
+ highLevelStateHandler.setHighLevelState(stateID, newState);
}
// "graphical" operations
import java.util.HashSet;
import java.util.List;
-import org.eclipse.swt.graphics.Color;
-
-import net.haspamelodica.swt.helper.gcs.GeneralGC;
-import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
import net.mograsim.logic.model.model.ViewModelModifiable;
import net.mograsim.logic.model.model.wires.MovablePin;
import net.mograsim.logic.model.model.wires.Pin;
-import net.mograsim.logic.model.snippets.Renderer;
+import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer;
import net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer;
import net.mograsim.logic.model.snippets.symbolrenderers.SimpleRectangularLikeSymbolRenderer.SimpleRectangularLikeParams;
-import net.mograsim.preferences.Preferences;
public class SimpleRectangularSubmodelComponent extends SubmodelComponent
{
private final List<String> outputPinNames;
private final List<String> outputPinNamesUnmodifiable;
- private Renderer symbolRenderer;
-
public SimpleRectangularSubmodelComponent(ViewModelModifiable model, int logicWidth, String label)
{
this(model, logicWidth, label, null);
rendererParams.horizontalComponentCenter = getWidth() / 2;
rendererParams.pinLabelHeight = pinNameFontHeight;
rendererParams.pinLabelMargin = pinNameMargin;
- symbolRenderer = new SimpleRectangularLikeSymbolRenderer(this, rendererParams);
+ setSymbolRenderer(new SimpleRectangularLikeSymbolRenderer(this, rendererParams));
+ setOutlineRenderer(new DefaultOutlineRenderer(this));
}
protected void setInputPins(String... pinNames)
return outputPinNamesUnmodifiable;
}
- @Override
- protected void renderSymbol(GeneralGC gc, Rectangle visibleRegion)
- {
- symbolRenderer.render(gc, visibleRegion);
- }
-
- @Override
- protected void renderOutline(GeneralGC gc, Rectangle visibleRegion)
- {
- Color foreground = Preferences.current().getColor("net.mograsim.logic.model.color.foreground");
- if (foreground != null)
- gc.setForeground(foreground);
- gc.drawRectangle(getBounds());
- }
-
@Override
protected Pin addSubmodelInterface(MovablePin supermodelPin)
{
import net.mograsim.logic.model.model.components.GUIComponent;
import net.mograsim.logic.model.model.wires.MovablePin;
import net.mograsim.logic.model.model.wires.Pin;
+import net.mograsim.logic.model.snippets.Renderer;
/**
* A {@link GUIComponent} consisting of another model. A <code>SubmodelComponent</code> can have so-called "interface pins" connecting the
*/
private final LogicUIRenderer renderer;
+ /**
+ * The {@link Renderer} used to render the symbol of this SubmodelCoponent.
+ */
+ private Renderer symbolRenderer;
+ /**
+ * The {@link Renderer} used to render the outline of this SubmodelCoponent.
+ */
+ private Renderer outlineRenderer;
+
// creation and destruction
public SubmodelComponent(ViewModelModifiable model, String name)
return submodelScale;
}
+ /**
+ * @see #renderSymbol(GeneralGC, Rectangle)
+ *
+ * @author Daniel Kirschten
+ */
+ protected void setSymbolRenderer(Renderer symbolRenderer)
+ {
+ this.symbolRenderer = symbolRenderer;
+ requestRedraw();
+ }
+
+ /**
+ * @see #renderSymbol(GeneralGC, Rectangle)
+ *
+ * @author Daniel Kirschten
+ */
+ protected Renderer getSymbolRenderer()
+ {
+ return symbolRenderer;
+ }
+
+ /**
+ * @see #renderOutline(GeneralGC, Rectangle)
+ *
+ * @author Daniel Kirschten
+ */
+ protected void setOutlineRenderer(Renderer outlineRenderer)
+ {
+ this.outlineRenderer = outlineRenderer;
+ requestRedraw();
+ }
+
+ /**
+ * @see #renderOutline(GeneralGC, Rectangle)
+ *
+ * @author Daniel Kirschten
+ */
+ protected Renderer getOutlineRenderer()
+ {
+ return outlineRenderer;
+ }
+
@Override
public void render(GeneralGC gc, Rectangle visibleRegion)
{
renderOutline(gc, visibleRegion);
}
- // TODO make this a path
/**
- * Render the outline of this {@link SubmodelComponent}, e.g. the graphical elements that should stay visible if the submodel is drawn.
+ * Render the symbol of this {@link SubmodelComponent}, e.g. the things that should be hidden if the submodel is drawn.
*
* @author Daniel Kirschten
*/
- protected abstract void renderOutline(GeneralGC gc, Rectangle visibleRegion);
+ protected void renderSymbol(GeneralGC gc, Rectangle visibleRegion)
+ {
+ if (symbolRenderer != null)
+ symbolRenderer.render(gc, visibleRegion);
+ }
/**
- * Render the symbol of this {@link SubmodelComponent}, e.g. the things that should be hidden if the submodel is drawn.
+ * Render the outline of this {@link SubmodelComponent}, e.g. the graphical elements that should stay visible if the submodel is drawn.
*
* @author Daniel Kirschten
*/
- protected abstract void renderSymbol(GeneralGC gc, Rectangle visibleRegion);
+ protected void renderOutline(GeneralGC gc, Rectangle visibleRegion)
+ {
+ if (outlineRenderer != null)
+ outlineRenderer.render(gc, visibleRegion);
+ }
private static double map(double val, double valMin, double valMax, double mapMin, double mapMax)
{
package net.mograsim.logic.model.serializing;
-import java.util.Map;
-
import com.google.gson.JsonElement;
-import net.haspamelodica.swt.helper.gcs.GeneralGC;
-import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
import net.mograsim.logic.model.model.ViewModelModifiable;
import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
import net.mograsim.logic.model.model.wires.MovablePin;
import net.mograsim.logic.model.snippets.HighLevelStateHandler;
import net.mograsim.logic.model.snippets.Renderer;
-//TODO serialize handlers
public class DeserializedSubmodelComponent extends SubmodelComponent
{
/**
*/
public final JsonElement paramsForSerializingOverride;
- private Renderer outlineRenderer;
- private Renderer symbolRenderer;
- private HighLevelStateHandler highLevelStateHandler;
-
public DeserializedSubmodelComponent(ViewModelModifiable model, String name, String idForSerializingOverride,
JsonElement paramsForSerializingOverride)
{
}
@Override
- public Object getHighLevelState(String stateID)
- {
- return highLevelStateHandler.getHighLevelState(stateID);
- }
-
- @Override
- public void setHighLevelState(String stateID, Object newState)
- {
- highLevelStateHandler.setHighLevelState(stateID, newState);
- }
-
- @Override
- protected void renderOutline(GeneralGC gc, Rectangle visibleRegion)
+ public void setSymbolRenderer(Renderer symbolRenderer)
{
- if (outlineRenderer != null)
- outlineRenderer.render(gc, visibleRegion);
+ super.setSymbolRenderer(symbolRenderer);
}
@Override
- protected void renderSymbol(GeneralGC gc, Rectangle visibleRegion)
- {
- if (symbolRenderer != null)
- symbolRenderer.render(gc, visibleRegion);
- }
-
public void setOutlineRenderer(Renderer outlineRenderer)
{
- this.outlineRenderer = outlineRenderer;
- }
-
- public Renderer getOutlineRenderer()
- {
- return outlineRenderer;
- }
-
- public void setSymbolRenderer(Renderer symbolRenderer)
- {
- this.symbolRenderer = symbolRenderer;
- }
-
- public Renderer getSymbolRenderer()
- {
- return symbolRenderer;
+ super.setOutlineRenderer(outlineRenderer);
+ requestRedraw();
}
- public void setHighLevelStateHandler(HighLevelStateHandler highLevelStateHandler)
- {
- this.highLevelStateHandler = highLevelStateHandler;
- }
-
- public HighLevelStateHandler getHighLevelStateHandler()
+ @Override
+ public void setHighLevelStateHandler(HighLevelStateHandler handler)
{
- return highLevelStateHandler;
+ super.setHighLevelStateHandler(handler);
}
public ViewModelModifiable getSubmodelModifiable()
return submodelModifiable;
}
- @Override
- public double getSubmodelScale()
- {
- return super.getSubmodelScale();
- }
-
@Override
public void setSubmodelScale(double submodelScale)
{
super.setSize(width, height);
}
- @Override
- public Map<String, MovablePin> getSubmodelMovablePins()
- {
- return super.getSubmodelMovablePins();
- }
-
@Override
public Pin addSubmodelInterface(MovablePin supermodelPin)
{
super.removeSubmodelInterface(name);
}
- // TODO static initializer
+ // TODO only used in EditorCanvas. Replace with setting maxVisibleRegionFillRatioForAlpha0 / min...1.
+ @Override
+ public Renderer getOutlineRenderer()
+ {
+ return super.getOutlineRenderer();
+ }
+
+ // TODO static initializer?
}
\ No newline at end of file
public SubmodelParameters submodel;
// functionality that needs to be expressed in Java code
- public String outlineRendererSnippetID;
- public JsonElement outlineRendererParams;
-
public String symbolRendererSnippetID;
public JsonElement symbolRendererParams;
+ public String outlineRendererSnippetID;
+ public JsonElement outlineRendererParams;
+
public String highLevelStateHandlerSnippetID;
public JsonElement highLevelStateHandlerParams;
DeserializedSubmodelComponent comp = new DeserializedSubmodelComponent(model, name, idForSerializingOverride,
paramsForSerializingOverride);
comp.setSubmodelScale(params.submodel.innerScale);
- comp.setOutlineRenderer(SubmodelComponentSnippetSuppliers.outlineRendererSupplier
- .getSnippetSupplier(params.outlineRendererSnippetID).create(comp, params.outlineRendererParams));
comp.setSymbolRenderer(SubmodelComponentSnippetSuppliers.symbolRendererSupplier.getSnippetSupplier(params.symbolRendererSnippetID)
.create(comp, params.symbolRendererParams));
+ comp.setOutlineRenderer(SubmodelComponentSnippetSuppliers.outlineRendererSupplier
+ .getSnippetSupplier(params.outlineRendererSnippetID).create(comp, params.outlineRendererParams));
comp.setHighLevelStateHandler(SubmodelComponentSnippetSuppliers.highLevelStateHandlerSupplier
.getSnippetSupplier(params.highLevelStateHandlerSnippetID).create(comp, params.highLevelStateHandlerParams));
comp.setSize(params.width, params.height);
if (s == null)
throw new IOException("Resource not found");
SnippetIDClassNames tmp = JsonHandler.readJson(s, SnippetIDClassNames.class);
- tmp.standardOutlineRendererSuppliers.forEach(outlineRendererSupplier::addStandardSnippetID);
tmp.standardSymbolRendererSuppliers.forEach(symbolRendererSupplier::addStandardSnippetID);
+ tmp.standardOutlineRendererSuppliers.forEach(outlineRendererSupplier::addStandardSnippetID);
tmp.standardHighLevelStateHandlerSuppliers.forEach(highLevelStateHandlerSupplier::addStandardSnippetID);
}
catch (Exception e)
private static class SnippetIDClassNames
{
- public Map<String, String> standardOutlineRendererSuppliers;
public Map<String, String> standardSymbolRendererSuppliers;
+ public Map<String, String> standardOutlineRendererSuppliers;
public Map<String, String> standardHighLevelStateHandlerSuppliers;
}