You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rivet-dev@tcl.apache.org by da...@apache.org on 2003/08/08 22:54:12 UTC

cvs commit: tcl-rivet/rivet/packages/form form.tcl

damonc      2003/08/08 13:54:12

  Modified:    rivet/packages/form form.tcl
  Log:
  Committing mostly textual changes to the form class.  These changes are
  more consistent with standard HTML.
  
  Added a -labels option to radiobuttons and select boxes to specify that
  a different value should be shown to the user than the value stored with
  the form.
  
  Revision  Changes    Path
  1.4       +45 -35    tcl-rivet/rivet/packages/form/form.tcl
  
  Index: form.tcl
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/rivet/packages/form/form.tcl,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- form.tcl	15 Jul 2002 04:06:26 -0000	1.3
  +++ form.tcl	8 Aug 2003 20:54:12 -0000	1.4
  @@ -5,15 +5,15 @@
   ::itcl::class form {
   
       constructor {args} {
  -	set arguments(METHOD) POST
  -	set arguments(ACTION) [env DOCUMENT_URI]
  +	set arguments(method) post
  +	set arguments(action) [env DOCUMENT_URI]
   
   	import_data form $this arguments $args
   
  -	if {[info exists arguments(DEFAULTS)]} {
  -	    upvar 1 $arguments(DEFAULTS) defaults
  +	if {[info exists arguments(defaults)]} {
  +	    upvar 1 $arguments(defaults) defaults
   	    array set DefaultValues [array get defaults]
  -	    unset arguments(DEFAULTS)
  +	    unset arguments(defaults)
   	}
       }
   
  @@ -33,7 +33,7 @@
   	}
   
   	if {[info exists DefaultValues($name)]} {
  -	    set data(VALUE) $DefaultValues($name)
  +	    set data(value) $DefaultValues($name)
   	}
   
   	if {[expr [llength $list] % 2]} {
  @@ -42,9 +42,9 @@
   
   	set return ""
   	foreach {var val} $list {
  -	    set var [string range [string toupper $var] 1 end]
  +	    set var [string range [string tolower $var] 1 end]
   	    set data($var) $val
  -	    if {$var == "VALUES"} { continue }
  +	    if {$var == "values"} { continue }
   	    lappend return -$var $val
   	}
   	return $return
  @@ -79,33 +79,34 @@
       }
   
       method start {} {
  -	puts "<FORM [argstring arguments]>"
  +	html "<form [argstring arguments]>"
       }
   
       method end {} {
  -	puts "</FORM>"
  +	html "</form>"
       }
   
       method field {type name args} {
   	import_data $type $name data $args
  -	set string "<INPUT TYPE=\"$type\" NAME=\"$name\""
  +	set string "<input type=\"$type\" name=\"$name\""
   	append string [argstring data]
   	switch -- $type {
   	    "radio" -
   	    "checkbox" {
  -		if {![info exists data(VALUE)]} { set data(VALUE) "" }
  +		if {![info exists data(value)]} { set data(value) "" }
  +		if {![info exists data(label)]} { set data(label) $data(value) }
   		if {[info exists DefaultValues($name)]} {
  -		    if {$data(VALUE) == $DefaultValues($name)} {
  -			append string " CHECKED"
  +		    if {$data(value) == $DefaultValues($name)} {
  +			append string { checked="checked"}
   		    }
   		}
   	    }
   	}
  -	append string ">"
  +	append string " />"
   	if {$type == "radio"} {
  -	    puts $string$data(VALUE)
  +	    html $string$data(label)
   	} else {
  -	    puts $string
  +	    html $string
   	}
       }
   
  @@ -142,48 +143,57 @@
       }
   
       method radiobuttons {name args} {
  +	set data(values) [list]
  +	set data(labels) [list]
   	set list [import_data radiobuttons $name data $args]
  -	if {![info exists data(VALUES)]} {
  -	    return -code error "No -values specified for radiobuttons"
  -	}
  -	foreach value $data(VALUES) {
  -	    eval radio $name $list -value $value
  +	if {[lempty $data(labels)]} { set data(labels) $data(values) }
  +	foreach label $data(labels) value $data(values) {
  +	    eval radio $name $list -label $label -value $value
   	}
       }
   
       method select {name args} {
  +	set data(values) [list]
  +	set data(labels) [list]
   	import_data select $name data $args
  -	set values $data(VALUES)
  -	unset data(VALUES)
  +	set values $data(values)
  +	set labels $data(labels)
  +	unset data(values) data(labels)
   	set default ""
   	if {[info exists DefaultValues($name)]} {
   	    set default $DefaultValues($name)
   	}
  -	puts "<SELECT NAME=\"$name\" [argstring data]>"
  -	foreach value $values {
  +	if {[info exists data(value)]} {
  +	    set default $data(value)
  +	    unset data(value)
  +	}
  +	
  +	if {[lempty $labels]} { set labels $values }
  +
  +	html "<select name=\"$name\" [argstring data]>"
  +	foreach label $labels value $values {
   	    if {$value == $default} {
  -		set string "<OPTION SELECTED>"
  +		set string "<option value=\"$value\" selected=\"selected\">"
   	    } else {
  -		set string "<OPTION>"
  +		set string "<option value=\"$value\">"
   	    }
  -	    puts $string$value
  +	    html $string$label
   	}
  -	puts "</SELECT>"
  +	html "</select>"
       }
   
       method textarea {name args} {
   	import_data textarea $name data $args
   	set value ""
  -	if {[info exists data(VALUE)]} {
  -	    set value $data(VALUE)
  -	    unset data(VALUE)
  +	if {[info exists data(value)]} {
  +	    set value $data(value)
  +	    unset data(value)
   	}
  -	puts "<TEXTAREA NAME=\"$name\" [argstring data]>$value</TEXTAREA>"
  +	html "<textarea name=\"$name\" [argstring data]>$value</textarea>"
       }
   
       public variable defaults "" {
   	upvar 1 $defaults array
  -	unset array
   	array set DefaultValues [array get array]
       }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-cvs-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-cvs-help@tcl.apache.org