]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.selectionview/src/org/simantics/selectionview/StandardSelectionInput.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.selectionview / src / org / simantics / selectionview / StandardSelectionInput.java
diff --git a/bundles/org.simantics.selectionview/src/org/simantics/selectionview/StandardSelectionInput.java b/bundles/org.simantics.selectionview/src/org/simantics/selectionview/StandardSelectionInput.java
new file mode 100644 (file)
index 0000000..c4d069d
--- /dev/null
@@ -0,0 +1,62 @@
+package org.simantics.selectionview;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Collection;\r
+import java.util.Collections;\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
+import org.simantics.ui.selection.WorkbenchSelectionElement;\r
+\r
+final public class StandardSelectionInput implements SelectionInput {\r
+       \r
+       private final Collection<WorkbenchSelectionElement> elements;\r
+       private final Map<String, Object> parameters;\r
+       \r
+       public StandardSelectionInput(Collection<WorkbenchSelectionElement> elements, Map<String, Object> parameters) {\r
+               this.parameters = new HashMap<String, Object>(parameters);\r
+               this.elements = new ArrayList<WorkbenchSelectionElement>(elements);\r
+       }\r
+       \r
+       public StandardSelectionInput(WorkbenchSelectionElement element, Map<String, Object> parameters) {\r
+               this.parameters = new HashMap<String, Object>(parameters);\r
+               this.elements = Collections.singletonList(element);\r
+       }\r
+\r
+       public StandardSelectionInput(WorkbenchSelectionElement element) {\r
+               this.parameters = Collections.emptyMap();\r
+               this.elements = Collections.singletonList(element);\r
+       }\r
+\r
+       public Collection<WorkbenchSelectionElement> getElements() {\r
+               return elements;\r
+       }\r
+       \r
+       public <T> T getParameter(String key) {\r
+               return (T)parameters.get(key);\r
+       }\r
+       \r
+       @Override\r
+       public int hashCode() {\r
+               return elements.hashCode() + 31 * parameters.hashCode();\r
+       }\r
+       \r
+       @Override\r
+       public boolean equals(Object object) {\r
+        if (this == object)\r
+            return true;\r
+        else if (object == null)\r
+            return false;\r
+        else if (!(object instanceof StandardSelectionInput))\r
+            return false;\r
+        StandardSelectionInput ssi = (StandardSelectionInput)object;\r
+        if(!elements.equals(ssi.elements)) return false;\r
+        return parameters.equals(ssi.parameters);\r
+       }\r
+\r
+       @Override\r
+       public String toString() {\r
+               return "StandardSelectionInput[es=" + elements + ", par=" + parameters + "]";\r
+       }\r
+       \r
+}\r