--- /dev/null
+package org.simantics.browsing.ui.swt;\r
+\r
+import org.eclipse.jface.viewers.ViewerCell;\r
+import org.eclipse.jface.viewers.ViewerRow;\r
+import org.simantics.browsing.ui.common.internal.UIElementReference;\r
+\r
+public class ViewerRowReference implements UIElementReference{\r
+ \r
+ private final Object element;\r
+ \r
+ public static ViewerRowReference create(ViewerCell cell) {\r
+ return new ViewerRowReference(cell.getViewerRow());\r
+ }\r
+ \r
+ public static ViewerRowReference create(ViewerRow row) {\r
+ return new ViewerRowReference(row);\r
+ }\r
+ \r
+ public static ViewerRowReference create(Object element) {\r
+ return new ViewerRowReference(element);\r
+ }\r
+ \r
+ private ViewerRowReference(ViewerRow row) {\r
+ this.element = row.getElement();\r
+ }\r
+ \r
+ private ViewerRowReference(Object element) {\r
+ this.element = element;\r
+ }\r
+ \r
+ @Override\r
+ public boolean hasReference() {\r
+ return element != null;\r
+ }\r
+ \r
+ @Override\r
+ public boolean isDisposed() {\r
+ if (element == null)\r
+ return true;\r
+ return false;\r
+ }\r
+ \r
+ public Object getElement() {\r
+ return element;\r
+ }\r
+ \r
+ @Override\r
+ public int hashCode() {\r
+ if (element != null)\r
+ return element.hashCode();\r
+ return 0;\r
+ }\r
+ \r
+ @Override\r
+ public boolean equals(Object obj) {\r
+ if (obj == null)\r
+ return false;\r
+ if (obj.getClass() != getClass())\r
+ return false;\r
+ if (element == null)\r
+ return false;\r
+ ViewerRowReference other = (ViewerRowReference)obj;\r
+ return element.equals(other.element);\r
+ }\r
+}\r