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.simpleforms;
007
008 import javax.servlet.*;
009 import javax.servlet.http.*;
010 import java.io.*;
011 import java.util.*;
012
013 import fc.io.*;
014 import fc.util.*;
015
016 /**
017 Represents an option for a select input type. This class is the
018 fc.web.simpleforms equivalent to the similar class {@link
019 fc.web.forms.Select.Option} found in package fc.web.forms
020
021 @author hursh jain
022 */
023 public final class SelectOption
024 {
025 private String value;
026 private String text;
027 private boolean orig_selected;
028
029 /**
030 Constructs a new option with the specified text and
031 value of the option tag.
032
033 @param text the html text of the option tag
034 @param value the value of the option tag
035 @param selected <tt>true</tt> if this option is selected
036 by default. If more than one selected option
037 is added to a select field and that select
038 field does <b>not</b> have it's multiple
039 attribute set, then the option displayed as
040 selected is browser dependent (Moz1, IE6
041 show the last selected, N4 the first). More
042 than one selected option should not be shown
043 for non multiple select fields anyway.
044 **/
045 public SelectOption(String text, String value, boolean selected)
046 {
047 this.text = text;
048 this.value = value;
049 this.orig_selected = selected;
050 }
051
052 /**
053 Constructs a new unselected option with the specified
054 text and value of the option tag.
055
056 @param text the html text of the option tag
057 @param value the value of the option tag
058 **/
059 public SelectOption(String text, String value) {
060 this(text, value, false);
061 }
062
063 /**
064 Constructs a new option with the specified text (and no
065 separate value tag).
066
067 @param text the html text of the option tag
068 @param selected <tt>true</tt> to select this option
069 <tt>false</tt> otherwise
070 **/
071 public SelectOption(String text, boolean selected) {
072 this(text, null, selected);
073 }
074
075 /**
076 Constructs a new unselected option with the specified
077 html text and no separate value.
078
079 @param text the html text of the option tag
080 **/
081 public SelectOption(String text) {
082 this(text, null, false);
083 }
084
085 boolean selected() {
086 return orig_selected;
087 }
088
089 /**
090 Returns the value of this option tag. If no value is set,
091 returns the html text value for this option tag
092 **/
093 public String getValue()
094 {
095 if (value != null)
096 return value;
097 else
098 return text;
099 }
100
101 /**
102 Returns the html text for this option.
103 */
104 public String getHTML()
105 {
106 return text;
107 }
108
109 } //~class SelectOption