01: // THIS SOFTWARE IS PROVIDED BY SOFTARIS PTY.LTD. AND OTHER METABOSS
02: // CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
03: // BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
04: // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SOFTARIS PTY.LTD.
05: // OR OTHER METABOSS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
06: // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
07: // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
08: // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
09: // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
10: // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
11: // EVEN IF SOFTARIS PTY.LTD. OR OTHER METABOSS CONTRIBUTORS ARE ADVISED OF THE
12: // POSSIBILITY OF SUCH DAMAGE.
13: //
14: // Copyright 2000-2005 © Softaris Pty.Ltd. All Rights Reserved.
15: package com.metaboss.enterprise.xi.enhydrabarracuda.htmlwidgets;
16:
17: import org.enhydra.xml.xmlc.XMLCUtil;
18: import org.w3c.dom.Node;
19:
20: import com.metaboss.enterprise.ui.UIUnexpectedProgramConditionException;
21: import com.metaboss.enterprise.xi.enhydrabarracuda.Widget;
22: import com.metaboss.enterprise.xi.enhydrabarracuda.WidgetModel;
23:
24: /** This class is the very simple text area implementation */
25: public class TextLabel extends Widget {
26: /** This class represents the data model of the text control */
27: public static class Model implements WidgetModel {
28: private String mText = null;
29:
30: /** Returns the value of the text to be set into the text widget.
31: * @return the string set into the text widget. If null is returned from here the text will stay unmodified */
32: public String getText() {
33: return mText;
34: }
35:
36: /** Sets the value of the text to be set into the text widget. */
37: public void setText(String pText) {
38: mText = pText;
39: }
40:
41: /** This method is used to apply the values passed from the form back into the model.
42: * @return the model object after the form values have been applied (The model object may just return itself)
43: * @exception UIUnexpectedProgramConditionException thrown when this widget model does not support editing */
44: public void applyFormValues(String[] pValues)
45: throws UIUnexpectedProgramConditionException {
46: throw new UIUnexpectedProgramConditionException(
47: "Text widget does not support editing and can not be used in the form");
48: }
49:
50: /** This method used primarily for debug purposes. It is expected to output a single string value reflecting the content of the model */
51: public String getDebugString() {
52: return mText;
53: }
54: }
55:
56: /** This standard method creates an instance of the model object for this widget */
57: public WidgetModel createModel() {
58: // Get the first text node and create the model object initialised with it
59: Node lTextNode = XMLCUtil
60: .getFirstText(getBoundDocumentElement());
61: Model lModel = new Model();
62: lModel.setText(lTextNode.getNodeValue());
63: return lModel;
64: }
65:
66: /** This lifecycle method is expected to render the control's image onto the document */
67: public void render() {
68: Node lTextNode = XMLCUtil
69: .getFirstText(getBoundDocumentElement());
70: Model lModel = (Model) getModel();
71: String lText = lModel.getText();
72: if (lText != null)
73: lTextNode.setNodeValue(lText);
74: }
75: }
|