KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > ipanema > person > preferences > PersonStructOrderConfigModule


1 /*
2  * Created on Dec 9, 2004
3  * by alex
4  *
5  */

6 package com.nightlabs.ipanema.person.preferences;
7
8 import java.util.ArrayList JavaDoc;
9 import java.util.HashMap JavaDoc;
10 import java.util.Iterator JavaDoc;
11 import java.util.List JavaDoc;
12 import java.util.Map JavaDoc;
13
14 import com.nightlabs.config.Config;
15 import com.nightlabs.config.ConfigException;
16 import com.nightlabs.config.ConfigModule;
17 import com.nightlabs.config.InitException;
18 import com.nightlabs.ipanema.person.PersonStruct;
19
20 /**
21  * @author Alexander Bieber <alex[AT]nightlabs[DOT]de>
22  */

23 public class PersonStructOrderConfigModule extends ConfigModule {
24     /**
25      * this will be serialized
26      */

27     public static class PersonStructOrderMapEntry {
28         public PersonStructOrderMapEntry() {
29         }
30         
31         private String JavaDoc key;
32         private int priority;
33         
34         public String JavaDoc getKey() {
35             return key;
36         }
37         public void setKey(String JavaDoc key) {
38             this.key = key;
39         }
40         public int getPriority() {
41             return priority;
42         }
43         public void setPriority(int priority) {
44             this.priority = priority;
45         }
46     }
47     
48     /**
49      *
50      */

51     public PersonStructOrderConfigModule() {
52         super();
53     }
54     
55     public void init() throws InitException {
56         super.init();
57     }
58     
59     private List JavaDoc structBlockDisplayOrderList;
60     
61     /**
62      * Not to be called, just for serialization.
63      * Will always recreate the structBlockDisplayOrderList;
64      * @return
65      */

66     public List JavaDoc getStructBlockDisplayOrderList() {
67         if (structBlockDisplayOrder != null) {
68             for (Iterator JavaDoc iter = structBlockDisplayOrder().entrySet().iterator(); iter.hasNext();) {
69                 if (structBlockDisplayOrderList == null)
70                     structBlockDisplayOrderList = new ArrayList JavaDoc();
71                 Map.Entry JavaDoc entry = (Map.Entry JavaDoc) iter.next();
72                 PersonStructOrderMapEntry listEntry = new PersonStructOrderMapEntry();
73                 listEntry.setKey((String JavaDoc)entry.getKey());
74                 listEntry.setPriority(((Integer JavaDoc)entry.getValue()).intValue());
75                 structBlockDisplayOrderList.add(listEntry);
76             }
77         }
78         if (structBlockDisplayOrderList == null)
79             structBlockDisplayOrderList = new ArrayList JavaDoc();
80
81         return structBlockDisplayOrderList;
82     }
83     /**
84      * Not to be called, just for serialization.
85      * @param structFieldDisplayOrderList
86      */

87     public void setStructBlockDisplayOrderList(List JavaDoc structBlockDisplayOrderList) {
88         this.structBlockDisplayOrderList = structBlockDisplayOrderList;
89         setChanged();
90     }
91     
92     private List JavaDoc structFieldDisplayOrderList;
93     
94     /**
95      * Not to be called, just for serialization.
96      * Will always recreate the structFieldDisplayOrderList;
97      * @return
98      */

99     public List JavaDoc getStructFieldDisplayOrderList() {
100         if (structFieldDisplayOrder != null) {
101             for (Iterator JavaDoc iter = structFieldDisplayOrder().entrySet().iterator(); iter.hasNext();) {
102                 if (structFieldDisplayOrderList == null)
103                     structFieldDisplayOrderList = new ArrayList JavaDoc();
104                 Map.Entry JavaDoc entry = (Map.Entry JavaDoc) iter.next();
105                 PersonStructOrderMapEntry listEntry = new PersonStructOrderMapEntry();
106                 listEntry.setKey((String JavaDoc)entry.getKey());
107                 listEntry.setPriority(((Integer JavaDoc)entry.getValue()).intValue());
108                 structFieldDisplayOrderList.add(listEntry);
109             }
110         }
111         if (structFieldDisplayOrderList == null)
112             structFieldDisplayOrderList = new ArrayList JavaDoc();
113         
114         return structFieldDisplayOrderList;
115     }
116     /**
117      * Not to be called, just for serialization.
118      * @param structFieldDisplayOrderList
119      */

120     public void setStructFieldDisplayOrderList(List JavaDoc structFieldDisplayOrderList) {
121         this.structFieldDisplayOrderList = structFieldDisplayOrderList;
122         setChanged();
123     }
124     
125     /**
126      * key: String PersonStructBlock.getPrimaryKey<br/>
127      * value: Integer priority
128      */

129     private Map JavaDoc structBlockDisplayOrder;
130     
131     /**
132      * Returns a Map of (String,Integer) of
133      * priorities mapped to PersonStructBlockKeys
134      *
135      * @return
136      */

137     public Map JavaDoc structBlockDisplayOrder() {
138         if (structBlockDisplayOrder == null) {
139             if (structBlockDisplayOrderList != null) {
140                 structBlockDisplayOrder = new HashMap JavaDoc();
141                 for (Iterator JavaDoc iter = structBlockDisplayOrderList.iterator(); iter.hasNext();) {
142                     PersonStructOrderMapEntry entry = (PersonStructOrderMapEntry) iter.next();
143                     structBlockDisplayOrder.put(entry.getKey(),new Integer JavaDoc(entry.getPriority()));
144                 }
145             }
146             else
147                 structBlockDisplayOrder = getDefaultStructBlockDisplayOrder();
148             setChanged();
149         }
150         return structBlockDisplayOrder;
151     }
152     
153     public void setStructBlockDisplayOrder(Map JavaDoc displayOrder) {
154         this.structBlockDisplayOrder = displayOrder;
155     }
156     
157     
158     /**
159      * key: String AbstractStructField.getPrimaryKey<br/>
160      * value: Integer priority
161      */

162     private Map JavaDoc structFieldDisplayOrder;
163     
164     /**
165     /**
166      * Returns a Map of (String,Integer) of
167      * priorities mapped to PersonStructFieldKeys
168      *
169      * @return
170      */

171     public Map JavaDoc structFieldDisplayOrder() {
172         if (structFieldDisplayOrder == null) {
173             if (structFieldDisplayOrderList != null) {
174                 structFieldDisplayOrder = new HashMap JavaDoc();
175                 for (Iterator JavaDoc iter = structFieldDisplayOrderList.iterator(); iter.hasNext();) {
176                     PersonStructOrderMapEntry entry = (PersonStructOrderMapEntry) iter.next();
177                     structFieldDisplayOrder.put(entry.getKey(),new Integer JavaDoc(entry.getPriority()));
178                 }
179             }
180             else
181                 structFieldDisplayOrder = getDefaultStructFieldDisplayOrder();
182         }
183         return structFieldDisplayOrder;
184     }
185     
186     public void setStructFieldDisplayOrder(Map JavaDoc displayOrder) {
187         this.structFieldDisplayOrder = displayOrder;
188         setChanged();
189     }
190
191     private Map JavaDoc getDefaultStructBlockDisplayOrder() {
192         Map JavaDoc result = new HashMap JavaDoc();
193         result.put(PersonStruct.PERSONALDATA.getPrimaryKey(),new Integer JavaDoc(0));
194         result.put(PersonStruct.POSTADDRESS.getPrimaryKey(),new Integer JavaDoc(1));
195         result.put(PersonStruct.PHONE.getPrimaryKey(),new Integer JavaDoc(2));
196         result.put(PersonStruct.INTERNET.getPrimaryKey(),new Integer JavaDoc(3));
197         result.put(PersonStruct.FAX.getPrimaryKey(),new Integer JavaDoc(4));
198         result.put(PersonStruct.CREDITCARD.getPrimaryKey(),new Integer JavaDoc(5));
199         result.put(PersonStruct.COMMENT.getPrimaryKey(),new Integer JavaDoc(6));
200         return result;
201     }
202
203     private Map JavaDoc getDefaultStructFieldDisplayOrder() {
204         Map JavaDoc result = new HashMap JavaDoc();
205         return result;
206     }
207     
208     private static PersonStructOrderConfigModule sharedInstance;
209     
210     /**
211      * Catches ConfigException and throws an IllegalStateException
212      * instead Config
213      * @return shared instance of PersonStructOrderConfigModule
214      */

215     public static PersonStructOrderConfigModule getSharedInstance() {
216         if (sharedInstance == null) {
217             try {
218                 sharedInstance = ((PersonStructOrderConfigModule)Config.sharedInstance().createConfigModule(PersonStructOrderConfigModule.class));
219             } catch (ConfigException e) {
220                 IllegalStateException JavaDoc ill = new IllegalStateException JavaDoc("Error creating ConfigModule");
221                 ill.initCause(e);
222                 throw ill;
223             }
224         }
225         return sharedInstance;
226     }
227     
228 }
229
Popular Tags