From a6537200bb11581004a2e1a576c1c4873acd3450 Mon Sep 17 00:00:00 2001
From: Martin Oberhuber < martin.oberhuber@windriver.com>
Date: Tue, 20 May 2008 21:32:40 +0000
Subject: [PATCH] [227535] [rseterminal][api] terminals.ui should not depend on
files.core (apply patch from Anna Dushistova)
---
.../META-INF/MANIFEST.MF | 3 +-
.../plugin.xml | 16 +-
.../files/core/RemoteFilePropertyTester.java | 27 ++
.../META-INF/MANIFEST.MF | 8 +-
.../plugin.properties | 3 +
.../org.eclipse.rse.terminals.ui/plugin.xml | 74 +++--
.../terminals/ui/TerminalServiceHelper.java | 15 +-
.../ui/actions/LaunchTerminalAction.java | 273 ------------------
.../actions/LaunchTerminalActionDelegate.java | 55 ----
...lServiceSubSystemConfigurationAdapter.java | 50 +---
.../org.eclipse.rse.ui/META-INF/MANIFEST.MF | 9 +-
rse/plugins/org.eclipse.rse.ui/plugin.xml | 11 +
.../subsystems/SubSystemPropertyTester.java | 55 ++++
13 files changed, 176 insertions(+), 423 deletions(-)
create mode 100644 rse/plugins/org.eclipse.rse.subsystems.files.core/src/org/eclipse/rse/internal/subsystems/files/core/RemoteFilePropertyTester.java
delete mode 100644 rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/actions/LaunchTerminalAction.java
delete mode 100644 rse/plugins/org.eclipse.rse.terminals.ui/src/org/eclipse/rse/internal/terminals/ui/actions/LaunchTerminalActionDelegate.java
create mode 100644 rse/plugins/org.eclipse.rse.ui/subsystems/org/eclipse/rse/internal/ui/subsystems/SubSystemPropertyTester.java
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;
+ }
+
+}