home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 December / PCWorld_2000-12_cd.bin / Komunikace / Comanche / plugins / hostname / hostname.tcl next >
Text File  |  2000-11-02  |  3KB  |  82 lines

  1. class hostnamePlugIn {
  2.     inherit basePlugIn
  3.     variable hostnameXuiPP
  4.     variable hostnameEntry    
  5.     variable hostnameNodeId
  6.     constructor {} {
  7.       set hostnameXuiPP [xuiPropertyPage ::#auto]
  8.       $hostnameXuiPP configure -icon network
  9.       $hostnameXuiPP setLabel [mesg::get configuring_hostname]
  10.       $hostnameXuiPP setName hostnamePP
  11.       set hostnameEntry [xuiString ::#auto]
  12.       $hostnameEntry setLabel [mesg::get hostname]
  13.       $hostnameEntry setName hostname
  14.       $hostnameXuiPP addComponent $hostnameEntry 
  15.     }
  16.     method init { args }
  17.     method _inquiryForRightPaneContent { node }
  18.     method _inquiryForPropertyPages { node }
  19.     method _receivedPropertyPages { node xuiPropertyPages}
  20. }
  21.  
  22.  
  23.  
  24. # args contains the options that are passed to the plugIn at initialization
  25. # time.
  26. #
  27. #  -namespace    contains the name of the name space server
  28.     
  29.  
  30. body hostnamePlugIn::init {args} {
  31.  
  32.     # We are hooking to the root node
  33.     # The ::plugInUtils::addNode syntaxis is the following
  34.     # ::plugInUtils::addNode caller namespace parentNode
  35.     # where
  36.     # caller: Name of the object that is adding the node (the plugIn object)
  37.     # namespace: Namespace where we are adding the node
  38.     # parentNode: Parent node
  39.     #
  40.     # The list of available icons is in view/images.tcl    
  41.  
  42.     array set options $args
  43.     set namespace $options(-namespace)
  44.     set parentNode [[ $namespace getRootNode] getId]
  45.     set hostnameNode [::plugInUtils::addNode $this $namespace $parentNode \
  46.         -classes {hostname leaf} \
  47.     -openIcon network \
  48.     -closedIcon network \
  49.     -label [mesg::get hostname_settings]]
  50.     set hostnameNodeId [$hostnameNode getId]
  51. }
  52.  
  53. body hostnamePlugIn::_inquiryForRightPaneContent { node } {
  54.     global tcl_platform
  55.      if {$tcl_platform(platform) == "windows"} {
  56.          set result [mesg::get hostname_right_pane_windows] 
  57.      } else {
  58.          set result [mesg::get hostname_right_pane]
  59.          append result " <b>[exec hostname]</b>"
  60.      }
  61.      return $result
  62. }  
  63.  
  64.  
  65.  
  66. body hostnamePlugIn::_inquiryForPropertyPages  { node } {
  67.     global tcl_platform
  68.     if {$tcl_platform(platform) == "windows"} {
  69.         return
  70.     } else {
  71.         $hostnameEntry setValue [exec hostname]  
  72.     }
  73.     return $hostnameXuiPP
  74. }      
  75.  
  76.  
  77. body hostnamePlugIn::_receivedPropertyPages { node xuiPropertyPages } {
  78.   set pp [$xuiPropertyPages getComponentByName hostnamePP]
  79.   set newHostname [[$pp getComponentByName hostname] getValue]
  80.   catch {exec hostname $newHostname}
  81. }
  82.