diff options
author | Tobias Schwarz | 2014-01-10 13:47:04 +0000 |
---|---|---|
committer | Tobias Schwarz | 2014-01-10 13:47:04 +0000 |
commit | 686d83e4bdd58f9bd9fd9dda6ca6ed192efde91f (patch) | |
tree | 6e71f29474a39399f63654dafab6c84dcb2ffad2 | |
parent | 22a0247266417b1b00c3a5327cd8a98dc76e7dbd (diff) | |
download | org.eclipse.tcf-686d83e4bdd58f9bd9fd9dda6ca6ed192efde91f.tar.gz org.eclipse.tcf-686d83e4bdd58f9bd9fd9dda6ca6ed192efde91f.tar.xz org.eclipse.tcf-686d83e4bdd58f9bd9fd9dda6ca6ed192efde91f.zip |
Target Explorer: fix command context
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); } } |