From 61444db46d753e45fe4624ab0cbdac13376cd6d9 Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Thu, 17 Jan 2019 23:47:03 +0100 Subject: [PATCH] Ability to flip letters and numbers for board coordinates --- diylc/diylc-library/lib/diylc-core.jar | Bin 242829 -> 242829 bytes .../components/boards/AbstractBoard.java | 50 ++++++++++++------ .../diylc/components/boards/BlankBoard.java | 13 +++-- diylc/diylc-swing/lib/diylc-core.jar | Bin 242829 -> 242829 bytes diylc/diylc-swing/library/main.jar | Bin 550385 -> 551561 bytes diylc/diylc-swing/update.xml | 4 ++ 6 files changed, 48 insertions(+), 19 deletions(-) diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 7a880bb153273a82ab84feb7258b499a4ef42920..f77a539d2bcb4e6d77f766b5c60cac59e383a169 100644 GIT binary patch delta 4319 zcmY+Gdt8p^8^GWDzF$$2SR^&-V?u2BIYdIKHit%qVF+PJ=R_lt=q;Ul)RTx3nN;E( z&q8w;TWiC@`q^xm{dP#q)Rtk`?(4dqe}4b;z0TKlpPskOdp4Q(Y^(!j2&0w3(8XX- z>vFA!@PfKr_m}do;?A4_3z#cc>y#um8lbV)0l%=300%w+@D3jeNapTLqJe}YK}CfJB>o{L0Y(`|09G1@NthL54hIhG{Bb8R|7`se;EQh0!TPyP z0|VyUzGeiTu}eYSr*{ozb@Yiwu6Fbj;6K*S8TCeIGcsksRE+=XwMj@@*HEC6Fz6

bCX4c2ZxAK;34Ewi1GR`Y0; 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 J-oy_@z`uk*&FugH delta 4319 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 protected Color boardColor = BOARD_COLOR; protected Color borderColor = BORDER_COLOR; protected Color coordinateColor = COORDINATE_COLOR; - protected Boolean drawCoordinates = true; + protected Boolean drawCoordinates = null; + protected CoordinateType coordinateType = CoordinateType.XY; @Override public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, Project project, @@ -82,8 +83,9 @@ public abstract class AbstractBoard extends AbstractTransparentComponent g2d.drawRect(firstPoint.x, firstPoint.y, secondPoint.x - firstPoint.x, secondPoint.y - firstPoint.y); } - protected void drawCoordinates(Graphics2D g2d, int spacing, Project project) { - if (!getDrawCoordinates()) + protected void drawCoordinates(Graphics2D g2d, int spacing, Project project) { + CoordinateType ct = getCoordinateType(); + if (ct == CoordinateType.None) return; Point p = new Point(firstPoint); g2d.setColor(coordinateColor); @@ -92,7 +94,7 @@ public abstract class AbstractBoard extends AbstractTransparentComponent int t = 1; while (p.y < secondPoint.y - spacing) { p.y += spacing; - super.drawCenteredText(g2d, getCoordinateLabel(t++), p.x + 2, p.y, HorizontalAlignment.LEFT, + super.drawCenteredText(g2d, ct == CoordinateType.XY ? getCoordinateLabel(t++) : Integer.toString(t++), p.x + 2, p.y, HorizontalAlignment.LEFT, VerticalAlignment.CENTER); } @@ -100,7 +102,7 @@ public abstract class AbstractBoard extends AbstractTransparentComponent t = 1; while (p.x < secondPoint.x - spacing) { p.x += spacing; - super.drawCenteredText(g2d, Integer.toString(t++), p.x, p.y - 2, HorizontalAlignment.CENTER, + super.drawCenteredText(g2d, ct == CoordinateType.XY ? Integer.toString(t++) : getCoordinateLabel(t++), p.x, p.y - 2, HorizontalAlignment.CENTER, VerticalAlignment.TOP); } } @@ -146,16 +148,17 @@ public abstract class AbstractBoard extends AbstractTransparentComponent public void setBorderColor(Color borderColor) { this.borderColor = borderColor; - } - - @EditableProperty(name = "Draw Coordinates") - public boolean getDrawCoordinates() { - // Null protection for older files - return drawCoordinates == null || drawCoordinates; - } - - public void setDrawCoordinates(boolean drawCoordinates) { - this.drawCoordinates = drawCoordinates; + } + + @EditableProperty(name ="Coordinates") + public CoordinateType getCoordinateType() { + if (coordinateType == null) + coordinateType = drawCoordinates == null || drawCoordinates ? CoordinateType.XY : CoordinateType.None; + return coordinateType; + } + + public void setCoordinateType(CoordinateType coordinateType) { + this.coordinateType = coordinateType; } @Override @@ -196,5 +199,20 @@ public abstract class AbstractBoard extends AbstractTransparentComponent @Override public void setValue(String value) { this.value = value; + } + + public static enum CoordinateType { + None("None"), XY("X-numbers Y-letters"), YX("X-letters Y-numbers"); + + private String label; + + private CoordinateType(String label) { + this.label = label; + } + + @Override + public String toString() { + return label; + } } } diff --git a/diylc/diylc-library/src/org/diylc/components/boards/BlankBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/BlankBoard.java index 3d196d1b..71713b60 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/BlankBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/BlankBoard.java @@ -22,10 +22,11 @@ package org.diylc.components.boards; import java.awt.AlphaComposite; +import java.awt.Color; import java.awt.Composite; import java.awt.Graphics2D; import java.awt.Shape; - + import org.diylc.common.ObjectCache; import org.diylc.common.SimpleComponentTransformer; import org.diylc.core.ComponentState; @@ -88,9 +89,15 @@ public class BlankBoard extends AbstractBoard { } @Override - public boolean getDrawCoordinates() { + public CoordinateType getCoordinateType() { // Override to prevent editing. - return super.getDrawCoordinates(); + return super.getCoordinateType(); + } + + @Override + public Color getCoordinateColor() { + // Override to prevent editing. + return super.getCoordinateColor(); } @EditableProperty(name = "Shape") diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 7a880bb153273a82ab84feb7258b499a4ef42920..f77a539d2bcb4e6d77f766b5c60cac59e383a169 100644 GIT binary patch delta 4319 zcmY+Gdt8p^8^GWDzF$$2SR^&-V?u2BIYdIKHit%qVF+PJ=R_lt=q;Ul)RTx3nN;E( z&q8w;TWiC@`q^xm{dP#q)Rtk`?(4dqe}4b;z0TKlpPskOdp4Q(Y^(!j2&0w3(8XX- z>vFA!@PfKr_m}do;?A4_3z#cc>y#um8lbV)0l%=300%w+@D3jeNapTLqJe}YK}CfJB>o{L0Y(`|09G1@NthL54hIhG{Bb8R|7`se;EQh0!TPyP z0|VyUzGeiTu}eYSr*{ozb@Yiwu6Fbj;6K*S8TCeIGcsksRE+=XwMj@@*HEC6Fz6

bCX4c2ZxAK;34Ewi1GR`Y0; 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 J-oy_@z`uk*&FugH delta 4319 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 delta 16276 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 NEW_FEATURE Configurable graphics hardware acceleration + + + NEW_FEATURE + Ability to flip letters and numbers for board coordinates IMPROVEMENT