lami: bug 510984: allocate new formatter for each axis
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Tue, 24 Jan 2017 19:10:16 +0000 (14:10 -0500)
committerGenevieve Bastien <gbastien+lttng@versatic.net>
Tue, 31 Jan 2017 14:34:57 +0000 (09:34 -0500)
When two axis show the same data type both have
the same formatter with the Y-axis internal and external ranges.

Allocate a new formatter each time with the corresponding internal and
external ranges.

Formatters are now immutable.

Change-Id: If01d5cb4f9a396fa37fad8295ad2a41cc6401e3c
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Reviewed-on: https://git.eclipse.org/r/89465
Reviewed-by: Genevieve Bastien <gbastien+lttng@versatic.net>
Tested-by: Genevieve Bastien <gbastien+lttng@versatic.net>
Reviewed-by: Hudson CI
analysis/org.eclipse.tracecompass.analysis.lami.ui/src/org/eclipse/tracecompass/internal/provisional/analysis/lami/ui/format/LamiDecimalUnitFormat.java
analysis/org.eclipse.tracecompass.analysis.lami.ui/src/org/eclipse/tracecompass/internal/provisional/analysis/lami/ui/format/LamiTimeStampFormat.java
analysis/org.eclipse.tracecompass.analysis.lami.ui/src/org/eclipse/tracecompass/internal/provisional/analysis/lami/ui/viewers/LamiXYChartViewer.java

