diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 7a880bb1..f77a539d 100644 Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ diff --git a/diylc/diylc-library/src/org/diylc/components/boards/AbstractBoard.java b/diylc/diylc-library/src/org/diylc/components/boards/AbstractBoard.java index 01f557fb..26e35c15 100644 --- a/diylc/diylc-library/src/org/diylc/components/boards/AbstractBoard.java +++ b/diylc/diylc-library/src/org/diylc/components/boards/AbstractBoard.java @@ -26,7 +26,7 @@ import java.awt.Color; import java.awt.Composite; import java.awt.Graphics2D; import java.awt.Point; - + import org.diylc.common.HorizontalAlignment; import org.diylc.common.ObjectCache; import org.diylc.common.VerticalAlignment; @@ -59,7 +59,8 @@ public abstract class AbstractBoard extends AbstractTransparentComponent 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 7a880bb1..f77a539d 100644 Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 55771ff6..824d6a8a 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 5de08020..f4f7c06e 100644 --- a/diylc/diylc-swing/update.xml +++ b/diylc/diylc-swing/update.xml @@ -2265,6 +2265,10 @@ NEW_FEATURE Configurable graphics hardware acceleration + + + NEW_FEATURE + Ability to flip letters and numbers for board coordinates IMPROVEMENT