]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.g2d/src/org/simantics/g2d/diagram/participant/ZOrderHandler.java
Performance and resource consumption optimization for G2D picking
[simantics/platform.git] / bundles / org.simantics.g2d / src / org / simantics / g2d / diagram / participant / ZOrderHandler.java
index e393b7c13f391680fb9c3ee493a5a0ed2961e76a..007d039f23715e4ec65446739c8cc941cbe80cd5 100644 (file)
@@ -48,7 +48,7 @@ public class ZOrderHandler extends AbstractDiagramParticipant {
     @Dependency Selection sel;
     @Dependency PickContext pickContext;
 
-    private final ListenerList zOrderListeners = new ListenerList(ListenerList.IDENTITY);
+    private final ListenerList<ZOrderListener> zOrderListeners = new ListenerList<>(ListenerList.IDENTITY);
 
     public void addOrderListener(ZOrderListener listener) {
         zOrderListeners.add(listener);
@@ -70,7 +70,7 @@ public class ZOrderHandler extends AbstractDiagramParticipant {
             Shape area = ElementUtils.getElementShapesOnDiagram(selectedElements);
             if (area==null) return true;
             final ArrayList<IElement> pickedElements = new ArrayList<IElement>();
-            PickRequest req = new PickRequest(area);
+            PickRequest req = new PickRequest(area).context(getContext());
             req.pickPolicy = PickPolicy.PICK_INTERSECTING_OBJECTS;
             pickContext.pick(diagram, req, pickedElements);
             DiagramUtils.inDiagramTransaction(diagram, TransactionType.WRITE, new Runnable() {
@@ -105,7 +105,7 @@ public class ZOrderHandler extends AbstractDiagramParticipant {
             Shape area = ElementUtils.getElementShapesOnDiagram(selectedElements);
             if (area==null) return true;
             final ArrayList<IElement> pickedElements = new ArrayList<IElement>();
-            PickRequest req = new PickRequest(area);
+            PickRequest req = new PickRequest(area).context(getContext());
             req.pickPolicy = PickPolicy.PICK_INTERSECTING_OBJECTS;
             pickContext.pick(diagram, req, pickedElements);
             DiagramUtils.inDiagramTransaction(diagram, TransactionType.WRITE, new Runnable() {