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  }