/* * BrowseWindowPreferences.java * * Created on October 9, 2004, 5:06 PM */ package kiyut.ekspos.prefs; import java.awt.*; import java.util.*; import java.util.prefs.*; import javax.swing.*; /** * * @author Kiyut */ public class BrowseWindowPreferences extends AbstractPreferencesOption { private static BrowseWindowPreferences instance; // The single instance public static final String PREFERENCES_NODE = PreferencesOption.ROOT_NODE + "/BrowseWindow"; public static final String X_KEY = "x"; public static final String Y_KEY = "y"; public static final String WIDTH_KEY = "width"; public static final String HEIGHT_KEY = "height"; public static final String EXTENDED_STATE_KEY = "extended_state"; private int x; private int y; private int width; private int height; private int extendedState; /** * Returns the single instance, creating one if it's the * first time this method is called. * * @return Preferences The single instance. */ static synchronized public BrowseWindowPreferences getInstance() { if (instance == null) { instance = new BrowseWindowPreferences(); } return instance; } /** Creates a new instance of BrowseWindowPreferences */ protected BrowseWindowPreferences() { load(); } public void load() { Preferences prefs = Preferences.userRoot().node(PREFERENCES_NODE); x = prefs.getInt(X_KEY,-1); y = prefs.getInt(Y_KEY,-1); width = prefs.getInt(WIDTH_KEY,800); height = prefs.getInt(HEIGHT_KEY,600); extendedState = prefs.getInt(EXTENDED_STATE_KEY,JFrame.MAXIMIZED_BOTH); if (width < 400) { width = 400; } if (height < 400) { height = 400; } Dimension size = Toolkit.getDefaultToolkit().getScreenSize(); if (x >= size.width-48) { x = -1; } if (y >= size.height-48) { y = -1; } if (width > size.width) { width = size.width; } if (height > size.height) { height = size.height; } } public void save() { Preferences prefs = Preferences.userRoot().node(PREFERENCES_NODE); prefs.putInt(X_KEY,x); prefs.putInt(Y_KEY,y); prefs.putInt(WIDTH_KEY,width); prefs.putInt(HEIGHT_KEY,height); prefs.putInt(EXTENDED_STATE_KEY,extendedState); } public int getX() { return x; } public int getY() { return y; } public int getWidth() { return width; } public int getHeight() { return height; } public void setBounds(Rectangle rv) { setBounds(rv.x,rv.y,rv.width,rv.height); } public void setBounds(int x, int y, int width, int height) { this.x = x; this.y = y; this.width = width; this.height = height; } public int getExtendedState() { return extendedState; } public void setExtendedState(int extendedState) { this.extendedState = extendedState; } }