diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/InstantiationManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/InstantiationManager.java index 31f339a3..1b248dea 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/InstantiationManager.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/InstantiationManager.java @@ -130,21 +130,7 @@ public class InstantiationManager { // Instantiate the component. IDIYComponent component = componentType.getInstanceClass().newInstance(); - // Find the next available componentName for the component. - int i = 0; - boolean exists = true; - while (exists) { - i++; - String name = componentType.getNamePrefix() + i; - exists = false; - for (IDIYComponent c : currentProject.getComponents()) { - if (c.getName().equals(name)) { - exists = true; - break; - } - } - } - component.setName(componentType.getNamePrefix() + i); + component.setName(createUniqueName(componentType, currentProject)); // Translate them to the desired location. if (point != null) { @@ -160,6 +146,23 @@ public class InstantiationManager { return component; } + + public String createUniqueName(ComponentType componentType, Project currentProject) { + int i = 0; + boolean exists = true; + while (exists) { + i++; + String name = componentType.getNamePrefix() + i; + exists = false; + for (IDIYComponent c : currentProject.getComponents()) { + if (c.getName().equals(name)) { + exists = true; + break; + } + } + } + return componentType.getNamePrefix() + i; + } /** * Finds any properties that have default values and injects default values. 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 33ef4097..c2ae1c5f 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 @@ -892,6 +892,10 @@ public class Presenter implements IPlugInPort { (int) currentProject.getGridSpacing().convertToPixels()); component.setControlPoint(point, i); } + component.setName(instantiationManager.createUniqueName(ComponentProcessor + .getInstance().extractComponentTypeFrom( + (Class>) component.getClass()), + currentProject)); addComponent(component, ComponentProcessor.getInstance().extractComponentTypeFrom( (Class>) component.getClass()), false); } 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 4b34fa87..5f9e738a 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml @@ -330,6 +330,10 @@ IMPROVEMENT Increased PNG export resolution + + IMPROVEMENT + Auto-increment component names when copy-pasting + IMPROVEMENT Allow zero ohm resistors