KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tonbeller > wcf > tabbed > PanelSupport


1 /*
2  * ====================================================================
3  * This software is subject to the terms of the Common Public License
4  * Agreement, available at the following URL:
5  * http://www.opensource.org/licenses/cpl.html .
6  * Copyright (C) 2003-2004 TONBELLER AG.
7  * All Rights Reserved.
8  * You must accept the terms of that agreement to use this software.
9  * ====================================================================
10  *
11  *
12  */

13 package com.tonbeller.wcf.tabbed;
14
15 import javax.servlet.http.HttpSession JavaDoc;
16
17 import org.apache.log4j.Logger;
18 import org.jaxen.JaxenException;
19 import org.jaxen.dom.DOMXPath;
20 import org.w3c.dom.Element JavaDoc;
21
22 import com.tonbeller.wcf.component.FormListener;
23 import com.tonbeller.wcf.controller.RequestContext;
24 import com.tonbeller.wcf.form.FormComponent;
25 import com.tonbeller.wcf.form.NodeHandler;
26 import com.tonbeller.wcf.form.XmlComponent;
27 import com.tonbeller.wcf.tree.TreeHandler;
28 import com.tonbeller.wcf.ui.XoplonCtrl;
29
30 /**
31  * Default implementation of a <code>NodeHandler</code> for a panel of a
32  * tabbed pane. <p/>PanelSupport provides access to the
33  * <code>FormComponent</code> that contains the <code>tabbed</code> element,
34  * access to the <code>TreeComponent</code> if one is present and access to
35  * the <code>TabbedHandler</code> that manages this <code>panel</code> DOM
36  * element.
37  *
38  * @author av
39  */

40 public class PanelSupport
41     implements
42       NodeHandler,
43       PanelChangeListener,
44       FormListener {
45   private static Logger logger = Logger.getLogger(PanelSupport.class);
46
47   protected FormComponent formComponent;
48   protected TabbedHandler tabbedHandler;
49   protected Element JavaDoc panelElement;
50
51   public void initialize(RequestContext context, XmlComponent comp,
52       Element JavaDoc element) throws Exception JavaDoc {
53     this.formComponent = (FormComponent) comp;
54     this.panelElement = element;
55
56     formComponent.addFormListener(this);
57
58     Element JavaDoc tabbedElement = (Element JavaDoc) element.getParentNode();
59     tabbedHandler = (TabbedHandler) formComponent.getHandler(tabbedElement);
60     tabbedHandler.addPanelChangedListener(this);
61   }
62
63   public void destroy(HttpSession JavaDoc session) throws Exception JavaDoc {
64     formComponent.removeFormListener(this);
65     tabbedHandler.removePanelChangedListener(this);
66   }
67
68   /**
69    * searches for the firs &lt;xtree ...&gt; element in the DOM and returns
70    * the handler associated with it. Derived classes may override this if
71    * they know the id of the tree element they want to listen to, e.g. using
72    * FormComponent.getHandler(String id)
73    */

74   protected TreeHandler findTreeHandler(FormComponent fc) throws JaxenException {
75     DOMXPath dx = new DOMXPath("//xtree");
76     Element JavaDoc elem = (Element JavaDoc) dx.selectSingleNode(fc.getDocument());
77     if (elem == null)
78       return null;
79     return (TreeHandler) fc.getHandler(elem);
80   }
81
82
83   public void render(RequestContext context) throws Exception JavaDoc {
84   }
85
86   /**
87    * called when the user displays another panel
88    */

89   public void panelChanged(PanelChangeEvent event) {
90   }
91
92   /**
93    * parse user input
94    */

95   public boolean validate(RequestContext context) {
96     return true;
97   }
98
99   /**
100    * format data for display
101    */

102   public void revert(RequestContext context) {
103   }
104
105   /**
106    * @return Returns the formComponent.
107    */

108   public FormComponent getFormComponent() {
109     return formComponent;
110   }
111
112
113   /**
114    * @return Returns the tabbedHandler.
115    */

116   public TabbedHandler getTabbedHandler() {
117     return tabbedHandler;
118   }
119
120   /**
121    * @return Returns the hidden.
122    */

123   public boolean isHidden() {
124     return XoplonCtrl.isHidden(panelElement);
125   }
126
127   /**
128    * @param hidden
129    * The hidden to set.
130    */

131   public void setHidden(RequestContext context, boolean hidden) {
132     tabbedHandler.setHidden(context, panelElement, hidden);
133   }
134 }
Popular Tags