Contribute CNF based TMF project handling
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.ui / src / org / eclipse / linuxtools / lttng / ui / views / timeframe / TimeFrameView.java
index c21a8740b9350663c6114e9e57019f2edb2813e6..ab59b1e08b92444ef891aae19193f07dcfbff2ad 100644 (file)
@@ -33,9 +33,8 @@ import org.eclipse.swt.widgets.Slider;
 /**
  * <b><u>TimeFrameView</u></b>
  * <p>
- * The TimeFrameView provides a set of spinners to monitor and set the start
- * time, end time, the current time interval and current time of the trace set
- * at the nanosecond level.
+ * The TimeFrameView provides a set of spinners to monitor and set the start time, end time, the current time interval
+ * and current time of the trace set at the nanosecond level.
  * <p>
  * It ensures that the following relations are always true:
  * <p>
@@ -44,15 +43,15 @@ import org.eclipse.swt.widgets.Slider;
  * <li>[ startTime <= currentTime <= endTime ]
  * <li>[ interval == (endTime - startTime) ]</li>
  * <p>
- * It provides a slider to rapidly set the current time within the time range
- * (i.e. between startTime and endTime).
+ * It provides a slider to rapidly set the current time within the time range (i.e. between startTime and endTime).
  * <p>
- * Finally, it allows modification of the time range and the current time. This
- * triggers notifications to the other LTTng views.
+ * Finally, it allows modification of the time range and the current time. This triggers notifications to the other
+ * LTTng views.
  * <p>
- * FIXME: The slider is very jumpy due to the large number of async updates
- * FIXME: Revisit the control flow between View, Spinners and Slider
+ * FIXME: The slider is very jumpy due to the large number of async updates FIXME: Revisit the control flow between
+ * View, Spinners and Slider
  */
