Bug 378401: Implementation of time graph widget.
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / timechart / TimeChartView.java
index 90666746054c2e9ee6bb40042f5a479395a31c4b..77d7f0b1f1133ccdf0e3af908f49ac58a184bddc 100644 (file)
@@ -43,22 +43,22 @@ import org.eclipse.linuxtools.tmf.ui.views.colors.ColorSetting;
 import org.eclipse.linuxtools.tmf.ui.views.colors.ColorSettingsManager;\r
 import org.eclipse.linuxtools.tmf.ui.views.colors.IColorSettingsListener;\r
 import org.eclipse.linuxtools.tmf.ui.views.timechart.TimeChartEvent.RankRange;\r
-import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITimeAnalysisViewer;\r
-import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITmfTimeScaleSelectionListener;\r
-import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITmfTimeSelectionListener;\r
-import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TmfTimeScaleSelectionEvent;\r
-import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TmfTimeSelectionEvent;\r
-import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TmfViewerFactory;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITimeGraphRangeListener;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITimeGraphSelectionListener;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.ITimeGraphTimeListener;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TimeGraphRangeUpdateEvent;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TimeGraphSelectionEvent;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TimeGraphTimeEvent;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.TimeGraphViewer;\r
 import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeEvent;\r
-import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITmfTimeAnalysisEntry;\r
+import org.eclipse.linuxtools.tmf.ui.widgets.timegraph.model.ITimeGraphEntry;\r
 import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.layout.GridLayout;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.swt.widgets.Display;\r
 import org.eclipse.ui.IEditorPart;\r
 import org.eclipse.ui.IEditorReference;\r
 \r
-public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionListener, ITmfTimeSelectionListener, IColorSettingsListener,\r
+public class TimeChartView extends TmfView implements ITimeGraphRangeListener, ITimeGraphSelectionListener, ITimeGraphTimeListener, IColorSettingsListener,\r
         IResourceChangeListener, ITmfEventsFilterListener {\r
 \r
     public static final String ID = "org.eclipse.linuxtools.tmf.ui.views.timechart"; //$NON-NLS-1$\r
@@ -66,8 +66,7 @@ public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionList
     private static final int TIMESTAMP_SCALE = -9;\r
 \r
     private final int fDisplayWidth;\r
-    private Composite fComposite;\r
-    private ITimeAnalysisViewer fViewer;\r
+    private TimeGraphViewer fViewer;\r
     private final ArrayList<TimeChartAnalysisEntry> fTimeAnalysisEntries = new ArrayList<TimeChartAnalysisEntry>();\r
     private final Map<ITmfTrace<?>, TimeChartDecorationProvider> fDecorationProviders = new HashMap<ITmfTrace<?>, TimeChartDecorationProvider>();\r
     private ArrayList<DecorateThread> fDecorateThreads;\r
@@ -84,18 +83,11 @@ public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionList
 \r
     @Override\r
     public void createPartControl(Composite parent) {\r
-        fComposite = new Composite(parent, SWT.NONE);\r
-        GridLayout gl = new GridLayout();\r
-        gl.marginWidth = 0;\r
-        gl.marginHeight = 0;\r
-        fComposite.setLayout(gl);\r
-\r
-        fViewer = TmfViewerFactory.createViewer(fComposite, new TimeChartAnalysisProvider());\r
-        fViewer.groupTraces(false);\r
+        fViewer = new TimeGraphViewer(parent, SWT.NONE);\r
+        fViewer.setTimeGraphProvider(new TimeChartAnalysisProvider());\r
         fViewer.setTimeCalendarFormat(true);\r
-        fViewer.setAcceptSelectionAPIcalls(true);\r
-        fViewer.addWidgetTimeScaleSelectionListner(this);\r
-        fViewer.addWidgetSelectionListner(this);\r
+        fViewer.addRangeListener(this);\r
+        fViewer.addSelectionListener(this);\r
         fViewer.setMinimumItemWidth(1);\r
 \r
         IEditorReference[] editorReferences = getSite().getPage().getEditorReferences();\r
@@ -113,7 +105,7 @@ public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionList
                 }\r
             }\r
         }\r
-        fViewer.display(fTimeAnalysisEntries.toArray(new TimeChartAnalysisEntry[0]));\r
+        fViewer.setInput(fTimeAnalysisEntries.toArray(new TimeChartAnalysisEntry[0]));\r
 \r
         fDecorateThreads = new ArrayList<DecorateThread>();\r
         ColorSettingsManager.addColorSettingsListener(this);\r
@@ -132,7 +124,6 @@ public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionList
 \r
     @Override\r
     public void setFocus() {\r
-        super.setFocus();\r
         fViewer.setFocus();\r
     }\r
 \r
