]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.swt.core/src/org/simantics/document/swt/core/SWTViews.java
Playground for Antti.
[simantics/platform.git] / bundles / org.simantics.document.swt.core / src / org / simantics / document / swt / core / SWTViews.java
index 468bf7bdaec4295d561e25b2f32e1212dcc06eef..9b81f9eea61e9ec835c58f045808d4196e1c318a 100644 (file)
@@ -1,6 +1,9 @@
 package org.simantics.document.swt.core;
 
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.eclipse.swt.widgets.Composite;
@@ -8,8 +11,11 @@ import org.eclipse.swt.widgets.Control;
 import org.simantics.document.server.JSONObject;
 import org.simantics.document.server.client.CommandMapping;
 import org.simantics.document.server.client.CommandMappingImpl;
+import org.simantics.document.server.client.Document;
+import org.simantics.document.server.client.WidgetData;
 import org.simantics.document.server.client.WidgetMapping;
 import org.simantics.document.server.client.WidgetMappingImpl;
+import org.simantics.document.server.io.ICommand;
 import org.simantics.document.swt.core.base.ScrolledCompositeContent;
 import org.simantics.document.swt.core.widget.BrowserWidget;
 import org.simantics.document.swt.core.widget.ButtonWidget;
@@ -23,6 +29,7 @@ import org.simantics.document.swt.core.widget.LabelWidget;
 import org.simantics.document.swt.core.widget.SCLTextEditor;
 import org.simantics.document.swt.core.widget.ScrolledCompositeWidget;
 import org.simantics.document.swt.core.widget.TrackedTextWidget;
+import org.simantics.utils.datastructures.Pair;
 
 public class SWTViews {
 
@@ -58,6 +65,7 @@ public class SWTViews {
             
             commandMapping = new CommandMappingImpl();
             commandMapping.register("Button", new ButtonWidget.ButtonCommandManager());
+            commandMapping.register("Explorer", new Explorer.ExplorerCommandManager());
             
         }
         
@@ -65,6 +73,22 @@ public class SWTViews {
         
     }
 
+    public static List<Pair<WidgetData, ICommand>> getTriggeredCommands(Document document, Collection<ICommand> commands, String trigger) {
+        // Nulls should not get this far
+        assert(commands != null);
+        List<Pair<WidgetData, ICommand>> data = new ArrayList<Pair<WidgetData, ICommand>>();
+        for(ICommand c : commands) {
+            if(c.getCommand() == null || c.getTargetId() == null || c.getTrigger() == null)
+                continue;
+            if(trigger.equals(c.getTrigger())) {
+                WidgetData wd = document.getWidgetData().get(c.getTargetId());
+                if(wd != null)
+                    data.add(new Pair<WidgetData, ICommand>(wd, c));
+            }
+        }
+        return data;
+    }
+
        public static void notifyScrolledComposite(Control c) {
                if(c instanceof ScrolledCompositeContent) {
                        ScrolledCompositeContent content = (ScrolledCompositeContent)c;