Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2005-05-24 21:32:38 +0000
committerslewis2005-05-24 21:32:38 +0000
commitf8421ee28241a9e15b7e84c8dff48152c657778c (patch)
tree5a6dca9e05fb91cea74380becc8d845645ff7ba7
parentb767350fb026f5fbef65782aab7b51413c975372 (diff)
downloadorg.eclipse.ecf-f8421ee28241a9e15b7e84c8dff48152c657778c.tar.gz
org.eclipse.ecf-f8421ee28241a9e15b7e84c8dff48152c657778c.tar.xz
org.eclipse.ecf-f8421ee28241a9e15b7e84c8dff48152c657778c.zip
Fix for NPE when double click on service type entry in list
-rw-r--r--examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/Client.java13
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/DiscoveryView.java10
2 files changed, 14 insertions, 9 deletions
diff --git a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/Client.java b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/Client.java
index 9df01661b..b9cba4370 100644
--- a/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/Client.java
+++ b/examples/bundles/org.eclipse.ecf.example.collab/src/org/eclipse/ecf/example/collab/Client.java
@@ -41,11 +41,11 @@ import org.eclipse.ecf.core.events.IContainerEvent;
import org.eclipse.ecf.core.events.ISharedObjectContainerDepartedEvent;
import org.eclipse.ecf.core.identity.ID;
import org.eclipse.ecf.core.identity.IDFactory;
+import org.eclipse.ecf.core.identity.ServiceID;
import org.eclipse.ecf.core.security.IJoinContext;
import org.eclipse.ecf.core.security.ObjectCallback;
import org.eclipse.ecf.discovery.IDiscoveryContainer;
import org.eclipse.ecf.discovery.IServiceEvent;
-import org.eclipse.ecf.discovery.IServiceInfo;
import org.eclipse.ecf.discovery.IServiceListener;
import org.eclipse.ecf.discovery.IServiceTypeListener;
import org.eclipse.ecf.example.collab.share.EclipseCollabSharedObject;
@@ -571,15 +571,11 @@ public class Client {
if (discoveryView != null) {
dc.addServiceTypeListener(new IServiceTypeListener() {
public void serviceTypeAdded(IServiceEvent event) {
- discoveryView.addServiceTypeInfo(event.getServiceInfo().getServiceID().getServiceType());
+ ServiceID svcID = event.getServiceInfo().getServiceID();
+ discoveryView.addServiceTypeInfo(svcID.getServiceType());
dc.addServiceListener(event.getServiceInfo().getServiceID(), new IServiceListener() {
public void serviceAdded(IServiceEvent event) {
- IServiceInfo info = dc.getServiceInfo(event.getServiceInfo().getServiceID(),3000);
- if (info != null) {
- discoveryView.addServiceInfo(info);
- } else {
- discoveryView.addServiceInfo(event.getServiceInfo().getServiceID());
- }
+ discoveryView.addServiceInfo(event.getServiceInfo().getServiceID());
dc.requestServiceInfo(event.getServiceInfo().getServiceID(),3000);
}
public void serviceRemoved(IServiceEvent event) {
@@ -588,6 +584,7 @@ public class Client {
public void serviceResolved(IServiceEvent event) {
discoveryView.addServiceInfo(event.getServiceInfo());
}});
+ dc.registerServiceType(svcID);
}});
}
}
diff --git a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/DiscoveryView.java b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/DiscoveryView.java
index 165013b12..4b85a14f7 100644
--- a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/DiscoveryView.java
+++ b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/DiscoveryView.java
@@ -389,7 +389,15 @@ public class DiscoveryView extends ViewPart {
private void hookDoubleClickAction() {
viewer.addDoubleClickListener(new IDoubleClickListener() {
public void doubleClick(DoubleClickEvent event) {
- requestServiceInfoAction.run();
+ Object obj = ((IStructuredSelection) event.getSelection())
+ .getFirstElement();
+ final TreeObject treeObject = (TreeObject) obj;
+ if (treeObject != null && treeObject instanceof TreeParent) {
+ TreeParent tp = (TreeParent) treeObject;
+ if (tp.getID() != null) {
+ requestServiceInfoAction.run();
+ }
+ }
}
});
}

Back to the top