| 1 17 package com.finalist.jaggenerator; 18 19 import javax.swing.*; 20 import java.util.prefs.Preferences ; 21 import java.awt.*; 22 23 29 public class Settings { 30 private static final Preferences PREFS = Preferences.userNodeForPackage(JagGenerator.class); 32 33 private static final String KEY_LAST_SELECTED_OUTPUT_DIR = "last_outputdir"; 34 35 private static final String KEY_VERTICAL_DIVIDER_POSITION = "vdiv"; 37 private static final int DEFAULT_VERTICAL_DIVIDER_POSITION = 400; 38 private static final String KEY_HORIZONTAL_DIVIDER_POSITION = "hdiv"; 39 private static final int DEFAULT_HORIZONTAL_DIVIDER_POSITION = 444; 40 private static final String KEY_WINDOW_X = "winx"; 42 private static final int DEFAULT_WINDOW_X = Integer.MIN_VALUE; 43 private static final String KEY_WINDOW_Y = "winy"; 44 private static final int DEFAULT_WINDOW_Y = Integer.MIN_VALUE; 45 private static final String KEY_WINDOW_WIDTH = "winwidth"; 46 private static final int DEFAULT_WINDOW_WIDTH = 1000; 47 private static final String KEY_WINDOW_HEIGHT = "winheight"; 48 private static final int DEFAULT_WINDOW_HEIGHT = 760; 49 private static final String KEY_MAXIMIZED = "winmaximized"; 51 private static final boolean DEFAULT_MAXIMIZED = false; 52 private static int verticalDividerPosition; 54 private static int horizontalDividerPosition; 55 private static int windowX; 56 private static int windowY; 57 private static int windowWidth; 58 private static int windowHeight; 59 private static boolean isMaximized; 60 61 62 public static String getLastSelectedOutputDir() { 63 return lastSelectedOutputDir; 64 } 65 66 67 public static void setLastSelectedOutputDir(String lastSelectedOutputDir) { 68 Settings.lastSelectedOutputDir = lastSelectedOutputDir; 69 } 70 71 72 private static String lastSelectedOutputDir; 73 74 77 public static void read() { 78 Settings.verticalDividerPosition = PREFS.getInt(KEY_VERTICAL_DIVIDER_POSITION, DEFAULT_VERTICAL_DIVIDER_POSITION); 79 Settings.horizontalDividerPosition = PREFS.getInt(KEY_HORIZONTAL_DIVIDER_POSITION, DEFAULT_HORIZONTAL_DIVIDER_POSITION); 80 Settings.windowX = PREFS.getInt(KEY_WINDOW_X, DEFAULT_WINDOW_X); 81 Settings.windowY = PREFS.getInt(KEY_WINDOW_Y, DEFAULT_WINDOW_Y); 82 Settings.windowWidth = PREFS.getInt(KEY_WINDOW_WIDTH, DEFAULT_WINDOW_WIDTH); 83 Settings.windowHeight = PREFS.getInt(KEY_WINDOW_HEIGHT, DEFAULT_WINDOW_HEIGHT); 84 Settings.isMaximized = PREFS.getBoolean(KEY_MAXIMIZED, DEFAULT_MAXIMIZED); 85 Settings.lastSelectedOutputDir = PREFS.get(KEY_LAST_SELECTED_OUTPUT_DIR, "."); 86 } 87 88 91 public static void write() { 92 PREFS.putInt(KEY_VERTICAL_DIVIDER_POSITION, verticalDividerPosition); 93 PREFS.putInt(KEY_HORIZONTAL_DIVIDER_POSITION, horizontalDividerPosition); 94 PREFS.putInt(KEY_WINDOW_X, windowX); 95 PREFS.putInt(KEY_WINDOW_Y, windowY); 96 PREFS.putInt(KEY_WINDOW_WIDTH, windowWidth); 97 PREFS.putInt(KEY_WINDOW_HEIGHT, windowHeight); 98 PREFS.putBoolean(KEY_MAXIMIZED, isMaximized); 99 PREFS.put(KEY_LAST_SELECTED_OUTPUT_DIR, lastSelectedOutputDir); 100 } 101 102 107 public static int getVerticalDividerPosition() { 108 return verticalDividerPosition; 109 } 110 111 117 public static void setVerticalDividerPosition(int verticalDividerPosition) { 118 Settings.verticalDividerPosition = verticalDividerPosition; 119 } 120 121 126 public static int getHorizontalDividerPosition() { 127 return horizontalDividerPosition; 128 } 129 130 136 public static void setHorizontalDividerPosition(int horizontalDividerPosition) { 137 Settings.horizontalDividerPosition = horizontalDividerPosition; 138 } 139 140 145 public static boolean isMaximized() { 146 return isMaximized; 147 } 148 149 155 public static void setMaximized(boolean maximized) { 156 isMaximized = maximized; 157 } 158 159 164 public static Rectangle getUserWindowBounds(JFrame frame) { 165 if(windowX == Integer.MIN_VALUE || windowY == Integer.MIN_VALUE) { 166 Dimension screenSize = frame.getToolkit().getScreenSize(); 168 windowX = (int) (screenSize.getWidth() /2 - windowWidth /2); 169 windowY = (int) (screenSize.getHeight()/2 - windowHeight/2); 170 } 171 return new Rectangle(windowX, windowY, windowWidth, windowHeight); 172 } 173 174 180 public static void setUserWindowBounds(Rectangle bounds) { 181 windowX = (int) bounds.getX(); 182 windowY = (int) bounds.getY(); 183 windowWidth = (int) bounds.getWidth(); 184 windowHeight = (int) bounds.getHeight(); 185 } 186 } 187 | Popular Tags |