tmf: fix handler activations in FiltersView (Bug 458579)
authorBernd Hufmann <Bernd.Hufmann@ericsson.com>
Thu, 29 Jan 2015 11:58:32 +0000 (06:58 -0500)
committerBernd Hufmann <bernd.hufmann@ericsson.com>
Wed, 4 Feb 2015 20:47:23 +0000 (15:47 -0500)
Change-Id: I516738cb42617cf7abe41484259f6e3892bb76f4
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/40613
Reviewed-by: Hudson CI
Reviewed-by: Patrick Tasse <patrick.tasse@gmail.com>
Tested-by: Patrick Tasse <patrick.tasse@gmail.com>
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/CopyHandler.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/DeleteHandler.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterView.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/FilterViewer.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/filter/PasteHandler.java

index eecdb080a945cec4445e7c6080cbf78e741a97c1..34aa28876a285185a52ce6d2be523063df07faac 100644 (file)
@@ -70,7 +70,8 @@ public class CopyHandler extends AbstractHandler {
         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;
             }
         }
index d4722ba1879faae54605e1197027511feadf96e2..150b197190a09df777e973e470a2987ea5d29675 100644 (file)
@@ -66,7 +66,8 @@ public class DeleteHandler extends AbstractHandler {
         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;
             }
         }
index 62d1a7f8942ae12c13235bc8c213173f2fd3b999..243184928173ef6c38e5c7a4b918733dd9d3d9a1 100644 (file)
@@ -192,6 +192,13 @@ public class FilterView extends TmfView {
         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$
index 18aa33fb2ac1582414da3d86484830427731b2bd..fab45d592a8c06cd079a898aa361b8ae36c555f3 100644 (file)
@@ -356,6 +356,18 @@ class FilterViewer extends Composite {
         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
      *
index c6e08e8c001d75e6ae142dd95c1f6f28e3185194..3f1141b0ef526ef71ed4e7f283e7c7de22635756 100644 (file)
@@ -78,7 +78,8 @@ public class PasteHandler extends AbstractHandler {
             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;
This page took 0.027592 seconds and 5 git commands to generate.