001: /*
002: * Text.java
003: *
004: * Version: $Revision: 1.2 $
005: *
006: * Date: $Date: 2006/07/06 17:02:03 $
007: *
008: * Copyright (c) 2002, Hewlett-Packard Company and Massachusetts
009: * Institute of Technology. All rights reserved.
010: *
011: * Redistribution and use in source and binary forms, with or without
012: * modification, are permitted provided that the following conditions are
013: * met:
014: *
015: * - Redistributions of source code must retain the above copyright
016: * notice, this list of conditions and the following disclaimer.
017: *
018: * - Redistributions in binary form must reproduce the above copyright
019: * notice, this list of conditions and the following disclaimer in the
020: * documentation and/or other materials provided with the distribution.
021: *
022: * - Neither the name of the Hewlett-Packard Company nor the name of the
023: * Massachusetts Institute of Technology nor the names of their
024: * contributors may be used to endorse or promote products derived from
025: * this software without specific prior written permission.
026: *
027: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
028: * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
029: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
030: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
031: * HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
032: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
033: * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
034: * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
035: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
036: * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
037: * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
038: * DAMAGE.
039: */
040:
041: package org.dspace.app.xmlui.wing.element;
042:
043: /**
044: * A class representing a text input control. The text input control allows the
045: * user to enter one-line of text.
046: *
047: * @author Scott Phillips
048: */
049:
050: import org.dspace.app.xmlui.wing.Message;
051: import org.dspace.app.xmlui.wing.WingContext;
052: import org.dspace.app.xmlui.wing.WingException;
053:
054: public class Text extends Field {
055: /**
056: * Construct a new field.
057: *
058: * @param context
059: * (Required) The context this element is contained in, such as
060: * where to route SAX events and what i18n catalogue to use.
061: *
062: * @param name
063: * (Required) a non-unique local identifier used to differentiate
064: * the element from its siblings within an interactive division.
065: * This is the name of the field use when data is submitted back
066: * to the server.
067: * @param rend
068: * (May be null) a rendering hint used to override the default
069: * display of the element.
070: */
071: protected Text(WingContext context, String name, String rend)
072: throws WingException {
073: super (context, name, Field.TYPE_TEXT, rend);
074: this .params = new Params(context);
075: }
076:
077: /**
078: * Set the size of the text field.
079: *
080: * @param size
081: * (May be zero for no defined value) he default size for a
082: * field.
083: */
084: public void setSize(int size) {
085: this .params.setSize(size);
086: }
087:
088: /**
089: * Set the size and maximum size of the text field.
090: *
091: * @param size
092: * (May be zero for no defined value) he default size for a
093: * field.
094: * @param maxLength
095: * (May be zero for no defined value) The maximum length that the
096: * theme should accept for form input.
097: */
098: public void setSize(int size, int maxLength) {
099: this .params.setSize(size);
100: this .params.setMaxLength(maxLength);
101: }
102:
103: /**
104: * Enable the add operation for this field. When this is enabled the
105: * front end will add a button to add more items to the field.
106: *
107: */
108: public void enableAddOperation() throws WingException {
109: this .params.enableAddOperation();
110: }
111:
112: /**
113: * Enable the delete operation for this field. When this is enabled then
114: * the front end will provide a way for the user to select fields (probably
115: * checkboxes) along with a submit button to delete the selected fields.
116: *
117: */
118: public void enableDeleteOperation() throws WingException {
119: this .params.enableDeleteOperation();
120: }
121:
122: /** ******************************************************************** */
123: /** Raw Values * */
124: /** ******************************************************************** */
125:
126: /**
127: * Set the raw value of the field removing any previous raw values.
128: *
129: * @param characters
130: * (May be null) Field value as a string
131: */
132: public Value setValue() throws WingException {
133: removeValueOfType(Value.TYPE_RAW);
134: Value value = new Value(context, Value.TYPE_RAW);
135: values.add(value);
136: return value;
137: }
138:
139: /**
140: * Set the raw value of the field removing any previous raw values.
141: *
142: * @param characters
143: * (May be null) Field value as a string
144: */
145: public void setValue(String characters) throws WingException {
146: Value value = this .setValue();
147: value.addContent(characters);
148: }
149:
150: /**
151: * Set the raw value of the field removing any previous raw values.
152: *
153: * @param message
154: * (Required) A key into the i18n catalogue for translation into
155: * the user's preferred language.
156: */
157: public void setValue(Message message) throws WingException {
158: Value value = this .setValue();
159: value.addContent(message);
160: }
161:
162: /**
163: * Add a field instance
164: * @return instance
165: */
166: public Instance addInstance() throws WingException {
167: Instance instance = new Instance(context);
168: instances.add(instance);
169: return instance;
170: }
171: }
|