From fad005cccfc17b29a6a152934de85c265259387e Mon Sep 17 00:00:00 2001 From: bancika Date: Thu, 29 Dec 2016 18:06:54 +0100 Subject: [PATCH] added open jack --- diylc/diylc-library/lib/diylc-core.jar | Bin 230206 -> 230206 bytes .../electromechanical/OpenJack1_4.java | 343 ++++++++++++++++++ .../components/guitar/HumbuckerPickup.java | 9 +- .../diylc/components/guitar/P90Pickup.java | 4 +- .../components/guitar/SingleCoilPickup.java | 10 +- diylc/diylc-swing/library/main.jar | Bin 356805 -> 362814 bytes diylc/diylc-swing/update.xml | 4 + 7 files changed, 359 insertions(+), 11 deletions(-) create mode 100644 diylc/diylc-library/src/org/diylc/components/electromechanical/OpenJack1_4.java diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index eb5bf4faa0f486b333331722cb10d605053ccbef..dda7cd7082ca8603f868ff5ebb3e21bdf1fe3b4f 100644 GIT binary patch delta 3956 zcmYjUc~q6h6@N3sq6kmH7|^1EiVBKbh{Pbs_SiudWe1T>6a_>OB<%H2i^K!I=+h)_ z=U7Dr#Zdhe+-gM8CW=dOtEi1@P23Vv3>rK4-tYAEAAi5!-R91nneX9=8tsW1t$BE` zFf!9<252;G^$q5Z{AhiHYp?uQKZV%=gtPGgZo*dIWB&i)(zu^F^R{~Z9X1_c2%iLz z?%Wj=B!oTD>bG+DECDNu ze#Q8rlA%VR>&hpfK2&Lg{amV=g!=6t1tP1_B3iCF45&X}+YV5(_6lUj*G1qe&FfMT zEgOvBq*|@N64<5f*6WzvyWIqWjL&Ma!?@b!CP4is2f6`< zwDdt$vx9OKDRWxifn4@i8fnd;Ay{OS5@@77TE8W5O7;EDQlZhzG}W^oN9nsx4r;YI zR)-7hI{6A?H=n+P3l*Qi!)$dvcN+b#E<8v7{qNgRZ@s)5wg0sqjGxf$WD09X-8qOG zHo12k$Jp_p1LE{`k9UH5#*@EcdhatCCUxWUd**<({ksIV=(+x*_8zX$+~kH=4$Ru% znIueG6W>39XvL4S8IZ1&7&8YXI|i_UNSX#Q3ncAYHXK$~x~*6gW=$H#jtl|ILkG4A zV=5fkS|sMq>^;U_&OkaW2+D{9HRzyD^eY$=LbQcT_0Vr~KRe3(6IjFp_H zh2fGe-?~pEDc7t#o0fOw3@NnD}}T3&!|4*-Sywm&2Tp zjLT=GKn(Mp`BsTaO zUez;4Ot;;@Mj~od0eM8Y37vc2g#mJI!VsqAHcIa|><{EH zY)#mylMYYA)O;ItK}{$XdsU)`9_Q=AI4uI$s5kykTl!!1Mm`+ z4Bi)}0%WjP;V~cq+ppym!CVXf(eV;i)M9@Z}%i($92Ui=^L=8zEr< zd<$l859V`_+z;ad@BO2BJQXcLv3w2$8`j40%ec9CUO5!Vy=B}U%ZOa=gk)+S#~&Ic zd^x|018^wdo#=W|$iva%Rm}0LtwfaYVQ9%JFX8qp96(q`4F2D8Cb*!6baBZ9XUYyEq-&pOT z(F|U1m|nm~7`9c4!Ak5+UI)L)$|Gyx4L?P&*nKLGc5+wVbM29iB3a1JAswDCM zNUSsha?(|VBe9$<7C=vie0MPmX4dR3JON+0%O87*_8wv;V3Vh?H57V?i6FLl2zN;8 z@ep2s_H%?A*puf7f6y5G?VSGw+ZqOX3VVo{>?!}0khoMu8R-l9wWkOI^zag4P+^^y zY(rv~mzWK9t+$8<%=8w?fM-=4?;~PBSNMob(Cl9M>@`r^8ex|`;h)#KZ+0a7XhFR{-OZTB0$UsOb?*^!vPd;5=a;wNcP4+ zTDLcl>IVjid62hF#oizh4>}@P#KL~}1&b6wix9CGusDSFdqc%fLP>8573q-od#FeQ zObes>N|=}ndca)5xVhBN9u?or6%pVM2^Ud-JHmw@tn)Nn!~yz7&_35ih(Pe)jF5hb z_L0e4%2{eA@3W6?ru2YvykF+sg(bDDxK4fR9b&x8ewr7 z?Y}FH@`k4qrlwQ0soIM74l7~_`8O}2_?yLl8hVLAD8mQ!CxROI{3bN;|pgcKr zJZw=w_Mif?e^Ef|J}4l+b0OJ_3h5G@E~I*cS5iMQD`~F#R?=fMD-sECj*E&&pDm)t zH>Oymg1x3#EChV2>d;m4BP8{aRU#A6u0&)3)|OD*PbD-rkI(3lZdUOZ73Y?ceXokf zW%6S!KQhT>^catn$@7+4TP`1!#FTQ82za7g_9bydg}j^+b1NvWqe7ma)Haob*_CpA psgG4sy$`G8oTW~!lJ`Mki>lvN$+<`!SS{xvaZ5GjJ+Btw{{>e|{-OW? delta 3956 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 s5wogj{o_?s@55?2XX#I^miIxjMb-PO { + + private static final long serialVersionUID = 1L; + + private static Color BASE_COLOR = Color.lightGray; + private static Color WAFER_COLOR = Color.decode("#CD8500"); + + private static Size OUTER_DIAMETER = new Size(0.75d, SizeUnit.in); + private static Size INNER_DIAMETER = new Size(0.25d, SizeUnit.in); + private static Size RING_DIAMETER = new Size(0.33d, SizeUnit.in); + private static Size SPRING_LENGTH = new Size(0.563d, SizeUnit.in); + private static Size SPRING_WIDTH = new Size(0.12d, SizeUnit.in); + private static Size HOLE_DIAMETER = new Size(0.05d, SizeUnit.in); + private static Size HOLE_TO_EDGE = new Size(0.063d, SizeUnit.in); + + private String value = ""; + private Point[] controlPoints = new Point[] {new Point(0, 0), new Point(0, 0), new Point(0, 0)}; + transient Shape[] body; + private Orientation orientation = Orientation.DEFAULT; + private JackType type = JackType.MONO; + + public OpenJack1_4() { + super(); + updateControlPoints(); + } + + @Override + public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, Project project, + IDrawingObserver drawingObserver) { + Shape[] body = getBody(); + + g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); + if (componentState != ComponentState.DRAGGING) { + Composite oldComposite = g2d.getComposite(); + if (alpha < MAX_ALPHA) { + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA)); + } + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : WAFER_COLOR); + g2d.fill(body[0]); + + g2d.setComposite(oldComposite); + } + + Color finalBorderColor; + + if (outlineMode) { + Theme theme = + (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); + finalBorderColor = + componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR + : theme.getOutlineColor(); + } else { + finalBorderColor = + componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR + : WAFER_COLOR.darker(); + } + + g2d.setColor(finalBorderColor); + g2d.draw(body[0]); + + if (componentState != ComponentState.DRAGGING) { + Composite oldComposite = g2d.getComposite(); + if (alpha < MAX_ALPHA) { + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA)); + } + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : BASE_COLOR); + g2d.fill(body[1]); + g2d.fill(body[2]); + if (body[3] != null) + g2d.fill(body[3]); + + g2d.setComposite(oldComposite); + } + + if (outlineMode) { + Theme theme = + (Theme) ConfigurationManager.getInstance().readObject(IPlugInPort.THEME_KEY, Constants.DEFAULT_THEME); + finalBorderColor = + componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR + : theme.getOutlineColor(); + } else { + finalBorderColor = + componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR + : BASE_COLOR.darker(); + } + + g2d.setColor(finalBorderColor); + g2d.draw(body[1]); + g2d.draw(body[2]); + if (body[3] != null) + g2d.draw(body[3]); + } + + @SuppressWarnings("incomplete-switch") + public Shape[] getBody() { + if (body == null) { + body = new Shape[4]; + + int x = controlPoints[0].x; + int y = controlPoints[0].y; + int outerDiameter = getClosestOdd(OUTER_DIAMETER.convertToPixels()); + int innerDiameter = getClosestOdd(INNER_DIAMETER.convertToPixels()); + int ringDiameter = getClosestOdd(RING_DIAMETER.convertToPixels()); + int springLength = (int) SPRING_LENGTH.convertToPixels(); + int springWidth = (int) SPRING_WIDTH.convertToPixels(); + int holeDiameter = getClosestOdd(HOLE_DIAMETER.convertToPixels()); + int holeToEdge = (int) HOLE_TO_EDGE.convertToPixels(); + + int centerY = y + springLength - holeToEdge; + + Area wafer = + new Area(new Ellipse2D.Double(x - outerDiameter / 2, centerY - outerDiameter / 2, outerDiameter, + outerDiameter)); + wafer.subtract(new Area(new Ellipse2D.Double(x - ringDiameter / 2, centerY - ringDiameter / 2, ringDiameter, + ringDiameter))); + + body[0] = wafer; + + Area tip = + new Area(new RoundRectangle2D.Double(x - springWidth / 2, y - holeToEdge, springWidth, springLength + - ringDiameter / 2, springWidth, springWidth)); + tip.subtract(new Area( + new Ellipse2D.Double(x - holeDiameter / 2, y - holeDiameter / 2, holeDiameter, holeDiameter))); + tip.subtract(wafer); + + body[1] = tip; + + Area sleeve = + new Area(new RoundRectangle2D.Double(x - springWidth / 2, y - holeToEdge, springWidth, springLength, + springWidth, springWidth)); + sleeve.subtract(new Area(new Ellipse2D.Double(x - holeDiameter / 2, y - holeDiameter / 2, holeDiameter, + holeDiameter))); + sleeve.transform(AffineTransform.getRotateInstance(Math.PI / 4, x, centerY)); + sleeve.add(new Area(new Ellipse2D.Double(x - ringDiameter / 2, centerY - ringDiameter / 2, ringDiameter, + ringDiameter))); + sleeve.subtract(new Area(new Ellipse2D.Double(x - innerDiameter / 2, centerY - innerDiameter / 2, innerDiameter, + innerDiameter))); + + body[2] = sleeve; + + if (getType() == JackType.STEREO) { + Area ring = + new Area(new RoundRectangle2D.Double(x - springWidth / 2, y - holeToEdge, springWidth, springLength, + springWidth, springWidth)); + ring.subtract(new Area(new Ellipse2D.Double(x - holeDiameter / 2, y - holeDiameter / 2, holeDiameter, + holeDiameter))); + ring.transform(AffineTransform.getRotateInstance(3 * Math.PI / 4, x, centerY)); + ring.subtract(new Area(new Ellipse2D.Double(x - outerDiameter / 2, centerY - outerDiameter / 2, outerDiameter, + outerDiameter))); + + body[3] = ring; + } + + 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; + } + } + + // Rotate if needed + if (theta != 0) { + AffineTransform rotation = AffineTransform.getRotateInstance(theta, x, y); + // Skip the last one because it's already rotated + for (int i = 0; i < body.length; i++) { + Shape shape = body[i]; + Area area = (Area) shape; + if (area != null) { + area.transform(rotation); + } + } + } + } + + return body; + } + + @SuppressWarnings("incomplete-switch") + private void updateControlPoints() { + int x = controlPoints[0].x; + int y = controlPoints[0].y; + + int springLength = (int) SPRING_LENGTH.convertToPixels(); + int holeToEdge = (int) HOLE_TO_EDGE.convertToPixels(); + + int centerY = y + springLength - holeToEdge; + + AffineTransform.getRotateInstance(Math.PI / 4, x, centerY).transform(controlPoints[0], controlPoints[1]); + AffineTransform.getRotateInstance(3 * Math.PI / 4, x, centerY).transform(controlPoints[0], controlPoints[2]); + + // Rotate if needed + if (orientation != Orientation.DEFAULT) { + double theta = 0; + switch (orientation) { + case _90: + theta = Math.PI / 2; + break; + case _180: + theta = Math.PI; + break; + case _270: + theta = Math.PI * 3 / 2; + break; + } + AffineTransform rotation = AffineTransform.getRotateInstance(theta, x, y); + for (Point point : controlPoints) { + rotation.transform(point, point); + } + } + } + + @Override + public void drawIcon(Graphics2D g2d, int width, int height) { + int waferDiameter = 15 * width / 32; + int sleeveDiameter = 9 * width / 32; + + g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(6f * width / 32)); + g2d.setColor(BASE_COLOR); + g2d.drawLine(width / 2, 4 * width / 32, width / 2, width / 4); + + g2d.rotate(3 * Math.PI / 4, width / 2, height / 2); + + g2d.drawLine(width / 2, 4 * width / 32, width / 2, width / 4); + + g2d.setColor(WAFER_COLOR); + g2d.draw(new Ellipse2D.Double(width / 2 - waferDiameter / 2, height / 2 - waferDiameter / 2, waferDiameter, + waferDiameter)); + + g2d.setColor(BASE_COLOR); + g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2f * width / 32)); + g2d.draw(new Ellipse2D.Double(width / 2 - sleeveDiameter / 2, height / 2 - sleeveDiameter / 2, sleeveDiameter, + sleeveDiameter)); + + g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(6f * width / 32)); + g2d.rotate(-Math.PI / 2, width / 2, height / 2); + + g2d.drawLine(width / 2, 4 * width / 32, width / 2, width / 3); + } + + @Override + public int getControlPointCount() { + return controlPoints.length; + } + + @Override + public VisibilityPolicy getControlPointVisibilityPolicy(int index) { + return VisibilityPolicy.NEVER; + } + + @Override + public boolean isControlPointSticky(int index) { + return index < 3 || getType() == JackType.STEREO; + } + + @Override + public Point getControlPoint(int index) { + return controlPoints[index]; + } + + @Override + public void setControlPoint(Point point, int index) { + this.controlPoints[index].setLocation(point); + // Invalidate the body + body = null; + } + + @Override + public String getValue() { + return value; + } + + @Override + public void setValue(String value) { + this.value = value; + } + + @EditableProperty + public Orientation getOrientation() { + return orientation; + } + + public void setOrientation(Orientation orientation) { + this.orientation = orientation; + updateControlPoints(); + // Invalidate the body + body = null; + } + + @EditableProperty + public JackType getType() { + return type; + } + + public void setType(JackType type) { + this.type = type; + updateControlPoints(); + // Invalidate the body + body = null; + } +} diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java index aff75439..5d50e463 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java @@ -51,8 +51,8 @@ public class HumbuckerPickup extends AbstractTransparentComponent { private static Size LIP_WIDTH = new Size(12.7d, SizeUnit.mm); private static Size LIP_LENGTH = new Size(7.9d, SizeUnit.mm); private static Size EDGE_RADIUS = new Size(4d, SizeUnit.mm); - private static Size POINT_MARGIN = new Size(5d, SizeUnit.mm); - private static Size POINT_SIZE = new Size(3d, SizeUnit.mm); + private static Size POINT_MARGIN = new Size(1.5d, SizeUnit.mm); + private static Size POINT_SIZE = new Size(2d, SizeUnit.mm); private static Size LIP_HOLE_SIZE = new Size(1.5d, SizeUnit.mm); private static Size POLE_SIZE = new Size(3d, SizeUnit.mm); private static Size POLE_SPACING = new Size(10.1d, SizeUnit.mm); @@ -81,8 +81,6 @@ public class HumbuckerPickup extends AbstractTransparentComponent { g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color); g2d.fill(body[0]); g2d.fill(body[1]); - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); - g2d.fill(body[2]); if (body[4] != null) { g2d.setColor(getBobinColor1()); @@ -92,6 +90,9 @@ public class HumbuckerPickup extends AbstractTransparentComponent { g2d.setColor(getBobinColor2()); g2d.fill(body[5]); } + + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); + g2d.fill(body[2]); g2d.setComposite(oldComposite); } diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/P90Pickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/P90Pickup.java index 1ea74be9..c8b28fdb 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/P90Pickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/P90Pickup.java @@ -56,8 +56,8 @@ public class P90Pickup extends AbstractTransparentComponent { private static Size SOAP_BAR_EDGE_RADIUS = new Size(8d, SizeUnit.mm); private static Size LIP_RADIUS = new Size(10d, SizeUnit.mm); - private static Size POINT_MARGIN = new Size(5d, SizeUnit.mm); - private static Size POINT_SIZE = new Size(3d, SizeUnit.mm); + private static Size POINT_MARGIN = new Size(1.5d, SizeUnit.mm); + private static Size POINT_SIZE = new Size(2d, SizeUnit.mm); private static Size LIP_HOLE_SIZE = new Size(2.5d, SizeUnit.mm); private static Size LIP_HOLE_SPACING = new Size(97d, SizeUnit.mm); private static Size POLE_SIZE = new Size(4d, SizeUnit.mm); diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java index f16196a1..77e513dc 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java @@ -60,7 +60,7 @@ public class SingleCoilPickup extends AbstractTransparentComponent { private static Size TELE_LENGTH = new Size(2.87d, SizeUnit.in); private static Size TELE_HOLE_SPACING = new Size(1.135d, SizeUnit.in); - private static Size POINT_SIZE = new Size(3d, SizeUnit.mm); + private static Size POINT_SIZE = new Size(2d, SizeUnit.mm); private static Size HOLE_SIZE = new Size(2d, SizeUnit.mm); private static Size HOLE_MARGIN = new Size(4d, SizeUnit.mm); private static Size POLE_SIZE = new Size(4d, SizeUnit.mm); @@ -80,20 +80,20 @@ public class SingleCoilPickup extends AbstractTransparentComponent { Shape[] body = getBody(); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); - if (componentState != ComponentState.DRAGGING && !outlineMode) { + if (componentState != ComponentState.DRAGGING) { Composite oldComposite = g2d.getComposite(); if (alpha < MAX_ALPHA) { g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha / MAX_ALPHA)); } - g2d.setColor(getBaseColor()); + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : getBaseColor()); g2d.fill(body[4]); - g2d.setColor(getColor()); + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : getColor()); if (body[0] == null) g2d.fill(body[3]); else g2d.fill(body[0]); - g2d.setColor(POINT_COLOR); + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); g2d.fill(body[1]); // g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color); diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 1cb24af0b279ade84bc78c2f0d79acd2f2e75e73..3114cd6b2df5f6a187d943f57157d6fe84840871 100644 GIT binary patch delta 30656 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 me1HTK9ukw8W delta 24706 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 bQVkF;J~KlEOl1f<3I4f*g=(}3bPxI;+80Kz diff --git a/diylc/diylc-swing/update.xml b/diylc/diylc-swing/update.xml index 78ee1025..800ba748 100644 --- a/diylc/diylc-swing/update.xml +++ b/diylc/diylc-swing/update.xml @@ -1458,6 +1458,10 @@ NEW_FEATURE Searchable component tree instead of the old toolbar (can be changed back from "Config" menu) + + NEW_FEATURE + Open 1/4" Switchcraft-style jack added + NEW_FEATURE LP-style switch added