From 07ba899f07fb56596207c3ed92c54f8e0aed7694 Mon Sep 17 00:00:00 2001 From: Javier Montalvo Orus Date: Tue, 12 Sep 2006 17:31:31 +0000 Subject: [PATCH] Discovery listed in wizard --- .../org.eclipse.rse.discovery/plugin.xml | 26 +++++++- ...erviceDiscoverySubSystemConfiguration.java | 60 +++++++++++++++++++ .../rse/discovery/ServiceDiscoveryWizard.java | 39 +++++++----- 3 files changed, 107 insertions(+), 18 deletions(-) create mode 100644 discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoverySubSystemConfiguration.java diff --git a/discovery/org.eclipse.rse.discovery/plugin.xml b/discovery/org.eclipse.rse.discovery/plugin.xml index c49abbc48c5..640bc298731 100644 --- a/discovery/org.eclipse.rse.discovery/plugin.xml +++ b/discovery/org.eclipse.rse.discovery/plugin.xml @@ -19,8 +19,30 @@ Contributors: class="org.eclipse.rse.discovery.ServiceDiscoveryWizardDelegate" systemType="org.eclipse.rse.systemtype.discovery"/> - - + + + + + + + + + + diff --git a/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoverySubSystemConfiguration.java b/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoverySubSystemConfiguration.java new file mode 100644 index 00000000000..40d7729aca7 --- /dev/null +++ b/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoverySubSystemConfiguration.java @@ -0,0 +1,60 @@ +/******************************************************************************** + * Copyright (c) 2006 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 + * available at http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Javier Montalvo Orús (Symbian) - initial API and implementation + ********************************************************************************/ + +package org.eclipse.rse.discovery; + +import org.eclipse.rse.core.filters.ISystemFilterPool; +import org.eclipse.rse.core.filters.ISystemFilterPoolManager; +import org.eclipse.rse.core.model.IHost; +import org.eclipse.rse.core.subsystems.IConnectorService; +import org.eclipse.rse.core.subsystems.ISubSystem; +import org.eclipse.rse.core.subsystems.SubSystemConfiguration; + +/** + * Configuration for an empty Discovery SubSystemConfiguration + * to allow listing discovery in the RSE Wizard + * + */ +public class ServiceDiscoverySubSystemConfiguration extends SubSystemConfiguration { + + /* + * (non-Javadoc) + * @see org.eclipse.rse.core.subsystems.SubSystemConfiguration#createDefaultFilterPool(org.eclipse.rse.core.filters.ISystemFilterPoolManager) + */ + protected ISystemFilterPool createDefaultFilterPool( + ISystemFilterPoolManager mgr) { + return null; + } + + /* + * (non-Javadoc) + * @see org.eclipse.rse.core.subsystems.SubSystemConfiguration#createSubSystemInternal(org.eclipse.rse.core.model.IHost) + */ + public ISubSystem createSubSystemInternal(IHost conn) { + return null; + } + + /* + * (non-Javadoc) + * @see org.eclipse.rse.core.subsystems.SubSystemConfiguration#supportsServerLaunchProperties(org.eclipse.rse.core.model.IHost) + */ + public boolean supportsServerLaunchProperties(IHost host) { + return false; + } + + /* + * (non-Javadoc) + * @see org.eclipse.rse.core.subsystems.ISubSystemConfiguration#getConnectorService(org.eclipse.rse.core.model.IHost) + */ + public IConnectorService getConnectorService(IHost host) { + return null; + } + +} diff --git a/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoveryWizard.java b/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoveryWizard.java index f238aedccf7..6cacf549301 100644 --- a/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoveryWizard.java +++ b/discovery/org.eclipse.rse.discovery/src/org/eclipse/rse/discovery/ServiceDiscoveryWizard.java @@ -23,6 +23,7 @@ import org.eclipse.jface.wizard.Wizard; import org.eclipse.rse.core.model.IHost; import org.eclipse.rse.core.model.IPropertySet; import org.eclipse.rse.ui.RSEUIPlugin; +import org.eclipse.rse.ui.actions.SystemRefreshAllAction; import org.eclipse.tm.discovery.model.Pair; import org.eclipse.tm.discovery.model.Service; import org.eclipse.tm.discovery.model.ServiceType; @@ -78,6 +79,8 @@ public class ServiceDiscoveryWizard extends Wizard { */ public boolean performFinish() { + SystemRefreshAllAction systemRefreshAllAction = new SystemRefreshAllAction(null); + String[] addresses = serviceDiscoveryPage.getAddresses(); for (int i = 0; i < addresses.length; i++) { @@ -94,24 +97,28 @@ public class ServiceDiscoveryWizard extends Wizard { try { conn = RSEUIPlugin.getDefault().getSystemRegistry().createHost(sysTypeString, service.getName() + "@" + hostName, hostName, "Discovered "+sysTypeString+" server in "+hostName); //$NON-NLS-1$ //$NON-NLS-2$ - } catch (Exception e) { - e.printStackTrace(); - } - - if (conn != null) { - //copy discovered properties to RSE model - IPropertySet ps = conn.getConnectorServices()[0].createPropertySet(Messages.ServiceDiscoveryWizard_DiscoveryPropertySet); - Iterator pairIterator = service.getPair().iterator(); - while (pairIterator.hasNext()) { - Pair pair = (Pair) pairIterator.next(); - ps.addProperty(pair.getKey(), pair.getValue()); - - //add port to the RSE connection - if (pair.getKey().equalsIgnoreCase(Messages.ServiceDiscoveryWizard_Port)) { - conn.getConnectorServices()[0].setPort(Integer.parseInt(pair.getValue())); + + if (conn != null) { + //copy discovered properties to RSE model + IPropertySet ps = conn.getConnectorServices()[0].createPropertySet(Messages.ServiceDiscoveryWizard_DiscoveryPropertySet); + Iterator pairIterator = service.getPair().iterator(); + while (pairIterator.hasNext()) { + Pair pair = (Pair) pairIterator.next(); + ps.addProperty(pair.getKey(), pair.getValue()); + + //add port to the RSE connection + if (pair.getKey().equalsIgnoreCase(Messages.ServiceDiscoveryWizard_Port)) { + conn.getConnectorServices()[0].setPort(Integer.parseInt(pair.getValue())); + } } + RSEUIPlugin.getDefault().getSystemRegistry().expandHost(conn); } - RSEUIPlugin.getDefault().getSystemRegistry().expandHost(conn); + } catch (Exception e) { + if (conn != null) { + RSEUIPlugin.getDefault().getSystemRegistry().deleteHost(conn); + } + } finally { + systemRefreshAllAction.run(); } }