Renamed core components to have the common prefix Core
[Mograsim.git] / net.mograsim.logic.model / src / net / mograsim / logic / model / model / components / atomic / TextComponent.java
index 64a6165..f250702 100644 (file)
@@ -2,9 +2,6 @@ package net.mograsim.logic.model.model.components.atomic;
 
 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;
@@ -12,6 +9,7 @@ import net.mograsim.logic.model.model.ViewModelModifiable;
 import net.mograsim.logic.model.model.components.GUIComponent;
 import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
 import net.mograsim.logic.model.modeladapter.componentadapters.NoLogicAdapter;
+import net.mograsim.logic.model.serializing.IdentifyParams;
 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
 import net.mograsim.preferences.Preferences;
 
@@ -19,6 +17,7 @@ import net.mograsim.preferences.Preferences;
 public class TextComponent extends GUIComponent
 {
        private final String text;
+       private boolean calculatedSize;
 
        public TextComponent(ViewModelModifiable model, String text)
        {
@@ -37,10 +36,14 @@ public class TextComponent extends GUIComponent
        @Override
        public void render(GeneralGC gc, Rectangle visibleRegion)
        {
-               Point textExtent = gc.textExtent(text);
-               setSize(textExtent.x, textExtent.y);
+               if (!calculatedSize)
+               {
+                       calculatedSize = true;
+                       Point textExtent = gc.textExtent(text);
+                       setSize(textExtent.x, textExtent.y);
+               }
 
-               Color textColor = Preferences.current().getColor("net.mograsim.logic.ui.color.text");
+               Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text");
                if (textColor != null)
                        gc.setForeground(textColor);
                gc.drawText(text, getPosX(), getPosY(), true);
@@ -49,9 +52,15 @@ public class TextComponent extends GUIComponent
        // serializing
 
        @Override
-       public JsonElement getParams()
+       public String getIDForSerializing(IdentifyParams idParams)
+       {
+               return "TextComponent";
+       }
+
+       @Override
+       public String getParamsForSerializing(IdentifyParams idParams)
        {
-               return new JsonPrimitive(text);
+               return text;
        }
 
        static