Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrsuen2008-11-17 08:34:03 +0000
committerrsuen2008-11-17 08:34:03 +0000
commit5f3c7096f790794ba46428d95ffc9dded84a4ea1 (patch)
tree80801e78b7e694d41b146227082b06bcb2a51512
parentf5e9ad57257745dce0cad05aaf1a68feb27023d9 (diff)
downloadorg.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
-rw-r--r--framework/bundles/org.eclipse.ecf.discovery.ui/src/org/eclipse/ecf/internal/discovery/ui/ViewContentProvider.java20
-rw-r--r--framework/bundles/org.eclipse.ecf.discovery.ui/src/org/eclipse/ecf/internal/discovery/ui/ViewTreeType.java30
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);

Back to the top