X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fsnippets%2Fsymbolrenderers%2FSimpleRectangularLikeSymbolRenderer.java;fp=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fsnippets%2Fsymbolrenderers%2FSimpleRectangularLikeSymbolRenderer.java;h=0000000000000000000000000000000000000000;hb=7d05144c25daa53e60fc9ed9fd503546a86567f8;hp=d57203ab62563c553592855a6d133c0e4316ba81;hpb=8bed58cd47f4e53a0a83e066d38864aa6875502f;p=Mograsim.git
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/SimpleRectangularLikeSymbolRenderer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/SimpleRectangularLikeSymbolRenderer.java
deleted file mode 100644
index d57203ab..00000000
--- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/symbolrenderers/SimpleRectangularLikeSymbolRenderer.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package net.mograsim.logic.model.snippets.symbolrenderers;
-
-import java.util.Map.Entry;
-
-import org.eclipse.swt.graphics.Color;
-
-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.ModelComponent;
-import net.mograsim.logic.model.model.wires.Pin;
-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;
-import net.mograsim.preferences.Preferences;
-
-/**
- * Renders a text ("centerText"
) with a given font height ("centerTextHeight"
) in the center of the component and
- * draws a label for each pin with a given font height ("pinLabelHeight"
). The labels of pins to the left of a given x
- * coordinate ("horizontalComponentCenter"
) are drawn to the right of the respective pin; labels of pins to the right are drawn
- * left. A margin ("pinLabelMargin"
) is applied for pin label drawing.
- *
- * @author Daniel Kirschten
- */
-public class SimpleRectangularLikeSymbolRenderer implements Renderer
-{
- private final ModelComponent component;
- private final String centerText;
- private final double centerTextHeight;
- private final double horizontalComponentCenter;
- private final double pinLabelHeight;
- private final double pinLabelMargin;
-
- public SimpleRectangularLikeSymbolRenderer(ModelComponent component, SimpleRectangularLikeParams params)
- {
- this.component = component;
- this.centerText = params.centerText;
- this.centerTextHeight = params.centerTextHeight;
- this.horizontalComponentCenter = params.horizontalComponentCenter;
- this.pinLabelHeight = params.pinLabelHeight;
- this.pinLabelMargin = params.pinLabelMargin;
- }
-
- @Override
- public void render(GeneralGC gc, Rectangle visibleRegion)
- {
- double posX = component.getPosX();
- double posY = component.getPosY();
- double width = component.getWidth();
- double height = component.getHeight();
-
- Font oldFont = gc.getFont();
- gc.setFont(new Font(oldFont.getName(), centerTextHeight, oldFont.getStyle()));
- Point textExtent = gc.textExtent(centerText);
- Color textColor = Preferences.current().getColor("net.mograsim.logic.model.color.text");
- if (textColor != null)
- gc.setForeground(textColor);
- gc.drawText(centerText, posX + (width - textExtent.x) / 2, posY + (height - textExtent.y) / 2, true);
- gc.setFont(new Font(oldFont.getName(), pinLabelHeight, oldFont.getStyle()));
- for (Entry pinEntry : component.getPins().entrySet())
- {
- String pinName = pinEntry.getKey();
- Pin pin = pinEntry.getValue();
- double pinX = pin.getRelX();
- double pinY = posY + pin.getRelY();
- textExtent = gc.textExtent(pinName);
- gc.drawText(pinName, posX + pinX + (pinX > horizontalComponentCenter ? -textExtent.x - pinLabelMargin : pinLabelMargin),
- pinY - textExtent.y / 2, true);
- }
- gc.setFont(oldFont);
- }
-
- @Override
- public String getIDForSerializing(IdentifyParams idParams)
- {
- return "simpleRectangularLike";
- }
-
- @Override
- public SimpleRectangularLikeParams getParamsForSerializing(IdentifyParams idParams)
- {
- SimpleRectangularLikeParams params = new SimpleRectangularLikeParams();
- params.centerText = centerText;
- params.centerTextHeight = centerTextHeight;
- params.horizontalComponentCenter = horizontalComponentCenter;
- params.pinLabelHeight = pinLabelHeight;
- params.pinLabelMargin = pinLabelMargin;
- return params;
- }
-
- public static class SimpleRectangularLikeParams
- {
- public String centerText;
- public double centerTextHeight;
- public double horizontalComponentCenter;
- public double pinLabelHeight;
- public double pinLabelMargin;
- }
-
- static
- {
- SubmodelComponentSnippetSuppliers.symbolRendererSupplier.setSnippetSupplier(
- SimpleRectangularLikeSymbolRenderer.class.getCanonicalName(),
- SnippetDefinintion.create(SimpleRectangularLikeParams.class, SimpleRectangularLikeSymbolRenderer::new));
- }
-}
\ No newline at end of file