]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/GraphToDiagramSynchronizer.java
Bringing layers back to life
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / adapter / GraphToDiagramSynchronizer.java
index 37471eb3a1186fa8dc1c993e7d0f267f178a5f91..14b9f148a1baa1d8f5fe1ab320d40e0370ccc202 100644 (file)
@@ -129,6 +129,7 @@ import org.simantics.g2d.element.IElementClassProvider;
 import org.simantics.g2d.element.handler.EdgeVisuals.EdgeEnd;
 import org.simantics.g2d.element.handler.ElementHandler;
 import org.simantics.g2d.element.handler.ElementLayerListener;
+import org.simantics.g2d.element.handler.ElementLayers;
 import org.simantics.g2d.element.handler.TerminalTopology;
 import org.simantics.g2d.element.impl.Element;
 import org.simantics.g2d.layers.ILayer;
@@ -768,16 +769,14 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID
 
             // If the element class is our own, there's no point in creating
             // a copy of it.
-            if (ec.contains(elementLayerListener))
-                return ec;
+            /*if (ec.contains(elementLayerListener))
+                return ec;*/
 
             List<ElementHandler> all = ec.getAll();
-            List<ElementHandler> result = new ArrayList<ElementHandler>(all.size());
+            List<ElementHandler> result = new ArrayList<ElementHandler>(all);
             for (ElementHandler eh : all) {
-                if (eh instanceof ElementLayerListenerImpl)
+                if (eh instanceof ElementLayers)
                     result.add(elementLayerListener);
-                else
-                    result.add(eh);
             }
             return ElementClass.compile(result, false).setId(ec.getId());
         }
@@ -1173,7 +1172,7 @@ public class GraphToDiagramSynchronizer extends AbstractDisposable implements ID
      * A common handler for all elements that is used to listen to changes in
      * element visibility and focusability on diagram layers.
      */
-    class ElementLayerListenerImpl implements ElementLayerListener {
+    public class ElementLayerListenerImpl implements ElementLayerListener {
         private static final long serialVersionUID = -3410052116598828129L;
 
         @Override