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

  1. # xuiObject --
  2. #   Base class from which all other xui objects are derived from/
  3. #
  4. # clone, copyClone. Are used to duplicate objects. Clone creates an identical 
  5. # clone of the current object. Copy clone is used to copy the contents of
  6. # a xuiObject to another existing xuiObject
  7. #
  8. # visitor (from the visitor pattern) will be used for serializing to XML
  9.  
  10. class xuiObject {
  11.     protected variable name {}
  12.     protected variable label {}
  13.     variable xuiClass {}
  14.     variable classes {}
  15.  
  16.     # Added to support module / directive help
  17.  
  18.     public variable helpReference {}
  19.     method getName {} { return $name }
  20.     method setName { newName } { set name $newName}
  21.     method getXuiClass {} { return $xuiClass }
  22.     method setXuiClass { newXuiClass } { set xuiClass $newXuiClass}
  23.     method getLabel {} { return $label }
  24.     method setLabel { newLabel } { set label $newLabel}
  25.     method clone 
  26.     method copyClone { clone }
  27.     method visitor {}
  28.     method getClasses {}
  29.     method setClasses { classList }
  30.     method addClass { class }
  31.     method addClasses { classList }
  32.     method doYouBelongTo { class }
  33.     method reset {} {}
  34. }
  35.  
  36. body xuiObject::clone {{parentName {::#auto}}} {
  37.    set clone [xuiObject $parentName.$name]
  38.    copyClone $clone
  39.    return $clone
  40. }
  41.  
  42. body xuiObject::copyClone { clone } {
  43.     $clone setName $name
  44.     $clone setLabel $label
  45.     $clone setXuiClass $xuiClass
  46.     $clone setClasses $classes
  47.     $clone configure -helpReference $helpReference
  48. }
  49.  
  50.  
  51.  
  52. body xuiObject::getClasses {} {
  53.     return $classes
  54. }
  55.  
  56. body xuiObject::setClasses { classList } {
  57.     set classes $classList
  58. }
  59.  
  60. body xuiObject::addClasses { classList } {
  61.     foreach class $classList {
  62.     lappend classes $class
  63.     }
  64. }
  65.  
  66. body xuiObject::addClass { class } {
  67.     lappend classes $class
  68. }
  69.  
  70. body xuiObject::doYouBelongTo { class } {
  71.     if { [lsearch $classes $class ] == -1 } {
  72.     return 0 
  73.     } else {
  74.     return 1    
  75.     }
  76. }
  77.  
  78.