diff options
author | slewis | 2015-07-25 22:46:51 +0000 |
---|---|---|
committer | slewis | 2015-07-25 22:46:51 +0000 |
commit | db6d57f6f677c55ed191bbb277cb37d5086207ab (patch) | |
tree | 681512031ff9fb992bca9d3c81e5ac0da6d8f9e3 | |
parent | 30067dbe857f2c589d638307c3f1d28e44ac8ea1 (diff) | |
download | org.eclipse.ecf-db6d57f6f677c55ed191bbb277cb37d5086207ab.tar.gz org.eclipse.ecf-db6d57f6f677c55ed191bbb277cb37d5086207ab.tar.xz org.eclipse.ecf-db6d57f6f677c55ed191bbb277cb37d5086207ab.zip |
Improved fix for bug
https://bugs.eclipse.org/bugs/show_bug.cgi?id=473580
Change-Id: I0000000000000000000000000000000000000000
-rw-r--r-- | framework/bundles/org.eclipse.ecf.remoteservice.ui/src/org/eclipse/ecf/internal/remoteservices/ui/EndpointDiscoveryView.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/framework/bundles/org.eclipse.ecf.remoteservice.ui/src/org/eclipse/ecf/internal/remoteservices/ui/EndpointDiscoveryView.java b/framework/bundles/org.eclipse.ecf.remoteservice.ui/src/org/eclipse/ecf/internal/remoteservices/ui/EndpointDiscoveryView.java index 64ee890e1..e5a157437 100644 --- a/framework/bundles/org.eclipse.ecf.remoteservice.ui/src/org/eclipse/ecf/internal/remoteservices/ui/EndpointDiscoveryView.java +++ b/framework/bundles/org.eclipse.ecf.remoteservice.ui/src/org/eclipse/ecf/internal/remoteservices/ui/EndpointDiscoveryView.java @@ -11,6 +11,7 @@ package org.eclipse.ecf.internal.remoteservices.ui; import java.io.FileInputStream; import java.io.IOException; import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; import java.util.List; import org.eclipse.core.runtime.IStatus; @@ -176,6 +177,7 @@ public class EndpointDiscoveryView extends ViewPart { discovery.setView(null); discovery = null; } + discoveredEndpointIds.clear(); } private void hookContextMenu() { @@ -468,14 +470,21 @@ public class EndpointDiscoveryView extends ViewPart { handleEndpointDescription(event.getType(),(EndpointDescription) event.getEndpoint()); } + private List<String> discoveredEndpointIds = new ArrayList<String>(); + void addEndpoint(EndpointDescription ed) { if (EndpointDiscoveryView.this.previousRegistryBrowserGroupBy != RegistryBrowser.SERVICES) showServicesInRegistryBrowser(); - contentProvider.getRootNode().addChild(createEndpointDescriptionNode(ed)); + String edId = ed.getId(); + if (!discoveredEndpointIds.contains(edId)) { + discoveredEndpointIds.add(edId); + contentProvider.getRootNode().addChild(createEndpointDescriptionNode(ed)); + } } void removeEndpoint(EndpointDescription ed) { - contentProvider.getRootNode().removeChild(new EndpointNode(ed)); + if (discoveredEndpointIds.remove(ed.getId())) + contentProvider.getRootNode().removeChild(new EndpointNode(ed)); } ImportRegistration findImportRegistration(EndpointDescription ed) { |