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.Point;
import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
import net.mograsim.logic.ui.model.components.GUIComponent;
import net.mograsim.logic.ui.modeladapter.ViewLogicModelAdapter;
import net.mograsim.logic.ui.modeladapter.componentadapters.NoLogicAdapter;
+import net.mograsim.logic.ui.serializing.IndirectGUIComponentCreator;
import net.mograsim.preferences.Preferences;
//TODO clean size calculation mess
public TextComponent(ViewModelModifiable model, String text)
{
- super(model);
+ this(model, text, null);
+ }
+
+ public TextComponent(ViewModelModifiable model, String text, String name)
+ {
+ super(model, name);
this.text = text;
// If size is unset, it defaults to 0, which could prohibit this component from being rendered, which would prohibit the size being
// set to a better guess
gc.drawText(text, getPosX(), getPosY(), true);
}
+ // serializing
+
+ @Override
+ public JsonElement getParams()
+ {
+ return new JsonPrimitive(text);
+ }
+
static
{
ViewLogicModelAdapter.addComponentAdapter(new NoLogicAdapter<>(TextComponent.class));
+ IndirectGUIComponentCreator.setComponentSupplier(TextComponent.class.getName(),
+ (m, p, n) -> new TextComponent(m, p.getAsString(), n));
}
}