tmf: Update copyright headers in tmf.ui
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / histogram / HistogramView.java
index 9f094e3e92346346751768bc41f39c9c2d99fdce..64202fc771f39f13484166976382571bd04f77d2 100644 (file)
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2009, 2010, 2011, 2012 Ericsson
+ * Copyright (c) 2009, 2013 Ericsson
  *
  * All rights reserved. This program and the accompanying materials are
  * made available under the terms of the Eclipse Public License v1.0 which
@@ -18,9 +18,6 @@
 package org.eclipse.linuxtools.tmf.ui.views.histogram;
 
 import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
-import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;
-import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange;
-import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest.ExecutionType;
 import org.eclipse.linuxtools.tmf.core.request.TmfDataRequest;
 import org.eclipse.linuxtools.tmf.core.signal.TmfRangeSynchSignal;
@@ -32,6 +29,9 @@ import org.eclipse.linuxtools.tmf.core.signal.TmfTraceOpenedSignal;
 import org.eclipse.linuxtools.tmf.core.signal.TmfTraceRangeUpdatedSignal;
 import org.eclipse.linuxtools.tmf.core.signal.TmfTraceSelectedSignal;
 import org.eclipse.linuxtools.tmf.core.signal.TmfTraceUpdatedSignal;
+import org.eclipse.linuxtools.tmf.core.timestamp.ITmfTimestamp;
+import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimeRange;
+import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
 import org.eclipse.linuxtools.tmf.ui.editors.ITmfTraceEditor;
 import org.eclipse.linuxtools.tmf.ui.views.TmfView;
