diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java index 928c45a7..2f1febfa 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/presenter/Presenter.java @@ -56,7 +56,7 @@ public class Presenter implements IPlugInPort { private static final Logger LOG = Logger.getLogger(Presenter.class); - public static final VersionNumber CURRENT_VERSION = new VersionNumber(3, 7, 0); + public static final VersionNumber CURRENT_VERSION = new VersionNumber(3, 8, 0); public static final String DEFAULTS_KEY_PREFIX = "default."; public static final List> EMPTY_SELECTION = Collections.emptyList(); @@ -1034,13 +1034,18 @@ public class Presenter implements IPlugInPort { int index = currentProject.getComponents().indexOf(component); if (index < 0) { LOG.warn("Component not found in the project: " + component.getName()); - } else if (index > 0) { - IDIYComponent componentBefore = currentProject.getComponents().get(index - 1); - ComponentType componentBeforeType = ComponentProcessor.getInstance() - .extractComponentTypeFrom( - (Class>) componentBefore.getClass()); - Collections.swap(currentProject.getComponents(), index, index - 1); - } + } else + while (index > 0) { + IDIYComponent componentBefore = currentProject.getComponents() + .get(index - 1); + ComponentType componentBeforeType = ComponentProcessor.getInstance() + .extractComponentTypeFrom( + (Class>) componentBefore.getClass()); + if (componentBeforeType.getZOrder() < componentType.getZOrder()) + break; + Collections.swap(currentProject.getComponents(), index, index - 1); + index--; + } } if (!oldProject.equals(currentProject)) { messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner @@ -1061,13 +1066,17 @@ public class Presenter implements IPlugInPort { int index = currentProject.getComponents().indexOf(component); if (index < 0) { LOG.warn("Component not found in the project: " + component.getName()); - } else if (index < currentProject.getComponents().size() - 1) { - IDIYComponent componentAfter = currentProject.getComponents().get(index + 1); - ComponentType componentAfterType = ComponentProcessor.getInstance() - .extractComponentTypeFrom( - (Class>) componentAfter.getClass()); - Collections.swap(currentProject.getComponents(), index, index + 1); - } + } else + while (index < currentProject.getComponents().size() - 1) { + IDIYComponent componentAfter = currentProject.getComponents().get(index + 1); + ComponentType componentAfterType = ComponentProcessor.getInstance() + .extractComponentTypeFrom( + (Class>) componentAfter.getClass()); + if (componentAfterType.getZOrder() > componentType.getZOrder()) + break; + Collections.swap(currentProject.getComponents(), index, index + 1); + index++; + } } if (!oldProject.equals(currentProject)) { messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar index 24ab80a4..85399154 100644 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar and b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml index d554d4e9..83187f54 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/update.xml @@ -593,5 +593,21 @@ http://code.google.com/p/diy-layout-creator/downloads/list + + + 3 + 8 + 0 + + 2012-03-27 20:00:00.000 CET + + + + IMPROVEMENT + More usable "Bring to Forward" and "Send to Backward" + + + http://code.google.com/p/diy-layout-creator/downloads/list + \ No newline at end of file