General SubmodelComponents can now be saved to a json format
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / model / components / SimpleRectangularSubmodelComponent.java
index 96f1a33..3373553 100644 (file)
@@ -7,7 +7,9 @@ import java.util.List;
 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.ui.model.ViewModelModifiable;
+import net.mograsim.logic.ui.model.components.params.RectComponentParams;
 import net.mograsim.logic.ui.model.wires.Pin;
 
 public class SimpleRectangularSubmodelComponent extends SubmodelComponent
@@ -103,7 +105,7 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent
        }
 
        @Override
-       protected void renderSymbol(GeneralGC gc)
+       protected void renderSymbol(GeneralGC gc, Rectangle visibleRegion)
        {
                double posX = getBounds().x;
                double posY = getBounds().y;
@@ -117,8 +119,19 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent
        }
 
        @Override
-       protected void renderOutline(GeneralGC gc)
+       protected void renderOutline(GeneralGC gc, Rectangle visibleRegion)
        {
                gc.drawRectangle(getBounds());
        }
+
+       public RectComponentParams calculateRectParams()
+       {
+               RectComponentParams params = new RectComponentParams();
+               params.displayName = label;
+               params.inputCount = inputSupermodelPins.size();
+               params.outputCount = outputSubmodelPins.size();
+               params.logicWidth = logicWidth;
+               params.composition = calculateCompositionParams();
+               return params;
+       }
 }
\ No newline at end of file