diff options
| author | slewis | 2005-06-17 05:56:50 +0000 |
|---|---|---|
| committer | slewis | 2005-06-17 05:56:50 +0000 |
| commit | 6661dfc8f1c3d3de01951602d04d9b52e41bcf89 (patch) | |
| tree | 05108c030da596c821ad59f6d6a9ab313a2b446f | |
| parent | a0ab135d4c51fa719a10b9113cd2c2ae90ae315d (diff) | |
| download | org.eclipse.ecf-6661dfc8f1c3d3de01951602d04d9b52e41bcf89.tar.gz org.eclipse.ecf-6661dfc8f1c3d3de01951602d04d9b52e41bcf89.tar.xz org.eclipse.ecf-6661dfc8f1c3d3de01951602d04d9b52e41bcf89.zip | |
Added capabilities to discovery view and changed ui
2 files changed, 65 insertions, 9 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 610e76e3d..efc4e8119 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,6 +1,8 @@ package org.eclipse.ecf.ui.views; import java.net.InetAddress; +import java.net.URI; +import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Iterator; import java.util.Map; @@ -39,6 +41,7 @@ public class DiscoveryView extends ViewPart { private TreeViewer viewer; private Action requestServiceInfoAction; private Action registerServiceTypeAction; + private Action connectToAction; IDiscoveryContainer container = null; @@ -71,10 +74,15 @@ public class DiscoveryView extends ViewPart { class TreeParent extends TreeObject { private ArrayList children; private ServiceID id; - public TreeParent(ServiceID id, String name) { + private URI serviceURI; + public TreeParent(ServiceID id, String name, URI uri) { super(name); this.id = id; children = new ArrayList(); + serviceURI = uri; + } + public URI getServiceURI() { + return serviceURI; } public ServiceID getID() { return id; @@ -129,8 +137,8 @@ public class DiscoveryView extends ViewPart { return false; } private void initialize() { - invisibleRoot = new TreeParent(null,""); - root = new TreeParent(null,"Network Services"); + invisibleRoot = new TreeParent(null,"",null); + root = new TreeParent(null,"Discovered Service Types",null); invisibleRoot.addChild(root); } void replaceOrAdd(TreeParent top, TreeParent newEntry) { @@ -150,7 +158,7 @@ public class DiscoveryView extends ViewPart { void addServiceTypeInfo(String type) { TreeParent typenode = findServiceTypeNode(type); if (typenode == null) { - root.addChild(new TreeParent(null,type)); + root.addChild(new TreeParent(null,type,null)); } } TreeParent findServiceTypeNode(String typename) { @@ -168,21 +176,27 @@ public class DiscoveryView extends ViewPart { void addServiceInfo(ServiceID id) { TreeParent typenode = findServiceTypeNode(id.getServiceType()); if (typenode == null) { - typenode = new TreeParent(null,id.getServiceType()); + typenode = new TreeParent(null,id.getServiceType(),null); root.addChild(typenode); } - TreeParent newEntry = new TreeParent(id,id.getServiceName()); + TreeParent newEntry = new TreeParent(id,id.getServiceName(),null); replaceOrAdd(typenode,newEntry); } void addServiceInfo(IServiceInfo serviceInfo) { if (serviceInfo == null) return; ServiceID svcID = serviceInfo.getServiceID(); TreeParent typenode = findServiceTypeNode(svcID.getServiceType()); + URI uri = null; + try { + uri = serviceInfo.getServiceURI(); + } catch (URISyntaxException e) { + + } if (typenode == null) { - typenode = new TreeParent(null,svcID.getServiceType()); + typenode = new TreeParent(null,svcID.getServiceType(),uri); root.addChild(typenode); } - TreeParent newEntry = new TreeParent(svcID,svcID.getServiceName()); + TreeParent newEntry = new TreeParent(svcID,svcID.getServiceName(),uri); InetAddress addr = serviceInfo.getAddress(); if (addr != null) { TreeObject toaddr = new TreeObject("Address: "+addr.getHostAddress()); @@ -192,10 +206,14 @@ public class DiscoveryView extends ViewPart { newEntry.addChild(typeo); TreeObject porto = new TreeObject("Port: " + serviceInfo.getPort()); newEntry.addChild(porto); + /* TreeObject prioo = new TreeObject("Priority: " + serviceInfo.getPriority()); newEntry.addChild(prioo); TreeObject weighto = new TreeObject("Weight: " + serviceInfo.getWeight()); newEntry.addChild(weighto); + */ + TreeObject urio = new TreeObject("URI: "+uri); + newEntry.addChild(urio); Map props = serviceInfo.getProperties(); if (props != null) { for(Iterator i=props.keySet().iterator(); i.hasNext(); ) { @@ -253,6 +271,11 @@ public class DiscoveryView extends ViewPart { */ public DiscoveryView() { } + + IServiceConnectListener serviceConnectListener = null; + public DiscoveryView(IServiceConnectListener listener) { + this.serviceConnectListener = listener; + } public void addServiceTypeInfo(final String type) { Display.getDefault().asyncExec(new Runnable() { public void run() { @@ -359,7 +382,21 @@ public class DiscoveryView extends ViewPart { registerServiceTypeAction.setText("Register type..."); registerServiceTypeAction.setToolTipText("Register for selected service type"); registerServiceTypeAction.setEnabled(true); - } + + connectToAction = new Action() { + public void run() { + TreeObject treeObject = getSelectedTreeObject(); + if (treeObject instanceof TreeParent) { + TreeParent p = (TreeParent) treeObject; + URI uri = p.getServiceURI(); + connectToContainer(uri); + } + } + }; + connectToAction.setText("Connect to service..."); + connectToAction.setToolTipText("Connect to this service"); + connectToAction.setEnabled(true); +} private void fillContextMenu(IMenuManager manager) { final TreeObject treeObject = getSelectedTreeObject(); if (treeObject != null && treeObject instanceof TreeParent) { @@ -367,6 +404,11 @@ 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); + } } else { if (!tp.equals(((ViewContentProvider) viewer.getContentProvider()).root)) { registerServiceTypeAction.setText("Register type "+tp.getName()); @@ -377,6 +419,13 @@ 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) { + if (serviceConnectListener != null) { + serviceConnectListener.connectToService(svcURI); + } else { + System.out.println("Would connect to "+svcURI); + } + } protected TreeObject getSelectedTreeObject() { ISelection selection = viewer.getSelection(); Object obj = ((IStructuredSelection) selection) 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 new file mode 100644 index 000000000..6c0c08200 --- /dev/null +++ b/framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/IServiceConnectListener.java @@ -0,0 +1,7 @@ +package org.eclipse.ecf.ui.views; + +import java.net.URI; + +public interface IServiceConnectListener { + public void connectToService(URI serviceURI); +} |
