package org.droiddraw.gui; import java.util.prefs.BackingStoreException; import org.droiddraw.AndroidEditor; import org.droiddraw.AndroidEditor.ScreenMode; public class Preferences { public static enum Layout {ABSOLUTE, LINEAR, RELATIVE} public static enum Update {YES, ASK, NO} private static String SNAP = "snap"; private static String SCREEN = "screen"; private static String LAYOUT = "layout"; private static String UPDATE = "update"; protected boolean snap; protected ScreenMode screen; protected Layout layout; protected Update updateCheck; public Preferences() { this.snap = false; this.screen = ScreenMode.HVGA_PORTRAIT; this.layout = Layout.ABSOLUTE; this.updateCheck = Update.ASK; } public void load() { java.util.prefs.Preferences prefs = java.util.prefs.Preferences.userNodeForPackage(Preferences.class); this.snap = prefs.getBoolean(SNAP, false); int screenPref = prefs.getInt(SCREEN, 3); if (screenPref < 0 || screenPref >= ScreenMode.values().length) { screenPref = 3; } screen = ScreenMode.values()[3]; int layoutPref = prefs.getInt(LAYOUT, 0); if (layoutPref < 0 || layoutPref >= Layout.values().length) { layoutPref = 0; } layout = Layout.values()[layoutPref]; int updatePref = prefs.getInt(UPDATE, 1); if (updatePref < 0 || updatePref >= Update.values().length) { updatePref = 1; } updateCheck = Update.values()[updatePref]; } public void save() { java.util.prefs.Preferences prefs = java.util.prefs.Preferences.userNodeForPackage(Preferences.class); prefs.putBoolean(SNAP, snap); prefs.putInt(SCREEN, screen.ordinal()); prefs.putInt(LAYOUT, layout.ordinal()); prefs.putInt(UPDATE, updateCheck.ordinal()); try { prefs.sync(); } catch (BackingStoreException ex) { AndroidEditor.instance().error(ex); } } public void setSnap(boolean value) { this.snap = value; } public boolean getSnap() { return snap; } public void setScreenMode(ScreenMode screen) { this.screen = screen; } public ScreenMode getScreenMode() { return screen; } public void setDefaultLayout(Layout l) { this.layout = l; } public Layout getDefaultLayout() { return layout; } public Update getUpdateCheck() { return updateCheck; } public void setUpdateCheck(Update u) { this.updateCheck = u; } }