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 4bdc4728..1b4a2d4e 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/HumbuckerPickup.java @@ -106,17 +106,18 @@ public class HumbuckerPickup extends AbstractTransparentComponent { 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 : color); - if (getType() != HumbuckerType.Filtertron) - g2d.fill(body[0]); - if (body[1] != null) - g2d.fill(body[1]); + 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 : color); + if (getType() != HumbuckerType.Filtertron) + g2d.fill(body[0]); + if (body[1] != null) + g2d.fill(body[1]); + + if (!outlineMode) { if (body[4] != null) { g2d.setColor(getBobinColor1()); g2d.fill(body[4]); @@ -125,17 +126,19 @@ public class HumbuckerPickup extends AbstractTransparentComponent { g2d.setColor(getBobinColor2()); g2d.fill(body[5]); } - if (getType() == HumbuckerType.Filtertron) { - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color); - g2d.fill(body[0]); - } - - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); - g2d.fill(body[2]); - - g2d.setComposite(oldComposite); + } + + if (getType() == HumbuckerType.Filtertron) { + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color); + g2d.fill(body[0]); } + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); + g2d.fill(body[2]); + + g2d.setComposite(oldComposite); + + Color finalBorderColor; if (outlineMode) { Theme theme = @@ -154,14 +157,15 @@ public class HumbuckerPickup extends AbstractTransparentComponent { g2d.draw(body[0]); if (body[1] != null) g2d.draw(body[1]); - if (!outlineMode && componentState != ComponentState.DRAGGING) { + + if (!outlineMode) { g2d.setColor(getPoleColor()); g2d.fill(body[3]); g2d.setColor(darkerOrLighter(getPoleColor())); g2d.draw(body[3]); if (body[6] != null) g2d.draw(body[6]); - + if (getType() != HumbuckerType.Filtertron) { if (body[4] != null) { g2d.setColor(getBobinColor1().darker()); @@ -171,8 +175,9 @@ public class HumbuckerPickup extends AbstractTransparentComponent { g2d.setColor(getBobinColor2().darker()); g2d.draw(body[5]); } - } - } + } + } + if (getType() == HumbuckerType.Filtertron) { g2d.setColor(finalBorderColor); g2d.draw(body[0]); diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/JazzBassPickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/JazzBassPickup.java index 9a9dc1b7..47a79450 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/JazzBassPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/JazzBassPickup.java @@ -91,19 +91,18 @@ public class JazzBassPickup extends AbstractTransparentComponent { 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 : color); - g2d.fill(body[0]); - g2d.fill(body[1]); - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); - g2d.fill(body[2]); - g2d.setComposite(oldComposite); - } + 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 : color); + g2d.fill(body[0]); + g2d.fill(body[1]); + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); + g2d.fill(body[2]); + g2d.setComposite(oldComposite); + Color finalBorderColor; if (outlineMode) { Theme theme = @@ -120,11 +119,12 @@ public class JazzBassPickup extends AbstractTransparentComponent { g2d.setColor(finalBorderColor); g2d.draw(body[0]); g2d.draw(body[1]); - if (!outlineMode && componentState != ComponentState.DRAGGING) { + + if (!outlineMode) { g2d.setColor(getPoleColor()); g2d.fill(body[3]); g2d.setColor(darkerOrLighter(getPoleColor())); - g2d.draw(body[3]); + g2d.draw(body[3]); } Color finalLabelColor; 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 f5bddae3..ea2b11c5 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/P90Pickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/P90Pickup.java @@ -98,19 +98,18 @@ public class P90Pickup extends AbstractTransparentComponent { 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 : color); - g2d.fill(body[0]); - if (body[1] != null) - g2d.fill(body[1]); - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); - g2d.fill(body[2]); - g2d.setComposite(oldComposite); + + 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 : color); + g2d.fill(body[0]); + if (body[1] != null) + g2d.fill(body[1]); + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); + g2d.fill(body[2]); + g2d.setComposite(oldComposite); Color finalBorderColor; if (outlineMode) { @@ -128,12 +127,13 @@ public class P90Pickup extends AbstractTransparentComponent { g2d.setColor(finalBorderColor); g2d.draw(body[0]); if (body[1] != null) - g2d.draw(body[1]); - if (!outlineMode && componentState != ComponentState.DRAGGING) { + g2d.draw(body[1]); + + if (!outlineMode) { g2d.setColor(getPoleColor()); g2d.fill(body[3]); g2d.setColor(darkerOrLighter(getPoleColor())); - g2d.draw(body[3]); + g2d.draw(body[3]); } Color finalLabelColor; diff --git a/diylc/diylc-library/src/org/diylc/components/guitar/PBassPickup.java b/diylc/diylc-library/src/org/diylc/components/guitar/PBassPickup.java index 53f81862..6a0f4bac 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/PBassPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/PBassPickup.java @@ -89,18 +89,17 @@ public class PBassPickup extends AbstractTransparentComponent { 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 : color); - g2d.fill(body[0]); - g2d.fill(body[1]); - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); - g2d.fill(body[2]); - g2d.setComposite(oldComposite); + + 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 : color); + g2d.fill(body[0]); + g2d.fill(body[1]); + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); + g2d.fill(body[2]); + g2d.setComposite(oldComposite); Color finalBorderColor; if (outlineMode) { @@ -117,12 +116,13 @@ public class PBassPickup extends AbstractTransparentComponent { g2d.setColor(finalBorderColor); g2d.draw(body[0]); - g2d.draw(body[1]); - if (!outlineMode && componentState != ComponentState.DRAGGING) { + g2d.draw(body[1]); + + if (!outlineMode) { g2d.setColor(getPoleColor()); g2d.fill(body[3]); g2d.setColor(darkerOrLighter(getPoleColor())); - g2d.draw(body[3]); + g2d.draw(body[3]); } Color finalLabelColor; 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 702931ce..cde84f6a 100644 --- a/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java +++ b/diylc/diylc-library/src/org/diylc/components/guitar/SingleCoilPickup.java @@ -107,27 +107,26 @@ public class SingleCoilPickup extends AbstractTransparentComponent { 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 : getBaseColor()); - g2d.fill(body[4]); - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : getColor()); - if (body[0] == null) - g2d.fill(body[3]); - else - g2d.fill(body[0]); - g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); - g2d.fill(body[1]); - - // g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color); - // g2d.fill(body[3]); - g2d.setComposite(oldComposite); + 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 : getBaseColor()); + g2d.fill(body[4]); + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : getColor()); + if (body[0] == null) + g2d.fill(body[3]); + else + g2d.fill(body[0]); + g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : POINT_COLOR); + g2d.fill(body[1]); + + // g2d.setColor(outlineMode ? Constants.TRANSPARENT_COLOR : color); + // g2d.fill(body[3]); + g2d.setComposite(oldComposite); + Color finalBorderColor; if (outlineMode) { Theme theme = @@ -161,7 +160,7 @@ public class SingleCoilPickup extends AbstractTransparentComponent { g2d.draw(body[0]); g2d.draw(body[3]); - if (componentState != ComponentState.DRAGGING && !outlineMode) { + if (!outlineMode) { g2d.setColor(getPoleColor()); g2d.fill(body[2]); g2d.setColor(darkerOrLighter(getPoleColor())); diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index c62fc94e..c9ed53be 100644 Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ diff --git a/diylc/diylc-swing/update.xml b/diylc/diylc-swing/update.xml index b4298999..45dd71c9 100644 --- a/diylc/diylc-swing/update.xml +++ b/diylc/diylc-swing/update.xml @@ -2413,7 +2413,11 @@ IMPROVEMENT Better rendering of IC and transistor pins when zoomed in - + + + IMPROVEMENT + Better rendering of guitar pickups when dragging and in outline mode + BUG_FIX Drag&Drop from the tree sometimes picks up a wrong component type