Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2005-06-17 05:56:50 +0000
committerslewis2005-06-17 05:56:50 +0000
commit6661dfc8f1c3d3de01951602d04d9b52e41bcf89 (patch)
tree05108c030da596c821ad59f6d6a9ab313a2b446f
parenta0ab135d4c51fa719a10b9113cd2c2ae90ae315d (diff)
downloadorg.eclipse.ecf-6661dfc8f1c3d3de01951602d04d9b52e41bcf89.tar.gz
org.eclipse.ecf-6661dfc8f1c3d3de01951602d04d9b52e41bcf89.tar.xz
org.eclipse.ecf-6661dfc8f1c3d3de01951602d04d9b52e41bcf89.zip
Added capabilities to discovery view and changed ui
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/DiscoveryView.java67
-rw-r--r--framework/bundles/org.eclipse.ecf.ui/src/org/eclipse/ecf/ui/views/IServiceConnectListener.java7
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);
+}

Back to the top