Fixed a bug in Am2900; created dlatch8/80; relayouted some components
[Mograsim.git] / net.mograsim.logic.model / src / net / mograsim / logic / model / snippets / symbolrenderers / CenteredTextSymbolRenderer.java
index bf40639..9a6599a 100644 (file)
@@ -4,8 +4,8 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Font;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
-import net.mograsim.logic.model.model.components.GUIComponent;
-import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
+import net.mograsim.logic.model.model.components.ModelComponent;
+import net.mograsim.logic.model.serializing.IdentifyParams;
 import net.mograsim.logic.model.snippets.Renderer;
 import net.mograsim.logic.model.snippets.SnippetDefinintion;
 import net.mograsim.logic.model.snippets.SubmodelComponentSnippetSuppliers;
@@ -20,13 +20,15 @@ import net.mograsim.preferences.Preferences;
  */
 public class CenteredTextSymbolRenderer implements Renderer
 {
-       private final GUIComponent component;
-       private final CenteredTextParams params;
+       private final ModelComponent component;
+       private final String text;
+       private final double fontHeight;
 
-       public CenteredTextSymbolRenderer(SubmodelComponent component, CenteredTextParams params)
+       public CenteredTextSymbolRenderer(ModelComponent component, CenteredTextParams params)
        {
                this.component = component;
-               this.params = params;
+               this.text = params.text;
+               this.fontHeight = params.fontHeight;
 
        }
 
@@ -34,16 +36,31 @@ public class CenteredTextSymbolRenderer implements Renderer
        public void render(GeneralGC gc, Rectangle visibleRegion)
        {
                Font oldFont = gc.getFont();
-               gc.setFont(new Font(oldFont.getName(), params.fontHeight, oldFont.getStyle()));
+               gc.setFont(new Font(oldFont.getName(), fontHeight, oldFont.getStyle()));
                ColorDefinition fg = Preferences.current().getColorDefinition("net.mograsim.logic.model.color.text");
                if (fg != null)
                        gc.setForeground(ColorManager.current().toColor(fg));
-               Point idSize = gc.textExtent(params.text);
+               Point idSize = gc.textExtent(text);
                Rectangle bounds = component.getBounds();
-               gc.drawText(params.text, bounds.x + (bounds.width - idSize.x) / 2, bounds.y + (bounds.height - idSize.y) / 2, true);
+               gc.drawText(text, bounds.x + (bounds.width - idSize.x) / 2, bounds.y + (bounds.height - idSize.y) / 2, true);
                gc.setFont(oldFont);
        }
 
+       @Override
+       public String getIDForSerializing(IdentifyParams idParams)
+       {
+               return "centeredText";
+       }
+
+       @Override
+       public CenteredTextParams getParamsForSerializing(IdentifyParams idParams)
+       {
+               CenteredTextParams params = new CenteredTextParams();
+               params.text = text;
+               params.fontHeight = fontHeight;
+               return params;
+       }
+
        public static class CenteredTextParams
        {
                public String text;