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;
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());
}
/**
*/
@Test
public void testGetIntervalPattern() {
- assertEquals(INTERVAL_PATTERN, TmfTimePreferences.getIntervalPattern());
+ assertEquals(INTERVAL_PATTERN, TmfTimePreferences.getInstance().getIntervalPattern());
}
/**
*/
@Test
public void testGetTimeZone() {
- assertEquals(TimeZone.getDefault(), TmfTimePreferences.getTimeZone());
+ assertEquals(TimeZone.getDefault(), TmfTimePreferences.getInstance().getTimeZone());
}
/**
*/
@Test
public void testGetPreferenceMap() {
- Map<String, String> defaultPreferenceMap = TmfTimePreferences.getDefaultPreferenceMap();
+ Map<String, String> defaultPreferenceMap = TmfTimePreferences.getInstance().getDefaultPreferenceMap();
assertEquals(ITmfTimePreferencesConstants.TIME_HOUR_FMT, defaultPreferenceMap.get(ITmfTimePreferencesConstants.DATIME));
// Modify the preferences
} catch (BackingStoreException e) {
}
// Make sure the modification is in the map
- Map<String, String> preferenceMap = TmfTimePreferences.getPreferenceMap();
+ Map<String, String> 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));
}
*/
@Test
public void testComputeTimePattern() {
- assertEquals(TIME_PATTERN, TmfTimePreferences.computeTimePattern(TmfTimePreferences.getPreferenceMap()));
+ assertEquals(TIME_PATTERN, TmfTimePreferences.getInstance().computeTimePattern(TmfTimePreferences.getInstance().getPreferenceMap()));
}
}
*/
@Test
public void testGetDefaulTimeFormat() {
- assertEquals(TmfTimestampFormat.getDefaulTimeFormat().toPattern(), TmfTimePreferences.getTimePattern());
+ assertEquals(TmfTimestampFormat.getDefaulTimeFormat().toPattern(), TmfTimePreferences.getInstance().getTimePattern());
}
/**
*/
@Test
public void testGetDefaulIntervalFormat() {
- assertEquals(TmfTimestampFormat.getDefaulIntervalFormat().toPattern(), TmfTimePreferences.getIntervalPattern());
+ assertEquals(TmfTimestampFormat.getDefaulIntervalFormat().toPattern(), TmfTimePreferences.getInstance().getIntervalPattern());
}
/**
* @version 1.0
* @since 2.1
*/
-public final class TmfTimePreferences {
+public class TmfTimePreferences {
// ------------------------------------------------------------------------
// Constants
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
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;
}
/**
*
* @return the timestamp pattern
*/
- public static String getTimePattern() {
+ public String getTimePattern() {
return computeTimePattern(getPreferenceMap(false));
}
*
* @return the interval pattern
*/
- public static String getIntervalPattern() {
+ public String getIntervalPattern() {
return computeIntervalPattern(getPreferenceMap(false));
}
*
* @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));
}
*
* @return a collection containing the default preferences
*/
- public static Map<String, String> getDefaultPreferenceMap() {
+ public Map<String, String> getDefaultPreferenceMap() {
return getPreferenceMap(true);
}
*
* @return a collection containing the current preferences
*/
- public static Map<String, String> getPreferenceMap() {
+ public Map<String, String> getPreferenceMap() {
return getPreferenceMap(false);
}
* @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<String, String> prefsMap) {
+ public String computeTimePattern(Map<String, String> prefsMap) {
String dateTimeFormat = prefsMap.get(ITmfTimePreferencesConstants.DATIME);
if (dateTimeFormat == null) {
dateTimeFormat = ITmfTimePreferencesConstants.DEFAULT_TIME_PATTERN;
* The default constructor (uses the default pattern)
*/
public TmfTimestampFormat() {
- this(TmfTimePreferences.getTimePattern());
+ this(TmfTimePreferences.getInstance().getTimePattern());
}
/**
* @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());
}
/**
*/
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;
}
*/
public static TmfTimestampFormat getDefaulIntervalFormat() {
if (fDefaultIntervalFormat == null) {
- fDefaultIntervalFormat = new TmfTimestampFormat(TmfTimePreferences.getIntervalPattern());
+ fDefaultIntervalFormat = new TmfTimestampFormat(TmfTimePreferences.getInstance().getIntervalPattern());
}
return fDefaultIntervalFormat;
}
// General stuff
private Composite fPage;
private IPreferenceStore fPreferenceStore;
+ private TmfTimePreferences fTimePreference;
// Example section
private Composite fExampleSection;
*/
public TmfTimestampFormatPage() {
fPreferenceStore = getPreferenceStore();
- fPreferenceMap = TmfTimePreferences.getPreferenceMap();
+ fTimePreference = TmfTimePreferences.getInstance();
+ fPreferenceMap = fTimePreference.getPreferenceMap();
}
// ------------------------------------------------------------------------
fSSecFieldDelim.loadDefault();
fCombo.loadDefault();
- fPreferenceMap = TmfTimePreferences.getDefaultPreferenceMap();
+ fPreferenceMap = TmfTimePreferences.getInstance().getDefaultPreferenceMap();
displayExample();
}
private void displayExample() {
long ts = 1332170682500677380L;
- String timePattern = TmfTimePreferences.computeTimePattern(fPreferenceMap);
+ String timePattern = fTimePreference.computeTimePattern(fPreferenceMap);
fPatternDisplay.setText(timePattern);
fPatternDisplay.redraw();
* 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);
}
* @since 2.1
*/
public static void updateTimeZone() {
- TimeZone timeZone = TmfTimePreferences.getTimeZone();
+ TimeZone timeZone = TmfTimePreferences.getInstance().getTimeZone();
TIME_FORMAT.setTimeZone(timeZone);
DATE_FORMAT.setTimeZone(timeZone);
}