index c3bd73d3a4dc19a006a6d5cd4975740193dd0308..552edd595e7e24a36650a016266b785a645228d5 100644 (file)
@@ -34,14 +34,16 @@ public class LamiDecimalUnitFormat extends DecimalUnitFormat {
 
     private static final long serialVersionUID = 977671266270661188L;
 
-    private @Nullable LamiGraphRange fInternalRange = null;
-    private @Nullable LamiGraphRange fExternalRange = null;
+    private final @Nullable LamiGraphRange fInternalRange;
+    private final @Nullable LamiGraphRange fExternalRange;
 
     /**
      * Default constructor
      */
     public LamiDecimalUnitFormat() {
         super();
+        fInternalRange = null;
+        fExternalRange = null;
     }
 
     /**
@@ -53,22 +55,12 @@ public class LamiDecimalUnitFormat extends DecimalUnitFormat {
      * @param externalRange
      *            The external (real value) range shown to the user
      */
-    public LamiDecimalUnitFormat(LamiGraphRange internalRange, LamiGraphRange externalRange) {
+    public LamiDecimalUnitFormat(@Nullable LamiGraphRange internalRange, @Nullable LamiGraphRange externalRange) {
         super();
         fInternalRange = internalRange;
         fExternalRange = externalRange;
     }
 
-    /**
-     * Constructor with multiplication factor.
-     *
-     * @param factor
-     *            Multiplication factor to apply to the value
-     */
-    public LamiDecimalUnitFormat(double factor) {
-        super(factor);
-    }
-
     /**
      * Constructor with multiplication factor and internal and external
      * LamiRange for scale transformation.
@@ -80,7 +72,7 @@ public class LamiDecimalUnitFormat extends DecimalUnitFormat {
      * @param externalRange
      *            The external (real value) range shown to the user
      */
-    public LamiDecimalUnitFormat(double factor, LamiGraphRange internalRange, LamiGraphRange externalRange) {
+    public LamiDecimalUnitFormat(double factor, @Nullable LamiGraphRange internalRange, @Nullable LamiGraphRange externalRange) {
         super(factor);
         fInternalRange = internalRange;
         fExternalRange = externalRange;
@@ -93,14 +85,6 @@ public class LamiDecimalUnitFormat extends DecimalUnitFormat {
         return fInternalRange;
     }
 
-    /**
-     * @param internalRange
-     *            The internal range definition to be used by the formatter
-     */
-    public void setInternalRange(@Nullable LamiGraphRange internalRange) {
-        fInternalRange = internalRange;
-    }
-
     /**
      * @return the external range definition
      */
@@ -108,14 +92,6 @@ public class LamiDecimalUnitFormat extends DecimalUnitFormat {
         return fExternalRange;
     }
 
-    /**
-     * @param externalRange
-     *            The external range definition to be used by the formatter
-     */
-    public void setExternalRange(@Nullable LamiGraphRange externalRange) {
-        fExternalRange = externalRange;
-    }
-
     @Override
     public StringBuffer format(@Nullable Object obj, @Nullable StringBuffer toAppendTo, @Nullable FieldPosition pos) {
         if (!(obj instanceof Number) || toAppendTo == null) {
index d4f936529c49b9fdfd227295c27c267c07ce0be0..731a99c4283924deb4f9529c13556587a4e5257c 100644 (file)
@@ -31,44 +31,13 @@ public class LamiTimeStampFormat extends Format {
 
     private final TmfTimestampFormat fFormat;
 
-    private @Nullable LamiGraphRange fInternalRange = null;
-    private @Nullable LamiGraphRange fExternalRange = null;
+    private final @Nullable LamiGraphRange fInternalRange;
+    private final @Nullable LamiGraphRange fExternalRange;
 
     // ------------------------------------------------------------------------
     // Constructors
     // ------------------------------------------------------------------------
 
-    /**
-     * The default constructor
-     */
-    public LamiTimeStampFormat() {
-        fFormat = checkNotNull(TmfTimestampFormat.getDefaulTimeFormat());
-    }
-
-    /**
-     * The base constructor
-     *
-     * @param internalRange
-     *            The internal range used for graph representation
-     * @param externalRange
-     *            The external (real value) range shown to the user
-     */
-    public LamiTimeStampFormat(LamiGraphRange internalRange, LamiGraphRange externalRange) {
-        fFormat = checkNotNull(TmfTimestampFormat.getDefaulTimeFormat());
-        fInternalRange = internalRange;
-        fExternalRange = externalRange;
-    }
-
-    /**
-     * The normal constructor
-     *
-     * @param pattern
-     *            The format pattern
-     */
-    public LamiTimeStampFormat(String pattern) {
-        fFormat = new TmfTimestampFormat(pattern);
-    }
-
     /**
      * The normal constructor
      *
@@ -79,7 +48,7 @@ public class LamiTimeStampFormat extends Format {
      * @param externalRange
      *            The external (real value) range shown to the user
      */
-    public LamiTimeStampFormat(String pattern, LamiGraphRange internalRange, LamiGraphRange externalRange) {
+    public LamiTimeStampFormat(String pattern, @Nullable LamiGraphRange internalRange, @Nullable LamiGraphRange externalRange) {
         fFormat = new TmfTimestampFormat(pattern);
         fInternalRange = internalRange;
         fExternalRange = externalRange;
@@ -96,14 +65,6 @@ public class LamiTimeStampFormat extends Format {
         return fInternalRange;
     }
 
-    /**
-     * @param internalRange
-     *            The internal range definition to be used by the formatter
-     */
-    public void setInternalRange(@Nullable LamiGraphRange internalRange) {
-        fInternalRange = internalRange;
-    }
-
     /**
      * @return the external range definition
      */
@@ -111,15 +72,6 @@ public class LamiTimeStampFormat extends Format {
         return fExternalRange;
     }
 
-    /**
-     * @param externalRange
-     *            The external range definition to be used by the formatter
-     */
-    public void setExternalRange(@Nullable LamiGraphRange externalRange) {
-        fExternalRange = externalRange;
-    }
-
-
     @Override
     public StringBuffer format(@Nullable Object obj, @Nullable StringBuffer toAppendTo, @Nullable FieldPosition pos) {
         if (obj != null && obj instanceof Number && toAppendTo != null) {
index eb5d8fffb4b0ed6e0d9d5f48aa2ecb6a87f7af80..5b8f92b7d459f0677cba4d2a9139f38f37bdad49 100644 (file)
@@ -115,34 +115,34 @@ public abstract class LamiXYChartViewer extends TmfViewer implements ILamiViewer
                 );
 
     /**
-     * Time stamp formatter for intervals in the days range.
+     * Time stamp formatter pattern for intervals in the days range.
      */
-    protected static final LamiTimeStampFormat DAYS_FORMATTER = new LamiTimeStampFormat("dd HH:mm"); //$NON-NLS-1$
+    protected static final String DAYS_FORMATTER_PATTERN = "dd HH:mm"; //$NON-NLS-1$
 
     /**
-     * Time stamp formatter for intervals in the hours range.
+     * Time stamp formatter pattern for intervals in the hours range.
      */
-    protected static final LamiTimeStampFormat HOURS_FORMATTER = new LamiTimeStampFormat("HH:mm"); //$NON-NLS-1$
+    protected static final String HOURS_FORMATTER_PATTERN = "HH:mm"; //$NON-NLS-1$
 
     /**
-     * Time stamp formatter for intervals in the minutes range.
+     * Time stamp formatter pattern for intervals in the minutes range.
      */
-    protected static final LamiTimeStampFormat MINUTES_FORMATTER = new LamiTimeStampFormat("mm:ss"); //$NON-NLS-1$
+    protected static final String MINUTES_FORMATTER_PATTERN = "mm:ss"; //$NON-NLS-1$
 
     /**
-     * Time stamp formatter for intervals in the seconds range.
+     * Time stamp formatter pattern for intervals in the seconds range.
      */
-    protected static final LamiTimeStampFormat SECONDS_FORMATTER = new LamiTimeStampFormat("ss"); //$NON-NLS-1$
+    protected static final String SECONDS_FORMATTER_PATTERN = "ss"; //$NON-NLS-1$
 
     /**
-     * Time stamp formatter for intervals in the milliseconds range.
+     * Time stamp formatter pattern for intervals in the milliseconds range.
      */
-    protected static final LamiTimeStampFormat MILLISECONDS_FORMATTER = new LamiTimeStampFormat("ss.SSS"); //$NON-NLS-1$
+    protected static final String MILLISECONDS_FORMATTER_PATTERN = "ss.SSS"; //$NON-NLS-1$
 
     /**
-     * Decimal formatter to display nanoseconds as seconds.
+     * Decimal formatter factor to display nanoseconds as seconds.
      */
-    protected static final DecimalUnitFormat NANO_TO_SECS_FORMATTER = new LamiDecimalUnitFormat(0.000000001);
+    protected static final double NANO_TO_SECS_FORMATTER_FACTOR = 0.000000001;
 
     /**
      * Default decimal formatter.
@@ -478,7 +478,7 @@ public abstract class LamiXYChartViewer extends TmfViewer implements ILamiViewer
      */
     protected static Format getContinuousAxisFormatter(List<LamiTableEntryAspect> axisAspects, List<LamiTableEntry> entries , @Nullable LamiGraphRange internalRange, @Nullable LamiGraphRange externalRange) {
 
-        Format formatter = DECIMAL_FORMATTER;
+        Format formatter = null;
 
         if (areAspectsTimeStamp(axisAspects)) {
             /* Set a TimeStamp formatter depending on the duration between the first and last value */
@@ -498,33 +498,25 @@ public abstract class LamiXYChartViewer extends TmfViewer implements ILamiViewer
 
             long duration = max.subtract(min).longValue();
             if (duration > TimeUnit.DAYS.toNanos(1)) {
-                formatter = DAYS_FORMATTER;
+                formatter = new LamiTimeStampFormat(DAYS_FORMATTER_PATTERN, internalRange, externalRange);
             } else if (duration > TimeUnit.HOURS.toNanos(1)) {
-                formatter = HOURS_FORMATTER;
+                formatter = new LamiTimeStampFormat(HOURS_FORMATTER_PATTERN, internalRange, externalRange);
             } else if (duration > TimeUnit.MINUTES.toNanos(1)) {
-                formatter = MINUTES_FORMATTER;
+                formatter = new LamiTimeStampFormat(MINUTES_FORMATTER_PATTERN, internalRange, externalRange);
             } else if (duration > TimeUnit.SECONDS.toNanos(15)) {
-                formatter = SECONDS_FORMATTER;
+                formatter = new LamiTimeStampFormat(SECONDS_FORMATTER_PATTERN, internalRange, externalRange);
             } else {
-                formatter = MILLISECONDS_FORMATTER;
+                formatter = new LamiTimeStampFormat(MILLISECONDS_FORMATTER_PATTERN, internalRange, externalRange);
             }
-            ((LamiTimeStampFormat) formatter).setInternalRange(internalRange);
-            ((LamiTimeStampFormat) formatter).setExternalRange(externalRange);
-
         } else if (areAspectsTimeDuration(axisAspects)) {
             /* Set the time duration formatter. */
-            formatter = NANO_TO_SECS_FORMATTER;
-            ((LamiDecimalUnitFormat) formatter).setInternalRange(internalRange);
-            ((LamiDecimalUnitFormat) formatter).setExternalRange(externalRange);
-
+            formatter = new LamiDecimalUnitFormat(NANO_TO_SECS_FORMATTER_FACTOR, internalRange, externalRange);
         } else {
             /*
              * For other numeric aspects, use the default lami decimal unit
              * formatter.
              */
-            formatter = DECIMAL_FORMATTER;
-            ((LamiDecimalUnitFormat) formatter).setInternalRange(internalRange);
-            ((LamiDecimalUnitFormat) formatter).setExternalRange(externalRange);
+            formatter = new LamiDecimalUnitFormat(internalRange, externalRange);
         }
 
         return formatter;
This page took 0.031381 seconds and 5 git commands to generate.