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 extends IDIYComponent>>) component.getClass()),
+ currentProject));
addComponent(component, ComponentProcessor.getInstance().extractComponentTypeFrom(
(Class extends IDIYComponent>>) 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