diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugInPort.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugInPort.java index e82c7e13..f6cbfe39 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugInPort.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/common/IPlugInPort.java @@ -273,7 +273,7 @@ public interface IPlugInPort { * * @param components */ - void addComponents(List> components); + void pasteComponents(List> components); /** * Deletes all the selected components from the project. diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/clipboard/ClipboardManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/clipboard/ClipboardManager.java index 5fba8db6..66f37c44 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/clipboard/ClipboardManager.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/plugins/clipboard/ClipboardManager.java @@ -175,7 +175,7 @@ public class ClipboardManager implements IPlugIn, ClipboardOwner { try { List> components = (List>) clipboard .getData(ComponentSelection.listFlavor); - plugInPort.addComponents(cloner.deepClone(components)); + plugInPort.pasteComponents(cloner.deepClone(components)); } catch (Exception ex) { LOG.error("Coule not paste.", ex); } 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 18180539..a4f1b4e9 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 @@ -796,16 +796,24 @@ public class Presenter implements IPlugInPort { } @Override - public void addComponents(List> components) { + public void pasteComponents(List> components) { LOG.info(String.format("addComponents(%s)", components)); Project oldProject = cloner.deepClone(currentProject); for (IDIYComponent component : components) { + for (int i = 0; i < component.getControlPointCount(); i++) { + Point point = component.getControlPoint(i); + point.translate(currentProject.getGridSpacing().convertToPixels(), currentProject + .getGridSpacing().convertToPixels()); + } addComponent(component, componentTypeMap.get(component.getClass().getName())); } + selectedComponents.clear(); + selectedComponents.addAll(components); messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner .deepClone(currentProject), "Add"); this.modified = true; fireFileStatusChanged(); + fireSelectionChanged(); messageDispatcher.dispatchMessage(EventType.REPAINT); }