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 2cef7f88..1d5d337d 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml @@ -1,15 +1,15 @@ - lastPath - C:\Documents and Settings\Branislav Stojkovic\Desktop\oldFiles + metric + true zoom 1.0 - metric - true + lastPath + C:\Documents and Settings\Branislav Stojkovic\Desktop\oldFiles showTemplatesAtStartup diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java index 1bb286b9..b530078d 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/components/AbstractLeadedComponent.java @@ -63,6 +63,7 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp IDrawingObserver drawingObserver) { double distance = points[0].distance(points[1]); Shape shape = getBodyShape(); + // If there's no body, just draw the line connecting the ending points. if (shape == null) { g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(getLeadThickness())); g2d.setColor(shouldShadeLeads() ? getLeadColor(componentState).darker() diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java index 489dbe74..1aefde99 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/DrawingManager.java @@ -313,6 +313,10 @@ public class DrawingManager { public Area getComponentArea(IDIYComponent component) { return componentAreaMap.get(component); } + + public void clearComponentAreaMap() { + componentAreaMap.clear(); + } public List> findComponentsAt(Point point, Project project) { List> components = new ArrayList>(); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java index e8c78941..4b99635e 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/G2DWrapper.java @@ -179,6 +179,7 @@ class G2DWrapper extends Graphics2D implements IDrawingObserver { width, thickness); Area area = new Area(rect); area.transform(AffineTransform.getRotateInstance(theta, midX, midY)); + area.transform(currentTx); appendShape(area); // Set the prev point to line end prevPoint = nextPoint; diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java index 0617a4f2..2ac04326 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java @@ -180,6 +180,7 @@ public class Presenter implements IPlugInPort { public void loadProject(Project project, boolean freshStart) { LOG.info(String.format("loadProject(%s, %s)", project.getTitle(), freshStart)); this.currentProject = project; + drawingManager.clearComponentAreaMap(); updateSelection(EMPTY_SELECTION); messageDispatcher.dispatchMessage(EventType.PROJECT_LOADED, project, freshStart); messageDispatcher.dispatchMessage(EventType.REPAINT); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java index cac31652..1d93a8ff 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java @@ -32,6 +32,7 @@ import org.diylc.components.passive.RadialFilmCapacitor; import org.diylc.components.passive.Resistor; import org.diylc.components.semiconductors.DIL_IC; import org.diylc.components.semiconductors.DiodePlastic; +import org.diylc.components.semiconductors.LED; import org.diylc.components.semiconductors.TransistorTO92; import org.diylc.core.IDIYComponent; import org.diylc.core.Project; @@ -302,7 +303,7 @@ public class ProjectFileManager { } String sizeAttr = node.getAttributes().getNamedItem("Size").getNodeValue(); if (sizeAttr.equalsIgnoreCase("small")) { - capacitor.setLength(new Size(3d, SizeUnit.mm)); + capacitor.setLength(new Size(3.5d, SizeUnit.mm)); } else if (sizeAttr.equalsIgnoreCase("medium")) { capacitor.setLength(new Size(5d, SizeUnit.mm)); } else if (sizeAttr.equalsIgnoreCase("large")) { @@ -327,6 +328,17 @@ public class ProjectFileManager { capacitor.setControlPoint(point1, 0); capacitor.setControlPoint(point2, 1); component = capacitor; + } else if (nodeName.equalsIgnoreCase("led")) { + LOG.debug("Recognized " + nodeName); + LED led = new LED(); + led.setName(nameAttr); + led.setValue(valueAttr); + led.setBodyColor(Color.red); + led.setBorderColor(Color.red.darker()); + led.setLength(new Size(3d, SizeUnit.mm)); + led.setControlPoint(point1, 0); + led.setControlPoint(point2, 1); + component = led; } else if (nodeName.equalsIgnoreCase("transistor")) { LOG.debug("Recognized " + nodeName); TransistorTO92 transistor = new TransistorTO92(); 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 1c08fe61..3f216920 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml @@ -151,6 +151,10 @@ BUG_FIX Copy/paste doesn't work for some components (potentiometer, transistor, etc) + + BUG_FIX + Resistor color codes are sometimes wrong + IMPROVEMENT Resistors can specify power handling