diff --git a/rse/plugins/org.eclipse.rse.subsystems.files.core/META-INF/MANIFEST.MF b/rse/plugins/org.eclipse.rse.subsystems.files.core/META-INF/MANIFEST.MF index 9fcc363abfd..050d521cc3c 100644 --- a/rse/plugins/org.eclipse.rse.subsystems.files.core/META-INF/MANIFEST.MF +++ b/rse/plugins/org.eclipse.rse.subsystems.files.core/META-INF/MANIFEST.MF @@ -6,9 +6,10 @@ Bundle-Version: 3.0.0.qualifier Bundle-Activator: org.eclipse.rse.internal.subsystems.files.core.Activator Bundle-Localization: plugin Require-Bundle: org.eclipse.ui, + org.eclipse.core.expressions;bundle-version="3.4.0", org.eclipse.core.runtime, - org.eclipse.rse.services;bundle-version="[3.0.0,4.0.0)", org.eclipse.core.resources, + org.eclipse.rse.services;bundle-version="[3.0.0,4.0.0)", org.eclipse.rse.core;bundle-version="[3.0.0,4.0.0)", org.eclipse.rse.ui;bundle-version="[3.0.0,4.0.0)" Bundle-ActivationPolicy: lazy diff --git a/rse/plugins/org.eclipse.rse.subsystems.files.core/plugin.xml b/rse/plugins/org.eclipse.rse.subsystems.files.core/plugin.xml index c8b39b1e27c..c40c90aa47c 100644 --- a/rse/plugins/org.eclipse.rse.subsystems.files.core/plugin.xml +++ b/rse/plugins/org.eclipse.rse.subsystems.files.core/plugin.xml @@ -58,5 +58,17 @@ - - \ No newline at end of file + + + + + + + + + diff --git a/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/internal/subsystems/files/core/RemoteFilePropertyTester.java b/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/internal/subsystems/files/core/RemoteFilePropertyTester.java new file mode 100644 index 00000000000..9912490760e --- /dev/null +++ b/rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/internal/subsystems/files/core/RemoteFilePropertyTester.java @@ -0,0 +1,27 @@ +/******************************************************************************** + * Copyright (c) 2008 MontaVista Software, Inc. + * 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: + * Anna Dushistova (MontaVista) - initial API and implementation + ********************************************************************************/ +package org.eclipse.rse.internal.subsystems.files.core; + +import org.eclipse.core.expressions.PropertyTester; +import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile; + +public class RemoteFilePropertyTester extends PropertyTester { + + public boolean test(Object receiver, String property, Object[] args, + Object expectedValue) { + boolean test = ((Boolean) expectedValue).booleanValue(); + if (receiver != null && receiver instanceof IRemoteFile) { + return ((IRemoteFile) receiver).isDirectory() && test; + + } + return !test; + } + +} diff --git a/rse/plugins/org.eclipse.rse.terminals.ui/META-INF/MANIFEST.MF b/rse/plugins/org.eclipse.rse.terminals.ui/META-INF/MANIFEST.MF index 7f3f40f5b26..13793373583 100644 --- a/rse/plugins/org.eclipse.rse.terminals.ui/META-INF/MANIFEST.MF +++ b/rse/plugins/org.eclipse.rse.terminals.ui/META-INF/MANIFEST.MF @@ -4,11 +4,11 @@ Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.rse.terminals.ui;singleton:=true Bundle-Version: 0.1.0.qualifier Bundle-Activator: org.eclipse.rse.internal.terminals.ui.Activator -Require-Bundle: org.eclipse.ui, - org.eclipse.core.runtime, - org.eclipse.rse.services;bundle-version="[3.0.0,4.0.0)", +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.core.expressions;bundle-version="[3.0.0,4.0.0)", + org.eclipse.ui, org.eclipse.ui.views, - org.eclipse.rse.subsystems.files.core;bundle-version="[3.0.0,4.0.0)", + org.eclipse.rse.services;bundle-version="[3.0.0,4.0.0)", org.eclipse.rse.core;bundle-version="[3.0.0,4.0.0)", org.eclipse.rse.ui;bundle-version="[3.0.0,4.0.0)", org.eclipse.rse.subsystems.terminals.core;bundle-version="[0.1.0,0.2.0)", diff --git a/rse/plugins/org.eclipse.rse.terminals.ui/plugin.properties b/rse/plugins/org.eclipse.rse.terminals.ui/plugin.properties index a27914b3dd8..020475677d8 100644 --- a/rse/plugins/org.eclipse.rse.terminals.ui/plugin.properties +++ b/rse/plugins/org.eclipse.rse.terminals.ui/plugin.properties @@ -18,4 +18,7 @@ providerName = Eclipse.org terminalsView.name = Terminals +Launch_Terminal_Label =Launch Terminal Launch_Terminal_Tooltip=Launch a terminal from the selected directory + +terminalsCategory.name = Terminal Commands \ No newline at end of file diff --git a/rse/plugins/org.eclipse.rse.terminals.ui/plugin.xml b/rse/plugins/org.eclipse.rse.terminals.ui/plugin.xml index be56faf8257..72a6a412833 100644 --- a/rse/plugins/org.eclipse.rse.terminals.ui/plugin.xml +++ b/rse/plugins/org.eclipse.rse.terminals.ui/plugin.xml @@ -47,25 +47,57 @@ Anna Dushistova (MontaVista) - [227535] [rseterminal][api] terminals.ui should id="org.eclipse.rse.terminals.ui.view.TerminalView"> - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/TerminalServiceHelper.java b/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/TerminalServiceHelper.java index 1bf74142ebe..1dc17fee6a3 100644 --- a/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/TerminalServiceHelper.java +++ b/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/TerminalServiceHelper.java @@ -7,6 +7,7 @@ * Contributors: * Yu-Fen Kuo (MontaVista) - initial API and implementation * Yu-Fen Kuo (MontaVista) - [227572] RSE Terminal doesn't reset the "connected" state when the shell exits + * Anna Dushistova (MontaVista) - [227535] [rseterminal][api] terminals.ui should not depend on files.core ********************************************************************************/ package org.eclipse.rse.internal.terminals.ui; @@ -21,7 +22,6 @@ import org.eclipse.rse.core.subsystems.ISubSystem; import org.eclipse.rse.internal.services.terminals.ITerminalShell; import org.eclipse.rse.internal.terminals.ui.views.RSETerminalConnector; import org.eclipse.rse.internal.terminals.ui.views.TerminalViewTab; -import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile; import org.eclipse.rse.subsystems.terminals.core.ITerminalServiceSubSystem; import org.eclipse.rse.subsystems.terminals.core.elements.TerminalElement; import org.eclipse.swt.custom.CTabItem; @@ -37,19 +37,6 @@ public class TerminalServiceHelper { super(); } - /** - * Helper method to return the path to change-directory to, given a selected - * remote file object - */ - public static String getWorkingDirectory(IRemoteFile selectedFile) { - String path = null; - if (selectedFile.isDirectory()) - path = selectedFile.getAbsolutePath(); - else - path = selectedFile.getParentPath(); - return path; - } - public static ITerminalServiceSubSystem getTerminalSubSystem( IHost connection) { ISystemRegistry systemRegistry = RSECorePlugin.getTheSystemRegistry(); diff --git a/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/actions/LaunchTerminalAction.java b/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/actions/LaunchTerminalAction.java deleted file mode 100644 index 49e38729ae9..00000000000 --- a/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/actions/LaunchTerminalAction.java +++ /dev/null @@ -1,273 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2002, 2008 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: - * Martin Oberhuber (Wind River) - Fix 154874 - handle files with space or $ in the name - * Martin Oberhuber (Wind River) - [186128] Move IProgressMonitor last in all API - * Martin Oberhuber (Wind River) - [174945] Remove obsolete icons from rse.shells.ui - * Martin Oberhuber (Wind River) - [186640] Add IRSESystemType.testProperty() - * Martin Oberhuber (Wind River) - [187218] Fix error reporting for connect() - * Kevin Doyle (IBM) - [187083] Launch Shell action available on folders inside virtual files - * David McKnight (IBM) - [216252] [api][nls] Resource Strings specific to subsystems should be moved from rse.ui into files.ui / shells.ui / processes.ui where possible - * David McKnight (IBM) - [220547] [api][breaking] SimpleSystemMessage needs to specify a message id and some messages should be shared - * Yu-Fen Kuo (MontaVista) - Adapted from SystemCommandAction - * Martin Oberhuber (Wind River) - [149285] [ssh] multiple prompts and errors in case of incorrect username - ********************************************************************************/ - -package org.eclipse.rse.internal.terminals.ui.actions; - -import java.util.Iterator; - -import org.eclipse.core.runtime.IAdaptable; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.rse.core.filters.ISystemFilterReference; -import org.eclipse.rse.core.model.IHost; -import org.eclipse.rse.core.subsystems.ISubSystem; -import org.eclipse.rse.internal.terminals.ui.Activator; -import org.eclipse.rse.internal.terminals.ui.TerminalServiceHelper; -import org.eclipse.rse.internal.terminals.ui.views.TerminalViewer; -import org.eclipse.rse.internal.terminals.ui.views.TerminalsUI; -import org.eclipse.rse.services.clientserver.PathUtility; -import org.eclipse.rse.services.clientserver.archiveutils.ArchiveHandlerManager; -import org.eclipse.rse.services.clientserver.messages.SystemMessageException; -import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile; -import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem; -import org.eclipse.rse.subsystems.terminals.core.ITerminalServiceSubSystem; -import org.eclipse.rse.subsystems.terminals.core.elements.TerminalElement; -import org.eclipse.rse.ui.SystemBasePlugin; -import org.eclipse.rse.ui.actions.SystemBaseAction; -import org.eclipse.rse.ui.view.ISystemViewElementAdapter; -import org.eclipse.swt.custom.CTabItem; -import org.eclipse.swt.widgets.Shell; - -/** - * action to launch a terminal from either the terminal subsystem or selected - * directory - * - */ -public class LaunchTerminalAction extends SystemBaseAction { - - private ITerminalServiceSubSystem subSystem; - private IRemoteFile selected; - private ISystemFilterReference selectedFilterRef; - - public LaunchTerminalAction(String text, ImageDescriptor image, Shell shell) { - super(text, image, shell); - } - - /** - * Constructor for LaunchTerminalAction - * - * @param parent - * @param subSystem - * the terminal subsystem to use if launching a terminal - */ - public LaunchTerminalAction(Shell parent, - ITerminalServiceSubSystem subSystem) { - this(Activator.getResourceString("LaunchTerminalAction.title"), //$NON-NLS-1$ - Activator.getResourceString("LaunchTerminalAction.tooltip"), //$NON-NLS-1$ - parent, subSystem); - } - - /** - * Constructor for LaunchTerminalAction - * - * @param title - * title of the action - * @param tooltip - * tooltip of the action - * @param parent - * @param subSystem - * the terminal subsystem to use if launching a terminal - */ - public LaunchTerminalAction(String title, String tooltip, Shell parent, - ITerminalServiceSubSystem subSystem) { - this(title, tooltip, Activator.getDefault().getImageDescriptor( - Activator.ICON_ID_LAUNCH_TERMINAL), parent, - - subSystem); - } - - /** - * Constructor for LaunchTerminalAction - * - * @param title - * title of the action - * @param tooltip - * tooltip of the action - * @param descriptor - * image descriptor to be displayed for this action - * @param parent - * @param subSystem - * the terminal subsystem to use if launching a terminal - */ - public LaunchTerminalAction(String title, String tooltip, - ImageDescriptor descriptor, Shell parent, - ITerminalServiceSubSystem subSystem) { - super(title, tooltip, descriptor, parent); - this.subSystem = subSystem; - - } - - /** - * @return the terminal subsystem - */ - public ITerminalServiceSubSystem getSubSystem() { - return subSystem; - } - - /** - * settor for the terminal subsystem - * - * @param subSystem - * terminal subsystem - */ - public void setSubSystem(ITerminalServiceSubSystem subSystem) { - this.subSystem = subSystem; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.rse.ui.actions.SystemBaseAction#updateSelection(org.eclipse.jface.viewers.IStructuredSelection) - */ - public boolean updateSelection(IStructuredSelection selection) { - boolean enable = false; - - Iterator e = selection.iterator(); - Object selectedObject = e.next(); - - if (selectedObject != null) { - if (selectedObject instanceof ISystemFilterReference) { - selectedFilterRef = (ISystemFilterReference) selectedObject; - selected = null; - enable = true; - } - if (selectedObject instanceof IRemoteFile) { - selected = (IRemoteFile) selectedObject; - selectedFilterRef = null; - IHost host = selected.getParentRemoteFileSubSystem().getHost(); - subSystem = TerminalServiceHelper.getTerminalSubSystem(host); - // If the selected object is a virtual folder then we need to - // select the parent - // of the archive - if (ArchiveHandlerManager.isVirtual(selected.getAbsolutePath())) { - IRemoteFileSubSystem rfss = selected - .getParentRemoteFileSubSystem(); - String file = selected.getAbsolutePath(); - // Get the archive's path - file = file.substring(0, file - .indexOf(ArchiveHandlerManager.VIRTUAL_SEPARATOR)); - // Get the parent of the archive's path - file = file.substring(0, file.lastIndexOf(selected - .getSeparator())); - try { - selected = rfss.getRemoteFileObject(file, null); - } catch (SystemMessageException exc) { - } - } - if (!selected.isFile()) { - enable = checkObjectType(selected); - } - } else if (selectedObject instanceof ITerminalServiceSubSystem) { - subSystem = (ITerminalServiceSubSystem) selectedObject; - enable = true; - } - } - - return enable; - } - - private ITerminalServiceSubSystem getTerminalSubSystem() { - IHost currentHost = null; - - if (selectedFilterRef != null) { - ISystemViewElementAdapter adapter = (ISystemViewElementAdapter) ((IAdaptable) selectedFilterRef) - .getAdapter(ISystemViewElementAdapter.class); - if (adapter != null) { - ISubSystem ss = adapter.getSubSystem(selectedFilterRef); - if (ss != null) { - currentHost = ss.getHost(); - } - } - } else if (selected != null) { - currentHost = selected.getSystemConnection(); - } - if (currentHost != null) { - return TerminalServiceHelper.getTerminalSubSystem(currentHost); - - } - - return getSubSystem(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.rse.ui.actions.SystemBaseAction#run() - */ - public void run() { - if (selectedFilterRef != null) { - ISystemViewElementAdapter adapter = (ISystemViewElementAdapter) ((IAdaptable) selectedFilterRef) - .getAdapter(ISystemViewElementAdapter.class); - if (adapter != null) { - ISubSystem ss = adapter.getSubSystem(selectedFilterRef); - if (ss != null) { - Object target = ss.getTargetForFilter(selectedFilterRef); - if (target != null && target instanceof IRemoteFile) { - selected = (IRemoteFile) target; - } - } - } - } - - ITerminalServiceSubSystem terminalSubSystem = getTerminalSubSystem(); - if (terminalSubSystem != null) { - TerminalsUI terminalsUI = TerminalsUI.getInstance(); - TerminalViewer viewer = terminalsUI.activateTerminalsView(); - if (!terminalSubSystem.isConnected()) { - try { - terminalSubSystem.connect(new NullProgressMonitor(), false); - } catch (OperationCanceledException e) { - // user canceled, return silently - return; - } catch (Exception e) { - SystemBasePlugin.logError(e.getLocalizedMessage(), e); - } - } - if (terminalSubSystem.isConnected()) { - CTabItem tab = viewer.getTabFolder().createTabItem( - terminalSubSystem.getHost(), getInitialDirectoryCmd()); - TerminalElement element = TerminalServiceHelper - .createTerminalElement(tab, terminalSubSystem); - terminalSubSystem.addChild(element); - - } - } - } - - private String getInitialDirectoryCmd() { - if (selected == null) - return null; - String path = TerminalServiceHelper.getWorkingDirectory(selected); - - String cdCmd = "cd " + PathUtility.enQuoteUnix(path); //$NON-NLS-1$ - if (getTerminalSubSystem().getHost().getSystemType().isWindows()) { - cdCmd = "cd /d \"" + path + '\"'; //$NON-NLS-1$ - } - return cdCmd + "\r"; //$NON-NLS-1$ - } - -} diff --git a/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/actions/LaunchTerminalActionDelegate.java b/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/actions/LaunchTerminalActionDelegate.java deleted file mode 100644 index 330586742a2..00000000000 --- a/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/actions/LaunchTerminalActionDelegate.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************** - * Copyright (c) 2006, 2008 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: - * Martin Oberhuber (Wind River) - [168870] refactor org.eclipse.rse.core package of the UI plugin - * Yu-Fen Kuo (MontaVista) - Adapted from LaunchShellActionDelegate - ********************************************************************************/ - -package org.eclipse.rse.internal.terminals.ui.actions; - -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.rse.ui.SystemBasePlugin; -import org.eclipse.swt.widgets.Event; -import org.eclipse.ui.IActionDelegate; -import org.eclipse.ui.actions.ActionDelegate; - -public class LaunchTerminalActionDelegate extends ActionDelegate implements - IActionDelegate { - - private LaunchTerminalAction launchTerminalAction; - private ISelection selection; - - public void run(IAction action) { - if (launchTerminalAction == null) { - launchTerminalAction = new LaunchTerminalAction(SystemBasePlugin - .getActiveWorkbenchShell(), null); - } - launchTerminalAction.updateSelection((IStructuredSelection) selection); - launchTerminalAction.run(); - } - - public void runWithEvent(IAction action, Event event) { - super.runWithEvent(action, event); - } - - public void selectionChanged(IAction action, ISelection selection) { - super.selectionChanged(action, selection); - this.selection = selection; - } - - public LaunchTerminalActionDelegate() { - } - -} diff --git a/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/configuration/adapter/TerminalServiceSubSystemConfigurationAdapter.java b/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/configuration/adapter/TerminalServiceSubSystemConfigurationAdapter.java index 73e72f880e8..be4296243f2 100644 --- a/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/configuration/adapter/TerminalServiceSubSystemConfigurationAdapter.java +++ b/rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/configuration/adapter/TerminalServiceSubSystemConfigurationAdapter.java @@ -12,69 +12,21 @@ * * Contributors: * Yu-Fen Kuo (MontaVista) - Adapted from ShellServiceSubSystemConfigurationAdapter + * Anna Dushistova (MontaVista) - [227535] [rseterminal][api] terminals.ui should not depend on files.core ********************************************************************************/ package org.eclipse.rse.internal.terminals.ui.configuration.adapter; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.jface.action.IAction; import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.rse.core.subsystems.ISubSystem; import org.eclipse.rse.core.subsystems.ISubSystemConfiguration; import org.eclipse.rse.internal.terminals.ui.Activator; -import org.eclipse.rse.internal.terminals.ui.TerminalServiceHelper; -import org.eclipse.rse.internal.terminals.ui.actions.LaunchTerminalAction; -import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem; -import org.eclipse.rse.subsystems.terminals.core.ITerminalServiceSubSystem; -import org.eclipse.rse.ui.SystemMenuManager; import org.eclipse.rse.ui.view.SubSystemConfigurationAdapter; -import org.eclipse.swt.widgets.Shell; public class TerminalServiceSubSystemConfigurationAdapter extends SubSystemConfigurationAdapter { - protected LaunchTerminalAction terminalAction; protected ImageDescriptor activeImageDescriptor; protected ImageDescriptor inactiveImageDescriptor; - public IAction[] getSubSystemActions(SystemMenuManager menu, - IStructuredSelection selection, Shell shell, String menuGroup, - ISubSystemConfiguration factory, ISubSystem selectedSubSystem) { - List allActions = new ArrayList(); - IAction[] baseActions = super.getSubSystemActions(menu, selection, - shell, menuGroup, factory, selectedSubSystem); - for (int i = 0; i < baseActions.length; i++) { - allActions.add(baseActions[i]); - } - - // launching terminals and finding files - if (selectedSubSystem instanceof IRemoteFileSubSystem) { - IRemoteFileSubSystem fs = (IRemoteFileSubSystem) selectedSubSystem; - ITerminalServiceSubSystem cmdSubSystem = TerminalServiceHelper - .getTerminalSubSystem(fs.getHost()); - if (cmdSubSystem != null) { - allActions.add(getTerminalAction(cmdSubSystem, shell)); - } - } else if (selectedSubSystem instanceof ITerminalServiceSubSystem) { - allActions.add(getTerminalAction( - (ITerminalServiceSubSystem) selectedSubSystem, shell)); - } - - return (IAction[]) allActions.toArray(new IAction[allActions.size()]); - } - - public IAction getTerminalAction( - ITerminalServiceSubSystem selectedSubSystem, Shell shell) { - if (terminalAction == null) { - terminalAction = new LaunchTerminalAction(shell, selectedSubSystem); - } else { - terminalAction.setSubSystem(selectedSubSystem); - } - return terminalAction; - } - public ImageDescriptor getImage(ISubSystemConfiguration config) { if (inactiveImageDescriptor == null) { inactiveImageDescriptor = Activator.getDefault() diff --git a/rse/plugins/org.eclipse.rse.ui/META-INF/MANIFEST.MF b/rse/plugins/org.eclipse.rse.ui/META-INF/MANIFEST.MF index 0509acaa379..eaaeeec4b50 100644 --- a/rse/plugins/org.eclipse.rse.ui/META-INF/MANIFEST.MF +++ b/rse/plugins/org.eclipse.rse.ui/META-INF/MANIFEST.MF @@ -5,15 +5,16 @@ Bundle-SymbolicName: org.eclipse.rse.ui;singleton:=true Bundle-Version: 3.0.0.qualifier Bundle-Activator: org.eclipse.rse.ui.RSEUIPlugin Bundle-Localization: plugin -Require-Bundle: org.eclipse.ui, - org.eclipse.core.runtime, - org.eclipse.rse.services;bundle-version="[3.0.0,4.0.0)", +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.core.expressions;bundle-version="3.4.0", org.eclipse.core.resources, org.eclipse.jface.text, - org.eclipse.ui.views, + org.eclipse.ui, org.eclipse.ui.forms, org.eclipse.ui.ide, + org.eclipse.ui.views, org.eclipse.ui.workbench.texteditor, + org.eclipse.rse.services;bundle-version="[3.0.0,4.0.0)", org.eclipse.rse.core;bundle-version="[3.0.0,4.0.0)" Import-Package: com.ibm.icu.lang, com.ibm.icu.text, diff --git a/rse/plugins/org.eclipse.rse.ui/plugin.xml b/rse/plugins/org.eclipse.rse.ui/plugin.xml index e16ce0ada35..06d6a780954 100644 --- a/rse/plugins/org.eclipse.rse.ui/plugin.xml +++ b/rse/plugins/org.eclipse.rse.ui/plugin.xml @@ -16,6 +16,7 @@ Martin Oberhuber (Wind River) - [185554] Remove dynamicPopupMenuExtensions exten Martin Oberhuber (Wind River) - [186525] Move keystoreProviders to core Martin Oberhuber (Wind River) - [186523] Move subsystemConfigurations from UI to core Martin Oberhuber (Wind River) - [185552] Remove remoteSystemsViewPreferencesActions extension point +Anna Dushistova (MontaVista) - [227535] [rseterminal][api] terminals.ui should not depend on files.core --> @@ -491,4 +492,14 @@ Martin Oberhuber (Wind River) - [185552] Remove remoteSystemsViewPreferencesActi + + + + + diff --git a/rse/plugins/org.eclipse.rse.ui/subsystems/org/eclipse/rse/internal/ui/subsystems/SubSystemPropertyTester.java b/rse/plugins/org.eclipse.rse.ui/subsystems/org/eclipse/rse/internal/ui/subsystems/SubSystemPropertyTester.java new file mode 100644 index 00000000000..6d5ea49a68a --- /dev/null +++ b/rse/plugins/org.eclipse.rse.ui/subsystems/org/eclipse/rse/internal/ui/subsystems/SubSystemPropertyTester.java @@ -0,0 +1,55 @@ +/******************************************************************************** + * Copyright (c) 2008 MontaVista Software, Inc. + * 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: + * Anna Dushistova (MontaVista) - [227535] [rseterminal][api] terminals.ui should not depend on files.core + ********************************************************************************/ +package org.eclipse.rse.internal.ui.subsystems; + +import org.eclipse.core.expressions.PropertyTester; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.rse.core.RSECorePlugin; +import org.eclipse.rse.core.model.IHost; +import org.eclipse.rse.core.model.ISystemRegistry; +import org.eclipse.rse.core.subsystems.ISubSystem; +import org.eclipse.rse.core.subsystems.ISubSystemConfigurationProxy; +import org.eclipse.rse.ui.view.ISystemViewElementAdapter; + +public class SubSystemPropertyTester extends PropertyTester { + + public boolean test(Object receiver, String property, Object[] args, + Object expectedValue) { + if (property.toLowerCase().equals("hassubsystemcategory")) { //$NON-NLS-1$ + + boolean test = ((Boolean) expectedValue).booleanValue(); + + ISystemViewElementAdapter adapter = (ISystemViewElementAdapter) ((IAdaptable) receiver) + .getAdapter(ISystemViewElementAdapter.class); + if (adapter != null) { + ISubSystem subsystem = adapter.getSubSystem(receiver); + if (subsystem != null) { + IHost host = subsystem.getHost(); + ISystemRegistry registry = RSECorePlugin + .getTheSystemRegistry(); + String category = (String) args[0]; + ISubSystemConfigurationProxy[] proxies = registry + .getSubSystemConfigurationProxiesByCategory(category); + for (int i = 0; i < proxies.length; i++) { + if (proxies[i] + .appliesToSystemType(host.getSystemType())) { + return test; + } + } + } + return !test; + } else { + return !test; + } + } + return false; + } + +}