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

  1.  
  2. # ppManager --
  3. # Used to load and save xuiPropertyPages values from/to a XMl configuration
  4. # document
  5.  
  6. class ppManager {
  7.     method loadPropertyPage { xuiPropertyPage confDoc container  }
  8.     method savePropertyPage { xuiPropertyPage confDoc container }
  9.     method processComponentForLoad { component confDoc container }
  10.     method processComponentForSave { component confDoc container }
  11. }
  12.  
  13. body ppManager::savePropertyPage { xuiPropertyPage confDoc container } {
  14.     foreach component [$xuiPropertyPage getComponents] {
  15.     processComponentForSave $component $confDoc $container
  16.     }
  17. }
  18.  
  19. body ppManager::processComponentForSave { component confDoc container } {
  20.     switch [$component getXuiClass] {
  21.     group {
  22.         foreach child [$component getComponents] {
  23.         processComponentForSave $child $confDoc $container
  24.         }
  25.     }
  26.     default {   
  27.         set componentName [$component getName]
  28.         if [llength [set directive [$confDoc getDirectiveByName \
  29.             $container $componentName ]]] {
  30.         $component copyClone $directive
  31.         } else {
  32.             set new [$component clone]
  33.         $confDoc addDirective $new $container
  34.         }
  35.     }
  36.     }
  37. }
  38.  
  39. body ppManager::loadPropertyPage { xuiPropertyPage confDoc container } {
  40.     foreach component [$xuiPropertyPage getComponents] {
  41.     processComponentForLoad $component $confDoc $container
  42.     }
  43. }
  44.  
  45. body ppManager::processComponentForLoad { component confDoc container } {
  46.     switch [$component getXuiClass] {
  47.     group {
  48.         foreach child [$component getComponents] {
  49.         processComponentForLoad $child $confDoc $container
  50.         }
  51.     }
  52.     default {   
  53.         set componentName [$component getName]
  54.         if [llength [set directive [$confDoc getDirectiveByName \
  55.             $container $componentName ]]] {
  56.         $directive copyClone $component
  57.         } else {
  58.         $component reset
  59.         }
  60.     }
  61.     }
  62. }
  63.  
  64.  
  65.  
  66.  
  67.