001 // Copyright (c) 2001 Hursh Jain (http://www.mollypages.org) 002 // The Molly framework is freely distributable under the terms of an 003 // MIT-style license. For details, see the molly pages web site at: 004 // http://www.mollypages.org/. Use, modify, have fun ! 005 006 package fc.web.forms; 007 008 import javax.servlet.*; 009 import javax.servlet.http.*; 010 import java.io.*; 011 import java.util.*; 012 013 import fc.jdbc.*; 014 import fc.io.*; 015 import fc.util.*; 016 017 /** 018 Represents an HTML text field 019 020 @author hursh jain 021 **/ 022 public final class Text extends MaxSizable 023 { 024 /** 025 Creates a new text element with a initial value of "". 026 **/ 027 public Text(String name) 028 { 029 this(name, ""); 030 } 031 032 /** 033 Creates a new text element with the specified initial value. 034 If the specified value is <tt>null</tt>, then the initial 035 value is set to "" (the empty string). 036 **/ 037 public Text(String name, String value) 038 { 039 super(name, value); 040 } 041 042 public Field.Type getType() { 043 return Field.Type.TEXT; 044 } 045 046 public void renderImpl(FormData fd, Writer writer) throws IOException 047 { 048 String value = getRenderValue(fd); 049 writer.write("<input type='"); 050 writer.write(getType().toString()); 051 writer.write("' name='"); 052 writer.write(name); 053 writer.write("'"); 054 055 if (value != null) { 056 writer.write(" value='"); 057 writer.write(value); 058 writer.write("'"); 059 } 060 061 if (! enabled || ! isEnabled(fd)) { 062 writer.write(" disabled"); 063 } 064 065 if (size > 0) { 066 writer.write(" size='"); 067 writer.write(String.valueOf(size)); 068 writer.write("'"); 069 } 070 071 if (maxlen > 0) { 072 writer.write(" maxlength='"); 073 writer.write(String.valueOf(maxlen)); 074 writer.write("'"); 075 } 076 077 if (renderStyleTag) { 078 writer.write(" style='"); 079 writer.write(styleTag); 080 writer.write("'"); 081 } 082 083 final int arlen = arbitraryString.size(); 084 for (int n = 0; n < arlen; n++) { 085 writer.write(" "); 086 writer.write(arbitraryString.get(n).toString()); 087 } 088 089 writer.write("></input>"); 090 } 091 092 } //~class Text