if (part instanceof FilterView) {
FilterView tcv = (FilterView) part;
ISelection selection = tcv.getSite().getSelectionProvider().getSelection();
- if (!selection.isEmpty()) {
+ // only enable if tree is in focus
+ if (!selection.isEmpty() && tcv.isTreeInFocus()) {
return true;
}
}
if (part instanceof FilterView) {
FilterView tcv = (FilterView) part;
ISelection selection = tcv.getSite().getSelectionProvider().getSelection();
- if (!selection.isEmpty()) {
+ // only enable if tree is in focus
+ if (!selection.isEmpty() && tcv.isTreeInFocus()) {
return true;
}
}
fViewer.setFocus();
}
+ /**
+ * @return whether the tree is in focus or not
+ */
+ public boolean isTreeInFocus() {
+ return fViewer.isTreeInFocus();
+ }
+
@Override
public String toString() {
return "[FilterView]"; //$NON-NLS-1$
fViewer.removeSelectionChangedListener(listener);
}
+ @Override
+ public boolean setFocus() {
+ return fViewer.getControl().setFocus();
+ }
+
+ /**
+ * @return whether the tree is in focus or not
+ */
+ public boolean isTreeInFocus() {
+ return fViewer.getControl().isFocusControl();
+ }
+
/**
* Gets the TreeViewer displaying filters
*
sel = v.getFilterRoot();
}
ITmfFilterTreeNode objectToPaste = FilterEditUtils.getTransferredTreeNode();
- if (objectToPaste != null &&
+ if (v.isTreeInFocus() &&
+ objectToPaste != null &&
(sel.getValidChildren().contains(objectToPaste.getNodeName())
|| TmfFilterNode.NODE_NAME.equals(objectToPaste.getNodeName()))) {
return true;