1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
/*******************************************************************************
* Copyright (c) 2002, 2007 IBM Corporation 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 available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Initial Contributors:
* The following IBM employees contributed to the Remote System Explorer
* component that contains this file: David McKnight, Kushal Munir,
* Michael Berger, David Dykstal, Phil Coulthard, Don Yantzi, Eric Simpson,
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
* {Name} (company) - description of contribution.
*******************************************************************************/
package org.eclipse.rse.internal.ui.actions;
import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.internal.ui.SystemResources;
import org.eclipse.rse.ui.ISystemContextMenuConstants;
import org.eclipse.rse.ui.RSEUIPlugin;
import org.eclipse.rse.ui.actions.SystemBaseAction;
import org.eclipse.swt.widgets.Shell;
/**
* This is the action for disconnecting from a remote subsystem.
*/
public class SystemDisconnectAction extends SystemBaseAction
{
/**
* Constructor.
* @param shell Shell of parent window, used as the parent for the dialog.
* Can be null, but be sure to call setParent before the action is used (ie, run).
*/
public SystemDisconnectAction(Shell shell)
{
super(SystemResources.ACTION_DISCONNECT_LABEL, SystemResources.ACTION_DISCONNECT_TOOLTIP, shell);
allowOnMultipleSelection(false);
setContextMenuGroup(ISystemContextMenuConstants.GROUP_CONNECTION);
setHelp(RSEUIPlugin.HELPPREFIX+"actn0048"); //$NON-NLS-1$
}
/**
* Override of parent. Called when testing if action should be enabled based on current
* selection. We check the selected object is one of our subsystems, and if we are
* currently connected.
*/
public boolean checkObjectType(Object obj)
{
if ( !(obj instanceof ISubSystem) ||
!((ISubSystem)obj).getConnectorService().isConnected() )
return false;
else
return true;
}
/**
* Called when this action is selection from the popup menu.
*/
public void run()
{
ISubSystem ss = (ISubSystem)getFirstSelection();
try {
ss.disconnect();
} catch (Exception exc) {} // msg already shown
}
}
|