home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 December / PCWorld_2000-12_cd.bin / Komunikace / Comanche / xuibuilder / xuiAlternateCreator.tcl < prev    next >
Text File  |  2000-11-02  |  1KB  |  47 lines

  1. # xuiAlternateCreator.tcl --
  2.  
  3. # alternateCreator --
  4. #   Is derived from xuiStructureCreator. Things we need to take care are
  5. # selecting the default value
  6.  
  7. class alternateCreator {
  8.     inherit structureCreator
  9.     method createObject {token xuiBuilder}
  10.     method loadValueFromNode
  11.     method loadValue
  12.     method loadDefault
  13. }
  14.  
  15. body alternateCreator::createObject {token xuiBuilder} {
  16.    if [string length [set parentName [$xuiBuilder cget -currentParentName]]] {
  17.       set name $parentName.[dom::getAttribute $token name]
  18.     } else {
  19.        set name ::#auto
  20.     }
  21.     return [xuiAlternate $name]
  22. }
  23.  
  24. body alternateCreator::loadValueFromNode {valueToken object xuiBuilder} {
  25.         structureCreator::loadValueFromNode $valueToken $object $xuiBuilder
  26.     $object selectComponentByName \
  27.     [dom::getTagName [lindex [dom::getElements $valueToken] 0]]
  28. }
  29.  
  30. body alternateCreator::loadValue {token object xuiBuilder} {
  31.     if ![ catch "set valueToken [dom::rp $token value]" ] {
  32.         $this loadValueFromNode $valueToken $object $xuiBuilder
  33.     } else {
  34.         $object selectComponent [lindex [$object getComponents] 0]
  35.     }
  36. }     
  37.  
  38. body alternateCreator::loadDefault {token object xuiBuilder} {
  39.     if ![ catch "set value [dom::getText [dom::rp $token default]]" ] {
  40.        $object setDefault $value
  41.     } else {
  42.        $object selectComponent [lindex [$object getComponents] 0]
  43.        $object setDefault [$object getSelectedComponentName]
  44.     }
  45. }     
  46.  
  47.