]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 package org.simantics.selectionview;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.Collection;\r
5 import java.util.Collections;\r
6 import java.util.HashMap;\r
7 import java.util.Map;\r
8 \r
9 import org.simantics.ui.selection.WorkbenchSelectionElement;\r
10 \r
11 final public class StandardSelectionInput implements SelectionInput {\r
12         \r
13         private final Collection<WorkbenchSelectionElement> elements;\r
14         private final Map<String, Object> parameters;\r
15         \r
16         public StandardSelectionInput(Collection<WorkbenchSelectionElement> elements, Map<String, Object> parameters) {\r
17                 this.parameters = new HashMap<String, Object>(parameters);\r
18                 this.elements = new ArrayList<WorkbenchSelectionElement>(elements);\r
19         }\r
20         \r
21         public StandardSelectionInput(WorkbenchSelectionElement element, Map<String, Object> parameters) {\r
22                 this.parameters = new HashMap<String, Object>(parameters);\r
23                 this.elements = Collections.singletonList(element);\r
24         }\r
25 \r
26         public StandardSelectionInput(WorkbenchSelectionElement element) {\r
27                 this.parameters = Collections.emptyMap();\r
28                 this.elements = Collections.singletonList(element);\r
29         }\r
30 \r
31         public Collection<WorkbenchSelectionElement> getElements() {\r
32                 return elements;\r
33         }\r
34         \r
35         public <T> T getParameter(String key) {\r
36                 return (T)parameters.get(key);\r
37         }\r
38         \r
39         @Override\r
40         public int hashCode() {\r
41                 return elements.hashCode() + 31 * parameters.hashCode();\r
42         }\r
43         \r
44         @Override\r
45         public boolean equals(Object object) {\r
46         if (this == object)\r
47             return true;\r
48         else if (object == null)\r
49             return false;\r
50         else if (!(object instanceof StandardSelectionInput))\r
51             return false;\r
52         StandardSelectionInput ssi = (StandardSelectionInput)object;\r
53         if(!elements.equals(ssi.elements)) return false;\r
54         return parameters.equals(ssi.parameters);\r
55         }\r
56 \r
57         @Override\r
58         public String toString() {\r
59                 return "StandardSelectionInput[es=" + elements + ", par=" + parameters + "]";\r
60         }\r
61         \r
62 }\r