Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/ItemsProcessor.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/ItemsProcessor.java32
1 files changed, 29 insertions, 3 deletions
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/ItemsProcessor.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/ItemsProcessor.java
index f85fe496de..90a541a5e5 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/ItemsProcessor.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/ItemsProcessor.java
@@ -11,8 +11,11 @@
package org.eclipse.emf.cdo.internal.ui;
import org.eclipse.emf.cdo.CDOObject;
+import org.eclipse.emf.cdo.CDOView;
import org.eclipse.emf.cdo.protocol.CDOID;
+import org.eclipse.emf.internal.cdo.util.FSMUtil;
+
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.widgets.TreeItem;
@@ -23,8 +26,16 @@ import java.util.Set;
*/
public abstract class ItemsProcessor
{
- public ItemsProcessor()
+ private CDOView view;
+
+ public ItemsProcessor(CDOView view)
+ {
+ this.view = view;
+ }
+
+ public CDOView getView()
{
+ return view;
}
public void processCDOObjects(TreeViewer viewer)
@@ -58,6 +69,21 @@ public abstract class ItemsProcessor
}
}
+ protected CDOObject getCDOObject(Object object)
+ {
+ if (object instanceof CDOObject)
+ {
+ return (CDOObject)object;
+ }
+
+ if (view != null)
+ {
+ return FSMUtil.adapt(object, view);
+ }
+
+ return null;
+ }
+
protected abstract void processCDOObject(TreeViewer viewer, CDOObject cdoObject);
private void processItems(TreeViewer viewer, Set<CDOID> ids, TreeItem[] items)
@@ -75,9 +101,9 @@ public abstract class ItemsProcessor
private void processCDOObject(TreeViewer viewer, Set<CDOID> ids, Object object)
{
- if (object instanceof CDOObject)
+ CDOObject cdoObject = getCDOObject(object);
+ if (cdoObject != null)
{
- CDOObject cdoObject = (CDOObject)object;
if (ids == null)
{
processCDOObject(viewer, cdoObject);

Back to the top