X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;ds=inline;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fserializing%2Fsnippets%2Fsymbolrenderers%2FSimpleRectangularLikeSymbolRendererProvider.java;fp=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fserializing%2Fsnippets%2Fsymbolrenderers%2FSimpleRectangularLikeSymbolRendererProvider.java;h=0000000000000000000000000000000000000000;hb=f594aef8abc8f444911333f6c32ef0fca18e18ba;hp=c7a8fa1ef4226209f4aee909da225d4bdf3efd57;hpb=dbda073d92ae9dd8e701d904c4c71dd0edd1fce7;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/serializing/snippets/symbolrenderers/SimpleRectangularLikeSymbolRendererProvider.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/serializing/snippets/symbolrenderers/SimpleRectangularLikeSymbolRendererProvider.java deleted file mode 100644 index c7a8fa1e..00000000 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/serializing/snippets/symbolrenderers/SimpleRectangularLikeSymbolRendererProvider.java +++ /dev/null @@ -1,83 +0,0 @@ -package net.mograsim.logic.ui.serializing.snippets.symbolrenderers; - -import java.util.Map.Entry; - -import org.eclipse.swt.graphics.Color; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; - -import net.haspamelodica.swt.helper.swtobjectwrappers.Font; -import net.haspamelodica.swt.helper.swtobjectwrappers.Point; -import net.mograsim.logic.ui.model.wires.Pin; -import net.mograsim.logic.ui.serializing.CodeSnippetSupplier; -import net.mograsim.logic.ui.serializing.DeserializedSubmodelComponent; -import net.mograsim.logic.ui.serializing.snippets.Renderer; -import net.mograsim.logic.ui.serializing.snippets.RendererProvider; -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.
- * Parameter format: - * - *
- * {
- *   "centerText": [String]
- *   "centerTextHeight": [double]
- *   "horizontalComponentCenter": [double]
- *   "pinLabelHeight": [double]
- *   "pinLabelMargin": [double]
- * }
- * 
- * - * @author Daniel Kirschten - */ -public class SimpleRectangularLikeSymbolRendererProvider implements RendererProvider -{ - @Override - public Renderer create(DeserializedSubmodelComponent component, JsonElement params) - { - JsonObject asJsonObject = params.getAsJsonObject(); - String centerText = asJsonObject.getAsJsonPrimitive("centerText").getAsString(); - double centerTextHeight = asJsonObject.getAsJsonPrimitive("centerTextHeight").getAsDouble(); - double horizontalComponentCenter = asJsonObject.getAsJsonPrimitive("horizontalComponentCenter").getAsDouble(); - double pinLabelHeight = asJsonObject.getAsJsonPrimitive("pinLabelHeight").getAsDouble(); - double pinLabelMargin = asJsonObject.getAsJsonPrimitive("pinLabelMargin").getAsDouble(); - return (gc, visReg) -> - { - 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.ui.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); - }; - } - - static - { - CodeSnippetSupplier.symbolRendererProviderSupplier.setSnippetProvider( - SimpleRectangularLikeSymbolRendererProvider.class.getCanonicalName(), new SimpleRectangularLikeSymbolRendererProvider()); - } -} \ No newline at end of file