tmf: Fix set focus on SWT Chart viewers
authorPatrick Tasse <patrick.tasse@gmail.com>
Fri, 15 May 2015 16:00:23 +0000 (12:00 -0400)
committerPatrick Tasse <patrick.tasse@gmail.com>
Tue, 19 May 2015 18:04:39 +0000 (14:04 -0400)
Views should give focus to the SWT chart control on setFocus().

The SWT chart control should give focus to the plot area on setFocus().

The SWT chart control should give focus to the plot area on mouse down.

Change-Id: Ic442d7c75c834c281de2c37d0c01363cd319bf27
Signed-off-by: Patrick Tasse <patrick.tasse@gmail.com>
Reviewed-on: https://git.eclipse.org/r/47980
Reviewed-by: Hudson CI
org.eclipse.tracecompass.analysis.os.linux.ui/src/org/eclipse/tracecompass/analysis/os/linux/ui/views/cpuusage/CpuUsageView.java
org.eclipse.tracecompass.examples/src/org/eclipse/tracecompass/examples/ui/views/histogram/NewHistogramView.java
org.eclipse.tracecompass.lttng2.ust.ui/src/org/eclipse/tracecompass/internal/lttng2/ust/ui/views/memusage/MemoryUsageView.java
org.eclipse.tracecompass.tmf.analysis.xml.ui/src/org/eclipse/tracecompass/internal/tmf/analysis/xml/ui/views/xychart/XmlXYView.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/viewers/xycharts/TmfXYChartViewer.java
org.eclipse.tracecompass.tmf.ui/src/org/eclipse/tracecompass/tmf/ui/views/TmfChartView.java

index 3ee45ae7acf2d3fc446169d2d7f2348fd68d3b6c..a2b899a0f98f2f6244aba2ba77d2ae66218c64d9 100644 (file)
@@ -147,6 +147,7 @@ public class CpuUsageView extends TmfView implements ITmfTimeAligned {
 
     @Override
     public void setFocus() {
+        fXYViewer.getControl().setFocus();
     }
 
     @Override
index 5335eb9b26a99116875b3013dd11e39e7bf84d8e..66955afa0c5101b970f487d0daeb605c7390c67c 100644 (file)
@@ -32,10 +32,6 @@ public class NewHistogramView extends TmfChartView {
         super(ID);
     }
 
-    @Override
-    public void setFocus() {
-    }
-
     @Override
     protected TmfXYChartViewer createChartViewer(Composite parent) {
         return new NewHistogramViewer(parent);
index 9a8fc8317f81e1ab9e7d18b5c4db4182cf9660a9..5f523802b57d70f0737ebd7b04fdb3b44d5bbf12 100644 (file)
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2014 Ericsson
+ * Copyright (c) 2014, 2015 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License v1.0 which
@@ -33,10 +33,6 @@ public class MemoryUsageView extends TmfChartView {
         super(Messages.MemoryUsageView_Title);
     }
 
-    @Override
-    public void setFocus() {
-    }
-
     @Override
     protected TmfXYChartViewer createChartViewer(Composite parent) {
         return new MemoryUsageViewer(parent);
index 80de190a35e31d1263f9c6d32da1a6f53a3b91d8..8487aaf119ddcd1194359d48728a6f2566458ddc 100644 (file)
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2014 École Polytechnique de Montréal
+ * Copyright (c) 2014, 2015 École Polytechnique de Montréal
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License v1.0 which
@@ -68,11 +68,6 @@ public class XmlXYView extends TmfChartView {
         setViewTitle();
     }
 
-    @Override
-    public void setFocus() {
-
-    }
-
     private void setViewTitle() {
         /*
          * Get the view element from the XML file. If the element can't be
index ceb24ab4a834043fc5108a1c5bd8546030e3db76..6b2ca15d0e1b6f1b81c6f6d638d2595830cb00e0 100644 (file)
@@ -9,10 +9,13 @@
  * Contributors:
  *   Bernd Hufmann - Initial API and implementation
  *   Geneviève Bastien - Moved some methods to TmfTimeViewer
+ *   Patrick Tasse - Fix setFocus
  **********************************************************************/
 package org.eclipse.tracecompass.tmf.ui.viewers.xycharts;
 
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
@@ -76,7 +79,18 @@ public abstract class TmfXYChartViewer extends TmfTimeViewer implements ITmfChar
      */
     public TmfXYChartViewer(Composite parent, String title, String xLabel, String yLabel) {
         super(parent, title);
-        fSwtChart = new Chart(parent, SWT.NONE);
+        fSwtChart = new Chart(parent, SWT.NONE) {
+            @Override
+            public boolean setFocus() {
+                return fSwtChart.getPlotArea().setFocus();
+            }
+        };
+        fSwtChart.getPlotArea().addMouseListener(new MouseAdapter() {
+            @Override
+            public void mouseDown(MouseEvent e) {
+                fSwtChart.getPlotArea().setFocus();
+            }
+        });
 
         IAxis xAxis = fSwtChart.getAxisSet().getXAxis(0);
         IAxis yAxis = fSwtChart.getAxisSet().getYAxis(0);
index 2001381b6dd6156dc3f247c2c5acc4a446ffd88e..97c561a91e3dc695a958e4645ac302b6c413c292 100644 (file)
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2013, 2014 Ericsson
+ * Copyright (c) 2013, 2015 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License v1.0 which
@@ -164,6 +164,11 @@ public abstract class TmfChartView extends TmfView implements ITmfTimeAligned {
         }
     }
 
+    @Override
+    public void setFocus() {
+        fChartViewer.getControl().setFocus();
+    }
+
     /**
      * Load the trace into view.
      */
This page took 0.031247 seconds and 5 git commands to generate.