From caa92e973dbda969cbd7507300f1e0a71ffc8643 Mon Sep 17 00:00:00 2001 From: bancika Date: Fri, 30 Dec 2016 10:49:42 +0100 Subject: [PATCH] open jack improvement --- .../electromechanical/OpenJack1_4.java | 55 ++++++++++++++++++ diylc/diylc-swing/library/main.jar | Bin 362851 -> 363605 bytes 2 files changed, 55 insertions(+) diff --git a/diylc/diylc-library/src/org/diylc/components/electromechanical/OpenJack1_4.java b/diylc/diylc-library/src/org/diylc/components/electromechanical/OpenJack1_4.java index 3b615984..8f689c28 100644 --- a/diylc/diylc-library/src/org/diylc/components/electromechanical/OpenJack1_4.java +++ b/diylc/diylc-library/src/org/diylc/components/electromechanical/OpenJack1_4.java @@ -12,9 +12,11 @@ import java.awt.geom.Ellipse2D; import java.awt.geom.RoundRectangle2D; import org.diylc.appframework.miscutils.ConfigurationManager; +import org.diylc.common.HorizontalAlignment; import org.diylc.common.IPlugInPort; import org.diylc.common.ObjectCache; import org.diylc.common.Orientation; +import org.diylc.common.VerticalAlignment; import org.diylc.components.AbstractTransparentComponent; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; @@ -51,12 +53,14 @@ public class OpenJack1_4 extends AbstractTransparentComponent { transient Shape[] body; private Orientation orientation = Orientation.DEFAULT; private JackType type = JackType.MONO; + private boolean showLabels = true; public OpenJack1_4() { super(); updateControlPoints(); } + @SuppressWarnings("incomplete-switch") @Override public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, Project project, IDrawingObserver drawingObserver) { @@ -122,6 +126,48 @@ public class OpenJack1_4 extends AbstractTransparentComponent { g2d.draw(body[2]); if (body[3] != null) g2d.draw(body[3]); + + // draw labels + if (showLabels) { + g2d.setColor(BASE_COLOR.darker()); + g2d.setFont(LABEL_FONT.deriveFont(LABEL_FONT.getSize2D() * 0.8f)); + int springLength = (int) SPRING_LENGTH.convertToPixels(); + int holeToEdge = (int) HOLE_TO_EDGE.convertToPixels(); + int centerY = controlPoints[0].y + springLength - holeToEdge; + Point tipLabel = new Point(controlPoints[0].x, (int) (controlPoints[0].y + holeToEdge * 1.25)); + AffineTransform ringTransform = AffineTransform.getRotateInstance(Math.PI * 0.795, controlPoints[0].x, centerY); + AffineTransform sleeveTransform = AffineTransform.getRotateInstance(Math.PI * 0.295, controlPoints[0].x, centerY); + Point ringLabel = new Point(0, 0); + Point sleeveLabel = new Point(0, 0); + ringTransform.transform(tipLabel, ringLabel); + sleeveTransform.transform(tipLabel, sleeveLabel); + double theta = 0; + // Rotate if needed + if (orientation != Orientation.DEFAULT) { + switch (orientation) { + case _90: + theta = Math.PI / 2; + break; + case _180: + theta = Math.PI; + break; + case _270: + theta = Math.PI * 3 / 2; + break; + } + } + + if (theta != 0) { + AffineTransform rotation = AffineTransform.getRotateInstance(theta, controlPoints[0].x, controlPoints[0].y); + rotation.transform(tipLabel, tipLabel); + rotation.transform(ringLabel, ringLabel); + rotation.transform(sleeveLabel, sleeveLabel); + } + drawCenteredText(g2d, "T", tipLabel.x, tipLabel.y, HorizontalAlignment.CENTER, VerticalAlignment.CENTER); + drawCenteredText(g2d, "S", sleeveLabel.x, sleeveLabel.y, HorizontalAlignment.CENTER, VerticalAlignment.CENTER); + if (getType() == JackType.STEREO) + drawCenteredText(g2d, "R", ringLabel.x, ringLabel.y, HorizontalAlignment.CENTER, VerticalAlignment.CENTER); + } } @SuppressWarnings("incomplete-switch") @@ -339,4 +385,13 @@ public class OpenJack1_4 extends AbstractTransparentComponent { // Invalidate the body body = null; } + + @EditableProperty(name = "Labels") + public boolean getShowLabels() { + return showLabels; + } + + public void setShowLabels(boolean showLabels) { + this.showLabels = showLabels; + } } diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 9a886a86f5953a245e3ec7ea476ba1f1568f4813..fd09da1f2fcb62f9486d9887c53671fe2c81e880 100644 GIT binary patch delta 16551 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 delta 15495 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 P%BOHa3>syWY0&=xDr}$(