+@Deprecated
 public class TimeFrameView extends TmfView {
 
     public static final String ID = "org.eclipse.linuxtools.lttng.ui.views.timeframe"; //$NON-NLS-1$
@@ -72,9 +71,9 @@ public class TimeFrameView extends TmfView {
     private byte fScale = 0;
 
     // Labels
-    private static final String START_TIME_LABEL   = Messages.TimeFrameView_WindowStartTime;
-    private static final String END_TIME_LABEL     = Messages.TimeFrameView_WindowEndTime;
-    private static final String TIME_RANGE_LABEL   = Messages.TimeFrameView_WindowRange;
+    private static final String START_TIME_LABEL = Messages.TimeFrameView_WindowStartTime;
+    private static final String END_TIME_LABEL = Messages.TimeFrameView_WindowEndTime;
+    private static final String TIME_RANGE_LABEL = Messages.TimeFrameView_WindowRange;
     private static final String CURRENT_TIME_LABEL = Messages.TimeFrameView_CurrentTime;
 
     private static final int SLIDER_RANGE = 10000;
@@ -96,35 +95,33 @@ public class TimeFrameView extends TmfView {
     // ------------------------------------------------------------------------
     // Constructor
     // ------------------------------------------------------------------------
-    
+
     /**
      * Constructor
      */
     public TimeFrameView() {
-       super("TimeFrameView"); //$NON-NLS-1$
+        super("TimeFrameView"); //$NON-NLS-1$
     }
 
     /*
      * (non-Javadoc)
      * 
-     * @see
-     * org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets
-     * .Composite)
+     * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets .Composite)
      */
     @Override
     public void createPartControl(Composite parent) {
 
-       // Set the view layout
-       GridLayout layout = new GridLayout(4, true);
-       parent.setLayout(layout);
+        // Set the view layout
+        GridLayout layout = new GridLayout(4, true);
+        parent.setLayout(layout);
 
-       fStartGroup = new SpinnerGroup(this, parent, START_TIME_LABEL, fTraceTimeRange, fTraceStartTime);
-       fEndGroup = new SpinnerGroup(this, parent, END_TIME_LABEL, fTraceTimeRange, fTraceEndTime);
-       fRangeGroup = new SpinnerGroup(this, parent, TIME_RANGE_LABEL, fTraceTimeRange, fTraceEndTime);
-       fCurrentGroup = new SpinnerGroup(this, parent, CURRENT_TIME_LABEL, fTraceTimeRange, fTraceStartTime);
+        fStartGroup = new SpinnerGroup(this, parent, START_TIME_LABEL, fTraceTimeRange, fTraceStartTime);
+        fEndGroup = new SpinnerGroup(this, parent, END_TIME_LABEL, fTraceTimeRange, fTraceEndTime);
+        fRangeGroup = new SpinnerGroup(this, parent, TIME_RANGE_LABEL, fTraceTimeRange, fTraceEndTime);
+        fCurrentGroup = new SpinnerGroup(this, parent, CURRENT_TIME_LABEL, fTraceTimeRange, fTraceStartTime);
 
-       // Create the slider
-       createSlider(parent);
+        // Create the slider
+        createSlider(parent);
     }
 
     /*
@@ -134,7 +131,7 @@ public class TimeFrameView extends TmfView {
      */
     @Override
     public void setFocus() {
-       // TODO Auto-generated method stub
+        // TODO Auto-generated method stub
     }
 
     // ------------------------------------------------------------------------
@@ -145,67 +142,67 @@ public class TimeFrameView extends TmfView {
      * One of the spinners has been updated. Synchronize the other widgets.
      */
     public void synchTimeFrameWidgets(SpinnerGroup trigger) {
-       boolean trangeUpdated = false;
-
-       // Collect the data
-       TmfTimestamp startTime = fStartGroup.getCurrentTime();
-       TmfTimestamp endTime = fEndGroup.getCurrentTime();
-       TmfTimestamp timeRange = fRangeGroup.getCurrentTime();
-       TmfTimestamp currentTime = fCurrentGroup.getCurrentTime();
-
-       // If startTime was set beyond endTime, adjust endTime and interval
-       if (trigger == fStartGroup) {
-           if (startTime.compareTo(endTime, false) > 0) {
-               endTime = startTime;
-               trangeUpdated = true;
-           }
-       }
-
-       // If endTime was set beyond startTime, adjust startTime and interval
-       if (trigger == fEndGroup) {
-           if (endTime.compareTo(startTime, false) < 0) {
-               startTime = endTime;
-               trangeUpdated = true;
-           }
-       }
-
-       // If timeRange was set, adjust endTime
-       if (trigger == fRangeGroup) {
-           long start = startTime.getValue();
-           long span = timeRange.getValue();
-           TmfTimestamp ts = new TmfTimestamp(start + span, startTime.getScale(), 0);
-           if (ts.compareTo(fTraceEndTime, false) > 0) {
-               ts = fTraceEndTime.synchronize(fTraceEndTime.getValue(), startTime.getScale());
-           }
-           endTime = ts;
-           trangeUpdated = true;
-       }
-
-       // Compute the new time range
-       TmfTimeRange subrange = new TmfTimeRange(startTime, endTime);
-       byte scale = startTime.getScale();
-       TmfTimestamp interval = new TmfTimestamp(startTime.getAdjustment(endTime, scale), scale, 0);
-
-       // Update the spinner groups
-       fStartGroup.setContent(fTraceTimeRange, startTime);
-       fEndGroup.setContent(fTraceTimeRange, endTime);
-       fRangeGroup.setContent(fTraceSpan, interval);
-       fCurrentGroup.setContent(subrange, currentTime);
-
-       updateSlider(subrange, currentTime);
-       // Notify other views, only if the update originated from this view
-       if (fupdateExternalListeners) {
-           if (!fCurrentTime.equals(currentTime)) {
-               fCurrentTime = currentTime;
-               broadcast(new TmfTimeSynchSignal(this, currentTime));
-           }
-
-           // Notify the views if the time range has been impacted
-           if (trangeUpdated) {
-               TmfTimeRange trange = new TmfTimeRange(startTime, endTime);
-               broadcast(new TmfRangeSynchSignal(this, trange, currentTime));
-           }
-       }
+        boolean trangeUpdated = false;
+
+        // Collect the data
+        TmfTimestamp startTime = fStartGroup.getCurrentTime();
+        TmfTimestamp endTime = fEndGroup.getCurrentTime();
+        TmfTimestamp timeRange = fRangeGroup.getCurrentTime();
+        TmfTimestamp currentTime = fCurrentGroup.getCurrentTime();
+
+        // If startTime was set beyond endTime, adjust endTime and interval
+        if (trigger == fStartGroup) {
+            if (startTime.compareTo(endTime, false) > 0) {
+                endTime = startTime;
+                trangeUpdated = true;
+            }
+        }
+
+        // If endTime was set beyond startTime, adjust startTime and interval
+        if (trigger == fEndGroup) {
+            if (endTime.compareTo(startTime, false) < 0) {
+                startTime = endTime;
+                trangeUpdated = true;
+            }
+        }
+
+        // If timeRange was set, adjust endTime
+        if (trigger == fRangeGroup) {
+            long start = startTime.getValue();
+            long span = timeRange.getValue();
+            TmfTimestamp ts = new TmfTimestamp(start + span, startTime.getScale(), 0);
+            if (ts.compareTo(fTraceEndTime, false) > 0) {
+                ts = fTraceEndTime.synchronize(fTraceEndTime.getValue(), startTime.getScale());
+            }
+            endTime = ts;
+            trangeUpdated = true;
+        }
+
+        // Compute the new time range
+        TmfTimeRange subrange = new TmfTimeRange(startTime, endTime);
+        byte scale = startTime.getScale();
+        TmfTimestamp interval = new TmfTimestamp(startTime.getAdjustment(endTime, scale), scale, 0);
+
+        // Update the spinner groups
+        fStartGroup.setContent(fTraceTimeRange, startTime);
+        fEndGroup.setContent(fTraceTimeRange, endTime);
+        fRangeGroup.setContent(fTraceSpan, interval);
+        fCurrentGroup.setContent(subrange, currentTime);
+
+        updateSlider(subrange, currentTime);
+        // Notify other views, only if the update originated from this view
+        if (fupdateExternalListeners) {
+            if (!fCurrentTime.equals(currentTime)) {
+                fCurrentTime = currentTime;
+                broadcast(new TmfTimeSynchSignal(this, currentTime));
+            }
+
+            // Notify the views if the time range has been impacted
+            if (trangeUpdated) {
+                TmfTimeRange trange = new TmfTimeRange(startTime, endTime);
+                broadcast(new TmfRangeSynchSignal(this, trange, currentTime));
+            }
+        }
     }
 
     // ------------------------------------------------------------------------
@@ -216,29 +213,29 @@ public class TimeFrameView extends TmfView {
      * @param parent
      */
     private void createSlider(Composite parent) {
-       fSlider = new Slider(parent, SWT.SMOOTH | SWT.FILL);
-       fSlider.setMinimum(0);
-       fSlider.setMaximum(SLIDER_RANGE + fSlider.getThumb());
-       fSlider.setIncrement(SLIDER_RANGE / 100);
-       fSlider.setPageIncrement(SLIDER_RANGE / 10);
-       fSlider.setSelection(0);
-
-       GridData gridData = new GridData(SWT.LEFT, SWT.TOP, true, false);
-       gridData.horizontalAlignment = SWT.FILL;
-       gridData.horizontalSpan = 4;
-       fSlider.setLayoutData(gridData);
-
-       fSlider.addListener(SWT.Selection, new Listener() {
-           @Override
-           public void handleEvent(Event event) {
-               int ratio = fSlider.getSelection();
-               TmfTimestamp span = fCurrentGroup.getSpan();
-               long value = span.getValue() * ratio / SLIDER_RANGE;
-               TmfTimestamp start = fCurrentGroup.getStartTime();
-               TmfTimestamp current = new TmfTimestamp(start.getValue() + value, start.getScale(), 0);
-               fCurrentGroup.setValue(current);
-           }
-       });
+        fSlider = new Slider(parent, SWT.SMOOTH | SWT.FILL);
+        fSlider.setMinimum(0);
+        fSlider.setMaximum(SLIDER_RANGE + fSlider.getThumb());
+        fSlider.setIncrement(SLIDER_RANGE / 100);
+        fSlider.setPageIncrement(SLIDER_RANGE / 10);
+        fSlider.setSelection(0);
+
+        GridData gridData = new GridData(SWT.LEFT, SWT.TOP, true, false);
+        gridData.horizontalAlignment = SWT.FILL;
+        gridData.horizontalSpan = 4;
+        fSlider.setLayoutData(gridData);
+
+        fSlider.addListener(SWT.Selection, new Listener() {
+            @Override
+            public void handleEvent(Event event) {
+                int ratio = fSlider.getSelection();
+                TmfTimestamp span = fCurrentGroup.getSpan();
+                long value = span.getValue() * ratio / SLIDER_RANGE;
+                TmfTimestamp start = fCurrentGroup.getStartTime();
+                TmfTimestamp current = new TmfTimestamp(start.getValue() + value, start.getScale(), 0);
+                fCurrentGroup.setValue(current);
+            }
+        });
 
     }
 
@@ -248,28 +245,28 @@ public class TimeFrameView extends TmfView {
      */
     private void updateSlider(TmfTimeRange range, TmfTimestamp timestamp) {
 
-       // Ignore update if disposed
-       if (fSlider.isDisposed())
-           return;
-
-       // Determine the new relative position
-       byte scale = range.getEndTime().getScale();
-       long total = range.getStartTime().getAdjustment(range.getEndTime(), scale);
-       long relative = range.getStartTime().getAdjustment(timestamp, scale);
-
-       // Set the slider value
-       final long position = (total > 0) ? (relative * SLIDER_RANGE / total) : 0;
-
-       // Update the slider on the UI thread
-       long current = fSlider.getSelection();
-       if (position != current) {
-           fSlider.getDisplay().asyncExec(new Runnable() {
-               @Override
-               public void run() {
-                   fSlider.setSelection((int) position);
-               }
-           });
-       }
+        // Ignore update if disposed
+        if (fSlider.isDisposed())
+            return;
+
+        // Determine the new relative position
+        byte scale = range.getEndTime().getScale();
+        long total = range.getStartTime().getAdjustment(range.getEndTime(), scale);
+        long relative = range.getStartTime().getAdjustment(timestamp, scale);
+
+        // Set the slider value
+        final long position = (total > 0) ? (relative * SLIDER_RANGE / total) : 0;
+
+        // Update the slider on the UI thread
+        long current = fSlider.getSelection();
+        if (position != current) {
+            fSlider.getDisplay().asyncExec(new Runnable() {
+                @Override
+                public void run() {
+                    fSlider.setSelection((int) position);
+                }
+            });
+        }
     }
 
     /*
@@ -280,7 +277,7 @@ public class TimeFrameView extends TmfView {
     @Override
     @SuppressWarnings("nls")
     public String toString() {
-       return "[TimeFrameView]";
+        return "[TimeFrameView]";
     }
 
     // ------------------------------------------------------------------------
@@ -294,27 +291,27 @@ public class TimeFrameView extends TmfView {
     @TmfSignalHandler
     public void experimentSelected(TmfExperimentSelectedSignal<LttngEvent> signal) {
 
-       // Update the trace reference
-       fExperiment = (TmfExperiment<LttngEvent>) signal.getExperiment();
+        // Update the trace reference
+        fExperiment = (TmfExperiment<LttngEvent>) signal.getExperiment();
 
-       // Update the time frame
-       fTraceTimeRange = fExperiment.getTimeRange();
-       fTraceStartTime = fTraceTimeRange.getStartTime();
-       fTraceEndTime = fTraceTimeRange.getEndTime();
-       fScale = fTraceStartTime.getScale();
+        // Update the time frame
+        fTraceTimeRange = fExperiment.getTimeRange();
+        fTraceStartTime = fTraceTimeRange.getStartTime();
+        fTraceEndTime = fTraceTimeRange.getEndTime();
+        fScale = fTraceStartTime.getScale();
 
-       // Update the widgets
-       fStartGroup.setContent(fTraceTimeRange, fTraceStartTime);
-       fEndGroup.setContent(fTraceTimeRange, fTraceEndTime);
-       fCurrentGroup.setContent(fTraceTimeRange, fTraceStartTime);
+        // Update the widgets
+        fStartGroup.setContent(fTraceTimeRange, fTraceStartTime);
+        fEndGroup.setContent(fTraceTimeRange, fTraceEndTime);
+        fCurrentGroup.setContent(fTraceTimeRange, fTraceStartTime);
 
-       fCurrentTime = fTraceStartTime;
+        fCurrentTime = fTraceStartTime;
 
-       TmfTimestamp delta = new TmfTimestamp(fTraceStartTime.getAdjustment(fTraceEndTime, fScale), fScale, 0);
-       fTraceSpan = new TmfTimeRange(new TmfTimestamp(0, fScale, 0), delta);
-       // fRangeGroup.setContent(fTraceSpan, delta);
-       TmfTimestamp start = new TmfTimestamp(1, (byte) -1, 0);
-       fRangeGroup.setContent(fTraceSpan, start);
+        TmfTimestamp delta = new TmfTimestamp(fTraceStartTime.getAdjustment(fTraceEndTime, fScale), fScale, 0);
+        fTraceSpan = new TmfTimeRange(new TmfTimestamp(0, fScale, 0), delta);
+        // fRangeGroup.setContent(fTraceSpan, delta);
+        TmfTimestamp start = new TmfTimestamp(1, (byte) -1, 0);
+        fRangeGroup.setContent(fTraceSpan, start);
     }
 
     /**
@@ -323,21 +320,21 @@ public class TimeFrameView extends TmfView {
     @TmfSignalHandler
     public void experimentUpdated(TmfExperimentUpdatedSignal signal) {
 
-       // Update the time frame
-       // fTraceTimeRange = signal.getTrace().getTimeRange();
-       fTraceTimeRange = signal.getExperiment().getTimeRange();
-       fTraceStartTime = fTraceTimeRange.getStartTime();
-       fTraceEndTime = fTraceTimeRange.getEndTime();
-       fScale = fTraceStartTime.getScale();
-
-       // Update the widgets
-       fStartGroup.setContent(fTraceTimeRange, fStartGroup.getCurrentTime());
-       fEndGroup.setContent(fTraceTimeRange, fTraceEndTime);
-       fCurrentGroup.setContent(fTraceTimeRange, fCurrentGroup.getCurrentTime());
-
-       TmfTimestamp delta = new TmfTimestamp(fTraceStartTime.getAdjustment(fTraceEndTime, fScale), fScale, 0);
-       fTraceSpan = new TmfTimeRange(new TmfTimestamp(0, fScale, 0), delta);
-       fRangeGroup.setContent(fTraceSpan, delta);
+        // Update the time frame
+        // fTraceTimeRange = signal.getTrace().getTimeRange();
+        fTraceTimeRange = signal.getExperiment().getTimeRange();
+        fTraceStartTime = fTraceTimeRange.getStartTime();
+        fTraceEndTime = fTraceTimeRange.getEndTime();
+        fScale = fTraceStartTime.getScale();
+
+        // Update the widgets
+        fStartGroup.setContent(fTraceTimeRange, fStartGroup.getCurrentTime());
+        fEndGroup.setContent(fTraceTimeRange, fTraceEndTime);
+        fCurrentGroup.setContent(fTraceTimeRange, fCurrentGroup.getCurrentTime());
+
+        TmfTimestamp delta = new TmfTimestamp(fTraceStartTime.getAdjustment(fTraceEndTime, fScale), fScale, 0);
+        fTraceSpan = new TmfTimeRange(new TmfTimestamp(0, fScale, 0), delta);
+        fRangeGroup.setContent(fTraceSpan, delta);
     }
 
     /**
@@ -345,28 +342,28 @@ public class TimeFrameView extends TmfView {
      */
     @TmfSignalHandler
     public void currentTimeRangeUpdated(TmfRangeSynchSignal signal) {
-       if (signal.getSource() != this) {
-           // Update the time frame
-           TmfTimeRange selTimeRange = signal.getCurrentRange();
-           TmfTimestamp selStart = selTimeRange.getStartTime().synchronize(0, fScale);
-           TmfTimestamp selEnd = selTimeRange.getEndTime().synchronize(0, fScale);
+        if (signal.getSource() != this) {
+            // Update the time frame
+            TmfTimeRange selTimeRange = signal.getCurrentRange();
+            TmfTimestamp selStart = selTimeRange.getStartTime().synchronize(0, fScale);
+            TmfTimestamp selEnd = selTimeRange.getEndTime().synchronize(0, fScale);
 
-           fupdateExternalListeners = false;
-           // Update the widgets and prevent broadcast notifications to
-           // the views which have been notified already.
-           {
-               fStartGroup.setContent(fTraceTimeRange, selStart);
-               fEndGroup.setContent(fTraceTimeRange, selEnd);
+            fupdateExternalListeners = false;
+            // Update the widgets and prevent broadcast notifications to
+            // the views which have been notified already.
+            {
+                fStartGroup.setContent(fTraceTimeRange, selStart);
+                fEndGroup.setContent(fTraceTimeRange, selEnd);
 
-               TmfTimestamp delta = new TmfTimestamp(selStart.getAdjustment(selEnd, fScale), fScale, 0);
+                TmfTimestamp delta = new TmfTimestamp(selStart.getAdjustment(selEnd, fScale), fScale, 0);
 
-               fRangeGroup.setContent(fTraceSpan, delta);
-           }
+                fRangeGroup.setContent(fTraceSpan, delta);
+            }
 
-           // restore the external notification flag
-           fupdateExternalListeners = true;
+            // restore the external notification flag
+            fupdateExternalListeners = true;
 
-       }
+        }
     }
 
     /**
@@ -374,22 +371,22 @@ public class TimeFrameView extends TmfView {
      */
     @TmfSignalHandler
     public void currentTimeUpdated(TmfTimeSynchSignal signal) {
-       if (signal.getSource() != this) {
-           // prevent loop to external notifications
-           fupdateExternalListeners = false;
-           fCurrentTime = signal.getCurrentTime().synchronize(0, fStartGroup.getCurrentTime().getScale());
-           if (fStartGroup.getCurrentTime().compareTo(fCurrentTime, false) > 0) {
-               fStartGroup.setContent(new TmfTimeRange(fCurrentTime, fEndGroup.getCurrentTime()), fCurrentTime);
-           }
-           if (fEndGroup.getCurrentTime().compareTo(fCurrentTime, false) < 0) {
-               fEndGroup.setContent(new TmfTimeRange(fStartGroup.getCurrentTime(), fCurrentTime), fCurrentTime);
-           }
-           fCurrentGroup.setContent(null, fCurrentTime);
-           updateSlider(fCurrentGroup.getTimeRange(), fCurrentTime);
-
-           // Enable external notifications
-           fupdateExternalListeners = true;
-       }
+        if (signal.getSource() != this) {
+            // prevent loop to external notifications
+            fupdateExternalListeners = false;
+            fCurrentTime = signal.getCurrentTime().synchronize(0, fStartGroup.getCurrentTime().getScale());
+            if (fStartGroup.getCurrentTime().compareTo(fCurrentTime, false) > 0) {
+                fStartGroup.setContent(new TmfTimeRange(fCurrentTime, fEndGroup.getCurrentTime()), fCurrentTime);
+            }
+            if (fEndGroup.getCurrentTime().compareTo(fCurrentTime, false) < 0) {
+                fEndGroup.setContent(new TmfTimeRange(fStartGroup.getCurrentTime(), fCurrentTime), fCurrentTime);
+            }
+            fCurrentGroup.setContent(null, fCurrentTime);
+            updateSlider(fCurrentGroup.getTimeRange(), fCurrentTime);
+
+            // Enable external notifications
+            fupdateExternalListeners = true;
+        }
     }
 
 }
\ No newline at end of file
This page took 0.034301 seconds and 5 git commands to generate.