KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > module > gui > flash > XMLDynamicFlashReader


1 /* -*- tab-width: 4; -*-
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10 package org.mmbase.module.gui.flash;
11
12 import java.io.CharArrayReader JavaDoc;
13 import java.util.*;
14
15 import org.mmbase.util.XMLBasicReader;
16 import org.mmbase.util.logging.*;
17 import org.w3c.dom.*;
18 import org.xml.sax.InputSource JavaDoc;
19
20 /**
21  * @javadoc
22  * @version $Id: XMLDynamicFlashReader.java,v 1.8 2005/02/24 16:03:34 michiel Exp $
23  */

24
25 public class XMLDynamicFlashReader {
26
27     private static final Logger log = Logging.getLoggerInstance(XMLDynamicFlashReader.class);
28
29     Document document;
30
31     public XMLDynamicFlashReader(String JavaDoc filename) {
32         try {
33             document = XMLBasicReader.getDocumentBuilder(false).parse(new java.io.File JavaDoc(filename));
34
35         } catch (Exception JavaDoc e) {
36             log.error(Logging.stackTrace(e));
37         }
38     }
39
40     public XMLDynamicFlashReader(CharArrayReader JavaDoc reader) {
41         try {
42             document = XMLBasicReader.getDocumentBuilder(false).parse(new InputSource JavaDoc(reader));
43         } catch (Exception JavaDoc e) {
44             log.error(Logging.stackTrace(e));
45         }
46     }
47
48     /**
49     * get the name of the src flash
50     */

51     public String JavaDoc getSrcName() {
52         Node n1 = document.getFirstChild();
53         if (n1 != null) {
54             NamedNodeMap nm = n1.getAttributes();
55             if (nm != null) {
56                 Node n2 = nm.getNamedItem("src");
57                 String JavaDoc name = n2.getNodeValue();
58                 return (name);
59             }
60         }
61         return (null);
62     }
63
64     /**
65     * get the caching type
66     */

67     public String JavaDoc getCaching() {
68         Node n1 = document.getFirstChild();
69         if (n1 != null) {
70             NamedNodeMap nm = n1.getAttributes();
71             if (nm != null) {
72                 Node n2 = nm.getNamedItem("caching");
73                 if (n2 == null)
74                     return (null);
75                 String JavaDoc name = n2.getNodeValue();
76                 return (name);
77             }
78         }
79         return (null);
80     }
81
82     /**
83     * get the parser
84     */

85     public String JavaDoc getParser() {
86         Node n1 = document.getFirstChild();
87         if (n1 != null) {
88             NamedNodeMap nm = n1.getAttributes();
89             if (nm != null) {
90                 Node n2 = nm.getNamedItem("parser");
91                 String JavaDoc parser = n2.getNodeValue();
92                 return (parser);
93             }
94         }
95         return (null);
96     }
97
98     /**
99     */

100     public Vector getReplaces() {
101         Vector results = new Vector();
102         Node n1 = document.getFirstChild();
103         if (n1 != null) {
104             Node n2 = n1.getFirstChild();
105             while (n2 != null) {
106                 if (n2.getNodeName().equals("replace")) {
107                     Hashtable rep = new Hashtable();
108
109                     // decode all the needed values in the replace itself
110
NamedNodeMap nm = n2.getAttributes();
111                     if (nm != null) {
112                         Node n3 = nm.getNamedItem("type");
113                         if (n3 != null) {
114                             String JavaDoc val = n3.getNodeValue();
115                             rep.put("type", val);
116                         }
117                         n3 = nm.getNamedItem("id");
118                         if (n3 != null) {
119                             String JavaDoc val = n3.getNodeValue();
120                             rep.put("id", val);
121                         }
122
123                     }
124
125                     Node n3 = n2.getFirstChild();
126                     while (n3 != null) {
127
128                         // decode all font hints
129
if (n3.getNodeName().equals("font")) {
130                             nm = n3.getAttributes();
131                             if (nm != null) {
132                                 Node n5 = nm.getNamedItem("type");
133                                 if (n5 != null)
134                                     rep.put("fonttype", n5.getNodeValue());
135                                 n5 = nm.getNamedItem("size");
136                                 if (n5 != null)
137                                     rep.put("fontsize", n5.getNodeValue());
138                                 n5 = nm.getNamedItem("kerning");
139                                 if (n5 != null)
140                                     rep.put("fontkerning", n5.getNodeValue());
141                                 n5 = nm.getNamedItem("color");
142                                 if (n5 != null)
143                                     rep.put("fontcolor", n5.getNodeValue());
144                             }
145                         }
146                         // decode all font hints
147
else if (n3.getNodeName().equals("string")) {
148                             Node n5 = n3.getFirstChild();
149                             if (n5 != null)
150                                 rep.put("string", n5.getNodeValue());
151                             nm = n3.getAttributes();
152                             if (nm != null) {
153                                 n5 = nm.getNamedItem("file");
154                                 if (n5 != null)
155                                     rep.put("stringfile", n5.getNodeValue());
156                             }
157                         }
158                         n3 = n3.getNextSibling();
159                     }
160
161                     results.addElement(rep);
162                 }
163                 n2 = n2.getNextSibling();
164             }
165         }
166         return (results);
167     }
168
169     /**
170     */

171     public Vector getDefines() {
172         Vector results = new Vector();
173         Node n1 = document.getFirstChild();
174         if (n1 != null) {
175             Node n2 = n1.getFirstChild();
176             while (n2 != null) {
177                 if (n2.getNodeName().equals("define")) {
178                     Hashtable rep = new Hashtable();
179
180                     // decode all the needed values in the replace itself
181
NamedNodeMap nm = n2.getAttributes();
182                     if (nm != null) {
183                         Node n3 = nm.getNamedItem("type");
184                         if (n3 != null) {
185                             rep.put("type", n3.getNodeValue());
186                         }
187                         n3 = nm.getNamedItem("id");
188                         if (n3 != null) {
189                             rep.put("id", n3.getNodeValue());
190                         }
191
192                         n3 = nm.getNamedItem("width");
193                         if (n3 != null) {
194                             rep.put("width", n3.getNodeValue());
195                         }
196
197                         n3 = nm.getNamedItem("height");
198                         if (n3 != null) {
199                             rep.put("height", n3.getNodeValue());
200                         }
201
202                         n3 = nm.getNamedItem("src");
203                         if (n3 != null) {
204                             rep.put("src", n3.getNodeValue());
205                         }
206
207                         n3 = nm.getNamedItem("value");
208                         if (n3 != null) {
209                             rep.put("value", n3.getNodeValue());
210                         }
211                         n3 = nm.getNamedItem("file");
212                         if (n3 != null) {
213                             rep.put("valuefile", n3.getNodeValue());
214                         }
215
216                     }
217
218                     results.addElement(rep);
219                 }
220                 n2 = n2.getNextSibling();
221             }
222         }
223         return (results);
224     }
225
226 }
227
Popular Tags