]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.browsing.ui.swt/src/org/simantics/browsing/ui/swt/ViewerRowReference.java
Merge remote-tracking branch 'origin/svn' commit 'ccc1271c9d6657fb9dcf4cf3cb115fa0c8c...
[simantics/platform.git] / bundles / org.simantics.browsing.ui.swt / src / org / simantics / browsing / ui / swt / ViewerRowReference.java
1 package org.simantics.browsing.ui.swt;\r
2 \r
3 import org.eclipse.jface.viewers.ViewerCell;\r
4 import org.eclipse.jface.viewers.ViewerRow;\r
5 import org.simantics.browsing.ui.common.internal.UIElementReference;\r
6 \r
7 public class ViewerRowReference implements UIElementReference{\r
8         \r
9         private final Object element;\r
10         \r
11         public static ViewerRowReference create(ViewerCell cell) {\r
12                 return new ViewerRowReference(cell.getViewerRow());\r
13         }\r
14         \r
15         public static ViewerRowReference create(ViewerRow row) {\r
16                 return new ViewerRowReference(row);\r
17         }\r
18         \r
19         public static ViewerRowReference create(Object element) {\r
20                 return new ViewerRowReference(element);\r
21         }\r
22         \r
23         private ViewerRowReference(ViewerRow row) {\r
24                 this.element = row.getElement();\r
25         }\r
26         \r
27         private ViewerRowReference(Object element) {\r
28                 this.element = element;\r
29         }\r
30         \r
31         @Override\r
32         public boolean hasReference() {\r
33                 return element != null;\r
34         }\r
35         \r
36         @Override\r
37         public boolean isDisposed() {\r
38                 if (element == null)\r
39                         return true;\r
40                 return false;\r
41         }\r
42         \r
43         public Object getElement() {\r
44                 return element;\r
45         }\r
46         \r
47         @Override\r
48         public int hashCode() {\r
49                 if (element != null)\r
50                         return element.hashCode();\r
51                 return 0;\r
52         }\r
53         \r
54         @Override\r
55         public boolean equals(Object obj) {\r
56                 if (obj == null)\r
57                         return false;\r
58                 if (obj.getClass() != getClass())\r
59                         return false;\r
60                 if (element == null)\r
61                         return false;\r
62                 ViewerRowReference other = (ViewerRowReference)obj;\r
63                 return element.equals(other.element);\r
64         }\r
65 }\r