@@ -178,7 +178,7 @@ public class HistogramView extends TmfView {
         gridData.verticalAlignment = SWT.CENTER;
         fCurrentEventTimeControl = new HistogramCurrentTimeControl(this, controlsComposite, currentEventLabel, 0L);
         fCurrentEventTimeControl.setLayoutData(gridData);
-        fCurrentEventTimeControl.setValue(0L);
+        fCurrentEventTimeControl.setValue(Long.MIN_VALUE);
 
         // Window span time control
         gridData = new GridData();
@@ -186,7 +186,7 @@ public class HistogramView extends TmfView {
         gridData.verticalAlignment = SWT.CENTER;
         fTimeSpanControl = new HistogramTimeRangeControl(this, controlsComposite, windowSpanLabel, 0L);
         fTimeSpanControl.setLayoutData(gridData);
-        fTimeSpanControl.setValue(0L);
+        fTimeSpanControl.setValue(Long.MIN_VALUE);
 
         // --------------------------------------------------------------------
         // Time range histogram
@@ -277,6 +277,7 @@ public class HistogramView extends TmfView {
      * Returns the time range of the current selected window (base on default time scale).
      *
      * @return the time range of current selected window.
+     * @since 2.0
      */
     public TmfTimeRange getTimeRange() {
         return new TmfTimeRange(
@@ -335,26 +336,28 @@ public class HistogramView extends TmfView {
     public synchronized void updateTimeRange(long newDuration) {
         if (fTrace != null) {
             long delta = newDuration - fWindowSpan;
-            long newStartTime = fWindowStartTime + (delta / 2);
+            long newStartTime = fWindowStartTime - (delta / 2);
             setNewRange(newStartTime, newDuration);
         }
     }
 
     private void setNewRange(long startTime, long duration) {
-        if (startTime < fTraceStartTime) {
-            startTime = fTraceStartTime;
+        long realStart = startTime;
+
+        if (realStart < fTraceStartTime) {
+            realStart = fTraceStartTime;
         }
 
-        long endTime = startTime + duration;
+        long endTime = realStart + duration;
         if (endTime > fTraceEndTime) {
             endTime = fTraceEndTime;
-            if ((endTime - duration) > fTraceEndTime) {
-                startTime = endTime - duration;
+            if ((endTime - duration) > fTraceStartTime) {
+                realStart = endTime - duration;
             } else {
-                startTime = fTraceStartTime;
+                realStart = fTraceStartTime;
             }
         }
-        updateTimeRange(startTime, endTime);
+        updateTimeRange(realStart, endTime);
     }
 
     // ------------------------------------------------------------------------
@@ -426,9 +429,9 @@ public class HistogramView extends TmfView {
         // Clear the UI widgets
         fFullTraceHistogram.clear();
         fTimeRangeHistogram.clear();
-        fCurrentEventTimeControl.setValue(0L);
+        fCurrentEventTimeControl.setValue(Long.MIN_VALUE);
 
-        fTimeSpanControl.setValue(0);
+        fTimeSpanControl.setValue(Long.MIN_VALUE);
     }
 
     /**
@@ -446,7 +449,6 @@ public class HistogramView extends TmfView {
             return;
         }
 
-        boolean drawTimeRangeHistogram = fTraceStartTime == 0;
         TmfTimeRange fullRange = signal.getRange();
 
         fTraceStartTime = fullRange.getStartTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue();
@@ -455,17 +457,6 @@ public class HistogramView extends TmfView {
         fFullTraceHistogram.setFullRange(fTraceStartTime, fTraceEndTime);
         fTimeRangeHistogram.setFullRange(fTraceStartTime, fTraceEndTime);
 
-        if (drawTimeRangeHistogram) {
-            long startTime = fTrace.getCurrentRange().getStartTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue();
-            long duration = fTrace.getCurrentRange().getEndTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue() - startTime;
-            fCurrentTimestamp = fTrace.getCurrentTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue();
-            fCurrentEventTimeControl.setValue(fCurrentTimestamp);
-            fTimeSpanControl.setValue(duration);
-            fFullTraceHistogram.setTimeRange(startTime, duration);
-            fTimeRangeHistogram.setTimeRange(startTime, duration);
-            sendTimeRangeRequest(startTime, startTime + duration);
-        }
-
         sendFullRangeRequest(fullRange);
     }
 
@@ -487,6 +478,7 @@ public class HistogramView extends TmfView {
         fTimeRangeHistogram.setFullRange(fTraceStartTime, fTraceEndTime);
 
         fFullTraceHistogram.setTimeRange(fTimeRangeHistogram.getStartTime(), fWindowSpan);
+        fTimeRangeHistogram.setTimeRange(fTimeRangeHistogram.getStartTime(), fWindowSpan);
 
         if ((fFullTraceRequest != null) && fFullTraceRequest.getRange().getEndTime().compareTo(signal.getRange().getEndTime()) < 0) {
             sendFullRangeRequest(fullRange);
@@ -524,9 +516,15 @@ public class HistogramView extends TmfView {
         assert (signal != null);
 
         if (fTrace != null) {
+            // Validate the time range
+            TmfTimeRange range = signal.getCurrentRange().getIntersection(fTrace.getTimeRange());
+            if (range == null) {
+                return;
+            }
+
             // Update the time range
-            fWindowStartTime = signal.getCurrentRange().getStartTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue();
-            fWindowEndTime = signal.getCurrentRange().getEndTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue();
+            fWindowStartTime = range.getStartTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue();
+            fWindowEndTime = range.getEndTime().normalize(0, ITmfTimestamp.NANOSECOND_SCALE).getValue();
             fWindowSpan = fWindowEndTime - fWindowStartTime;
 
             // Notify the relevant widgets
@@ -599,6 +597,7 @@ public class HistogramView extends TmfView {
         TmfTimeRange timeRange = new TmfTimeRange(startTS, endTS);
 
         fTimeRangeHistogram.clear();
+        fTimeRangeHistogram.setFullRange(fTraceStartTime, fTraceEndTime);
         fTimeRangeHistogram.setTimeRange(startTime, endTime - startTime);
 
         int cacheSize = fTrace.getCacheSize();
This page took 0.025765 seconds and 5 git commands to generate.