KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > ejtools > management > 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.management.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.graph.frame.GraphInternalFrame;
25 import org.ejtools.management.browser.Browser;
26 import org.ejtools.management.browser.frame.ServerInternalFrame;
27 import org.ejtools.management.browser.model.ManagedObject;
28 import org.ejtools.management.browser.model.Server;
29 import org.ejtools.management.browser.state.rules.GraphInternalFrameRule;
30 import org.ejtools.management.browser.state.rules.ManagementGraphRule;
31 import org.ejtools.management.browser.state.rules.ManagedObjectRule;
32 import org.ejtools.management.browser.state.rules.ServerInternalFrameRule;
33 import org.ejtools.management.browser.state.rules.ServerRule;
34 import org.ejtools.util.service.ProfileRule;
35 import org.ejtools.util.state.LoadHandler;
36 import org.ejtools.util.state.StoreVisitor;
37 import org.w3c.dom.Document JavaDoc;
38
39
40 /**
41  * @author Laurent Etiemble
42  * @version $Revision: 1.2 $
43  * @created 3 juin 2003
44  */

45 public class WorkbenchState
46 {
47    /** Description of the Field */
48    private BeanContext JavaDoc context;
49    /** Description of the Field */
50    private Document JavaDoc document;
51    /** Description of the Field */
52    private URL JavaDoc workbenchURL;
53
54
55    /**
56     *Constructor for the FilePersistenceStore object
57     *
58     * @param context Description of the Parameter
59     */

60    public WorkbenchState(BeanContext JavaDoc context)
61    {
62       this.context = context;
63    }
64
65
66    /**
67     * Gets the workbenchFile attribute of the WorkbenchStore object
68     *
69     * @return The workbenchFile value
70     */

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

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