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

  1.  
  2. class listCreator {
  3.     inherit objectCreator
  4.     method processSyntax {token object xuiBuilder}
  5.     method createObject {token xuiBuilder}
  6.     method loadValueFromNode
  7.     method loadDefaultFromNode    
  8. }
  9.  
  10. body listCreator::createObject {token xuiBuilder} {
  11.     if [string length [set parentName [$xuiBuilder cget -currentParentName]]] {
  12.     set name $parentName.[dom::getAttribute $token name]
  13.     } else {
  14.     set name ::#auto
  15.     }                        
  16.     return [xuiList $name]
  17. }
  18.  
  19. body listCreator::loadValueFromNode {valueToken object xuiBuilder} {
  20.     foreach itemToken [dom::getElements $valueToken] {   
  21.     set listItem [$object newChild] 
  22.     $xuiBuilder loadValueFromNode $itemToken $listItem
  23.     $object insertChild $listItem
  24.     }
  25. }
  26.  
  27.  
  28. body listCreator::loadDefaultFromNode {defaultToken object xuiBuilder} {
  29.     if ![llength [$object getChildren]] {
  30.     foreach itemToken [dom::getElementsByTagName $defaultToken item] {
  31.     set listItem [$object newChild] 
  32.     $xuiBuilder loadValueFromNode $itemToken $listItem
  33.     $object insertChild $listItem
  34.     }
  35.     }
  36. }
  37.  
  38. body listCreator::processSyntax { token object xuiBuilder} {
  39.     set syntaxToken [dom::rp $token syntax]
  40.     set prototypeToken [lindex [dom::getElements $syntaxToken] 0]
  41.     $xuiBuilder configure -currentParentName {}
  42.     $object setPrototype [$xuiBuilder handleObject $prototypeToken]
  43. }
  44.  
  45.  
  46.  
  47.  
  48.