]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram/src/org/simantics/diagram/ui/WorkbenchSelectionProvider.java
Initial selection for diagram viewer should be the diagram itself
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / ui / WorkbenchSelectionProvider.java
index 5f46a373b2ecefbf85192cbb5be8380c4bee79a9..6609ba24b155d1be1b508a566812274779432819 100644 (file)
@@ -99,10 +99,8 @@ public class WorkbenchSelectionProvider extends AbstractCanvasParticipant implem
         }
         super.removedFromContext(ctx);
     }
-
-    @HintListener(Class = Selection.class, Field = "SELECTION0")
-    public void hintChanged(IHintObservable sender, Key key, Object oldValue, Object newValue) {
-        Iterable<?> selection = (Iterable<?>) newValue;
+    
+    public void fireSelection(Iterable<?> selection) {
         final ISelection s = constructAdaptableSelection(selection);
         swt.asyncExec(new Runnable() {
             @Override
@@ -114,18 +112,16 @@ public class WorkbenchSelectionProvider extends AbstractCanvasParticipant implem
         });
     }
 
+    @HintListener(Class = Selection.class, Field = "SELECTION0")
+    public void hintChanged(IHintObservable sender, Key key, Object oldValue, Object newValue) {
+        Iterable<?> selection = (Iterable<?>) newValue;
+        fireSelection(selection);
+    }
+    
     @HintListener(Class = Selection.class, Field = "SELECTION0")
     public void hintRemoved(IHintObservable sender, Key key, Object oldValue) {
         //System.out.println("selection removed: " + oldValue);
-        final ISelection s = constructAdaptableSelection(Collections.emptyList());
-        swt.asyncExec(new Runnable() {
-            @Override
-            public void run() {
-                currentSelection = s;
-                fireSelectionChanged(s);
-                schedulePostSelectionChanged(s);
-            }
-        });
+        fireSelection(Collections.emptyList());
     }
 
     // Post selection changed scheduling helper.