Added DeserializedSubmodelComponent Editor project
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / serializing / DeserializedSubmodelComponent.java
index 48d31e0..fbcf080 100644 (file)
@@ -1,6 +1,6 @@
 package net.mograsim.logic.ui.serializing;
 
-import java.util.function.Supplier;
+import java.util.Map;
 
 import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
@@ -8,9 +8,13 @@ import net.mograsim.logic.ui.model.ViewModelModifiable;
 import net.mograsim.logic.ui.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.ui.model.wires.MovablePin;
 import net.mograsim.logic.ui.model.wires.Pin;
+import net.mograsim.logic.ui.serializing.snippets.Renderer;
 
-public class DeserializedSubmodelComponent extends SubmodelComponent implements DeserializedSubmodelComponentI
+public class DeserializedSubmodelComponent extends SubmodelComponent
 {
+       public Renderer outlineRenderer;
+       public Renderer symbolRenderer;
+
        public DeserializedSubmodelComponent(ViewModelModifiable model)
        {
                super(model);
@@ -19,31 +23,48 @@ public class DeserializedSubmodelComponent extends SubmodelComponent implements
        @Override
        protected void renderOutline(GeneralGC gc, Rectangle visibleRegion)
        {
-               // TODO
+               if (outlineRenderer != null)
+                       outlineRenderer.render(gc, visibleRegion);
        }
 
        @Override
        protected void renderSymbol(GeneralGC gc, Rectangle visibleRegion)
        {
-               // TODO
+               if (symbolRenderer != null)
+                       symbolRenderer.render(gc, visibleRegion);
+       }
+
+       public void setOutlineRenderer(Renderer outlineRenderer)
+       {
+               this.outlineRenderer = outlineRenderer;
+       }
+
+       public void setSymbolRenderer(Renderer symbolRenderer)
+       {
+               this.symbolRenderer = symbolRenderer;
        }
 
-       @Override
        public ViewModelModifiable getSubmodelModifiable()
        {
                return submodelModifiable;
        }
 
        @Override
-       public void setIdentifierDelegate(Supplier<String> identifierDelegate)
+       public void setSubmodelScale(double submodelScale)
+       {
+               super.setSubmodelScale(submodelScale);
+       }
+
+       @Override
+       public double getSubmodelScale()
        {
-               this.identifierDelegate = identifierDelegate;
+               return super.getSubmodelScale();
        }
 
        @Override
-       public void setSubmodelScale(double submodelScale)
+       public Map<String, MovablePin> getSubmodelMovablePins()
        {
-               super.setSubmodelScale(submodelScale);
+               return super.getSubmodelMovablePins();
        }
 
        @Override
@@ -53,8 +74,14 @@ public class DeserializedSubmodelComponent extends SubmodelComponent implements
        }
 
        @Override
-       protected Pin addSubmodelInterface(MovablePin supermodelPin)
+       public Pin addSubmodelInterface(MovablePin supermodelPin)
        {
                return super.addSubmodelInterface(supermodelPin);
        }
+
+       @Override
+       public void removeSubmodelInterface(String name)
+       {
+               super.removeSubmodelInterface(name);
+       }
 }
\ No newline at end of file