KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > config > FolderXmlConfig


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14
//
15
//All Rights Reserved.
16
package org.columba.mail.config;
17
18 import java.io.File JavaDoc;
19
20 import org.columba.core.config.DefaultXmlConfig;
21
22
23 public class FolderXmlConfig extends DefaultXmlConfig {
24     //private File file;
25
public FolderXmlConfig(File JavaDoc file) {
26         super(file);
27     }
28
29     /*
30         // create uid list from all accounts
31         protected void getUids(Vector v, AdapterNode parent) {
32
33                 int childCount = parent.getChildCount();
34
35                 if (childCount > 0) {
36                         for (int i = 0; i < childCount; i++) {
37
38                                 AdapterNode child = parent.getChild(i);
39
40                                 getUids(v, child);
41
42                                 //System.out.println("name: "+ child.getName() );
43
44                                 if (child.getName().equals("folder")) {
45                                         AdapterNode uidNode = child.getChild("uid");
46
47                                         Integer j = new Integer(uidNode.getValue());
48
49                                         v.add(j);
50                                 }
51
52                         }
53                 }
54         }
55         */

56     /*
57 // find a free uid for a new account
58 protected String createUid() {
59         Vector v = new Vector();
60
61         AdapterNode rootNode = new AdapterNode(getDocument());
62         AdapterNode treeNode = rootNode.getChild(0);
63
64         getUids(v, treeNode);
65
66         int result = -1;
67         boolean hit;
68         boolean exit = false;
69
70         while (exit == false) {
71                 hit = false;
72                 result++;
73                 for (int i = 0; i < v.size(); i++) {
74                         Integer j = (Integer) v.get(i);
75
76                         if (j.intValue() == result) {
77                                 hit = true;
78                         }
79                 }
80                 if (hit == false)
81                         exit = true;
82         }
83
84         Integer newUid = new Integer(result);
85
86         return newUid.toString();
87 }
88 */

89     /*
90 public AdapterNode addVirtualFolderNode( AdapterNode parentNode,
91                                          int uid,
92                                          String name,
93                                          String headerItem,
94                                          String pattern )
95 {
96     Element parentElement = createElementNode("folder");
97
98     Element childElement = createTextElementNode("name",name);
99     addElement( parentElement, childElement );
100     childElement = createTextElementNode("accessrights","user");
101     addElement( parentElement, childElement );
102     childElement = createTextElementNode("messagefolder", "true");
103     addElement( parentElement, childElement );
104     childElement = createTextElementNode("subfolder","false");
105     addElement( parentElement, childElement );
106     childElement = createTextElementNode("add", "false");
107     addElement( parentElement, childElement );
108     childElement = createTextElementNode("remove", "true");
109     addElement( parentElement, childElement );
110     childElement = createTextElementNode("uid", createUid() );
111     addElement( parentElement, childElement );
112
113
114     childElement = createTextElementNode("type","virtual");
115         addElement( parentElement, childElement );
116
117         Element searchElement = createElementNode("search");
118
119         childElement = createTextElementNode("include","false");
120
121         addElement( searchElement, childElement );
122
123         Integer newUid = new Integer(uid);
124
125         Element treePathNode = createTextElementNode("uid", newUid.toString() );
126
127
128         addElement( searchElement, treePathNode );
129
130
131
132
133           // create filter
134
135         Element filterParent = createElementNode("filter");
136
137         Element child = createElementNode("filterrule");
138
139         Element subChild = createElementNode( "filtercriteria" );
140
141         Element subNode = createTextElementNode("headeritem", headerItem);
142         addElement( subChild, subNode );
143         subNode = createTextElementNode("criteria", "contains" );
144         addElement( subChild, subNode );
145         subNode = createTextElementNode("pattern", pattern );
146         addElement( subChild, subNode );
147
148         addElement( child, subChild );
149
150         subNode = createTextElementNode("condition", "matchall" );
151         addElement( child, subNode );
152
153         addElement( filterParent, child );
154
155         addElement( searchElement, filterParent );
156
157         addElement( parentElement, searchElement );
158
159
160         AdapterNode childNode=null;
161
162     if ( parentNode == null )
163     {
164         AdapterNode node = getRootNode();
165         childNode = node.addElement( parentElement );
166
167         System.out.println("parent node == null ");
168         System.out.println("childnode: "+ childNode );
169
170     }
171     else
172         childNode = parentNode.addElement( parentElement );
173
174     return childNode;
175
176
177 }
178 */

179     /*
180 public AdapterNode addFolderNode(
181         AdapterNode parentNode,
182         String name,
183         String access,
184         String messagefolder,
185         String type,
186         String subfolder,
187         String add,
188         String remove,
189         Integer uid) {
190         Element parentElement = createElementNode("folder");
191
192
193         Element childElement = createTextElementNode("name", name);
194         addElement(parentElement, childElement);
195         childElement = createTextElementNode("accessrights", access);
196         addElement(parentElement, childElement);
197         childElement = createTextElementNode("messagefolder", messagefolder);
198         addElement(parentElement, childElement);
199         childElement = createTextElementNode("subfolder", subfolder);
200         addElement(parentElement, childElement);
201         childElement = createTextElementNode("add", add);
202         addElement(parentElement, childElement);
203         childElement = createTextElementNode("remove", remove);
204         addElement(parentElement, childElement);
205         childElement = createTextElementNode("uid", createUid());
206         addElement(parentElement, childElement);
207
208         if (type.equals("columba")) {
209                 childElement = createTextElementNode("type", type);
210                 addElement(parentElement, childElement);
211         } else if (type.equals("virtual")) {
212                 childElement = createTextElementNode("type", type);
213                 addElement(parentElement, childElement);
214
215                 Element searchElement = createElementNode("search");
216
217                 childElement = createTextElementNode("include", "false");
218
219                 addElement(searchElement, childElement);
220
221                 Element treePathNode = createTextElementNode("uid", "101");
222
223
224
225                 addElement(searchElement, treePathNode);
226
227                 // create filter
228
229                 Element filterParent = createElementNode("filter");
230
231                 Element child = createElementNode("filterrule");
232
233                 Element subChild = createElementNode("filtercriteria");
234
235                 Element subNode = createTextElementNode("headeritem", "Subject");
236                 addElement(subChild, subNode);
237                 subNode = createTextElementNode("criteria", "contains");
238                 addElement(subChild, subNode);
239
240
241                 subNode = createTextElementNode("pattern", "pattern");
242                 addElement(subChild, subNode);
243                 subNode = createTextElementNode("type", "Subject");
244                 addElement(subChild, subNode);
245
246                 addElement(child, subChild);
247
248                 subNode = createTextElementNode("condition", "matchall");
249                 addElement(child, subNode);
250
251                 addElement(filterParent, child);
252
253                 addElement(searchElement, filterParent);
254
255                 addElement(parentElement, searchElement);
256
257         } else if (type.equals("outbox")) {
258                 childElement = createTextElementNode("type", type);
259                 addElement(parentElement, childElement);
260
261         } else if ((type.equals("imap")) || (type.equals("imaproot"))) {
262                 childElement = createTextElementNode("type", type);
263                 addElement(parentElement, childElement);
264
265                 String uidString = (uid).toString();
266
267                 childElement = createTextElementNode("accountuid", uidString);
268                 addElement(parentElement, childElement);
269         }
270
271         AdapterNode childNode = null;
272
273         if (parentNode == null) {
274                 AdapterNode node = getRootNode();
275                 childNode = node.addElement(parentElement);
276
277                 System.out.println("parent node == null ");
278                 System.out.println("childnode: " + childNode);
279
280         } else
281                 childNode = parentNode.addElement(parentElement);
282
283         return childNode;
284 }
285 */

286     /*
287 public FolderItem getFolderItem(AdapterNode node) {
288         if (node != null) {
289                 if (node.getName().equals("folder")) {
290                         FolderItem folderItem = new FolderItem(getDocument());
291
292                         folderItem.setNameNode(node.getChild("name"));
293
294                         //System.out.println("folder found: "+ node.getChild("name").getValue() );
295                         folderItem.setAccessRightsNode(node.getChild("accessrights"));
296                         folderItem.setMessageFolderNode(node.getChild("messagefolder"));
297                         folderItem.setTypeNode(node.getChild("type"));
298                         folderItem.setSubfolderNode(node.getChild("subfolder"));
299                         folderItem.setAddNode(node.getChild("add"));
300                         folderItem.setRemoveNode(node.getChild("remove"));
301                         folderItem.setUidNode(node.getChild("uid"));
302
303                         String type = node.getChild("type").getValue();
304
305                         if ((type.equals("imap")) || (type.equals("imaproot")))
306                                 folderItem.setAccountUidNode(node.getChild("accountuid"));
307
308                         AdapterNode filterNode = node.getChild("filterlist");
309                         if (filterNode != null) {
310                                 folderItem.setFilterListNode(filterNode);
311
312
313                         } else {
314                                 AdapterNode searchNode = node.getChild("search");
315                                 if (searchNode != null) {
316                                         //System.out.println("search node found");
317
318                                         folderItem.setSearchNode(searchNode);
319                                 }
320
321                         }
322
323                         return folderItem;
324                 }
325
326         }
327
328         return null;
329 }
330 */

331     /*
332 public AdapterNode addEmptyFilterCriteria(AdapterNode filterRuleNode) {
333         Element child = createElementNode("filtercriteria");
334
335         Element subNode = createTextElementNode("headeritem", "Subject");
336         addElement(child, subNode);
337         subNode = createTextElementNode("criteria", "contains");
338         addElement(child, subNode);
339         subNode = createTextElementNode("pattern", "pattern");
340         addElement(child, subNode);
341         subNode = createTextElementNode("type", "Subject");
342         addElement(child, subNode);
343
344
345         filterRuleNode.domNode.appendChild(child);
346
347         return new AdapterNode(child);
348 }
349 */

350     /*
351 public AdapterNode addEmptyFilterAction(AdapterNode filterActionNode) {
352         Element actionNode = createElementNode("action");
353
354         Element nameNode = createTextElementNode("name", "move");
355         addElement(actionNode, nameNode);
356
357         Element uidNode = createTextElementNode("uid", "101");
358         addElement(actionNode, uidNode);
359
360         filterActionNode.domNode.appendChild(actionNode);
361
362         return new AdapterNode(actionNode);
363 }
364
365 public AdapterNode addEmptyFilterNode(AdapterNode folderNode) {
366
367         Element parent = createElementNode("filter");
368
369         Element child = createTextElementNode("enabled", "true");
370         addElement(parent, child);
371         child = createTextElementNode("description", "new filter");
372         addElement(parent, child);
373
374         addElement(parent, child);
375
376         // create filterrule-node
377         child = createElementNode("filterrule");
378
379         Element subChild = createElementNode("filtercriteria");
380
381         Element subNode = createTextElementNode("headeritem", "Subject");
382         addElement(subChild, subNode);
383         subNode = createTextElementNode("criteria", "contains");
384         addElement(subChild, subNode);
385         subNode = createTextElementNode("pattern", "pattern");
386         addElement(subChild, subNode);
387         subNode = createTextElementNode("type", "Subject");
388         addElement(subChild, subNode);
389
390         addElement(child, subChild);
391
392         subNode = createTextElementNode("condition", "matchall");
393         addElement(child, subNode);
394
395         addElement(parent, child);
396
397         // create actionlist-node
398         Element actionNode = createElementNode("actionlist");
399
400         Element subActionNode = createElementNode("action");
401
402         Element nameNode = createTextElementNode("name", "move");
403         addElement(subActionNode, nameNode);
404         Element uidNode = createTextElementNode("uid", "101");
405         addElement(subActionNode, uidNode);
406
407         addElement(actionNode, subActionNode);
408
409         addElement(parent, actionNode);
410
411         AdapterNode filterListNode = folderNode.getChild("filterlist");
412
413         if (filterListNode == null) {
414                 Element listNode = createElementNode("filterlist");
415
416                 addElement(listNode, parent);
417
418                 Node node = folderNode.domNode.appendChild(listNode);
419
420                 AdapterNode result = new AdapterNode(parent);
421
422                 return result;
423         } else {
424
425                 Node node = filterListNode.domNode.appendChild(parent);
426                 AdapterNode result = new AdapterNode(node);
427
428                 return result;
429         }
430
431 }
432 */

433 }
434
Popular Tags