GUIComponents now serialize and deserialize parameters (where needed)
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / model / components / atomic / TextComponent.java
index a20e3f9..d864904 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
@@ -37,8 +41,17 @@ 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.setComponentProvider(TextComponent.class.getName(), (m, p) -> new TextComponent(m, p.getAsString()));\r
        }\r
 }\r