diff --git a/discovery/org.eclipse.tm.discovery.engine/schema/discoveryProtocol.exsd b/discovery/org.eclipse.tm.discovery.engine/schema/discoveryProtocol.exsd
index 55ad103cbd0..fa8444f8e09 100644
--- a/discovery/org.eclipse.tm.discovery.engine/schema/discoveryProtocol.exsd
+++ b/discovery/org.eclipse.tm.discovery.engine/schema/discoveryProtocol.exsd
@@ -66,7 +66,7 @@
Allows specifying semicolon separated multicast addresses to be used with specific transports in the format <transport>:<address>
An example would be:
-<code>"transportName1:address1;transportName2:address2;UDP:224.0.0.251"<code/>
+<code>"transportName1:address1;transportName2:address2;UDP:224.0.0.251"</code>
diff --git a/discovery/org.eclipse.tm.discovery.engine/src/org/eclipse/tm/discovery/protocol/IProtocol.java b/discovery/org.eclipse.tm.discovery.engine/src/org/eclipse/tm/discovery/protocol/IProtocol.java
index 22956cb1f94..bf89534b90d 100644
--- a/discovery/org.eclipse.tm.discovery.engine/src/org/eclipse/tm/discovery/protocol/IProtocol.java
+++ b/discovery/org.eclipse.tm.discovery.engine/src/org/eclipse/tm/discovery/protocol/IProtocol.java
@@ -1,7 +1,7 @@
/********************************************************************************
* Copyright (c) 2006, 2007 Symbian Software Ltd. 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
+ * of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
@@ -27,21 +27,21 @@ import org.eclipse.tm.discovery.transport.ITransport;
*/
public interface IProtocol {
-
+
/**
- * Instantiates a Job to populate a model given an initial query, a resource containing the model to be populated and an ITranport implementation.
+ * Instantiates a Job to populate a model given an initial query, a resource
+ * containing the model to be populated and an ITranport implementation.
*
- * @param query
- * Initial query to be sent to the target. This initial query can be obtained from the getQueries() method.
+ * @param query Initial query to be sent to the target. This initial query
+ * can be obtained from the getQueries() method.
*
- * @param resource
- * Resource containing the model to be populated with the results of the service discovery action.
+ * @param resource Resource containing the model to be populated with the
+ * results of the service discovery action.
*
- * @param transport
- * ITransport implementation of the transport to be used for the discovery action.
+ * @param transport ITransport implementation of the transport to be used
+ * for the discovery action.
*
- * @return
- * Job containing the service discovery action.
+ * @return Job containing the service discovery action.
*
* @see Job
* @see Resource
@@ -49,8 +49,8 @@ public interface IProtocol {
*
*/
public abstract Job getDiscoveryJob(String query, Resource resource, ITransport transport);
-
-
+
+
/**
* Gets the list of recommended queries to start the service discovery process. This queries can be used in getDiscoveryJob().
*
@@ -58,5 +58,5 @@ public interface IProtocol {
* An array containing the recommended queries.
*/
public abstract String[] getQueries();
-
+
}
diff --git a/discovery/org.eclipse.tm.discovery.wizard/src/org/eclipse/tm/internal/discovery/wizard/ServiceDiscoveryWizardDisplayPage.java b/discovery/org.eclipse.tm.discovery.wizard/src/org/eclipse/tm/internal/discovery/wizard/ServiceDiscoveryWizardDisplayPage.java
index b16ea5c4dd5..c0cad19bf1a 100644
--- a/discovery/org.eclipse.tm.discovery.wizard/src/org/eclipse/tm/internal/discovery/wizard/ServiceDiscoveryWizardDisplayPage.java
+++ b/discovery/org.eclipse.tm.discovery.wizard/src/org/eclipse/tm/internal/discovery/wizard/ServiceDiscoveryWizardDisplayPage.java
@@ -1,7 +1,7 @@
/********************************************************************************
* Copyright (c) 2006, 2007 Symbian Software Ltd. 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
+ * of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
@@ -88,75 +88,71 @@ import org.eclipse.ui.dialogs.ContainerCheckedTreeViewer;
*/
public class ServiceDiscoveryWizardDisplayPage extends WizardPage {
-
+
//tree widgets
private TreeViewer treeViewer;
private ViewerPane viewerPaneTree;
private ViewerFilter filter;
-
+
//table widgets
private TableViewer tableViewer;
private ViewerPane viewerPaneTable;
private Table table;
private TableEditor editor;
-
+
private ComposedAdapterFactory adapterFactory;
-
+
//button widgets
private Button showAllButton;
-
+
//static service discovery engine
private final ServiceDiscoveryEngine serviceDiscoveryEngine = ServiceDiscoveryEngine.getInstance();
-
+
//service discovery settings
- private String query = null;
- private String address = null;
+ private String query = null;
+ private String address = null;
private String transportName = null;
private String protocolName = null;
- private int timeOut = 500;
-
- //format of serviceType attribute list of names and transports
+ private int timeOut = 500;
+
+ //format of serviceType attribute list of names and transports
//of extension point org.eclipse.core.subsystemConfigurations
private final Pattern serviceTypeFormat = Pattern.compile("_(.+)\\._(.+)"); //$NON-NLS-1$
-
+
private Service lastSelectedService = null;
-
+
private Hashtable supportedServicesType = new Hashtable();
-
+
/**
- * Constructor for the wizard page performing and displayin the results of the service discovery
+ * Constructor for the wizard page performing and displayin the results of
+ * the service discovery
*
- * @param query
- * Query for the service discovery action
- * @param address
- * Address of the target device
- * @param transportName
- * Name of the transport implementation to be used
- * @param protocolName
- * Name of the protocol implementation to be used
- * @param timeOut
- * Timeout to be used in the transport
+ * @param query Query for the service discovery action
+ * @param address Address of the target device
+ * @param transportName Name of the transport implementation to be used
+ * @param protocolName Name of the protocol implementation to be used
+ * @param timeOut Timeout to be used in the transport
*/
-
+
public ServiceDiscoveryWizardDisplayPage(String query, String address, String transportName, String protocolName, int timeOut) {
super("wizardPage2"); //$NON-NLS-1$
setTitle(Messages.getString("ServiceDiscoveryWizardDisplayPage.WizardPageTitle")); //$NON-NLS-1$
setDescription(Messages.getString("ServiceDiscoveryWizardDisplayPage.WizardPageDescription")); //$NON-NLS-1$
-
+
//load all service id's from the extension point registry
//this id will be used to filter the supported sytem types
-
+
IExtensionPoint ep = Platform.getExtensionRegistry().getExtensionPoint("org.eclipse.rse.core","subsystemConfigurations"); //$NON-NLS-1$ //$NON-NLS-2$
IConfigurationElement[] ce = ep.getConfigurationElements();
for (int i = 0; i < ce.length; i++) {
String type = ce[i].getAttribute("serviceType"); //$NON-NLS-1$
-
+
if(type!=null)
{
String[] variants = type.split(";"); //$NON-NLS-1$
-
+
for (int j = 0; j < variants.length; j++) {
- Matcher match = serviceTypeFormat.matcher(variants[j]);
+ Matcher match = serviceTypeFormat.matcher(variants[j]);
if(match.matches())
{
String name = match.group(1);
@@ -175,30 +171,25 @@ public class ServiceDiscoveryWizardDisplayPage extends WizardPage {
}
}
}
- }
+ }
}
-
+
this.query = query;
this.address = address;
this.transportName = transportName;
this.protocolName = protocolName;
this.timeOut = timeOut;
-
+
}
-
+
/**
* Refresh the contents of the service discovery model
*
- * @param query
- * Query for the service discovery action
- * @param address
- * Address of the target device
- * @param transportName
- * Name of the transport implementation to be used
- * @param protocolName
- * Name of the protocol implementation to be used
- * @param timeOut
- * Timeout to be used in the transport
+ * @param query Query for the service discovery action
+ * @param address Address of the target device
+ * @param transportName Name of the transport implementation to be used
+ * @param protocolName Name of the protocol implementation to be used
+ * @param timeOut Timeout to be used in the transport
*/
public void update(String query, String address, String transportName, String protocolName, int timeOut)
{
@@ -208,19 +199,19 @@ public class ServiceDiscoveryWizardDisplayPage extends WizardPage {
this.transportName = transportName;
this.protocolName = protocolName;
this.timeOut = timeOut;
-
+
//instantiate protocol and transport from factories (extensions)
//and perform the service discovery action
-
+
IProtocol protocol = null;
ITransport transport = null;
-
+
try {
protocol = ProtocolFactory.getProtocol(protocolName);
} catch (Exception e) {
MessageDialog.openError(new Shell(), Messages.getString("ServiceDiscoveryWizardDisplayPage.ProtocolErrorTitle"), Messages.getString("ServiceDiscoveryWizardDisplayPage.ProtocolErrorMessage")+protocolName); //$NON-NLS-1$ //$NON-NLS-2$
}
-
+
try {
transport = TransportFactory.getTransport(transportName, address, timeOut);
} catch (UnknownHostException e) {
@@ -228,7 +219,7 @@ public class ServiceDiscoveryWizardDisplayPage extends WizardPage {
} catch (Exception e) {
MessageDialog.openError(new Shell(), Messages.getString("ServiceDiscoveryWizardDisplayPage.TransportErrorTitle"), Messages.getString("ServiceDiscoveryWizardDisplayPage.TransportErrorMessage")+transportName); //$NON-NLS-1$ //$NON-NLS-2$
}
-
+
if(protocol != null && transport != null)
{
try{
@@ -236,86 +227,86 @@ public class ServiceDiscoveryWizardDisplayPage extends WizardPage {
}catch(Exception e){}
}
}
-
-
+
+
/* (non-Javadoc)
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/
public void createControl(Composite parent) {
-
+
List factories = new ArrayList();
factories.add(new ResourceItemProviderAdapterFactory());
factories.add(new ModelItemProviderAdapterFactory());
factories.add(new ReflectiveItemProviderAdapterFactory());
-
+
adapterFactory = new ComposedAdapterFactory(factories);
-
+
Composite comp = new Composite(parent, SWT.NULL);
-
+
GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 1;
- comp.setLayout(gridLayout);
-
- //TOOLBAR
-
- createToolBar(comp);
-
+ gridLayout.numColumns = 1;
+ comp.setLayout(gridLayout);
+
+ //TOOLBAR
+
+ createToolBar(comp);
+
GridData data = new GridData();
data.horizontalAlignment = GridData.FILL;
data.grabExcessHorizontalSpace = true;
data.verticalAlignment = GridData.FILL;
data.grabExcessVerticalSpace = true;
-
+
SashForm sashForm = new SashForm(comp,SWT.NULL );
sashForm.setOrientation(SWT.HORIZONTAL);
-
+
sashForm.setLayoutData(data);
-
+
// TREE
-
+
Composite sashComposite = new Composite(sashForm,SWT.BORDER);
sashComposite.setLayout(new FillLayout());
-
+
createTree(sashComposite);
-
+
// TABLE
-
+
Composite innerComposite = new Composite(sashForm,SWT.BORDER);
innerComposite.setLayout(new FillLayout());
-
+
createTable(innerComposite);
-
-
+
+
// SHOW ALL SERVICES BUTTON
-
+
createShowAllButton(comp);
-
-
+
+
update(query, address, transportName, protocolName, timeOut);
-
+
setPageComplete(false);
-
+
setControl(comp);
-
+
}
-
+
/*
* ToolBar of the wizard page
*/
private void createToolBar(Composite comp)
{
ToolBar toolBar = new ToolBar(comp,SWT.HORIZONTAL | SWT.FLAT | SWT.LEFT | SWT.WRAP );
-
+
ToolItem refreshButton = new ToolItem(toolBar, SWT.NULL);
refreshButton.addListener(SWT.Selection, new Listener(){
public void handleEvent(Event event) {
update(query, address, transportName, protocolName, timeOut);
}
});
-
+
refreshButton.setToolTipText(Messages.getString("ServiceDiscoveryWizardDisplayPage.RefreshButtonToolTipText")); //$NON-NLS-1$
refreshButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_REDO).createImage());
-
+
ToolItem cleanButton = new ToolItem(toolBar, SWT.NULL);
cleanButton.addListener(SWT.Selection, new Listener(){
public void handleEvent(Event event) {
@@ -323,52 +314,52 @@ public class ServiceDiscoveryWizardDisplayPage extends WizardPage {
tableViewer.setInput(null);
}
});
-
+
cleanButton.setToolTipText(Messages.getString("ServiceDiscoveryWizardDisplayPage.ClearButtonToolTipText")); //$NON-NLS-1$
cleanButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_DELETE).createImage());
-
+
}
-
+
/*
* Tree of the wizard page
*/
private void createTree(Composite comp)
{
-
+
viewerPaneTree = new ViewerPane( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(),
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart()) {
public Viewer createViewer(Composite composite) {
Tree tree = new Tree(composite, SWT.CHECK);
ContainerCheckedTreeViewer treeViewer = new ContainerCheckedTreeViewer(tree);
-
+
return treeViewer;
}
-
+
public void requestActivation() {
super.requestActivation();
}
};
-
+
viewerPaneTree.createControl(comp);
-
+
treeViewer = (TreeViewer) viewerPaneTree.getViewer();
-
+
treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-
+
treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
+
viewerPaneTree.setTitle(Messages.getString("ServiceDiscoveryWizardDisplayPage.ServicesTreeTitle"), null); //$NON-NLS-1$
-
+
treeViewer.setInput(serviceDiscoveryEngine.getResource());
-
+
new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
-
+
((ContainerCheckedTreeViewer) viewerPaneTree.getViewer()).addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
if(!event.getSelection().isEmpty())
{
EObject obj = (EObject)((IStructuredSelection) event.getSelection()).getFirstElement();
-
+
if(obj instanceof Service)
{
tableViewer.setInput(obj);
@@ -377,28 +368,28 @@ public class ServiceDiscoveryWizardDisplayPage extends WizardPage {
}
}
});
-
-
+
+
((ContainerCheckedTreeViewer) viewerPaneTree.getViewer()).addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(CheckStateChangedEvent event) {
-
- ContainerCheckedTreeViewer treeViewer = (ContainerCheckedTreeViewer) event.getSource();
-
- if(treeViewer.getCheckedElements().length > 0)
- setPageComplete(true);
- else
- setPageComplete(false);
-
- }
- });
-
+
+ ContainerCheckedTreeViewer treeViewer = (ContainerCheckedTreeViewer) event.getSource();
+
+ if(treeViewer.getCheckedElements().length > 0)
+ setPageComplete(true);
+ else
+ setPageComplete(false);
+
+ }
+ });
+
filter = new ViewerFilter(){
public boolean select(Viewer viewer, Object parentElement, Object element) {
- boolean supported = true;
-
+ boolean supported = true;
+
if(element instanceof ServiceType) {
-
+
//check if the service type is in the supported list
String serviceTypeName = ((ServiceType)element).getName();
if(!supportedServicesType.containsKey(serviceTypeName))
@@ -406,153 +397,153 @@ public class ServiceDiscoveryWizardDisplayPage extends WizardPage {
supported = false;
}
}
-
+
if(element instanceof Service) {
-
+
//if the discovered transport value is not contained in the list of supported transports filter this service
supported = false;
-
+
String serviceTypeName = ((ServiceType)((Service)element).eContainer()).getName();
-
+
//check if the transport service is supported
Vector transports = (Vector)supportedServicesType.get(serviceTypeName);
Iterator it = ((Service)element).getPair().iterator();
while(it.hasNext())
- {
+ {
Pair pair = (Pair)it.next();
if(pair.getKey().equalsIgnoreCase("transport")) //$NON-NLS-1$
{
- String transport = pair.getValue();
-
- for (int i = 0; i < transports.size(); i++) {
- if(((String)transports.elementAt(i)).equalsIgnoreCase(transport))
- {
- //found a supported transport
- supported = true;
- }
+ String transport = pair.getValue();
+
+ for (int i = 0; i < transports.size(); i++) {
+ if(((String)transports.elementAt(i)).equalsIgnoreCase(transport))
+ {
+ //found a supported transport
+ supported = true;
}
+ }
}
-
+
}
-
- }
+
+ }
return supported;
-
+
}};
-
-
-
- ((ContainerCheckedTreeViewer) viewerPaneTree.getViewer()).addFilter(filter);
-
+
+
+
+ ((ContainerCheckedTreeViewer) viewerPaneTree.getViewer()).addFilter(filter);
+
}
-
+
/*
* Table of the wizard page
*/
private void createTable(Composite comp)
{
viewerPaneTable =
- new ViewerPane(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(),
+ new ViewerPane(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(),
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart()) {
- public Viewer createViewer(Composite composite) {
- return new TableViewer(composite);
- }
- };
-
- viewerPaneTable.createControl(comp);
- tableViewer = (TableViewer)viewerPaneTable.getViewer();
+ public Viewer createViewer(Composite composite) {
+ return new TableViewer(composite);
+ }
+ };
- viewerPaneTable.setTitle(Messages.getString("ServiceDiscoveryWizardDisplayPage.PropertiesTableTitle"), null); //$NON-NLS-1$
-
-
- table = tableViewer.getTable();
-
- TableLayout layout = new TableLayout();
- table.setLayout(layout);
-
- table.setHeaderVisible(true);
- table.setLinesVisible(true);
+ viewerPaneTable.createControl(comp);
+ tableViewer = (TableViewer)viewerPaneTable.getViewer();
- TableColumn objectColumn = new TableColumn(table, SWT.NONE);
- layout.addColumnData(new ColumnWeightData(3, 100, true));
- objectColumn.setText(Messages.getString("ServiceDiscoveryWizardDisplayPage.KeyColumnLabel")); //$NON-NLS-1$
- objectColumn.setResizable(true);
+ viewerPaneTable.setTitle(Messages.getString("ServiceDiscoveryWizardDisplayPage.PropertiesTableTitle"), null); //$NON-NLS-1$
- TableColumn selfColumn = new TableColumn(table, SWT.NONE);
- layout.addColumnData(new ColumnWeightData(2, 100, true));
- selfColumn.setText(Messages.getString("ServiceDiscoveryWizardDisplayPage.ValueColumnLabel")); //$NON-NLS-1$
- selfColumn.setResizable(true);
-
- tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-
- tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
- editor = new TableEditor(table);
- editor.horizontalAlignment = SWT.LEFT;
- editor.grabHorizontal = true;
- table.addListener (SWT.MouseDown, new Listener () {
- public void handleEvent (Event event) {
- Rectangle clientArea = table.getClientArea ();
- Point pt = new Point (event.x, event.y);
- int index = table.getTopIndex ();
- while (index < table.getItemCount ()) {
- boolean visible = false;
- final TableItem item = table.getItem (index);
- for (int i=table.getColumnCount()-1; i
Service objects selected in the tree view from the specified host
+ * Get the
+ * Service objects selected in the tree view from the specified host
*
- * @param address
- * Address of the host which services are queried
- * @return
- * Vector containing the Service selected
+ * @param address Address of the host which services are queried
+ * @return Vector containing the Service selected
*
* @see Service
*/
public Vector getSelectedServices(String address)
{
Vector services = new Vector();
-
+
Object[] checkedElements = ((ContainerCheckedTreeViewer) viewerPaneTree.getViewer()).getCheckedElements();
for(int i=0; i