01: /*
02: ItsNat Java Web Application Framework
03: Copyright (C) 2007 Innowhere Software Services S.L., Spanish Company
04: Author: Jose Maria Arranz Santamaria
05:
06: This program is free software: you can redistribute it and/or modify
07: it under the terms of the GNU Affero General Public License as published by
08: the Free Software Foundation, either version 3 of the License, or
09: (at your option) any later version. See the GNU Affero General Public
10: License for more details. See the copy of the GNU Affero General Public License
11: included in this program. If not, see <http://www.gnu.org/licenses/>.
12: */
13:
14: package org.itsnat.comp.ui;
15:
16: import org.itsnat.comp.ItsNatTextComponent;
17:
18: /**
19: * Is the base interface of the User Interface of a text based header.
20: *
21: * <p>Current {@link org.itsnat.comp.ItsNatTextComponent} implementations are based on
22: * <input type="text"> and <textarea> elements, in both cases the
23: * <code>value</code> attribute/property is used to save the text as markup
24: * (the textarea version is a bit more complicated because the first value
25: * is set as the element text content too).</p>
26: *
27: * @author Jose Maria Arranz Santamaria
28: * @see ItsNatTextComponent#getItsNatTextComponentUI()
29: */
30: public interface ItsNatTextComponentUI extends ItsNatElementComponentUI {
31: /**
32: * Returns the associated component object.
33: *
34: * @return the component object.
35: */
36: public ItsNatTextComponent getItsNatTextComponent();
37:
38: /**
39: * Returns the current text saved in markup.
40: *
41: * @return the current text saved in markup.
42: */
43: public String getText();
44:
45: /**
46: * Renders the specified text to the markup.
47: *
48: * @param text the new text.
49: */
50: public void setText(String text);
51:
52: /**
53: * Inserts the specified string into the markup.
54: *
55: * @param where index of the position to insert (0 based).
56: * @param str the new string to insert.
57: * @see #removeString(int,int)
58: */
59: public void insertString(int where, String str);
60:
61: /**
62: * Removes the specified text fragment from the markup.
63: *
64: * @param where position start of the fragment to remove (0 based).
65: * @param len the number of characters to remove.
66: * @see #insertString(int,String)
67: */
68: public void removeString(int where, int len);
69:
70: /**
71: * Returns whether the component user interface is editable or read-only.
72: *
73: * @return true if the component UI is editable.
74: */
75: public boolean isEditable();
76:
77: /**
78: * Sets the element as editable or read-only.
79: *
80: * <p>Current implementation calls the methods <code>HTMLInputElement.setReadOnly(boolean)</code>
81: * and <code>HTMLTextAreaElement.setReadOnly(boolean)</code> accordingly.</p>
82: */
83: public void setEditable(boolean b);
84: }
|