|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.openstreetmap.josm.data.Preferences
public class Preferences
This class holds all preferences for JOSM. Other classes can register their beloved properties here. All properties will be saved upon set-access. Each property is a key=setting pair, where key is a String and setting can be one of 4 types: string, list, list of lists and list of maps. In addition, each key has a unique default value that is set when the value is first accessed using one of the get...() methods. You can use the same preference key in different parts of the code, but the default value must be the same everywhere. A default value of null means, the setting has been requested, but no default value was set. This is used in advanced preferences to present a list off all possible settings. At the moment, you cannot put the empty string for string properties. put(key, "") means, the property is removed.
Nested Class Summary | |
---|---|
static class |
Preferences.AbstractSetting<T>
|
static interface |
Preferences.ColorKey
|
private static class |
Preferences.DefaultPreferenceChangeEvent<T>
|
static class |
Preferences.ListListSetting
|
static class |
Preferences.ListSetting
|
static class |
Preferences.MapListSetting
|
static interface |
Preferences.pref
|
static interface |
Preferences.PreferenceChangedListener
|
static interface |
Preferences.PreferenceChangeEvent<T>
|
static interface |
Preferences.Setting<T>
Interface for a preference value |
private class |
Preferences.SettingToXml
|
static interface |
Preferences.SettingVisitor
|
static class |
Preferences.StringSetting
|
static interface |
Preferences.writeExplicitly
|
Field Summary | |
---|---|
protected java.util.SortedMap<java.lang.String,java.util.List<java.util.List<java.lang.String>>> |
arrayDefaults
|
protected java.util.SortedMap<java.lang.String,java.util.List<java.util.List<java.lang.String>>> |
arrayProperties
|
private java.io.File |
cacheDirFile
Internal storage for the cache directory. |
protected java.util.SortedMap<java.lang.String,java.util.List<java.lang.String>> |
collectionDefaults
Defaults, can contain null values |
protected java.util.SortedMap<java.lang.String,java.util.List<java.lang.String>> |
collectionProperties
Mapping for list settings. |
protected java.util.SortedMap<java.lang.String,java.lang.String> |
colornames
|
private static java.lang.String[] |
DEFAULT_PLUGIN_SITE
The default plugin site |
protected java.util.SortedMap<java.lang.String,java.lang.String> |
defaults
Map of defaults, can contain null values |
private java.util.concurrent.CopyOnWriteArrayList<Preferences.PreferenceChangedListener> |
listeners
|
protected java.util.SortedMap<java.lang.String,java.util.List<java.util.Map<java.lang.String,java.lang.String>>> |
listOfStructsDefaults
|
protected java.util.SortedMap<java.lang.String,java.util.List<java.util.Map<java.lang.String,java.lang.String>>> |
listOfStructsProperties
|
protected javax.xml.stream.XMLStreamReader |
parser
|
private java.io.File |
preferencesDirFile
Internal storage for the preference directory. |
protected java.util.SortedMap<java.lang.String,java.lang.String> |
properties
Map the property name to strings. |
Constructor Summary | |
---|---|
Preferences()
|
Method Summary | ||
---|---|---|
void |
addPreferenceChangeListener(Preferences.PreferenceChangedListener listener)
|
|
static void |
copyFile(java.io.File in,
java.io.File out)
Simple file copy function that will overwrite the target file Taken from http://www.rgagnon.com/javadetails/java-0064.html (CC-NC-BY-SA) |
|
static
|
deserializeStruct(java.util.Map<java.lang.String,java.lang.String> hash,
java.lang.Class<T> klass)
|
|
static boolean |
equalArray(java.util.Collection<java.util.Collection<java.lang.String>> a,
java.util.Collection<java.util.List<java.lang.String>> b)
|
|
static boolean |
equalCollection(java.util.Collection<java.lang.String> a,
java.util.Collection<java.lang.String> b)
|
|
static boolean |
equalListOfStructs(java.util.Collection<java.util.Map<java.lang.String,java.lang.String>> a,
java.util.Collection<java.util.Map<java.lang.String,java.lang.String>> b)
|
|
private static boolean |
equalMap(java.util.Map<java.lang.String,java.lang.String> a,
java.util.Map<java.lang.String,java.lang.String> b)
|
|
protected
|
firePreferenceChanged(java.lang.String key,
Preferences.Setting<T> oldValue,
Preferences.Setting<T> newValue)
|
|
void |
fromXML(java.io.Reader in)
|
|
java.lang.String |
get(java.lang.String key)
Get settings value for a certain key. |
|
java.lang.String |
get(java.lang.String key,
java.lang.String def)
Get settings value for a certain key and provide default a value. |
|
java.util.TreeMap<java.lang.String,java.lang.String> |
getAllColors()
|
|
java.util.Map<java.lang.String,Preferences.Setting> |
getAllDefaults()
|
|
java.util.Collection<java.lang.String> |
getAllPossiblePreferenceDirs()
|
|
java.util.Map<java.lang.String,java.lang.String> |
getAllPrefix(java.lang.String prefix)
|
|
java.util.List<java.lang.String> |
getAllPrefixCollectionKeys(java.lang.String prefix)
|
|
private java.util.Map<java.lang.String,java.lang.String> |
getAllPrefixDefault(java.lang.String prefix)
|
|
java.util.Map<java.lang.String,Preferences.Setting> |
getAllSettings()
|
|
java.util.Collection<java.util.Collection<java.lang.String>> |
getArray(java.lang.String key)
|
|
java.util.Collection<java.util.Collection<java.lang.String>> |
getArray(java.lang.String key,
java.util.Collection<java.util.Collection<java.lang.String>> def)
Used to read a 2-dimensional array of strings from the preference file. |
|
private java.util.List<java.util.List<java.lang.String>> |
getArrayInternal(java.lang.String key)
|
|
boolean |
getBoolean(java.lang.String key)
|
|
boolean |
getBoolean(java.lang.String key,
boolean def)
|
|
boolean |
getBoolean(java.lang.String key,
java.lang.String specName,
boolean def)
|
|
java.io.File |
getCacheDirectory()
|
|
java.util.Collection<java.lang.String> |
getCollection(java.lang.String key)
Get a list of values for a certain key |
|
java.util.Collection<java.lang.String> |
getCollection(java.lang.String key,
java.util.Collection<java.lang.String> def)
Get a list of values for a certain key |
|
private java.util.List<java.lang.String> |
getCollectionInternal(java.lang.String key)
|
|
java.awt.Color |
getColor(Preferences.ColorKey key)
|
|
java.awt.Color |
getColor(java.lang.String colName,
java.awt.Color def)
Convenience method for accessing colour preferences. |
|
java.awt.Color |
getColor(java.lang.String colName,
java.lang.String specName,
java.awt.Color def)
Convenience method for accessing colour preferences. |
|
java.lang.String |
getColorName(java.lang.String o)
|
|
java.awt.Color |
getDefaultColor(java.lang.String colKey)
|
|
java.util.Map<java.lang.String,java.lang.String> |
getDefaults()
|
|
double |
getDouble(java.lang.String key,
double def)
|
|
double |
getDouble(java.lang.String key,
java.lang.String def)
|
|
int |
getInteger(java.lang.String key,
int def)
|
|
int |
getInteger(java.lang.String key,
java.lang.String specName,
int def)
|
|
|
getListOfStructs(java.lang.String key,
java.lang.Class<T> klass)
Get a list of hashes which are represented by a struct-like class. |
|
java.util.Collection<java.util.Map<java.lang.String,java.lang.String>> |
getListOfStructs(java.lang.String key,
java.util.Collection<java.util.Map<java.lang.String,java.lang.String>> def)
|
|
|
getListOfStructs(java.lang.String key,
java.util.Collection<T> def,
java.lang.Class<T> klass)
same as above, but returns def if nothing was found |
|
private java.util.List<java.util.Map<java.lang.String,java.lang.String>> |
getListOfStructsInternal(java.lang.String key)
|
|
long |
getLong(java.lang.String key,
long def)
|
|
java.io.File |
getOldPreferenceFile()
|
|
java.io.File |
getPluginsDirectory()
|
|
java.util.Collection<java.lang.String> |
getPluginSites()
Replies the collection of plugin site URLs from where plugin lists can be downloaded |
|
java.io.File |
getPreferenceFile()
|
|
java.lang.String |
getPreferencesDir()
Return the location of the user defined preferences file |
|
java.io.File |
getPreferencesDirFile()
|
|
java.awt.Color |
getUIColor(java.lang.String colName)
|
|
void |
init(boolean reset)
|
|
static boolean |
isEqual(Preferences.Setting a,
Preferences.Setting b)
|
|
private void |
jumpToEnd()
|
|
void |
load()
|
|
private void |
load(boolean old)
|
|
void |
loadOld()
|
|
void |
parse()
|
|
protected java.util.List<java.lang.String> |
parseInnerList()
|
|
protected java.util.Map<java.lang.String,java.lang.String> |
parseMap()
|
|
void |
parseRoot()
|
|
protected void |
parseToplevelList()
|
|
boolean |
put(java.lang.String key,
boolean value)
|
|
boolean |
put(java.lang.String key,
java.lang.String value)
Set a value for a certain setting. |
|
boolean |
putArray(java.lang.String key,
java.util.Collection<java.util.Collection<java.lang.String>> value)
|
|
private void |
putArrayDefault(java.lang.String key,
java.util.List<java.util.List<java.lang.String>> val)
|
|
boolean |
putCollection(java.lang.String key,
java.util.Collection<java.lang.String> value)
|
|
boolean |
putCollectionBounded(java.lang.String key,
int maxsize,
java.util.Collection<java.lang.String> val)
Saves at most maxsize items of collection val . |
|
private void |
putCollectionDefault(java.lang.String key,
java.util.List<java.lang.String> val)
|
|
boolean |
putColor(java.lang.String colKey,
java.awt.Color val)
|
|
void |
putDefault(java.lang.String key,
java.lang.String def)
|
|
boolean |
putDouble(java.lang.String key,
java.lang.Double value)
|
|
boolean |
putInteger(java.lang.String key,
java.lang.Integer value)
|
|
boolean |
putListOfStructs(java.lang.String key,
java.util.Collection<java.util.Map<java.lang.String,java.lang.String>> value)
|
|
|
putListOfStructs(java.lang.String key,
java.util.Collection<T> val,
java.lang.Class<T> klass)
Save a list of hashes represented by a struct-like class. |
|
private void |
putListOfStructsDefault(java.lang.String key,
java.util.List<java.util.Map<java.lang.String,java.lang.String>> val)
|
|
boolean |
putLong(java.lang.String key,
java.lang.Long value)
|
|
boolean |
putSetting(java.lang.String key,
Preferences.Setting value)
|
|
void |
removeFromCollection(java.lang.String key,
java.lang.String value)
|
|
void |
removeObsolete()
Removes obsolete preference settings. |
|
void |
removePreferenceChangeListener(Preferences.PreferenceChangedListener listener)
|
|
void |
resetToDefault()
|
|
void |
save()
Called after every put. |
|
private
|
serializeListOfStructs(java.util.Collection<T> l,
java.lang.Class<T> klass)
|
|
static
|
serializeStruct(T struct,
java.lang.Class<T> klass)
|
|
private void |
setCorrectPermissions(java.io.File file)
|
|
void |
setPluginSites(java.util.Collection<java.lang.String> sites)
Sets the collection of plugin site URLs. |
|
protected void |
throwException(java.lang.String msg)
|
|
java.lang.String |
toXML(boolean nopass)
|
|
void |
updateSystemProperties()
Updates system properties with the current values in the preferences. |
|
private void |
updateSystemProperty(java.lang.String key,
java.lang.String value)
|
|
void |
validateXML(java.io.Reader in)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private java.io.File preferencesDirFile
getPreferencesDirFile()
private java.io.File cacheDirFile
protected final java.util.SortedMap<java.lang.String,java.lang.String> properties
protected final java.util.SortedMap<java.lang.String,java.lang.String> defaults
protected final java.util.SortedMap<java.lang.String,java.lang.String> colornames
protected final java.util.SortedMap<java.lang.String,java.util.List<java.lang.String>> collectionProperties
protected final java.util.SortedMap<java.lang.String,java.util.List<java.lang.String>> collectionDefaults
protected final java.util.SortedMap<java.lang.String,java.util.List<java.util.List<java.lang.String>>> arrayProperties
protected final java.util.SortedMap<java.lang.String,java.util.List<java.util.List<java.lang.String>>> arrayDefaults
protected final java.util.SortedMap<java.lang.String,java.util.List<java.util.Map<java.lang.String,java.lang.String>>> listOfStructsProperties
protected final java.util.SortedMap<java.lang.String,java.util.List<java.util.Map<java.lang.String,java.lang.String>>> listOfStructsDefaults
private final java.util.concurrent.CopyOnWriteArrayList<Preferences.PreferenceChangedListener> listeners
private static final java.lang.String[] DEFAULT_PLUGIN_SITE
protected javax.xml.stream.XMLStreamReader parser
Constructor Detail |
---|
public Preferences()
Method Detail |
---|
public void addPreferenceChangeListener(Preferences.PreferenceChangedListener listener)
public void removePreferenceChangeListener(Preferences.PreferenceChangedListener listener)
protected <T> void firePreferenceChanged(java.lang.String key, Preferences.Setting<T> oldValue, Preferences.Setting<T> newValue)
public java.lang.String getPreferencesDir()
public java.io.File getPreferencesDirFile()
public java.io.File getPreferenceFile()
public java.io.File getOldPreferenceFile()
public java.io.File getPluginsDirectory()
public java.io.File getCacheDirectory()
public java.util.Collection<java.lang.String> getAllPossiblePreferenceDirs()
public java.lang.String get(java.lang.String key)
key
- the identifier for the setting
public java.lang.String get(java.lang.String key, java.lang.String def)
key
- the identifier for the settingdef
- the default value. For each call of get() with a given key, the
default value must be the same.
public java.util.Map<java.lang.String,java.lang.String> getAllPrefix(java.lang.String prefix)
public java.util.List<java.lang.String> getAllPrefixCollectionKeys(java.lang.String prefix)
private java.util.Map<java.lang.String,java.lang.String> getAllPrefixDefault(java.lang.String prefix)
public java.util.TreeMap<java.lang.String,java.lang.String> getAllColors()
public java.util.Map<java.lang.String,java.lang.String> getDefaults()
public void putDefault(java.lang.String key, java.lang.String def)
public boolean getBoolean(java.lang.String key)
public boolean getBoolean(java.lang.String key, boolean def)
public boolean getBoolean(java.lang.String key, java.lang.String specName, boolean def)
public boolean put(java.lang.String key, java.lang.String value)
key
- the unique identifier for the settingvalue
- the value of the setting. Can be null or "" which both removes
the key-value entry.
public boolean put(java.lang.String key, boolean value)
public boolean putInteger(java.lang.String key, java.lang.Integer value)
public boolean putDouble(java.lang.String key, java.lang.Double value)
public boolean putLong(java.lang.String key, java.lang.Long value)
public void save() throws java.io.IOException
java.io.IOException
private void setCorrectPermissions(java.io.File file)
public static void copyFile(java.io.File in, java.io.File out) throws java.io.IOException
in
- out
-
java.io.IOException
public void loadOld() throws java.lang.Exception
java.lang.Exception
public void load() throws java.lang.Exception
java.lang.Exception
private void load(boolean old) throws java.lang.Exception
java.lang.Exception
public void init(boolean reset)
public final void resetToDefault()
public java.awt.Color getColor(java.lang.String colName, java.awt.Color def)
colName
- name of the colourdef
- default value
public java.awt.Color getUIColor(java.lang.String colName)
public java.lang.String getColorName(java.lang.String o)
public java.awt.Color getColor(Preferences.ColorKey key)
public java.awt.Color getColor(java.lang.String colName, java.lang.String specName, java.awt.Color def)
colName
- name of the colourspecName
- name of the special colour settingsdef
- default value
public java.awt.Color getDefaultColor(java.lang.String colKey)
public boolean putColor(java.lang.String colKey, java.awt.Color val)
public int getInteger(java.lang.String key, int def)
public int getInteger(java.lang.String key, java.lang.String specName, int def)
public long getLong(java.lang.String key, long def)
public double getDouble(java.lang.String key, double def)
public double getDouble(java.lang.String key, java.lang.String def)
public java.util.Collection<java.lang.String> getCollection(java.lang.String key, java.util.Collection<java.lang.String> def)
key
- the identifier for the settingdef
- the default value.
public java.util.Collection<java.lang.String> getCollection(java.lang.String key)
key
- the identifier for the setting
private java.util.List<java.lang.String> getCollectionInternal(java.lang.String key)
public void removeFromCollection(java.lang.String key, java.lang.String value)
public boolean putCollection(java.lang.String key, java.util.Collection<java.lang.String> value)
public static boolean equalCollection(java.util.Collection<java.lang.String> a, java.util.Collection<java.lang.String> b)
public boolean putCollectionBounded(java.lang.String key, int maxsize, java.util.Collection<java.lang.String> val)
maxsize
items of collection val
.
private void putCollectionDefault(java.lang.String key, java.util.List<java.lang.String> val)
public java.util.Collection<java.util.Collection<java.lang.String>> getArray(java.lang.String key, java.util.Collection<java.util.Collection<java.lang.String>> def)
public java.util.Collection<java.util.Collection<java.lang.String>> getArray(java.lang.String key)
private java.util.List<java.util.List<java.lang.String>> getArrayInternal(java.lang.String key)
public boolean putArray(java.lang.String key, java.util.Collection<java.util.Collection<java.lang.String>> value)
public static boolean equalArray(java.util.Collection<java.util.Collection<java.lang.String>> a, java.util.Collection<java.util.List<java.lang.String>> b)
private void putArrayDefault(java.lang.String key, java.util.List<java.util.List<java.lang.String>> val)
public java.util.Collection<java.util.Map<java.lang.String,java.lang.String>> getListOfStructs(java.lang.String key, java.util.Collection<java.util.Map<java.lang.String,java.lang.String>> def)
private java.util.List<java.util.Map<java.lang.String,java.lang.String>> getListOfStructsInternal(java.lang.String key)
public boolean putListOfStructs(java.lang.String key, java.util.Collection<java.util.Map<java.lang.String,java.lang.String>> value)
public static boolean equalListOfStructs(java.util.Collection<java.util.Map<java.lang.String,java.lang.String>> a, java.util.Collection<java.util.Map<java.lang.String,java.lang.String>> b)
private static boolean equalMap(java.util.Map<java.lang.String,java.lang.String> a, java.util.Map<java.lang.String,java.lang.String> b)
private void putListOfStructsDefault(java.lang.String key, java.util.List<java.util.Map<java.lang.String,java.lang.String>> val)
public <T> java.util.List<T> getListOfStructs(java.lang.String key, java.lang.Class<T> klass)
key
- main preference keyklass
- The struct class
public <T> java.util.List<T> getListOfStructs(java.lang.String key, java.util.Collection<T> def, java.lang.Class<T> klass)
public <T> boolean putListOfStructs(java.lang.String key, java.util.Collection<T> val, java.lang.Class<T> klass)
key
- main preference keyval
- the list that is supposed to be savedklass
- The struct class
private <T> java.util.Collection<java.util.Map<java.lang.String,java.lang.String>> serializeListOfStructs(java.util.Collection<T> l, java.lang.Class<T> klass)
public static <T> java.util.Map<java.lang.String,java.lang.String> serializeStruct(T struct, java.lang.Class<T> klass)
public static <T> T deserializeStruct(java.util.Map<java.lang.String,java.lang.String> hash, java.lang.Class<T> klass)
public boolean putSetting(java.lang.String key, Preferences.Setting value)
public java.util.Map<java.lang.String,Preferences.Setting> getAllSettings()
public java.util.Map<java.lang.String,Preferences.Setting> getAllDefaults()
public void updateSystemProperties()
private void updateSystemProperty(java.lang.String key, java.lang.String value)
public java.util.Collection<java.lang.String> getPluginSites()
public void setPluginSites(java.util.Collection<java.lang.String> sites)
sites
- the site URLspublic void validateXML(java.io.Reader in) throws java.lang.Exception
java.lang.Exception
public void fromXML(java.io.Reader in) throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
public void parse() throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
public void parseRoot() throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
private void jumpToEnd() throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
protected void parseToplevelList() throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
protected java.util.List<java.lang.String> parseInnerList() throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
protected java.util.Map<java.lang.String,java.lang.String> parseMap() throws javax.xml.stream.XMLStreamException
javax.xml.stream.XMLStreamException
protected void throwException(java.lang.String msg)
public java.lang.String toXML(boolean nopass)
public void removeObsolete()
public static boolean isEqual(Preferences.Setting a, Preferences.Setting b)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |