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