[458349] Consolidate UI
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=458349
diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/CDOExplorerUtil.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/CDOExplorerUtil.java
index 2768da2..a90781a 100644
--- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/CDOExplorerUtil.java
+++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/CDOExplorerUtil.java
@@ -11,6 +11,7 @@
package org.eclipse.emf.cdo.explorer;
import org.eclipse.emf.cdo.CDOElement;
+import org.eclipse.emf.cdo.eresource.CDOResourceNode;
import org.eclipse.emf.cdo.explorer.checkouts.CDOCheckout;
import org.eclipse.emf.cdo.explorer.checkouts.CDOCheckoutManager;
import org.eclipse.emf.cdo.explorer.repositories.CDORepositoryManager;
@@ -58,6 +59,12 @@
return CDOCheckoutViewProvider.getCheckout(uri);
}
+ if (object instanceof String)
+ {
+ String id = (String)object;
+ return getCheckoutManager().getCheckout(id);
+ }
+
return walkUp(object, null);
}
@@ -84,6 +91,23 @@
return null;
}
+ public static String getName(Object object)
+ {
+ if (object instanceof CDOCheckout)
+ {
+ CDOCheckout checkout = (CDOCheckout)object;
+ return checkout.getLabel();
+ }
+
+ if (object instanceof CDOResourceNode)
+ {
+ CDOResourceNode resourceNode = (CDOResourceNode)object;
+ return resourceNode.getName();
+ }
+
+ return null;
+ }
+
public static LinkedList<Object> getPath(Object object)
{
LinkedList<Object> path = new LinkedList<Object>();
diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/checkouts/CDOCheckoutManager.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/checkouts/CDOCheckoutManager.java
index d4e03bc..0eeb87c 100644
--- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/checkouts/CDOCheckoutManager.java
+++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/checkouts/CDOCheckoutManager.java
@@ -32,6 +32,8 @@
public CDOCheckout getCheckout(CDOView view);
+ public CDOCheckout getCheckoutByLabel(String label);
+
public CDOCheckout[] getCheckouts();
public CDOCheckout addCheckout(Properties properties);
diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/AbstractManager.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/AbstractManager.java
index 9d4f918..b86b860 100644
--- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/AbstractManager.java
+++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/AbstractManager.java
@@ -18,6 +18,7 @@
import org.eclipse.emf.cdo.util.CDOUtil;
import org.eclipse.net4j.util.AdapterUtil;
+import org.eclipse.net4j.util.ObjectUtil;
import org.eclipse.net4j.util.container.SetContainer;
import org.eclipse.net4j.util.event.Event;
import org.eclipse.net4j.util.io.IOUtil;
@@ -79,6 +80,22 @@
return elementMap.get(id);
}
+ public T getElementByLabel(String label)
+ {
+ synchronized (this)
+ {
+ for (T element : getSet())
+ {
+ if (ObjectUtil.equals(element.getLabel(), label))
+ {
+ return element;
+ }
+ }
+ }
+
+ return null;
+ }
+
public T newElement(Properties properties)
{
int i = 0;
diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutManagerImpl.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutManagerImpl.java
index 31a176a..5b7ab11 100644
--- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutManagerImpl.java
+++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/checkouts/CDOCheckoutManagerImpl.java
@@ -54,6 +54,11 @@
return viewMap.get(view);
}
+ public CDOCheckout getCheckoutByLabel(String label)
+ {
+ return getElementByLabel(label);
+ }
+
public CDOCheckout[] getCheckouts()
{
return getElements();