From 7bab46e634820aede43cbb159e53dc1d6aca24e7 Mon Sep 17 00:00:00 2001 From: Alexandre Montplaisir Date: Mon, 4 Aug 2014 17:09:59 -0400 Subject: [PATCH] Revert "tmf: Make TmfTimePreferences completely static" This reverts commit 8a7a5415a85e321e0cf7709e774a11fe8309f711. API break, shouldn't go in yet. Change-Id: I46bed2bf5c95f208ed4356299bd79013c7c9a253 Reviewed-on: https://git.eclipse.org/r/31000 Reviewed-by: Alexandre Montplaisir Tested-by: Alexandre Montplaisir --- .../tests/event/TmfTimePreferencesTest.java | 23 ++++++++---- .../tests/event/TmfTimestampFormatTest.java | 4 +-- .../core/timestamp/TmfTimePreferences.java | 35 ++++++++++++++----- .../core/timestamp/TmfTimestampFormat.java | 10 +++--- .../ui/properties/TmfTimestampFormatPage.java | 8 +++-- .../timegraph/widgets/TimeGraphScale.java | 2 +- .../ui/widgets/timegraph/widgets/Utils.java | 2 +- 7 files changed, 57 insertions(+), 27 deletions(-) diff --git a/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimePreferencesTest.java b/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimePreferencesTest.java index 0af3a0eb48..141bcf9951 100644 --- a/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimePreferencesTest.java +++ b/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimePreferencesTest.java @@ -13,6 +13,7 @@ package org.eclipse.linuxtools.tmf.core.tests.event; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import java.util.Map; import java.util.TimeZone; @@ -42,12 +43,20 @@ public class TmfTimePreferencesTest { assertEquals(DefaultScope.INSTANCE.getNode(Activator.PLUGIN_ID).get(ITmfTimePreferencesConstants.DATIME, null), ITmfTimePreferencesConstants.TIME_HOUR_FMT); } + /** + * Test that getInstance returns an instance + */ + @Test + public void testGetInstance() { + assertNotNull(TmfTimePreferences.getInstance()); + } + /** * Test that getTimePattern returns the appropriate time pattern (from the default) */ @Test public void testGetTimePattern() { - assertEquals(TIME_PATTERN, TmfTimePreferences.getTimePattern()); + assertEquals(TIME_PATTERN, TmfTimePreferences.getInstance().getTimePattern()); } /** @@ -55,7 +64,7 @@ public class TmfTimePreferencesTest { */ @Test public void testGetIntervalPattern() { - assertEquals(INTERVAL_PATTERN, TmfTimePreferences.getIntervalPattern()); + assertEquals(INTERVAL_PATTERN, TmfTimePreferences.getInstance().getIntervalPattern()); } /** @@ -63,7 +72,7 @@ public class TmfTimePreferencesTest { */ @Test public void testGetTimeZone() { - assertEquals(TimeZone.getDefault(), TmfTimePreferences.getTimeZone()); + assertEquals(TimeZone.getDefault(), TmfTimePreferences.getInstance().getTimeZone()); } /** @@ -72,7 +81,7 @@ public class TmfTimePreferencesTest { */ @Test public void testGetPreferenceMap() { - Map defaultPreferenceMap = TmfTimePreferences.getDefaultPreferenceMap(); + Map defaultPreferenceMap = TmfTimePreferences.getInstance().getDefaultPreferenceMap(); assertEquals(ITmfTimePreferencesConstants.TIME_HOUR_FMT, defaultPreferenceMap.get(ITmfTimePreferencesConstants.DATIME)); // Modify the preferences @@ -84,11 +93,11 @@ public class TmfTimePreferencesTest { } catch (BackingStoreException e) { } // Make sure the modification is in the map - Map preferenceMap = TmfTimePreferences.getPreferenceMap(); + Map preferenceMap = TmfTimePreferences.getInstance().getPreferenceMap(); assertEquals(testValue, preferenceMap.get(ITmfTimePreferencesConstants.DATIME)); // Make sure the default is still the same - defaultPreferenceMap = TmfTimePreferences.getDefaultPreferenceMap(); + defaultPreferenceMap = TmfTimePreferences.getInstance().getDefaultPreferenceMap(); assertEquals(ITmfTimePreferencesConstants.TIME_HOUR_FMT, defaultPreferenceMap.get(ITmfTimePreferencesConstants.DATIME)); } @@ -97,7 +106,7 @@ public class TmfTimePreferencesTest { */ @Test public void testComputeTimePattern() { - assertEquals(TIME_PATTERN, TmfTimePreferences.computeTimePattern(TmfTimePreferences.getPreferenceMap())); + assertEquals(TIME_PATTERN, TmfTimePreferences.getInstance().computeTimePattern(TmfTimePreferences.getInstance().getPreferenceMap())); } } diff --git a/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimestampFormatTest.java b/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimestampFormatTest.java index a967d449ab..523c697ab2 100644 --- a/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimestampFormatTest.java +++ b/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfTimestampFormatTest.java @@ -106,7 +106,7 @@ public class TmfTimestampFormatTest { */ @Test public void testGetDefaulTimeFormat() { - assertEquals(TmfTimestampFormat.getDefaulTimeFormat().toPattern(), TmfTimePreferences.getTimePattern()); + assertEquals(TmfTimestampFormat.getDefaulTimeFormat().toPattern(), TmfTimePreferences.getInstance().getTimePattern()); } /** @@ -115,7 +115,7 @@ public class TmfTimestampFormatTest { */ @Test public void testGetDefaulIntervalFormat() { - assertEquals(TmfTimestampFormat.getDefaulIntervalFormat().toPattern(), TmfTimePreferences.getIntervalPattern()); + assertEquals(TmfTimestampFormat.getDefaulIntervalFormat().toPattern(), TmfTimePreferences.getInstance().getIntervalPattern()); } /** diff --git a/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/timestamp/TmfTimePreferences.java b/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/timestamp/TmfTimePreferences.java index f1dcfbf394..be8e17d31f 100644 --- a/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/timestamp/TmfTimePreferences.java +++ b/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/timestamp/TmfTimePreferences.java @@ -30,7 +30,7 @@ import org.eclipse.linuxtools.internal.tmf.core.Activator; * @version 1.0 * @since 2.1 */ -public final class TmfTimePreferences { +public class TmfTimePreferences { // ------------------------------------------------------------------------ // Constants @@ -42,6 +42,11 @@ public final class TmfTimePreferences { private static final String TIME_DELIMITER_DEFAULT = ITmfTimePreferencesConstants.DELIMITER_COLON; private static final String SSEC_DELIMITER_DEFAULT = ITmfTimePreferencesConstants.DELIMITER_SPACE; private static final String TIME_ZONE_DEFAULT = TimeZone.getDefault().getID(); + // ------------------------------------------------------------------------ + // Attributes + // ------------------------------------------------------------------------ + + private static TmfTimePreferences fPreferences; // ------------------------------------------------------------------------ // Constructor @@ -59,7 +64,21 @@ public final class TmfTimePreferences { defaultPreferences.put(ITmfTimePreferencesConstants.SSEC_DELIMITER, SSEC_DELIMITER_DEFAULT); defaultPreferences.put(ITmfTimePreferencesConstants.TIME_ZONE, TIME_ZONE_DEFAULT); - TmfTimestampFormat.updateDefaultFormats(); + // Create the singleton and update default formats + getInstance(); + } + + /** + * Get the TmfTimePreferences singleton + * + * @return The TmfTimePreferences instance + */ + public static synchronized TmfTimePreferences getInstance() { + if (fPreferences == null) { + fPreferences = new TmfTimePreferences(); + TmfTimestampFormat.updateDefaultFormats(); + } + return fPreferences; } /** @@ -77,7 +96,7 @@ public final class TmfTimePreferences { * * @return the timestamp pattern */ - public static String getTimePattern() { + public String getTimePattern() { return computeTimePattern(getPreferenceMap(false)); } @@ -86,7 +105,7 @@ public final class TmfTimePreferences { * * @return the interval pattern */ - public static String getIntervalPattern() { + public String getIntervalPattern() { return computeIntervalPattern(getPreferenceMap(false)); } @@ -95,7 +114,7 @@ public final class TmfTimePreferences { * * @return the time zone */ - public static TimeZone getTimeZone() { + public TimeZone getTimeZone() { return TimeZone.getTimeZone(Platform.getPreferencesService().getString(Activator.PLUGIN_ID, ITmfTimePreferencesConstants.TIME_ZONE, TimeZone.getDefault().getID(), null)); } @@ -104,7 +123,7 @@ public final class TmfTimePreferences { * * @return a collection containing the default preferences */ - public static Map getDefaultPreferenceMap() { + public Map getDefaultPreferenceMap() { return getPreferenceMap(true); } @@ -113,7 +132,7 @@ public final class TmfTimePreferences { * * @return a collection containing the current preferences */ - public static Map getPreferenceMap() { + public Map getPreferenceMap() { return getPreferenceMap(false); } @@ -154,7 +173,7 @@ public final class TmfTimePreferences { * @param prefsMap the preferences to apply when computing the time pattern * @return the time pattern resulting in applying the preferences */ - public static String computeTimePattern(Map prefsMap) { + public String computeTimePattern(Map prefsMap) { String dateTimeFormat = prefsMap.get(ITmfTimePreferencesConstants.DATIME); if (dateTimeFormat == null) { dateTimeFormat = ITmfTimePreferencesConstants.DEFAULT_TIME_PATTERN; diff --git a/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/timestamp/TmfTimestampFormat.java b/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/timestamp/TmfTimestampFormat.java index 60f5c7dc30..3259c150e8 100644 --- a/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/timestamp/TmfTimestampFormat.java +++ b/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/timestamp/TmfTimestampFormat.java @@ -244,7 +244,7 @@ public class TmfTimestampFormat extends SimpleDateFormat { * The default constructor (uses the default pattern) */ public TmfTimestampFormat() { - this(TmfTimePreferences.getTimePattern()); + this(TmfTimePreferences.getInstance().getTimePattern()); } /** @@ -285,8 +285,8 @@ public class TmfTimestampFormat extends SimpleDateFormat { * @since 2.1 */ public static void updateDefaultFormats() { - fDefaultTimeFormat = new TmfTimestampFormat(TmfTimePreferences.getTimePattern(), TmfTimePreferences.getTimeZone()); - fDefaultIntervalFormat = new TmfTimestampFormat(TmfTimePreferences.getIntervalPattern()); + fDefaultTimeFormat = new TmfTimestampFormat(TmfTimePreferences.getInstance().getTimePattern(), TmfTimePreferences.getInstance().getTimeZone()); + fDefaultIntervalFormat = new TmfTimestampFormat(TmfTimePreferences.getInstance().getIntervalPattern()); } /** @@ -294,7 +294,7 @@ public class TmfTimestampFormat extends SimpleDateFormat { */ public static TmfTimestampFormat getDefaulTimeFormat() { if (fDefaultTimeFormat == null) { - fDefaultTimeFormat = new TmfTimestampFormat(TmfTimePreferences.getTimePattern(), TmfTimePreferences.getTimeZone()); + fDefaultTimeFormat = new TmfTimestampFormat(TmfTimePreferences.getInstance().getTimePattern(), TmfTimePreferences.getInstance().getTimeZone()); } return fDefaultTimeFormat; } @@ -304,7 +304,7 @@ public class TmfTimestampFormat extends SimpleDateFormat { */ public static TmfTimestampFormat getDefaulIntervalFormat() { if (fDefaultIntervalFormat == null) { - fDefaultIntervalFormat = new TmfTimestampFormat(TmfTimePreferences.getIntervalPattern()); + fDefaultIntervalFormat = new TmfTimestampFormat(TmfTimePreferences.getInstance().getIntervalPattern()); } return fDefaultIntervalFormat; } diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/properties/TmfTimestampFormatPage.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/properties/TmfTimestampFormatPage.java index be5371b37e..5c37a23eb2 100644 --- a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/properties/TmfTimestampFormatPage.java +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/properties/TmfTimestampFormatPage.java @@ -153,6 +153,7 @@ public class TmfTimestampFormatPage extends PreferencePage implements IWorkbench // General stuff private Composite fPage; private IPreferenceStore fPreferenceStore; + private TmfTimePreferences fTimePreference; // Example section private Composite fExampleSection; @@ -186,7 +187,8 @@ public class TmfTimestampFormatPage extends PreferencePage implements IWorkbench */ public TmfTimestampFormatPage() { fPreferenceStore = getPreferenceStore(); - fPreferenceMap = TmfTimePreferences.getPreferenceMap(); + fTimePreference = TmfTimePreferences.getInstance(); + fPreferenceMap = fTimePreference.getPreferenceMap(); } // ------------------------------------------------------------------------ @@ -304,7 +306,7 @@ public class TmfTimestampFormatPage extends PreferencePage implements IWorkbench fSSecFieldDelim.loadDefault(); fCombo.loadDefault(); - fPreferenceMap = TmfTimePreferences.getDefaultPreferenceMap(); + fPreferenceMap = TmfTimePreferences.getInstance().getDefaultPreferenceMap(); displayExample(); } @@ -378,7 +380,7 @@ public class TmfTimestampFormatPage extends PreferencePage implements IWorkbench private void displayExample() { long ts = 1332170682500677380L; - String timePattern = TmfTimePreferences.computeTimePattern(fPreferenceMap); + String timePattern = fTimePreference.computeTimePattern(fPreferenceMap); fPatternDisplay.setText(timePattern); fPatternDisplay.redraw(); diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphScale.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphScale.java index 2128e01659..1dda20588f 100644 --- a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphScale.java +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/TimeGraphScale.java @@ -588,7 +588,7 @@ abstract class TimeDraw { * Updates the timezone using the preferences. */ public static void updateTimeZone() { - final TimeZone timeZone = TmfTimePreferences.getTimeZone(); + final TimeZone timeZone = TmfTimePreferences.getInstance().getTimeZone(); for (SimpleDateFormat sdf : formatArray) { sdf.setTimeZone(timeZone); } diff --git a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/Utils.java b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/Utils.java index 0440f488fd..a75c5d9fe3 100644 --- a/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/Utils.java +++ b/org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/widgets/timegraph/widgets/Utils.java @@ -89,7 +89,7 @@ public class Utils { * @since 2.1 */ public static void updateTimeZone() { - TimeZone timeZone = TmfTimePreferences.getTimeZone(); + TimeZone timeZone = TmfTimePreferences.getInstance().getTimeZone(); TIME_FORMAT.setTimeZone(timeZone); DATE_FORMAT.setTimeZone(timeZone); } -- 2.34.1