\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
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
\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
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