[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();