1 | package org.columba.mail.config;↵ | | 1 | package org.columba.mail.config;↵
|
|
2 | import java.io.File;↵ | | 2 | import java.io.File;↵
|
|
3 | import org.columba.core.config.DefaultXmlConfig;↵ | | 3 | import org.columba.core.config.DefaultXmlConfig;↵
|
|
|
4 | /**↵ | | |
|
5 | * @author freddy↵ | | |
|
6 | *↵ | | |
|
7 | * To change this generated comment edit the template variable "typecomment":↵ | | |
|
8 | * Window>Preferences>Java>Templates.↵ | | |
|
9 | * To enable and disable the creation of type comments go to↵ | | |
|
10 | * Window>Preferences>Java>Code Generation.↵ | | |
|
11 | */↵ | | |
|
12 | public class AccountTemplateXmlConfig extends DefaultXmlConfig↵ | | 4 | public class FolderXmlConfig extends DefaultXmlConfig {↵
|
| | | 5 | //private File file;↵
|
| | | 6 | public FolderXmlConfig(File file) {↵
|
| | | 7 | super(file);↵
|
| | | 8 | }↵
|
|
| | | 9 | /*↵
|
| | | 10 | // create uid list from all accounts↵
|
| | | 11 | protected void getUids(Vector v, AdapterNode parent) {↵
|
|
| | | 12 | int childCount = parent.getChildCount();↵
|
|
| | | 13 | if (childCount > 0) {↵
|
| | | 14 | for (int i = 0; i < childCount; i++) {↵
|
|
| | | 15 | AdapterNode child = parent.getChild(i);↵
|
|
| | | 16 | getUids(v, child);↵
|
|
| | | 17 | //System.out.println("name: "+ child.getName() );↵
|
|
| | | 18 | if (child.getName().equals("folder")) {↵
|
| | | 19 | AdapterNode uidNode = child.getChild("uid");↵
|
|
| | | 20 | Integer j = new Integer(uidNode.getValue());↵
|
|
| | | 21 | v.add(j);↵
|
| | | 22 | }↵
|
|
| | | 23 | }↵
|
| | | 24 | }↵
|
| | | 25 | }↵
|
| | | 26 | */↵
|
| | | 27 | /*↵
|
| | | 28 | // find a free uid for a new account↵
|
| | | 29 | protected String createUid() {↵
|
| | | 30 | Vector v = new Vector();↵
|
|
| | | 31 | AdapterNode rootNode = new AdapterNode(getDocument());↵
|
| | | 32 | AdapterNode treeNode = rootNode.getChild(0);↵
|
|
| | | 33 | getUids(v, treeNode);↵
|
|
| | | 34 | int result = -1;↵
|
| | | 35 | boolean hit;↵
|
| | | 36 | boolean exit = false;↵
|
|
| | | 37 | while (exit == false) {↵
|
| | | 38 | hit = false;↵
|
| | | 39 | result++;↵
|
| | | 40 | for (int i = 0; i < v.size(); i++) {↵
|
| | | 41 | Integer j = (Integer) v.get(i);↵
|
|
| | | 42 | if (j.intValue() == result) {↵
|
| | | 43 | hit = true;↵
|
| | | 44 | }↵
|
| | | 45 | }↵
|
| | | 46 | if (hit == false)↵
|
| | | 47 | exit = true;↵
|
| | | 48 | }↵
|
|
| | | 49 | Integer newUid = new Integer(result);↵
|
|
| | | 50 | return newUid.toString();↵
|
| | | 51 | }↵
|
| | | 52 | */↵
|
| | | 53 | /*↵
|
| | | 54 | public AdapterNode addVirtualFolderNode( AdapterNode parentNode,↵
|
| | | 55 | int uid,↵
|
| | | 56 | String name,↵
|
| | | 57 | String headerItem,↵
|
| | | 58 | String pattern )↵
|
| | | 59 | {↵
|
| | | 60 | Element parentElement = createElementNode("folder");↵
|
|
| | | 61 | Element childElement = createTextElementNode("name",name);↵
|
| | | 62 | addElement( parentElement, childElement );↵
|
| | | 63 | childElement = createTextElementNode("accessrights","user");↵
|
| | | 64 | addElement( parentElement, childElement );↵
|
| | | 65 | childElement = createTextElementNode("messagefolder", "true");↵
|
| | | 66 | addElement( parentElement, childElement );↵
|
| | | 67 | childElement = createTextElementNode("subfolder","false");↵
|
| | | 68 | addElement( parentElement, childElement );↵
|
| | | 69 | childElement = createTextElementNode("add", "false");↵
|
| | | 70 | addElement( parentElement, childElement );↵
|
| | | 71 | childElement = createTextElementNode("remove", "true");↵
|
| | | 72 | addElement( parentElement, childElement );↵
|
| | | 73 | childElement = createTextElementNode("uid", createUid() );↵
|
| | | 74 | addElement( parentElement, childElement );↵
|
|
|
| | | 75 | childElement = createTextElementNode("type","virtual");↵
|
| | | 76 | addElement( parentElement, childElement );↵
|
|
| | | 77 | Element searchElement = createElementNode("search");↵
|
|
| | | 78 | childElement = createTextElementNode("include","false");↵
|
|
| | | 79 | addElement( searchElement, childElement );↵
|
|
| | | 80 | Integer newUid = new Integer(uid);↵
|
|
| | | 81 | Element treePathNode = createTextElementNode("uid", newUid.toString() );↵
|
|
|
| | | 82 | addElement( searchElement, treePathNode );↵
|
|
|
|
|
| | | 83 | // create filter↵
|
|
| | | 84 | Element filterParent = createElementNode("filter");↵
|
|
| | | 85 | Element child = createElementNode("filterrule");↵
|
|
| | | 86 | Element subChild = createElementNode( "filtercriteria" );↵
|
|
| | | 87 | Element subNode = createTextElementNode("headeritem", headerItem);↵
|
| | | 88 | addElement( subChild, subNode );↵
|
| | | 89 | subNode = createTextElementNode("criteria", "contains" );↵
|
| | | 90 | addElement( subChild, subNode );↵
|
| | | 91 | subNode = createTextElementNode("pattern", pattern );↵
|
| | | 92 | addElement( subChild, subNode );↵
|
|
| | | 93 | addElement( child, subChild );↵
|
|
| | | 94 | subNode = createTextElementNode("condition", "matchall" );↵
|
| | | 95 | addElement( child, subNode );↵
|
|
| | | 96 | addElement( filterParent, child );↵
|
|
| | | 97 | addElement( searchElement, filterParent );↵
|
|
| | | 98 | addElement( parentElement, searchElement );↵
|
|
|
| | | 99 | AdapterNode childNode=null;↵
|
|
| | | 100 | if ( parentNode == null )↵
|
| | | 101 | {↵
|
| | | 102 | AdapterNode node = getRootNode();↵
|
| | | 103 | childNode = node.addElement( parentElement );↵
|
|
| | | 104 | System.out.println("parent node == null ");↵
|
| | | 105 | System.out.println("childnode: "+ childNode );↵
|
|
| | | 106 | }↵
|
| | | 107 | else↵
|
| | | 108 | childNode = parentNode.addElement( parentElement );↵
|
|
| | | 109 | return childNode;↵
|
|
|
| | | 110 | }↵
|
| | | 111 | */↵
|
| | | 112 | /*↵
|
| | | 113 | public AdapterNode addFolderNode(↵
|
| | | 114 | AdapterNode parentNode,↵
|
| | | 115 | String name,↵
|
| | | 116 | String access,↵
|
| | | 117 | String messagefolder,↵
|
| | | 118 | String type,↵
|
| | | 119 | String subfolder,↵
|
| | | 120 | String add,↵
|
| | | 121 | String remove,↵
|
| | | 122 | Integer uid) {↵
|
| | | 123 | Element parentElement = createElementNode("folder");↵
|
|
|
| | | 124 | Element childElement = createTextElementNode("name", name);↵
|
| | | 125 | addElement(parentElement, childElement);↵
|
| | | 126 | childElement = createTextElementNode("accessrights", access);↵
|
| | | 127 | addElement(parentElement, childElement);↵
|
| | | 128 | childElement = createTextElementNode("messagefolder", messagefolder);↵
|
| | | 129 | addElement(parentElement, childElement);↵
|
| | | 130 | childElement = createTextElementNode("subfolder", subfolder);↵
|
| | | 131 | addElement(parentElement, childElement);↵
|
| | | 132 | childElement = createTextElementNode("add", add);↵
|
| | | 133 | addElement(parentElement, childElement);↵
|
| | | 134 | childElement = createTextElementNode("remove", remove);↵
|
| | | 135 | addElement(parentElement, childElement);↵
|
| | | 136 | childElement = createTextElementNode("uid", createUid());↵
|
| | | 137 | addElement(parentElement, childElement);↵
|
|
| | | 138 | if (type.equals("columba")) {↵
|
| | | 139 | childElement = createTextElementNode("type", type);↵
|
| | | 140 | addElement(parentElement, childElement);↵
|
| | | 141 | } else if (type.equals("virtual")) {↵
|
| | | 142 | childElement = createTextElementNode("type", type);↵
|
| | | 143 | addElement(parentElement, childElement);↵
|
|
| | | 144 | Element searchElement = createElementNode("search");↵
|
|
| | | 145 | childElement = createTextElementNode("include", "false");↵
|
|
| | | 146 | addElement(searchElement, childElement);↵
|
|
| | | 147 | Element treePathNode = createTextElementNode("uid", "101");↵
|
|
|
|
| | | 148 | addElement(searchElement, treePathNode);↵
|
|
| | | 149 | // create filter↵
|
|
| | | 150 | Element filterParent = createElementNode("filter");↵
|
|
| | | 151 | Element child = createElementNode("filterrule");↵
|
|
| | | 152 | Element subChild = createElementNode("filtercriteria");↵
|
|
| | | 153 | Element subNode = createTextElementNode("headeritem", "Subject");↵
|
| | | 154 | addElement(subChild, subNode);↵
|
| | | 155 | subNode = createTextElementNode("criteria", "contains");↵
|
| | | 156 | addElement(subChild, subNode);↵
|
|
|
| | | 157 | subNode = createTextElementNode("pattern", "pattern");↵
|
| | | 158 | addElement(subChild, subNode);↵
|
| | | 159 | subNode = createTextElementNode("type", "Subject");↵
|
| | | 160 | addElement(subChild, subNode);↵
|
|
| | | 161 | addElement(child, subChild);↵
|
|
| | | 162 | subNode = createTextElementNode("condition", "matchall");↵
|
| | | 163 | addElement(child, subNode);↵
|
|
| | | 164 | addElement(filterParent, child);↵
|
|
| | | 165 | addElement(searchElement, filterParent);↵
|
|
| | | 166 | addElement(parentElement, searchElement);↵
|
|
| | | 167 | } else if (type.equals("outbox")) {↵
|
| | | 168 | childElement = createTextElementNode("type", type);↵
|
| | | 169 | addElement(parentElement, childElement);↵
|
|
| | | 170 | } else if ((type.equals("imap")) || (type.equals("imaproot"))) {↵
|
| | | 171 | childElement = createTextElementNode("type", type);↵
|
| | | 172 | addElement(parentElement, childElement);↵
|
|
| | | 173 | String uidString = (uid).toString();↵
|
|
| | | 174 | childElement = createTextElementNode("accountuid", uidString);↵
|
| | | 175 | addElement(parentElement, childElement);↵
|
| | | 176 | }↵
|
|
| | | 177 | AdapterNode childNode = null;↵
|
|
| | | 178 | if (parentNode == null) {↵
|
| | | 179 | AdapterNode node = getRootNode();↵
|
| | | 180 | childNode = node.addElement(parentElement);↵
|
|
| | | 181 | System.out.println("parent node == null ");↵
|
| | | 182 | System.out.println("childnode: " + childNode);↵
|
|
| | | 183 | } else↵
|
| | | 184 | childNode = parentNode.addElement(parentElement);↵
|
|
| | | 185 | return childNode;↵
|
| | | 186 | }↵
|
| | | 187 | */↵
|
| | | 188 | /*↵
|
| | | 189 | public FolderItem getFolderItem(AdapterNode node) {↵
|
| | | 190 | if (node != null) {↵
|
| | | 191 | if (node.getName().equals("folder")) {↵
|
| | | 192 | FolderItem folderItem = new FolderItem(getDocument());↵
|
|
| | | 193 | folderItem.setNameNode(node.getChild("name"));↵
|
|
| | | 194 | //System.out.println("folder found: "+ node.getChild("name").getValue() );↵
|
| | | 195 | folderItem.setAccessRightsNode(node.getChild("accessrights"));↵
|
| | | 196 | folderItem.setMessageFolderNode(node.getChild("messagefolder"));↵
|
| | | 197 | folderItem.setTypeNode(node.getChild("type"));↵
|
| | | 198 | folderItem.setSubfolderNode(node.getChild("subfolder"));↵
|
| | | 199 | folderItem.setAddNode(node.getChild("add"));↵
|
| | | 200 | folderItem.setRemoveNode(node.getChild("remove"));↵
|
| | | 201 | folderItem.setUidNode(node.getChild("uid"));↵
|
|
| | | 202 | String type = node.getChild("type").getValue();↵
|
|
| | | 203 | if ((type.equals("imap")) || (type.equals("imaproot")))↵
|
| | | 204 | folderItem.setAccountUidNode(node.getChild("accountuid"));↵
|
|
| | | 205 | AdapterNode filterNode = node.getChild("filterlist");↵
|
| | | 206 | if (filterNode != null) {↵
|
| | | 207 | folderItem.setFilterListNode(filterNode);↵
|
|
|
| | | 208 | } else {↵
|
| | | 209 | AdapterNode searchNode = node.getChild("search");↵
|
| | | 210 | if (searchNode != null) {↵
|
| | | 211 | //System.out.println("search node found");↵
|
|
| | | 212 | folderItem.setSearchNode(searchNode);↵
|
| | | 213 | }↵
|
|
| | | 214 | }↵
|
|
| | | 215 | return folderItem;↵
|
| | | 216 | }↵
|
|
| | | 217 | }↵
|
|
| | | 218 | return null;↵
|
| | | 219 | }↵
|
| | | 220 | */↵
|
| | | 221 | /*↵
|
| | | 222 | public AdapterNode addEmptyFilterCriteria(AdapterNode filterRuleNode) {↵
|
| | | 223 | Element child = createElementNode("filtercriteria");↵
|
|
| | | 224 | Element subNode = createTextElementNode("headeritem", "Subject");↵
|
| | | 225 | addElement(child, subNode);↵
|
| | | 226 | subNode = createTextElementNode("criteria", "contains");↵
|
| | | 227 | addElement(child, subNode);↵
|
| | | 228 | subNode = createTextElementNode("pattern", "pattern");↵
|
| | | 229 | addElement(child, subNode);↵
|
| | | 230 | subNode = createTextElementNode("type", "Subject");↵
|
| | | 231 | addElement(child, subNode);↵
|
|
|
| | | 232 | filterRuleNode.domNode.appendChild(child);↵
|
|
| | | 233 | return new AdapterNode(child);↵
|
| | | 234 | }↵
|
| | | 235 | */↵
|
| | | 236 | /*↵
|
| | | 237 | public AdapterNode addEmptyFilterAction(AdapterNode filterActionNode) {↵
|
| | | 238 | Element actionNode = createElementNode("action");↵
|
|
| | | 239 | Element nameNode = createTextElementNode("name", "move");↵
|
| | | 240 | addElement(actionNode, nameNode);↵
|
|
| | | 241 | Element uidNode = createTextElementNode("uid", "101");↵
|
| | | 242 | addElement(actionNode, uidNode);↵
|
|
| | | 243 | filterActionNode.domNode.appendChild(actionNode);↵
|
|
| | | 244 | return new AdapterNode(actionNode);↵
|
| | | 245 | }↵
|
|
13 | {
↵ | | 246 | public AdapterNode addEmptyFilterNode(AdapterNode folderNode) {↵
|
|
14 | public AccountTemplateXmlConfig(File file) {↵ | | 247 | ↵
|
15 | super(file↵ | | 248 | Element parent = createElementNode("filter");↵
|
|
| | | 249 | Element child = createTextElementNode("enabled", "true");↵
|
| | | 250 | addElement(parent, child);↵
|
| | | 251 | child = createTextElementNode("description", "new filter");↵
|
| | | 252 | addElement(parent, child);↵
|
|
| | | 253 | addElement(parent, child);↵
|
|
| | | 254 | // create filterrule-node↵
|
| | | 255 | child = createElementNode("filterrule");↵
|
|
| | | 256 | Element subChild = createElementNode("filtercriteria");↵
|
|
| | | 257 | Element subNode = createTextElementNode("headeritem", "Subject");↵
|
| | | 258 | addElement(subChild, subNode);↵
|
| | | 259 | subNode = createTextElementNode("criteria", "contains");↵
|
| | | 260 | addElement(subChild, subNode);↵
|
| | | 261 | subNode = createTextElementNode("pattern", "pattern");↵
|
| | | 262 | addElement(subChild, subNode);↵
|
| | | 263 | subNode = createTextElementNode("type", "Subject");↵
|
| | | 264 | addElement(subChild, subNode);↵
|
|
| | | 265 | addElement(child, subChild);↵
|
|
| | | 266 | subNode = createTextElementNode("condition", "matchall");↵
|
| | | 267 | addElement(child, subNode);↵
|
|
| | | 268 | addElement(parent, child);↵
|
|
| | | 269 | // create actionlist-node↵
|
| | | 270 | Element actionNode = createElementNode("actionlist");↵
|
|
| | | 271 | Element subActionNode = createElementNode("action");↵
|
|
| | | 272 | Element nameNode = createTextElementNode("name", "move");↵
|
| | | 273 | addElement(subActionNode, nameNode);↵
|
| | | 274 | Element uidNode = createTextElementNode("uid", "101");↵
|
| | | 275 | addElement(subActionNode, uidNode);↵
|
|
| | | 276 | addElement(actionNode, subActionNode);↵
|
|
| | | 277 | addElement(parent, actionNode);↵
|
|
| | | 278 | AdapterNode filterListNode = folderNode.getChild("filterlist");↵
|
|
| | | 279 | if (filterListNode == null) {↵
|
| | | 280 | Element listNode = createElementNode("filterlist");↵
|
|
| | | 281 | addElement(listNode, parent);↵
|
|
| | | 282 | Node node = folderNode.domNode.appendChild(listNode);↵
|
|
| | | 283 | AdapterNode result = new AdapterNode(parent);↵
|
|
| | | 284 | return result;↵
|
| | | 285 | } else {↵
|
|
16 | );
↵ | | 286 | Node node = filterListNode.domNode.appendChild(parent);↵
|
17 | } | | 287 | AdapterNode result = new AdapterNode(node);↵
|
|
| | | 288 | return result;↵
|
| | | 289 | }↵
|
|
| | | 290 | }↵
|
| | | 291 | */
|