@@ -213,9 +204,6 @@ public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionList
     }\r
 \r
     private void refreshViewer(boolean resetTimeIntervals) {\r
-        if (fComposite == null) {\r
-            return;\r
-        }\r
         synchronized (fSyncObj) {\r
             if (fRefreshBusy) {\r
                 fRefreshPending = true;\r
@@ -229,9 +217,9 @@ public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionList
         Display.getDefault().asyncExec(new Runnable() {\r
             @Override\r
             public void run() {\r
-                if (fComposite.isDisposed())\r
+                if (fViewer.getControl().isDisposed())\r
                     return;\r
-                fViewer.display(fTimeAnalysisEntries.toArray(new TimeChartAnalysisEntry[0]));\r
+                fViewer.setInput(fTimeAnalysisEntries.toArray(new TimeChartAnalysisEntry[0]));\r
                 if (reset) {\r
                     fViewer.resetStartFinishTime();\r
                 }\r
@@ -274,7 +262,7 @@ public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionList
         }\r
 \r
         public void itemizeTraceEntry(TimeChartAnalysisEntry timeAnalysisEntry) {\r
-            Iterator<ITimeEvent> iterator = timeAnalysisEntry.getTraceEventsIterator();\r
+            Iterator<ITimeEvent> iterator = timeAnalysisEntry.getTimeEventsIterator();\r
             TimeChartEvent event = null;\r
             boolean hasNext = true;\r
             while (hasNext) {\r
@@ -363,7 +351,7 @@ public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionList
         }\r
 \r
         public void resetTraceEntry(TimeChartAnalysisEntry timeAnalysisEntry) {\r
-            Iterator<ITimeEvent> iterator = timeAnalysisEntry.getTraceEventsIterator();\r
+            Iterator<ITimeEvent> iterator = timeAnalysisEntry.getTimeEventsIterator();\r
             TimeChartEvent event = null;\r
             boolean hasNext = true;\r
             while (!interrupted && hasNext) {\r
@@ -386,7 +374,7 @@ public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionList
         public void decorateTraceEntry(TimeChartAnalysisEntry timeAnalysisEntry, TimeChartEvent parentEvent) {\r
             // Set max duration high to ensure iterator does not consider\r
             // itemized events\r
-            Iterator<ITimeEvent> iterator = timeAnalysisEntry.getTraceEventsIterator(0, Long.MAX_VALUE, Long.MAX_VALUE);\r
+            Iterator<ITimeEvent> iterator = timeAnalysisEntry.getTimeEventsIterator(0, Long.MAX_VALUE, Long.MAX_VALUE);\r
             TimeChartEvent event = null;\r
             int entryPriority = ColorSettingsManager.PRIORITY_NONE;\r
             boolean entryIsBookmarked = false;\r
@@ -480,15 +468,15 @@ public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionList
     // ------------------------------------------------------------------------\r
 \r
     @Override\r
-    public void tsfTmProcessTimeScaleEvent(TmfTimeScaleSelectionEvent event) {\r
-        fStartTime = event.getTime0();\r
-        fStopTime = event.getTime1();\r
+    public void timeRangeUpdated(TimeGraphRangeUpdateEvent event) {\r
+        fStartTime = event.getStartTime();\r
+        fStopTime = event.getEndTime();\r
         itemize(fStartTime, fStopTime);\r
     }\r
 \r
     @Override\r
-    public void tsfTmProcessSelEvent(TmfTimeSelectionEvent event) {\r
-        ITmfTimeAnalysisEntry timeAnalysisEntry = null;\r
+    public void selectionChanged(TimeGraphSelectionEvent event) {\r
+        ITimeGraphEntry timeAnalysisEntry = null;\r
         if (event.getSelection() instanceof TimeChartAnalysisEntry) {\r
             timeAnalysisEntry = (TimeChartAnalysisEntry) event.getSelection();\r
         } else if (event.getSelection() instanceof TimeChartEvent) {\r
@@ -497,7 +485,11 @@ public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionList
         if (timeAnalysisEntry instanceof TimeChartAnalysisEntry) {\r
             broadcast(new TmfTraceSelectedSignal(this, ((TimeChartAnalysisEntry) timeAnalysisEntry).getTrace()));\r
         }\r
-        broadcast(new TmfTimeSynchSignal(this, new TmfTimestamp(event.getSelectedTime(), TIMESTAMP_SCALE)));\r
+    }\r
+\r
+    @Override\r
+    public void timeSelected(TimeGraphTimeEvent event) {\r
+        broadcast(new TmfTimeSynchSignal(this, new TmfTimestamp(event.getTime(), TIMESTAMP_SCALE)));\r
     }\r
 \r
     @Override\r
@@ -587,7 +579,7 @@ public class TimeChartView extends TmfView implements ITmfTimeScaleSelectionList
             ITmfTrace<?> trace = signal.getTrace();\r
             for (int i = 0; i < fTimeAnalysisEntries.size(); i++) {\r
                 if (fTimeAnalysisEntries.get(i).getTrace().equals(trace)) {\r
-                    fViewer.setSelectedTrace(fTimeAnalysisEntries.get(i));\r
+                    fViewer.setSelection(fTimeAnalysisEntries.get(i));\r
                     break;\r
                 }\r
             }\r
This page took 0.027514 seconds and 5 git commands to generate.