GUIComponents now have names
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / model / components / atomic / SimpleRectangularGUIGate.java
index a88d188..384ecb5 100644 (file)
@@ -2,10 +2,12 @@ package net.mograsim.logic.ui.model.components.atomic;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 import org.eclipse.swt.graphics.Color;
 
+import com.google.gson.JsonElement;
+import com.google.gson.JsonPrimitive;
+
 import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Font;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
@@ -24,18 +26,16 @@ public class SimpleRectangularGUIGate extends GUIComponent
        private static final double invertedCircleDiam = 3.5;
 
        private final String label;
-       protected final int logicWidth;
        private final boolean isInverted;
+       protected final int logicWidth;
        private final double rectWidth;
 
        private MovablePin outputPin;
        private final List<Pin> inputPins;
 
-       public static final String kLogicWidth = "logicWidth";
-
-       protected SimpleRectangularGUIGate(ViewModelModifiable model, int logicWidth, String label, boolean isInverted)
+       protected SimpleRectangularGUIGate(ViewModelModifiable model, String label, boolean isInverted, int logicWidth, String name)
        {
-               super(model);
+               super(model, name);
                this.label = label;
                this.logicWidth = logicWidth;
                this.isInverted = isInverted;
@@ -85,11 +85,17 @@ public class SimpleRectangularGUIGate extends GUIComponent
                gc.setFont(oldFont);
        }
 
+       // serializing
+
+       /**
+        * {@link SimpleRectangularGUIGate}s implementation returns a {@link JsonPrimitive} of type int containing the {@link #logicWidth} of
+        * this component.
+        * 
+        * @see GUIComponent#getParams()
+        */
        @Override
-       public Map<String, Object> getInstantiationParameters()
+       public JsonElement getParams()
        {
-               Map<String, Object> m = super.getInstantiationParameters();
-               m.put(kLogicWidth, logicWidth);
-               return m;
+               return new JsonPrimitive(logicWidth);
        }
 }
\ No newline at end of file