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 import java.util.regex.*;
013 import java.util.logging.*;
014
015 import fc.jdbc.*;
016 import fc.io.*;
017 import fc.util.*;
018
019 /**
020 Represents a grouped set of radio buttons
021
022 @author hursh jain
023 **/
024 public class RadioGroup extends ChoiceGroup
025 {
026 /** {@inheritDoc} **/
027 public RadioGroup(String name)
028 {
029 super(name);
030 }
031
032 public Field.Type getType() {
033 //no separate radiogroup since no such thing in HTML
034 //radiogroups = radio's with same name
035 return Field.Type.RADIO;
036 }
037
038 /**
039 Convenience method that returns the selected option as a
040 String.
041 <p>
042 If there is no selection, returns <tt>null</tt>
043 **/
044 public String getStringValue(FormData fd)
045 {
046 if ( ! isFilled(fd) )
047 return null;
048
049 ChoiceGroup.Data data = (ChoiceGroup.Data) fd.getData(name);
050 Iterator it = data.selectedMap.values().iterator();
051 return ( ((Choice)it.next()).getValue() );
052 }
053
054 /**
055 Convenience method that returns the value of this
056 field as a integer.
057
058 @throws NumberFormatException if the value could not be
059 returned as in integer.
060 */
061 public int getIntValue(FormData fd)
062 {
063 return Integer.parseInt(getStringValue(fd));
064 }
065
066 /**
067 Convenience method that returns the value of this
068 field as a boolean.
069 */
070 public boolean getBooleanValue(FormData fd) {
071 return Boolean.valueOf(getStringValue(fd)).booleanValue();
072 }
073
074 }