X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=core%2Fsrc%2Fnet%2Fsf%2Fopenrocket%2Fgui%2Futil%2FSwingPreferences.java;h=61e6be857657536c10f4a30291040b7ec7a040fc;hb=4095cb0dd61a75b7b6b0bd811f8e803af5b27919;hp=63bfd61404c4d934be29ffbbe85b377f2d63db9b;hpb=c455ba13317122575c3d5f9dbbe024612a29014c;p=debian%2Fopenrocket diff --git a/core/src/net/sf/openrocket/gui/util/SwingPreferences.java b/core/src/net/sf/openrocket/gui/util/SwingPreferences.java index 63bfd614..61e6be85 100644 --- a/core/src/net/sf/openrocket/gui/util/SwingPreferences.java +++ b/core/src/net/sf/openrocket/gui/util/SwingPreferences.java @@ -5,6 +5,7 @@ import java.awt.Dimension; import java.awt.Point; import java.io.File; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -17,6 +18,7 @@ import net.sf.openrocket.arch.SystemInfo; import net.sf.openrocket.document.Simulation; import net.sf.openrocket.logging.LogHelper; import net.sf.openrocket.material.Material; +import net.sf.openrocket.preset.ComponentPreset; import net.sf.openrocket.rocketcomponent.Rocket; import net.sf.openrocket.simulation.FlightDataType; import net.sf.openrocket.simulation.RK4SimulationStepper; @@ -32,17 +34,17 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { private static final String SPLIT_CHARACTER = "|"; - + private static final List SUPPORTED_LOCALES; static { List list = new ArrayList(); - for (String lang : new String[] { "en", "de", "es", "fr","it" }) { + for (String lang : new String[] { "en", "de", "es", "fr", "it", "ru", "cs", "pl" }) { list.add(new Locale(lang)); } SUPPORTED_LOCALES = Collections.unmodifiableList(list); } - + /** * Whether to use the debug-node instead of the normal node. */ @@ -62,9 +64,9 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { */ private static final String NODENAME = (DEBUG ? "OpenRocket-debug" : "OpenRocket"); - private final Preferences PREFNODE; + private final Preferences PREFNODE; + - public SwingPreferences() { Preferences root = Preferences.userRoot(); if (DEBUG && CLEARPREFS) { @@ -79,13 +81,13 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { PREFNODE = root.node(NODENAME); } - - + + ////////////////////// - - + + /** * Store the current OpenRocket version into the preferences to allow for preferences migration. */ @@ -106,9 +108,9 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { } @Override - public String getString( String directory, String key, String defaultValue ) { + public String getString(String directory, String key, String defaultValue) { Preferences p = PREFNODE.node(directory); - return p.get(key,defaultValue); + return p.get(key, defaultValue); } /** @@ -128,12 +130,12 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { } @Override - public void putString(String directory, String key, String value ) { + public void putString(String directory, String key, String value) { Preferences p = PREFNODE.node(directory); - if ( value == null ) { + if (value == null) { p.remove(key); } else { - p.put(key,value); + p.put(key, value); } storeVersion(); } @@ -163,29 +165,29 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { } @Override - public int getInt( String key, int defaultValue ) { + public int getInt(String key, int defaultValue) { return PREFNODE.getInt(key, defaultValue); } @Override - public void putInt( String key , int value ) { - PREFNODE.putInt(key, value ); + public void putInt(String key, int value) { + PREFNODE.putInt(key, value); storeVersion(); } @Override public double getDouble(String key, double defaultValue) { - return PREFNODE.getDouble(key, defaultValue ); + return PREFNODE.getDouble(key, defaultValue); } - + @Override public void putDouble(String key, double value) { - PREFNODE.putDouble(key,value); + PREFNODE.putDouble(key, value); storeVersion(); } - - - + + + /** * Return a preferences object for the specified node name. * @@ -199,7 +201,7 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { ////////////////// - + public static List getSupportedLocales() { return SUPPORTED_LOCALES; } @@ -328,8 +330,8 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { } - - + + public Dimension getWindowSize(Class c) { int x, y; String pref = PREFNODE.node("windows").get("size." + c.getCanonicalName(), null); @@ -370,9 +372,9 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { * you can pass (java.awt.Color) null to the second argument to * disambiguate */ - public Color getColor( String key, Color defaultValue ) { + public Color getColor(String key, Color defaultValue) { net.sf.openrocket.util.Color c = super.getColor(key, (net.sf.openrocket.util.Color) null); - if ( c == null ) { + if (c == null) { return defaultValue; } return ColorConversion.toAwtColor(c); @@ -381,9 +383,9 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { /** * */ - public void putColor( String key, Color value ) { + public void putColor(String key, Color value) { net.sf.openrocket.util.Color c = ColorConversion.fromAwtColor(value); - super.putColor(key, c); + super.putColor(key, c); } //// Printing @@ -407,7 +409,7 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { } - + ///////// Export variables public boolean isExportSelected(FlightDataType type) { @@ -421,7 +423,7 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { } - + ///////// Default unit storage public void loadDefaultUnits() { @@ -457,10 +459,10 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { } - + //// Material storage - + /** * Add a user-defined material to the preferences. The preferences are * first checked for an existing material matching the provided one using @@ -468,10 +470,11 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { * * @param m the material to add. */ + @Override public void addUserMaterial(Material m) { Preferences prefs = PREFNODE.node("userMaterials"); - + // Check whether material already exists if (getUserMaterials().contains(m)) { return; @@ -495,6 +498,7 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { * * @param m the material to remove. */ + @Override public void removeUserMaterial(Material m) { Preferences prefs = PREFNODE.node("userMaterials"); @@ -527,6 +531,7 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { * * @return a set of all user-defined materials. */ + @Override public Set getUserMaterials() { Preferences prefs = PREFNODE.node("userMaterials"); @@ -553,7 +558,27 @@ public class SwingPreferences extends net.sf.openrocket.startup.Preferences { return materials; } + @Override + public void setComponentFavorite(ComponentPreset preset, ComponentPreset.Type type, boolean favorite) { + Preferences prefs = PREFNODE.node("favoritePresets").node(type.name()); + if (favorite) { + prefs.putBoolean(preset.preferenceKey(), true); + } else { + prefs.remove(preset.preferenceKey()); + } + } + @Override + public Set getComponentFavorites(ComponentPreset.Type type) { + Preferences prefs = PREFNODE.node("favoritePresets").node(type.name()); + Set collection = new HashSet(); + try { + collection.addAll(Arrays.asList(prefs.keys())); + } catch (BackingStoreException bex) { + + } + return collection; + } //// Helper methods }