added boards

This commit is contained in:
bancika
2011-01-07 17:03:39 +00:00
parent a5c5296365
commit 435f8d62f2
4 changed files with 163 additions and 1 deletions
@@ -2,6 +2,6 @@
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/diylc.jar"/>
<classpathentry kind="lib" path="lib/diylc.jar" sourcepath="/DIYLC"/>
<classpathentry kind="output" path="bin"/>
</classpath>
@@ -0,0 +1,73 @@
package org.diylc.components;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Point;
import org.diylc.core.ComponentState;
import org.diylc.core.IDIYComponent;
import org.diylc.core.Project;
import org.diylc.core.annotations.EditableProperty;
import org.diylc.utils.Constants;
public abstract class AbstractBoard implements IDIYComponent<String> {
private static final long serialVersionUID = 1L;
protected String name;
protected String value;
protected Point[] controlPoints = new Point[] { new Point(0, 0),
new Point((int) (10 * Constants.GRID), (int) (10 * Constants.GRID)) };
protected abstract Color getBoardColor();
protected abstract Color getBorderColor();
@Override
public void draw(Graphics2D g2d, ComponentState componentState, Project project) {
g2d.setStroke(new BasicStroke());
g2d.setColor(getBoardColor());
g2d.fillRect(controlPoints[0].x, controlPoints[0].y, controlPoints[1].x
- controlPoints[0].x, controlPoints[1].y - controlPoints[0].y);
g2d.setColor(getBorderColor());
g2d.drawRect(controlPoints[0].x, controlPoints[0].y, controlPoints[1].x
- controlPoints[0].x, controlPoints[1].y - controlPoints[0].y);
}
@Override
public int getControlPointCount() {
return controlPoints.length;
}
@Override
public Point getControlPoint(int index) {
return controlPoints[index];
}
@Override
public void setControlPoint(Point point, int index) {
controlPoints[index].setLocation(point);
}
@Override
public String getName() {
return name;
}
@Override
public void setName(String name) {
this.name = name;
}
@EditableProperty
@Override
public String getValue() {
return value;
}
@Override
public void setValue(String value) {
this.value = value;
}
}
@@ -0,0 +1,31 @@
package org.diylc.components;
import java.awt.Color;
import java.awt.Graphics2D;
import org.diylc.core.ComponentLayer;
import org.diylc.core.annotations.ComponentDescriptor;
@ComponentDescriptor(name = "Blank Board", category = "Boards", author = "Branislav Stojkovic", componentLayer = ComponentLayer.BOARD, instanceNamePrefix = "B", desciption = "Blank FR4 board")
public class BlankBoard extends AbstractBoard {
private static final long serialVersionUID = 1L;
public static Color BOARD_COLOR = Color.decode("#BCED91");
public static Color BORDER_COLOR = BOARD_COLOR.darker();
@Override
protected Color getBoardColor() {
return BOARD_COLOR;
}
@Override
protected Color getBorderColor() {
return BORDER_COLOR;
}
@Override
public void drawIcon(Graphics2D g2d, int width, int height) {
}
}
@@ -0,0 +1,58 @@
package org.diylc.components;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Point;
import org.diylc.core.ComponentLayer;
import org.diylc.core.ComponentState;
import org.diylc.core.Project;
import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
@ComponentDescriptor(name = "Perf Board", category = "Boards", author = "Branislav Stojkovic", componentLayer = ComponentLayer.BOARD, instanceNamePrefix = "B", desciption = "Perforated FR4 board with solder pads spaced 0.1 inch apart")
public class PerfBoard extends AbstractBoard {
private static final long serialVersionUID = 1L;
public static Color BOARD_COLOR = Color.decode("#BCED91");
public static Color COPPER_COLOR = Color.decode("#B87333");
public static Color BORDER_COLOR = BOARD_COLOR.darker();
private static Size SPACING = new Size(0.1d, SizeUnit.in);
private static Size PAD_SIZE = new Size(0.06d, SizeUnit.in);
@Override
public void draw(Graphics2D g2d, ComponentState componentState, Project project) {
super.draw(g2d, componentState, project);
Point p = new Point(controlPoints[0]);
int radius = PAD_SIZE.convertToPixels() / 2;
g2d.setStroke(new BasicStroke(radius));
g2d.setColor(COPPER_COLOR);
while (p.y < controlPoints[1].y - SPACING.convertToPixels()) {
p.x = controlPoints[0].x;
p.y += SPACING.convertToPixels();
while (p.x < controlPoints[1].x - SPACING.convertToPixels()) {
p.x += SPACING.convertToPixels();
g2d.drawOval(p.x - radius, p.y - radius, radius * 2, radius * 2);
}
}
}
@Override
protected Color getBoardColor() {
return BOARD_COLOR;
}
@Override
protected Color getBorderColor() {
return BORDER_COLOR;
}
@Override
public void drawIcon(Graphics2D g2d, int width, int height) {
}
}