Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Schwarz2014-01-10 13:47:04 +0000
committerTobias Schwarz2014-01-10 13:47:04 +0000
commit686d83e4bdd58f9bd9fd9dda6ca6ed192efde91f (patch)
tree6e71f29474a39399f63654dafab6c84dcb2ffad2
parent22a0247266417b1b00c3a5327cd8a98dc76e7dbd (diff)
downloadorg.eclipse.tcf-686d83e4bdd58f9bd9fd9dda6ca6ed192efde91f.tar.gz
org.eclipse.tcf-686d83e4bdd58f9bd9fd9dda6ca6ed192efde91f.tar.xz
org.eclipse.tcf-686d83e4bdd58f9bd9fd9dda6ca6ed192efde91f.zip
Target Explorer: fix command context
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/ContentProvider.java12
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/ConnectableCommandHandler.java31
2 files changed, 22 insertions, 21 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/ContentProvider.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/ContentProvider.java
index 5a63a9634..7ac0cd83f 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/ContentProvider.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.processes.ui/src/org/eclipse/tcf/te/tcf/processes/ui/editor/tree/ContentProvider.java
@@ -58,15 +58,15 @@ public class ContentProvider extends org.eclipse.tcf.te.tcf.processes.ui.navigat
}
/* (non-Javadoc)
- * @see org.eclipse.tcf.te.tcf.processes.ui.navigator.runtime.ContentProvider#getChildren(java.lang.Object)
- */
- @Override
- public Object[] getChildren(Object parentElement) {
+ * @see org.eclipse.tcf.te.tcf.processes.ui.navigator.runtime.ContentProvider#getElements(java.lang.Object)
+ */
+ @Override
+ public Object[] getElements(Object inputElement) {
if (peerNode != null && peerNode.getConnectState() == IConnectable.STATE_CONNECTED) {
- return super.getChildren(parentElement);
+ return super.getElements(inputElement);
}
return new Object[]{new MessageModelNode(Messages.ContentProvider_notConnected, IStatus.INFO, false)};
- }
+ }
/* (non-Javadoc)
* @see org.eclipse.tcf.te.tcf.processes.ui.navigator.runtime.ContentProvider#isRuntimeModelNodeVisible()
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/ConnectableCommandHandler.java b/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/ConnectableCommandHandler.java
index bfda04ef6..2d0572530 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/ConnectableCommandHandler.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.ui/src/org/eclipse/tcf/te/ui/handler/ConnectableCommandHandler.java
@@ -9,16 +9,15 @@
*******************************************************************************/
package org.eclipse.tcf.te.ui.handler;
-import java.util.Iterator;
import java.util.Map;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.tcf.te.core.interfaces.IConnectable;
import org.eclipse.tcf.te.core.utils.ConnectStateHelper;
import org.eclipse.ui.handlers.HandlerUtil;
@@ -39,18 +38,20 @@ public class ConnectableCommandHandler extends AbstractEditorCommandHandler {
public Object internalExecute(ExecutionEvent event) throws ExecutionException {
Assert.isTrue(action >= 0);
- ISelection selection = HandlerUtil.getCurrentSelection(event);
-
- if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
- Iterator<Object> iterator = ((IStructuredSelection)selection).iterator();
- while (iterator.hasNext()) {
- Object element = iterator.next();
- if (element instanceof IConnectable) {
- IConnectable connectable = (IConnectable)element;
- if (connectable.isConnectStateChangeAllowed(action)) {
- connectable.changeConnectState(action, null, null);
- }
- }
+ Object element = HandlerUtil.getActiveEditorInput(event);
+ IConnectable connectable = null;
+ if (element instanceof IConnectable) {
+ connectable = (IConnectable)element;
+ }
+ else if (element instanceof IAdaptable) {
+ connectable = (IConnectable)((IAdaptable)element).getAdapter(IConnectable.class);
+ }
+ if (connectable == null) {
+ connectable = (IConnectable)Platform.getAdapterManager().getAdapter(element, IConnectable.class);
+ }
+ if (connectable != null) {
+ if (connectable.isConnectStateChangeAllowed(action)) {
+ connectable.changeConnectState(action, null, null);
}
}

Back to the top