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