Updated to new SWTHelper version
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / model / components / atomic / TextComponent.java
index a20e3f9..ca484d0 100644 (file)
@@ -2,6 +2,9 @@ package net.mograsim.logic.ui.model.components.atomic;
 \r
 import org.eclipse.swt.graphics.Color;\r
 \r
+import com.google.gson.JsonElement;\r
+import com.google.gson.JsonPrimitive;\r
+\r
 import net.haspamelodica.swt.helper.gcs.GeneralGC;\r
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;\r
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;\r
@@ -9,6 +12,7 @@ import net.mograsim.logic.ui.model.ViewModelModifiable;
 import net.mograsim.logic.ui.model.components.GUIComponent;\r
 import net.mograsim.logic.ui.modeladapter.ViewLogicModelAdapter;\r
 import net.mograsim.logic.ui.modeladapter.componentadapters.NoLogicAdapter;\r
+import net.mograsim.logic.ui.serializing.IndirectGUIComponentCreator;\r
 import net.mograsim.preferences.Preferences;\r
 \r
 //TODO clean size calculation mess\r
@@ -18,7 +22,12 @@ public class TextComponent extends GUIComponent
 \r
        public TextComponent(ViewModelModifiable model, String text)\r
        {\r
-               super(model);\r
+               this(model, text, null);\r
+       }\r
+\r
+       public TextComponent(ViewModelModifiable model, String text, String name)\r
+       {\r
+               super(model, name);\r
                this.text = text;\r
                // If size is unset, it defaults to 0, which could prohibit this component from being rendered, which would prohibit the size being\r
                // set to a better guess\r
@@ -37,8 +46,18 @@ public class TextComponent extends GUIComponent
                gc.drawText(text, getPosX(), getPosY(), true);\r
        }\r
 \r
+       // serializing\r
+\r
+       @Override\r
+       public JsonElement getParams()\r
+       {\r
+               return new JsonPrimitive(text);\r
+       }\r
+\r
        static\r
        {\r
                ViewLogicModelAdapter.addComponentAdapter(new NoLogicAdapter<>(TextComponent.class));\r
+               IndirectGUIComponentCreator.setComponentSupplier(TextComponent.class.getName(),\r
+                               (m, p, n) -> new TextComponent(m, p.getAsString(), n));\r
        }\r
 }\r