diff options
author | rsuen | 2008-11-17 08:34:03 +0000 |
---|---|---|
committer | rsuen | 2008-11-17 08:34:03 +0000 |
commit | 5f3c7096f790794ba46428d95ffc9dded84a4ea1 (patch) | |
tree | 80801e78b7e694d41b146227082b06bcb2a51512 | |
parent | f5e9ad57257745dce0cad05aaf1a68feb27023d9 (diff) | |
download | org.eclipse.ecf-20081117-0800.tar.gz org.eclipse.ecf-20081117-0800.tar.xz org.eclipse.ecf-20081117-0800.zip |
FIXED - Bug 255481 [discovery][ui] 'Discovery' view needs to distinguish its categories based on the IServiceTypeID's servicesv20081117-0800
2 files changed, 44 insertions, 6 deletions
diff --git a/framework/bundles/org.eclipse.ecf.discovery.ui/src/org/eclipse/ecf/internal/discovery/ui/ViewContentProvider.java b/framework/bundles/org.eclipse.ecf.discovery.ui/src/org/eclipse/ecf/internal/discovery/ui/ViewContentProvider.java index 05f1652e7..8221c4427 100644 --- a/framework/bundles/org.eclipse.ecf.discovery.ui/src/org/eclipse/ecf/internal/discovery/ui/ViewContentProvider.java +++ b/framework/bundles/org.eclipse.ecf.discovery.ui/src/org/eclipse/ecf/internal/discovery/ui/ViewContentProvider.java @@ -13,6 +13,7 @@ package org.eclipse.ecf.internal.discovery.ui; import org.eclipse.ecf.discovery.IServiceInfo; import org.eclipse.ecf.discovery.identity.IServiceID; +import org.eclipse.ecf.discovery.identity.IServiceTypeID; import org.eclipse.ecf.discovery.ui.views.DiscoveryView; import org.eclipse.jface.viewers.*; @@ -120,10 +121,21 @@ public class ViewContentProvider implements IStructuredContentProvider, ITreeCon return null; } + private ViewTreeType findServiceTypeNode(IServiceTypeID typeID) { + String[] services = typeID.getServices(); + StringBuffer buffer = new StringBuffer(); + for (int i = 0; i < services.length; i++) { + buffer.append(services[i]).append(':'); + } + buffer.deleteCharAt(buffer.length() - 1); + + return findServiceTypeNode(buffer.toString()); + } + public void addServiceInfo(IServiceID id) { - ViewTreeType typenode = findServiceTypeNode(id.getServiceTypeID().getName()); + ViewTreeType typenode = findServiceTypeNode(id.getServiceTypeID()); if (typenode == null) { - typenode = new ViewTreeType(id.getServiceTypeID().getName()); + typenode = new ViewTreeType(id.getServiceTypeID()); root.addChild(typenode); } final ViewTreeService newEntry = new ViewTreeService(id, id.getServiceName(), null); @@ -134,9 +146,9 @@ public class ViewContentProvider implements IStructuredContentProvider, ITreeCon if (serviceInfo == null) return; final IServiceID svcID = serviceInfo.getServiceID(); - ViewTreeType typenode = findServiceTypeNode(svcID.getServiceTypeID().getName()); + ViewTreeType typenode = findServiceTypeNode(svcID.getServiceTypeID()); if (typenode == null) { - typenode = new ViewTreeType(svcID.getServiceTypeID().getName()); + typenode = new ViewTreeType(svcID.getServiceTypeID()); root.addChild(typenode); } replaceOrAdd(typenode, new ViewTreeService(svcID, svcID.getServiceName(), serviceInfo)); diff --git a/framework/bundles/org.eclipse.ecf.discovery.ui/src/org/eclipse/ecf/internal/discovery/ui/ViewTreeType.java b/framework/bundles/org.eclipse.ecf.discovery.ui/src/org/eclipse/ecf/internal/discovery/ui/ViewTreeType.java index 98b35b049..057bc5a5e 100644 --- a/framework/bundles/org.eclipse.ecf.discovery.ui/src/org/eclipse/ecf/internal/discovery/ui/ViewTreeType.java +++ b/framework/bundles/org.eclipse.ecf.discovery.ui/src/org/eclipse/ecf/internal/discovery/ui/ViewTreeType.java @@ -12,6 +12,7 @@ package org.eclipse.ecf.internal.discovery.ui; import java.util.ArrayList; +import org.eclipse.ecf.discovery.identity.IServiceTypeID; /** * @@ -20,14 +21,39 @@ public class ViewTreeType extends ViewTreeObject { private final ArrayList children; + private final IServiceTypeID typeID; + + public ViewTreeType(String name) { + super(name); + this.typeID = null; + children = new ArrayList(); + } + /** * @param name */ - public ViewTreeType(String name) { - super(name); + public ViewTreeType(IServiceTypeID typeID) { + super(null); + this.typeID = typeID; children = new ArrayList(); } + // overridden to workaround bug 255481 + public String getName() { + String superName = super.getName(); + if (superName != null) { + return superName; + } + + String[] services = typeID.getServices(); + StringBuffer buffer = new StringBuffer(); + for (int i = 0; i < services.length; i++) { + buffer.append(services[i]).append(':'); + } + buffer.deleteCharAt(buffer.length() - 1); + return buffer.toString(); + } + public void addChild(ViewTreeObject child) { children.add(child); child.setParent(this); |