diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml b/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml index 1cfc6249..40587189 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml @@ -1,24 +1,15 @@ - lastPath - C:\Documents and Settings\Branislav Stojkovic\Desktop + metric + true zoom 1.0 - metric - true - - - default.org.diylc.components.misc.Label:Color - - 255 - 0 - 0 - 255 - + lastPath + C:\Documents and Settings\Branislav Stojkovic\Desktop showTemplatesAtStartup diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar index efdf0fd7..ef4b3fa9 100644 Binary files a/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar and b/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar differ diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Power.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Power.java new file mode 100644 index 00000000..0cc40488 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/Power.java @@ -0,0 +1,5 @@ +package org.diylc.common; + +public enum Power { + +} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/BooleanEditor.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/BooleanEditor.java new file mode 100644 index 00000000..15dff82a --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/BooleanEditor.java @@ -0,0 +1,26 @@ +package org.diylc.swing.gui.editor; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.JCheckBox; + +import org.diylc.common.PropertyWrapper; + + +public class BooleanEditor extends JCheckBox { + + private static final long serialVersionUID = 1L; + + public BooleanEditor(final PropertyWrapper property) { + super(); + setSelected((Boolean) property.getValue()); + addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + property.setValue(isSelected()); + } + }); + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FieldEditorFactory.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FieldEditorFactory.java index 0e6ac86a..21251dee 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FieldEditorFactory.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/gui/editor/FieldEditorFactory.java @@ -37,8 +37,13 @@ public class FieldEditorFactory { } if (Byte.class.isAssignableFrom(property.getType()) || byte.class.isAssignableFrom(property.getType())) { - ByteEditor byteEditor = new ByteEditor(property); - return byteEditor; + ByteEditor editor = new ByteEditor(property); + return editor; + } + if (Boolean.class.isAssignableFrom(property.getType()) + || boolean.class.isAssignableFrom(property.getType())) { + BooleanEditor editor = new BooleanEditor(property); + return editor; } LOG.error("Unrecognized parameter type: " + property.getType().getName()); return new JLabel("Unrecognized"); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml index 610cce5b..2ab18aea 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml @@ -86,6 +86,10 @@ BUG_FIX Curved trace does not show control points + + BUG_FIX + Potentiometer draws wrong at 180 degrees + IMPROVEMENT Resistor can show color bands diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ElectrolyticRadial.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ElectrolyticRadial.java index b63d2de4..284f874c 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ElectrolyticRadial.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ElectrolyticRadial.java @@ -3,8 +3,11 @@ package org.diylc.components.passive; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Shape; +import java.awt.geom.Area; import java.awt.geom.Ellipse2D; +import java.awt.geom.Rectangle2D; +import org.diylc.common.ObjectCache; import org.diylc.components.AbstractLeadedComponent; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; @@ -21,13 +24,16 @@ public class ElectrolyticRadial extends AbstractLeadedComponent { private static final long serialVersionUID = 1L; public static Size DEFAULT_SIZE = new Size(1d / 2, SizeUnit.in); - public static Color BODY_COLOR = Color.decode("#27408B"); + public static Color BODY_COLOR = Color.decode("#EAADEA"); public static Color BORDER_COLOR = BODY_COLOR.darker(); - public static Color COVER_COLOR = Color.decode("#C3E4ED"); + public static Color MARKER_COLOR = Color.gray;// Color.decode("#C3E4ED"); + public static Color TICK_COLOR = Color.white; private Capacitance value = new Capacitance(1d, CapacitanceUnit.uF); - private Color coverColor = COVER_COLOR; + private Color markerColor = MARKER_COLOR; + private Color tickColor = TICK_COLOR; + private boolean polarized = true; public ElectrolyticRadial() { super(); @@ -46,23 +52,55 @@ public class ElectrolyticRadial extends AbstractLeadedComponent { public void drawIcon(Graphics2D g2d, int width, int height) { g2d.setColor(BODY_COLOR); - g2d.fillOval(6, 6, width - 12, width - 12); + int margin = 3; + Ellipse2D body = new Ellipse2D.Double(margin, margin, getClosestOdd(width - 2 * margin), + getClosestOdd(width - 2 * margin)); + g2d.fill(body); + Area marker = new Area(body); + marker.subtract(new Area(new Rectangle2D.Double(margin, margin, width - 4 * margin, + getClosestOdd(width - 2 * margin)))); + g2d.setColor(MARKER_COLOR); + g2d.fill(marker); + g2d.setColor(TICK_COLOR); + g2d.drawLine(width - 2 * margin, height / 2 - 2, width - 2 * margin, height / 2 + 2); g2d.setColor(BORDER_COLOR); - g2d.drawOval(6, 6, width - 12, width - 12); + g2d.draw(body); + // g2d.setColor(COVER_COLOR.darker()); + // g2d.drawLine(innerMargin + 2, innerMargin + 2, width - innerMargin - + // 2, width - innerMargin + // - 2); + // g2d.drawLine(innerMargin + 2, width - innerMargin - 2, width - + // innerMargin - 2, + // innerMargin + 2); } @Override protected void decorateComponentBody(Graphics2D g2d) { - int totalDiameter = getClosestOdd(getLength().convertToPixels()); - int coverDiameter = getClosestOdd(totalDiameter * 3 / 4); - g2d.setColor(coverColor); - int position = (totalDiameter - coverDiameter) / 2; - g2d.fillOval(position, position, coverDiameter, coverDiameter); - g2d.setColor(coverColor.darker()); - g2d.drawLine(position + coverDiameter / 5, position + coverDiameter / 5, position + 4 - * coverDiameter / 5, position + 4 * coverDiameter / 5); - g2d.drawLine(position + coverDiameter / 5, position + 4 * coverDiameter / 5, position + 4 - * coverDiameter / 5, position + coverDiameter / 5); + if (polarized) { + int totalDiameter = getClosestOdd(getLength().convertToPixels()); + Area area = new Area(getBodyShape()); + area + .subtract(new Area(new Rectangle2D.Double(0, 0, totalDiameter * 0.8, + totalDiameter))); + g2d.setColor(markerColor); + g2d.fill(area); + g2d.setColor(tickColor); + g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); + g2d.drawLine((int) (totalDiameter * 0.9), totalDiameter / 2 + - (int) (totalDiameter * 0.05), (int) (totalDiameter * 0.9), totalDiameter / 2 + + (int) (totalDiameter * 0.05)); + } + // int coverDiameter = getClosestOdd(totalDiameter * 3 / 4); + // g2d.setColor(coverColor); + // int position = (totalDiameter - coverDiameter) / 2; + // g2d.fillOval(position, position, coverDiameter, coverDiameter); + // g2d.setColor(coverColor.darker()); + // g2d.drawLine(position + coverDiameter / 5, position + coverDiameter / + // 5, position + 4 + // * coverDiameter / 5, position + 4 * coverDiameter / 5); + // g2d.drawLine(position + coverDiameter / 5, position + 4 * + // coverDiameter / 5, position + 4 + // * coverDiameter / 5, position + coverDiameter / 5); } @Override @@ -88,13 +126,31 @@ public class ElectrolyticRadial extends AbstractLeadedComponent { return super.getLength(); } - @EditableProperty(name = "Cover") - public Color getCoverColor() { - return coverColor; + @EditableProperty(name = "Marker") + public Color getMarkerColor() { + return markerColor; } - public void setCoverColor(Color coverColor) { - this.coverColor = coverColor; + public void setMarkerColor(Color coverColor) { + this.markerColor = coverColor; + } + + @EditableProperty(name = "Tick") + public Color getTickColor() { + return tickColor; + } + + public void setTickColor(Color tickColor) { + this.tickColor = tickColor; + } + + @EditableProperty(name = "Polarized") + public boolean getPolarized() { + return polarized; + } + + public void setPolarized(boolean polarized) { + this.polarized = polarized; } @Override diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java index 22043b89..69efcc02 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java @@ -51,6 +51,12 @@ public class Resistor extends AbstractLeadedComponent { g2d.drawLine(0, height / 2, width, height / 2); g2d.setColor(BODY_COLOR); g2d.fillRect(4, height / 2 - 3, width - 8, 6); + g2d.setColor(Color.red); + g2d.drawLine(7, height / 2 - 3, 7, height / 2 + 3); + g2d.setColor(Color.orange); + g2d.drawLine(11, height / 2 - 3, 11, height / 2 + 3); + g2d.setColor(Color.black); + g2d.drawLine(15, height / 2 - 3, 15, height / 2 + 3); g2d.setColor(BORDER_COLOR); g2d.drawRect(4, height / 2 - 3, width - 8, 6); }