home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / repprojbro.tcl < prev    next >
Text File  |  1997-11-14  |  3KB  |  128 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)repprojbro.tcl    /main/titanic/3
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)repprojbro.tcl    /main/titanic/3   14 Nov 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "repobjbrow.tcl"
  15.  
  16. Class RepProjBrowser : {RepObjBrowser} {
  17.     constructor
  18.     method destructor
  19.     method fillList
  20.     method selectionChanged
  21.     method changeStatus
  22.     method statusChanged
  23. }
  24.  
  25. constructor RepProjBrowser {class this name view} {
  26.     set this [RepObjBrowser::constructor $class $this $name $view]
  27.     # Start constructor user section
  28.  
  29.         $this config \
  30.             -title "Project Browser" \
  31.             -helpPressed { [%this view] helpOnName projectBrowser }
  32.  
  33.         set corp [[[$this view] rep] currentCorporate]
  34.         [$this objLabel] text "Projects in corporate '[$corp name]'"
  35.  
  36.         [$this statusLabel] text "Operable:"
  37.         [$this statusValue] text ""
  38.         [$this statusChange] label "Change"
  39.         [$this statusChange] activated "busy { $this changeStatus }"
  40.  
  41.         $this selectionChanged
  42.  
  43.     # End constructor user section
  44.     return $this
  45. }
  46.  
  47. method RepProjBrowser::destructor {this} {
  48.     # Start destructor user section
  49.     # End destructor user section
  50.     $this RepObjBrowser::destructor
  51. }
  52.  
  53. method RepProjBrowser::fillList {this} {
  54.     set corp [[[$this view] rep] currentCorporate]
  55.  
  56.     [$this objList] setHeaderLabels { Name Operable }
  57.  
  58.     foreach proj [$corp projects] {
  59.     set name [$proj name]
  60.     regsub -all {[\. ]} $name {___} name
  61.  
  62.     if [$proj isOperable] {
  63.         set status "Yes"
  64.     } else {
  65.         set status "No"
  66.         }
  67.  
  68.     [$this objMap] set $name $proj
  69.     BrowsObject new [$this objList].$name \
  70.         -smallIcon proj_16 \
  71.         -label $name \
  72.         -details $status \
  73.             -activated "$this doubleClicked"
  74.     }
  75. }
  76.  
  77. method RepProjBrowser::selectionChanged {this} {
  78.     set proj [$this selectedObject]
  79.     if [$proj isNil] {
  80.     [$this dirField] text ""
  81.     [$this statusValue] text ""
  82.     [$this statusChange] sensitive 0
  83.     } else {
  84.     [$this dirField] text [$proj repositoryDirectory]
  85.         if [$proj isOperable] {
  86.         [$this statusValue] text "Yes"
  87.         } else {
  88.         [$this statusValue] text "No"
  89.         }
  90.     [$this statusChange] sensitive 1
  91.     }
  92. }
  93.  
  94. method RepProjBrowser::changeStatus {this} {
  95.     set proj [$this selectedObject]
  96.     if [$proj isNil] {
  97.         return
  98.     }
  99.  
  100.     if ![$proj isOperable] {
  101.     $proj online
  102.     } else {
  103.     $proj offline
  104.     }
  105.  
  106.     $this statusChanged
  107. }
  108.  
  109. method RepProjBrowser::statusChanged {this} {
  110.     set proj [$this selectedObject]
  111.     if [$proj isNil] {
  112.         return
  113.     }
  114.  
  115.     if [$proj isOperable] {
  116.     [$this statusValue] text "Yes"
  117.     } else {
  118.     [$this statusValue] text "No"
  119.     }
  120.  
  121.     set currSel [[$this objList] selectedSet]
  122.     $this update
  123.     [$this objList] selectedSet $currSel
  124. }
  125.  
  126. # Do not delete this line -- regeneration end marker
  127.  
  128.