diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComparatorFactory.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComparatorFactory.java index af0f9719..46cca286 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComparatorFactory.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ComparatorFactory.java @@ -1,9 +1,8 @@ package org.diylc.presenter; import java.util.Comparator; -import java.util.Map; +import java.util.List; -import org.diylc.common.ComponentType; import org.diylc.core.IDIYComponent; public class ComparatorFactory { @@ -11,7 +10,6 @@ public class ComparatorFactory { private static ComparatorFactory instance; private Comparator> componentNameComparator; - private Comparator> componentZOrderComparator; public static ComparatorFactory getInstance() { if (instance == null) { @@ -39,18 +37,16 @@ public class ComparatorFactory { } public Comparator> getComponentZOrderComparator( - final Map, ComponentType> componentTypeMap) { - if (componentZOrderComparator == null) { - componentZOrderComparator = new Comparator>() { + final List> components) { + Comparator> componentZOrderComparator = new Comparator>() { - @Override - public int compare(IDIYComponent o1, IDIYComponent o2) { - int zIndex1 = componentTypeMap.get(o1.getClass()).getLayer().ordinal(); - int zIndex2 = componentTypeMap.get(o2.getClass()).getLayer().ordinal(); - return new Integer(zIndex1).compareTo(zIndex2); - } - }; - } + @Override + public int compare(IDIYComponent o1, IDIYComponent o2) { + int index1 = components.indexOf(o1); + int index2 = components.indexOf(o2); + return new Integer(index1).compareTo(index2); + } + }; return componentZOrderComparator; } } 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 8409134f..7fc23183 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 @@ -404,7 +404,7 @@ public class Presenter implements IPlugInPort { } // Sort by z-order. Collections.sort(components, ComparatorFactory.getInstance().getComponentZOrderComparator( - componentTypeMap)); + currentProject.getComponents())); return components; }