From ff6fc2fce7d17521fd2efb4573f372a9af91736e Mon Sep 17 00:00:00 2001 From: David McKnight Date: Tue, 1 May 2007 16:31:57 +0000 Subject: [PATCH] [166338] use new connect API in SystemConnectAction --- .../ui/actions/SystemConnectAction.java | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/actions/SystemConnectAction.java b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/actions/SystemConnectAction.java index 2a6316e7e9d..bb1140b9ccf 100644 --- a/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/actions/SystemConnectAction.java +++ b/rse/plugins/org.eclipse.rse.ui/UI/org/eclipse/rse/internal/ui/actions/SystemConnectAction.java @@ -16,6 +16,10 @@ package org.eclipse.rse.internal.ui.actions; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; import org.eclipse.rse.core.IRSESystemType; import org.eclipse.rse.core.subsystems.ISubSystem; import org.eclipse.rse.internal.ui.SystemResources; @@ -32,6 +36,32 @@ import org.eclipse.swt.widgets.Shell; */ public class SystemConnectAction extends SystemBaseAction { + public class ConnectJob extends Job + { + private ISubSystem _subsystem; + public ConnectJob(ISubSystem subsystem) + { + super(SystemResources.ACTION_CONNECT_LABEL); + _subsystem = subsystem; + } + + + public IStatus run(IProgressMonitor monitor) + { + try { + if (_subsystem.getHost().getSystemType().getId().equals(IRSESystemType.SYSTEMTYPE_WINDOWS_ID)) + _subsystem.connect(monitor, false); + else + _subsystem.connect(monitor, true); + } catch (Exception exc) {} // msg already shown + if (monitor.isCanceled()) + { + return Status.CANCEL_STATUS; + } + return Status.OK_STATUS; + } + } + /** * Constructor. * @param shell Shell of parent window, used as the parent for the dialog. @@ -64,11 +94,8 @@ public class SystemConnectAction extends SystemBaseAction public void run() { ISubSystem ss = (ISubSystem)getFirstSelection(); - try { - if (ss.getHost().getSystemType().getName().equals(IRSESystemType.SYSTEMTYPE_WINDOWS)) - ss.connect(); - else - ss.connect(true); - } catch (Exception exc) {} // msg already shown + ConnectJob job = new ConnectJob(ss); + job.schedule(); + } } \ No newline at end of file