Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2005-06-18 05:23:56 +0000
committerslewis2005-06-18 05:23:56 +0000
commite0a1dddd6e6393c6587f91561acc5a6c4eb4d8b9 (patch)
tree4ba23d5575a2d38ac306516a00ffcd8b3a2d462e
parenta69844bbaa26bc604b5d0ec985a261c874233359 (diff)
downloadorg.eclipse.ecf-e0a1dddd6e6393c6587f91561acc5a6c4eb4d8b9.tar.gz
org.eclipse.ecf-e0a1dddd6e6393c6587f91561acc5a6c4eb4d8b9.tar.xz
org.eclipse.ecf-e0a1dddd6e6393c6587f91561acc5a6c4eb4d8b9.zip
Added method for clients to set the IServiceConnectListener so that they can be notified when the user asks to connect to a given service
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/DiscoveryView.java81
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/IServiceConnectListener.java4
2 files changed, 63 insertions, 22 deletions
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 0db036cd7..0e3b78343 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
@@ -1,3 +1,13 @@
+/****************************************************************************
+* Copyright (c) 2004 Composent, Inc. and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* Composent, Inc. - initial API and implementation
+*****************************************************************************/
package org.eclipse.ecf.ui.views;
import java.net.InetAddress;
@@ -44,7 +54,14 @@ public class DiscoveryView extends ViewPart {
private Action connectToAction;
IDiscoveryContainer container = null;
+ IServiceConnectListener serviceConnectListener = null;
+
+ protected boolean showTypeDetails = false;
+ public void setShowTypeDetails(boolean val) {
+ showTypeDetails = val;
+ refreshView();
+ }
public void setDiscoveryContainer(IDiscoveryContainer container) {
this.container = container;
}
@@ -74,15 +91,15 @@ public class DiscoveryView extends ViewPart {
class TreeParent extends TreeObject {
private ArrayList children;
private ServiceID id;
- private URI serviceURI;
- public TreeParent(ServiceID id, String name, URI uri) {
+ private IServiceInfo serviceInfo;
+ public TreeParent(ServiceID id, String name, IServiceInfo svcInfo) {
super(name);
this.id = id;
children = new ArrayList();
- serviceURI = uri;
+ serviceInfo = svcInfo;
}
- public URI getServiceURI() {
- return serviceURI;
+ public IServiceInfo getServiceInfo() {
+ return serviceInfo;
}
public ServiceID getID() {
return id;
@@ -190,13 +207,13 @@ public class DiscoveryView extends ViewPart {
try {
uri = serviceInfo.getServiceURI();
} catch (URISyntaxException e) {
-
+ e.printStackTrace();
}
if (typenode == null) {
- typenode = new TreeParent(null,svcID.getServiceType(),uri);
+ typenode = new TreeParent(null,svcID.getServiceType(),serviceInfo);
root.addChild(typenode);
}
- TreeParent newEntry = new TreeParent(svcID,svcID.getServiceName(),uri);
+ TreeParent newEntry = new TreeParent(svcID,svcID.getServiceName(),serviceInfo);
InetAddress addr = serviceInfo.getAddress();
if (addr != null) {
TreeObject toaddr = new TreeObject("Address: "+addr.getHostAddress());
@@ -249,9 +266,28 @@ public class DiscoveryView extends ViewPart {
}
}
}
+ protected String cleanTypeName(String inputName) {
+ if (showTypeDetails) return inputName;
+ String res = inputName.trim();
+ while (res.startsWith("_")) {
+ res = res.substring(1);
+ }
+ int dotLoc = res.indexOf(".");
+ if (dotLoc != -1) {
+ res = res.substring(0,dotLoc);
+ }
+ return res;
+ }
class ViewLabelProvider extends LabelProvider {
public String getText(Object obj) {
+ if (obj != null && obj instanceof TreeParent) {
+ TreeParent tp = (TreeParent) obj;
+ ServiceID svcID = tp.getID();
+ if (svcID == null) {
+ return cleanTypeName(tp.getName());
+ }
+ }
return obj.toString();
}
public Image getImage(Object obj) {
@@ -272,9 +308,8 @@ public class DiscoveryView extends ViewPart {
public DiscoveryView() {
}
- IServiceConnectListener serviceConnectListener = null;
- public DiscoveryView(IServiceConnectListener listener) {
- this.serviceConnectListener = listener;
+ public void setServiceConnectListener(IServiceConnectListener l) {
+ this.serviceConnectListener = l;
}
public void addServiceTypeInfo(final String type) {
Display.getDefault().asyncExec(new Runnable() {
@@ -388,8 +423,7 @@ public class DiscoveryView extends ViewPart {
TreeObject treeObject = getSelectedTreeObject();
if (treeObject instanceof TreeParent) {
TreeParent p = (TreeParent) treeObject;
- URI uri = p.getServiceURI();
- connectToContainer(uri);
+ connectToContainer(p.getServiceInfo());
}
}
};
@@ -404,10 +438,17 @@ public class DiscoveryView extends ViewPart {
if (tp.getID() != null) {
requestServiceInfoAction.setText("Request info about "+tp.getName());
manager.add(requestServiceInfoAction);
- URI uri = tp.getServiceURI();
- if (uri != null) {
- connectToAction.setText("Connect to this service");
- manager.add(connectToAction);
+ IServiceInfo si = tp.getServiceInfo();
+ if (si != null) {
+ try {
+ URI uri = si.getServiceURI();
+ if (uri != null) {
+ connectToAction.setText("Connect to this service");
+ manager.add(connectToAction);
+ }
+ } catch (URISyntaxException e) {
+
+ }
}
} else {
if (!tp.equals(((ViewContentProvider) viewer.getContentProvider()).root)) {
@@ -419,11 +460,11 @@ public class DiscoveryView extends ViewPart {
// Other plug-ins can contribute there actions here
manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
}
- protected void connectToContainer(URI svcURI) {
+ protected void connectToContainer(IServiceInfo svcInfo) {
if (serviceConnectListener != null) {
- serviceConnectListener.connectToService(svcURI);
+ serviceConnectListener.connectToService(svcInfo);
} else {
- System.out.println("Would connect to "+svcURI);
+ System.out.println("No service connect listener to connect to "+svcInfo);
}
}
protected TreeObject getSelectedTreeObject() {
diff --git a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/IServiceConnectListener.java b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/IServiceConnectListener.java
index 6c0c08200..e865cadcf 100644
--- a/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/IServiceConnectListener.java
+++ b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/IServiceConnectListener.java
@@ -1,7 +1,7 @@
package org.eclipse.ecf.ui.views;
-import java.net.URI;
+import org.eclipse.ecf.discovery.IServiceInfo;
public interface IServiceConnectListener {
- public void connectToService(URI serviceURI);
+ public void connectToService(IServiceInfo service);
}

Back to the top