1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.commons.settings;
21
22 import java.awt.Window;
23 import javax.swing.JSplitPane;
24 import org.xnap.commons.gui.table.TableLayout;
25
26 /***
27 * The idea is to provide a store that can save and restore GUI settings
28 * that are only accessed on startup and shutdown of the application.
29 *
30 * @author Steffen Pingel
31 */
32 public class SettingStore {
33
34 private SettingResource backStore;
35
36 public SettingStore(SettingResource backStore)
37 {
38 this.backStore = backStore;
39 }
40
41 public SettingResource getBackStore()
42 {
43 return backStore;
44 }
45
46 public void saveSplitPane(String key, JSplitPane splitPane)
47 {
48 new IntSetting(getBackStore(), key, 0).setValue(splitPane.getDividerLocation());
49 }
50
51 public void saveWindow(String key, Window window)
52 {
53 new WindowSettingDirector(getBackStore(), key).save(window);
54 }
55
56 public void saveTable(String key, TableLayout tableLayout)
57 {
58 new TableSettingDirector(getBackStore(), key).save(tableLayout);
59 }
60
61 public void restoreSplitPane(String key, int defaultDividerLocation, JSplitPane splitPane)
62 {
63 splitPane.setDividerLocation(new IntSetting(getBackStore(), key, defaultDividerLocation, 0).getValue());
64 }
65
66 public void restoreWindow(String key, int defaultX, int defaultY, int defaultWidth, int defaultHeight, Window window)
67 {
68 new WindowSettingDirector(getBackStore(), key, defaultX, defaultY, defaultWidth, defaultHeight).restore(window);
69 }
70
71 public void restoreTable(String key, String[] defaultColumns, TableLayout tableLayout)
72 {
73 new TableSettingDirector(backStore, key)
74 .setDefaults(defaultColumns)
75 .restore(tableLayout);
76 }
77
78 }