Changeset 1612 for trunk


Ignore:
Timestamp:
Nov 9, 2009, 3:47:42 PM (15 years ago)
Author:
dkearney
Message:

updated to handle phases and choices. changed up random number generator to make it more reliable

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gui/apps/simsim.in

    r1611 r1612  
    199199}
    200200
    201 proc choiceHandler {child} {
     201proc choiceHandler {valType child} {
    202202    if {"yes" == [$child get "simset"]} {
    203203        $child remove "simset"
    204204    } else {
    205205        set optList [$child children -as object -type option]
    206         set optIdx [expr {int(rand()*[llength $optList])}]
    207         set optLib [lindex $optList $optIdx]
    208         set value [$optLib get value]
     206        set value ""
     207        if {"random" == $valType} {
     208            set optIdx [expr {int(rand()*[llength $optList])}]
     209            set optLib [lindex $optList $optIdx]
     210            set value [$optLib get value]
     211        } elseif {"default" == $valType} {
     212            set defaultVal [$child get default]
     213            foreach optLib $optList {
     214                set label [$optLib get about.label]
     215                set valTag [$optLib get value]
     216                if {($defaultVal == $label) || ($defaultVal == $valTag)} {
     217                    set value $valTag
     218                    break
     219                }
     220            }
     221        }
     222
    209223        if {"" == $value} {
    210224            set value [$optLib get about.label]
     
    226240            boolean     { defaultHandler $child }
    227241            string      { defaultHandler $child }
    228             choice      { defaultHandler $child }
     242            choice      { choiceHandler default $child }
    229243            loader      { loaderHandler  $child $toolDir }
    230244            structure   { defaultHandler $child }
    231245            group       { set cclist [groupHandler $child]
     246                          set childList [concat $childList $cclist] }
     247            phase       { set cclist [groupHandler $child]
    232248                          set childList [concat $childList $cclist] }
    233249            default     { defaultHandler $child }
     
    269285            boolean   { booleanHandler $child }
    270286            string    { defaultHandler $child }
    271             choice    { choiceHandler $child }
     287            choice    { choiceHandler random $child }
    272288            loader    {
    273289                set cpath [$child element -as path]
     
    290306                set childList [concat $childList $ccList]
    291307            }
     308            phase     {
     309                set ccList [groupHandler $child]
     310                set childList [concat $childList $ccList]
     311            }
    292312            default   { defaultHandler $child }
    293313        }
     
    296316
    297317proc random {m M} {
    298     return [expr {$m+(rand()*($M-$m+1))}]
     318    return [expr {$m+(rand()*($M-$m))}]
    299319}
    300320
    301321proc randomInt {m M} {
    302     return [expr {$m+(int(rand()*($M-$m+1)))}]
     322    return [expr {int(rand()*($M-$m+1)+$m)}]
    303323}
    304324
Note: See TracChangeset for help on using the changeset viewer.