Ability to flip letters and numbers for board coordinates

This commit is contained in:
Branislav Stojkovic
2019-01-17 23:47:03 +01:00
parent 54e991891d
commit 61444db46d
6 changed files with 48 additions and 19 deletions
Binary file not shown.
@@ -26,7 +26,7 @@ import java.awt.Color;
import java.awt.Composite; import java.awt.Composite;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Point; import java.awt.Point;
import org.diylc.common.HorizontalAlignment; import org.diylc.common.HorizontalAlignment;
import org.diylc.common.ObjectCache; import org.diylc.common.ObjectCache;
import org.diylc.common.VerticalAlignment; import org.diylc.common.VerticalAlignment;
@@ -59,7 +59,8 @@ public abstract class AbstractBoard extends AbstractTransparentComponent<String>
protected Color boardColor = BOARD_COLOR; protected Color boardColor = BOARD_COLOR;
protected Color borderColor = BORDER_COLOR; protected Color borderColor = BORDER_COLOR;
protected Color coordinateColor = COORDINATE_COLOR; protected Color coordinateColor = COORDINATE_COLOR;
protected Boolean drawCoordinates = true; protected Boolean drawCoordinates = null;
protected CoordinateType coordinateType = CoordinateType.XY;
@Override @Override
public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, Project project, public void draw(Graphics2D g2d, ComponentState componentState, boolean outlineMode, Project project,
@@ -82,8 +83,9 @@ public abstract class AbstractBoard extends AbstractTransparentComponent<String>
g2d.drawRect(firstPoint.x, firstPoint.y, secondPoint.x - firstPoint.x, secondPoint.y - firstPoint.y); g2d.drawRect(firstPoint.x, firstPoint.y, secondPoint.x - firstPoint.x, secondPoint.y - firstPoint.y);
} }
protected void drawCoordinates(Graphics2D g2d, int spacing, Project project) { protected void drawCoordinates(Graphics2D g2d, int spacing, Project project) {
if (!getDrawCoordinates()) CoordinateType ct = getCoordinateType();
if (ct == CoordinateType.None)
return; return;
Point p = new Point(firstPoint); Point p = new Point(firstPoint);
g2d.setColor(coordinateColor); g2d.setColor(coordinateColor);
@@ -92,7 +94,7 @@ public abstract class AbstractBoard extends AbstractTransparentComponent<String>
int t = 1; int t = 1;
while (p.y < secondPoint.y - spacing) { while (p.y < secondPoint.y - spacing) {
p.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); VerticalAlignment.CENTER);
} }
@@ -100,7 +102,7 @@ public abstract class AbstractBoard extends AbstractTransparentComponent<String>
t = 1; t = 1;
while (p.x < secondPoint.x - spacing) { while (p.x < secondPoint.x - spacing) {
p.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); VerticalAlignment.TOP);
} }
} }
@@ -146,16 +148,17 @@ public abstract class AbstractBoard extends AbstractTransparentComponent<String>
public void setBorderColor(Color borderColor) { public void setBorderColor(Color borderColor) {
this.borderColor = borderColor; this.borderColor = borderColor;
} }
@EditableProperty(name = "Draw Coordinates") @EditableProperty(name ="Coordinates")
public boolean getDrawCoordinates() { public CoordinateType getCoordinateType() {
// Null protection for older files if (coordinateType == null)
return drawCoordinates == null || drawCoordinates; coordinateType = drawCoordinates == null || drawCoordinates ? CoordinateType.XY : CoordinateType.None;
} return coordinateType;
}
public void setDrawCoordinates(boolean drawCoordinates) {
this.drawCoordinates = drawCoordinates; public void setCoordinateType(CoordinateType coordinateType) {
this.coordinateType = coordinateType;
} }
@Override @Override
@@ -196,5 +199,20 @@ public abstract class AbstractBoard extends AbstractTransparentComponent<String>
@Override @Override
public void setValue(String value) { public void setValue(String value) {
this.value = 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;
}
} }
} }
@@ -22,10 +22,11 @@
package org.diylc.components.boards; package org.diylc.components.boards;
import java.awt.AlphaComposite; import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Composite; import java.awt.Composite;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Shape; import java.awt.Shape;
import org.diylc.common.ObjectCache; import org.diylc.common.ObjectCache;
import org.diylc.common.SimpleComponentTransformer; import org.diylc.common.SimpleComponentTransformer;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
@@ -88,9 +89,15 @@ public class BlankBoard extends AbstractBoard {
} }
@Override @Override
public boolean getDrawCoordinates() { public CoordinateType getCoordinateType() {
// Override to prevent editing. // Override to prevent editing.
return super.getDrawCoordinates(); return super.getCoordinateType();
}
@Override
public Color getCoordinateColor() {
// Override to prevent editing.
return super.getCoordinateColor();
} }
@EditableProperty(name = "Shape") @EditableProperty(name = "Shape")
Binary file not shown.
Binary file not shown.
+4
View File
@@ -2265,6 +2265,10 @@
<org.diylc.appframework.update.Change> <org.diylc.appframework.update.Change>
<changeType>NEW_FEATURE</changeType> <changeType>NEW_FEATURE</changeType>
<description>Configurable graphics hardware acceleration</description> <description>Configurable graphics hardware acceleration</description>
</org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>NEW_FEATURE</changeType>
<description>Ability to flip letters and numbers for board coordinates</description>
</org.diylc.appframework.update.Change> </org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change> <org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType> <changeType>IMPROVEMENT</changeType>