]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram/src/org/simantics/diagram/participant/ConnectionEditingSupport.java
Performance and resource consumption optimization for G2D picking
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / participant / ConnectionEditingSupport.java
index d0307eb161271a5abf1703c243bf7198eede3355..fe11570fe11f770374c845168e19a3ec4b457ce1 100644 (file)
@@ -27,6 +27,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicReference;
 
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicReference;
 
+import org.simantics.Simantics;
 import org.simantics.db.Resource;
 import org.simantics.db.WriteGraph;
 import org.simantics.db.common.request.WriteRequest;
 import org.simantics.db.Resource;
 import org.simantics.db.WriteGraph;
 import org.simantics.db.common.request.WriteRequest;
@@ -54,14 +55,13 @@ import org.simantics.g2d.element.IElement;
 import org.simantics.g2d.element.handler.Children;
 import org.simantics.g2d.participant.TransformUtil;
 import org.simantics.g2d.participant.WorkbenchStatusLine;
 import org.simantics.g2d.element.handler.Children;
 import org.simantics.g2d.participant.TransformUtil;
 import org.simantics.g2d.participant.WorkbenchStatusLine;
-import org.simantics.scenegraph.g2d.events.MouseEvent;
 import org.simantics.scenegraph.g2d.events.EventHandlerReflection.EventHandler;
 import org.simantics.scenegraph.g2d.events.EventHandlerReflection.EventHandler;
+import org.simantics.scenegraph.g2d.events.MouseEvent;
 import org.simantics.scenegraph.g2d.events.MouseEvent.MouseButtonPressedEvent;
 import org.simantics.scenegraph.g2d.events.MouseEvent.MouseButtonReleasedEvent;
 import org.simantics.scenegraph.g2d.events.MouseEvent.MouseDragBegin;
 import org.simantics.scenegraph.g2d.events.MouseEvent.MouseMovedEvent;
 import org.simantics.scenegraph.g2d.snap.ISnapAdvisor;
 import org.simantics.scenegraph.g2d.events.MouseEvent.MouseButtonPressedEvent;
 import org.simantics.scenegraph.g2d.events.MouseEvent.MouseButtonReleasedEvent;
 import org.simantics.scenegraph.g2d.events.MouseEvent.MouseDragBegin;
 import org.simantics.scenegraph.g2d.events.MouseEvent.MouseMovedEvent;
 import org.simantics.scenegraph.g2d.snap.ISnapAdvisor;
-import org.simantics.ui.SimanticsUI;
 import org.simantics.utils.datastructures.hints.HintListenerAdapter;
 import org.simantics.utils.datastructures.hints.IHintContext.Key;
 import org.simantics.utils.datastructures.hints.IHintListener;
 import org.simantics.utils.datastructures.hints.HintListenerAdapter;
 import org.simantics.utils.datastructures.hints.IHintContext.Key;
 import org.simantics.utils.datastructures.hints.IHintListener;
@@ -123,7 +123,7 @@ public class ConnectionEditingSupport extends AbstractDiagramParticipant {
         if (shape == null)
             return false;
 
         if (shape == null)
             return false;
 
-        PickRequest req = new PickRequest(shape);
+        PickRequest req = new PickRequest(shape).context(getContext());
         req.pickPolicy = PickPolicy.PICK_INTERSECTING_OBJECTS;
         req.pickFilter = null;
         req.pickSorter = NODES_LAST;
         req.pickPolicy = PickPolicy.PICK_INTERSECTING_OBJECTS;
         req.pickFilter = null;
         req.pickSorter = NODES_LAST;
@@ -299,7 +299,7 @@ public class ConnectionEditingSupport extends AbstractDiagramParticipant {
             final AtomicReference<Resource> newBp = new AtomicReference<Resource>();
 
             try {
             final AtomicReference<Resource> newBp = new AtomicReference<Resource>();
 
             try {
-                SimanticsUI.getSession().syncRequest(new WriteRequest() {
+                Simantics.getSession().syncRequest(new WriteRequest() {
                     @Override
                     public void perform(WriteGraph graph) throws DatabaseException {
                         DiagramResource DIA = DiagramResource.getInstance(graph);
                     @Override
                     public void perform(WriteGraph graph) throws DatabaseException {
                         DiagramResource DIA = DiagramResource.getInstance(graph);