X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fcomponents%2FTextComponent.java;h=b0138aa2e1ad062c40afcb3f1f287c15da12d021;hb=35df5a4186f12073d5cdc956b645b882b43b858a;hp=18f4384f9f58e093351493449f4bf20008e0a69b;hpb=838c017db855038424e4948e1d33898c8dda023f;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/TextComponent.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/TextComponent.java index 18f4384f..b0138aa2 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/TextComponent.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/TextComponent.java @@ -10,37 +10,34 @@ import net.mograsim.logic.ui.modeladapter.ViewLogicModelAdapter; import net.mograsim.logic.ui.modeladapter.componentadapters.NoLogicAdapter; import net.mograsim.preferences.Preferences; +//TODO clean size calculation mess public class TextComponent extends GUIComponent { private final String text; - private Point textExtent; public TextComponent(ViewModelModifiable model, String text) { super(model); 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 + setSize(1, 1); } @Override public void render(GeneralGC gc, Rectangle visibleRegion) { - textExtent = gc.textExtent(text); + Point textExtent = gc.textExtent(text); + setSize(textExtent.x, textExtent.y); + Color textColor = Preferences.current().getColor("net.mograsim.logic.ui.color.text"); if (textColor != null) gc.setForeground(textColor); - gc.drawText(text, getPosX() - textExtent.x / 2, getPosY() - textExtent.y / 2, true); - } - - @Override - public Rectangle getBounds() - { - if (textExtent == null) - return super.getBounds(); - return new Rectangle(getPosX() - textExtent.x / 2, getPosY() - textExtent.y / 2, textExtent.x, textExtent.y); + gc.drawText(text, getPosX(), getPosY(), true); } static { - ViewLogicModelAdapter.addComponentAdapter(NoLogicAdapter.forClass(TextComponent.class)); + ViewLogicModelAdapter.addComponentAdapter(new NoLogicAdapter<>(TextComponent.class)); } }