From 3153ccf545a8efa24eab3155ab127f2eab139dc9 Mon Sep 17 00:00:00 2001 From: Daniel_M_Williams Date: Sun, 26 Aug 2018 18:39:59 -0400 Subject: [PATCH] [fixes #426] reworks FreeformFinSet Selected point display... it is now a second, expanded, different colored box. --- .../gui/scalefigure/FinPointFigure.java | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/scalefigure/FinPointFigure.java b/swing/src/net/sf/openrocket/gui/scalefigure/FinPointFigure.java index 9f8c1fb56..46afee80a 100644 --- a/swing/src/net/sf/openrocket/gui/scalefigure/FinPointFigure.java +++ b/swing/src/net/sf/openrocket/gui/scalefigure/FinPointFigure.java @@ -42,8 +42,9 @@ public class FinPointFigure extends AbstractScaleFigure { // the size of the boxes around each fin point vertex private static final float BOX_WIDTH_PIXELS = 12; - private static final float SELECTED_BOX_WIDTH_PIXELS = 16; - + private static final float SELECTED_BOX_WIDTH_PIXELS = BOX_WIDTH_PIXELS + 4; + private static final Color POINT_COLOR = new Color(100, 100, 100); + private static final Color SELECTED_POINT_COLOR = new Color(200, 0, 0); private static final double MINOR_TICKS = 0.05; private static final double MAJOR_TICKS = 0.1; @@ -230,23 +231,31 @@ public class FinPointFigure extends AbstractScaleFigure { // Fin point boxes final float boxWidth = (float) (BOX_WIDTH_PIXELS / scale ); final float boxHalfWidth = boxWidth/2; - final float selBoxWidth = (float) (SELECTED_BOX_WIDTH_PIXELS / scale ); - final float selBoxHalfWidth = boxWidth/2; - + final float boxEdgeWidth_m = (float) ( LINE_WIDTH_PIXELS / scale ); g2.setStroke(new BasicStroke( boxEdgeWidth_m, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); - g2.setColor(new Color(150, 0, 0)); + g2.setColor(POINT_COLOR); finPointHandles = new Rectangle2D.Double[ drawPoints.length]; for (int currentIndex = 0; currentIndex < drawPoints.length; currentIndex++) { Coordinate c = drawPoints[currentIndex]; if( currentIndex == selectedIndex ) { - finPointHandles[currentIndex] = new Rectangle2D.Double(c.x - selBoxHalfWidth, c.y - selBoxHalfWidth, selBoxWidth, selBoxWidth); - } else { - // normal boxes - finPointHandles[currentIndex] = new Rectangle2D.Double(c.x - boxHalfWidth, c.y - boxHalfWidth, boxWidth, boxWidth); - } + final float selBoxWidth = (float) (SELECTED_BOX_WIDTH_PIXELS / scale ); + final float selBoxHalfWidth = selBoxWidth/2; + + final Rectangle2D.Double selectedPointHighlight = new Rectangle2D.Double(c.x - selBoxHalfWidth, c.y - selBoxHalfWidth, selBoxWidth, selBoxWidth); + + // switch to the highlight color + g2.setColor(SELECTED_POINT_COLOR); + g2.draw(selectedPointHighlight); + + // reset to the normal color + g2.setColor(POINT_COLOR); + } + + // normal boxes + finPointHandles[currentIndex] = new Rectangle2D.Double(c.x - boxHalfWidth, c.y - boxHalfWidth, boxWidth, boxWidth); g2.draw(finPointHandles[currentIndex]); }