KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > ejtools > jndi > browser > state > WorkbenchState


1 /*
2  * EJTools, the Enterprise Java Tools
3  *
4  * Distributable under LGPL license.
5  * See terms of license at www.gnu.org.
6  */

7 package org.ejtools.jndi.browser.state;
8
9 import java.beans.beancontext.BeanContext JavaDoc;
10 import java.io.File JavaDoc;
11 import java.net.URL JavaDoc;
12
13 import javax.xml.parsers.DocumentBuilder JavaDoc;
14 import javax.xml.parsers.DocumentBuilderFactory JavaDoc;
15 import javax.xml.parsers.SAXParser JavaDoc;
16 import javax.xml.parsers.SAXParserFactory JavaDoc;
17 import javax.xml.transform.Result JavaDoc;
18 import javax.xml.transform.Source JavaDoc;
19 import javax.xml.transform.Transformer JavaDoc;
20 import javax.xml.transform.TransformerFactory JavaDoc;
21 import javax.xml.transform.dom.DOMSource JavaDoc;
22 import javax.xml.transform.stream.StreamResult JavaDoc;
23
24 import org.ejtools.jndi.browser.Browser;
25 import org.ejtools.jndi.browser.frame.ServerInternalFrame;
26 import org.ejtools.jndi.browser.model.Server;
27 import org.ejtools.jndi.browser.state.rules.ServerInternalFrameRule;
28 import org.ejtools.jndi.browser.state.rules.ServerRule;
29 import org.ejtools.util.service.ProfileRule;
30 import org.ejtools.util.state.LoadHandler;
31 import org.ejtools.util.state.StoreVisitor;
32 import org.w3c.dom.Document JavaDoc;
33
34
35 /**
36  * @author Laurent Etiemble
37  * @created 3 juin 2003
38  * @version $Revision: 1.2 $
39  */

40 public class WorkbenchState
41 {
42    /** Description of the Field */
43    private BeanContext JavaDoc context;
44    /** Description of the Field */
45    private Document JavaDoc document;
46    /** Description of the Field */
47    private URL JavaDoc workbenchURL;
48
49
50    /**
51     *Constructor for the FilePersistenceStore object
52     *
53     * @param context Description of the Parameter
54     */

55    public WorkbenchState(BeanContext JavaDoc context)
56    {
57       this.context = context;
58    }
59
60
61    /**
62     * Gets the workbenchFile attribute of the WorkbenchStore object
63     *
64     * @return The workbenchFile value
65     */

66    public URL JavaDoc getWorkbenchURL()
67    {
68       return this.workbenchURL;
69    }
70
71
72    /** Description of the Method */
73    public void load()
74    {
75       // Check that the URL is not null andthat URL is a file
76
if ((this.workbenchURL == null) && (!this.workbenchURL.getProtocol().equals("file")))
77       {
78          return;
79       }
80
81       try
82       {
83          LoadHandler handler = new LoadHandler();
84          handler.getContext().put("CONTAINER", this.context);
85
86          handler.addRule("/workbench/jndi-frame", new ServerInternalFrameRule());
87          handler.addRule("/workbench/jndi-frame/profile", new ProfileRule());
88          handler.addRule("/workbench/jndi-frame/profile/property", new ProfileRule.ProfilePropertyRule());
89          handler.addRule("/workbench/jndi-frame/jmx-server", new ServerRule());
90
91          SAXParserFactory JavaDoc factory = SAXParserFactory.newInstance();
92          SAXParser JavaDoc parser = factory.newSAXParser();
93          File JavaDoc file = new File JavaDoc(this.workbenchURL.getFile());
94          parser.parse(file, handler);
95       }
96       catch (Exception JavaDoc e)
97       {
98          e.printStackTrace();
99       }
100    }
101
102
103    /**
104     * Sets the workbenchFile attribute of the WorkbenchStore object
105     *
106     * @param workbenchURL The new workbenchURL value
107     */

108    public void setWorkbenchURL(URL JavaDoc workbenchURL)
109    {
110       this.workbenchURL = workbenchURL;
111    }
112
113
114    /** Description of the Method */
115    public void store()
116    {
117       // Check that the URL is not null andthat URL is a file
118
if ((this.workbenchURL == null) && (!this.workbenchURL.getProtocol().equals("file")))
119       {
120          return;
121       }
122
123       try
124       {
125          DocumentBuilderFactory JavaDoc dbFactory = DocumentBuilderFactory.newInstance();
126          DocumentBuilder JavaDoc builder = dbFactory.newDocumentBuilder();
127          this.document = builder.newDocument();
128
129          StoreVisitor visitor = new WorkbenchStoreVisitor(this.document);
130          visitor.registerForPersistence(Browser.class);
131          visitor.registerForPersistence(ServerInternalFrame.class);
132          visitor.registerForPersistence(Server.class);
133          visitor.persist(this.context);
134
135          TransformerFactory JavaDoc tFactory = TransformerFactory.newInstance();
136          Transformer JavaDoc transformer = tFactory.newTransformer();
137          transformer.setOutputProperty("indent", "true");
138
139          Source JavaDoc source = new DOMSource JavaDoc(this.document);
140          File JavaDoc file = new File JavaDoc(this.workbenchURL.getFile());
141          Result JavaDoc result = new StreamResult JavaDoc(file);
142          transformer.transform(source, result);
143       }
144       catch (Exception JavaDoc e)
145       {
146          e.printStackTrace();
147       }
148    }
149 }
150
Popular Tags