KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > contineo > core > transfer > FreemindExport


1 package org.contineo.core.transfer;
2
3 import java.io.ByteArrayOutputStream JavaDoc;
4 import java.io.IOException JavaDoc;
5 import java.io.PrintStream JavaDoc;
6
7 import java.util.Collection JavaDoc;
8 import java.util.Iterator JavaDoc;
9
10 import org.contineo.admin.Menu;
11 import org.contineo.admin.dao.MenuDAO;
12
13 /**
14  * Exports a folder structure (menu) as freemind mindmap.
15  * Created on 06.12.2004
16  */

17 public class FreemindExport implements Export {
18     
19     protected final static String JavaDoc START_MAP = "<map version=\"0.7.1\">\n";
20     protected final static String JavaDoc END_MAP = "</map>";
21     protected final static String JavaDoc END_NODE = "</node>\n";
22     protected final static String JavaDoc START_NODE = "<node TEXT=";
23     
24     private PrintStream JavaDoc printStream;
25     private String JavaDoc username;
26     private boolean pos;
27
28     /**
29      *
30      */

31     public FreemindExport() {
32         username = "";
33         pos = true;
34     }
35
36     /* (non-Javadoc)
37      * @see org.contineo.core.export.Export#process(org.contineo.admin.Menu, java.io.File)
38      */

39     public ByteArrayOutputStream JavaDoc process(Menu menu, String JavaDoc user) throws IOException JavaDoc {
40         username = user;
41         ByteArrayOutputStream JavaDoc bos = new ByteArrayOutputStream JavaDoc();
42         printStream = new PrintStream JavaDoc(bos);
43         printStream.append(START_MAP);
44         appendChildren(menu, true);
45         printStream.append(END_MAP);
46         printStream.flush();
47         printStream.close();
48         return bos;
49     }
50     
51     /* (non-Javadoc)
52      * @see org.contineo.core.export.Export#process(int, java.io.File, java.lang.String)
53      */

54     public ByteArrayOutputStream JavaDoc process(int menuId, String JavaDoc user) throws IOException JavaDoc {
55         MenuDAO menuDao = new MenuDAO();
56         Menu menu = menuDao.findMenuByMenuId(menuId);
57         return process(menu, user);
58     }
59     
60     protected void appendNode(String JavaDoc text, String JavaDoc color, String JavaDoc font, boolean bold, int size) {
61         printStream.append(START_NODE);
62         printStream.append("\"");
63         printStream.append(text);
64         printStream.append("\" COLOR=\"");
65         printStream.append(color);
66         printStream.append("\" POSITION=\"");
67         if (pos)
68             printStream.append("right");
69         else
70             printStream.append("left");
71         pos = !pos;
72         printStream.append("\">\n");
73         printStream.append("<font NAME=\"");
74         printStream.append(font);
75         printStream.append("\" BOLD=\"");
76         printStream.append(String.valueOf(bold));
77         printStream.append("\" SIZE=\"");
78         printStream.append(String.valueOf(size));
79         printStream.append("\"/>\n");
80     }
81
82     protected void appendChildren(Menu menu, boolean home) {
83         MenuDAO menuDao = new MenuDAO();
84         Collection JavaDoc children = menuDao.findByUserName(username, menu.getMenuId());
85         if (home)
86             appendNode(menu.getMenuText(), "#FF0000", "SansSerif", true, 12);
87         else
88             if (children.size() > 0)
89                 appendNode(menu.getMenuText(), "#000000", "SansSerif", true, 12);
90             else
91                 appendNode(menu.getMenuText(), "#000000", "SansSerif", false, 12);
92         Iterator JavaDoc iter = children.iterator();
93         while (iter.hasNext()) {
94             //pos = true;
95
appendChildren((Menu)iter.next(), false);
96         }
97         printStream.append(END_NODE);
98     }
99 }
100
Popular Tags