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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)groupvstrd.tcl    /main/titanic/12
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)groupvstrd.tcl    /main/titanic/12   25 Nov 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. require_module_file groupvstrs.tcl corpmodelling
  13. # End user added include file section
  14.  
  15. require "groupdialo.tcl"
  16.  
  17. Class GroupVStrDlg : {GroupDialog} {
  18.     method destructor
  19.     constructor
  20.     method modeChanged
  21.     method popUp
  22. }
  23.  
  24. method GroupVStrDlg::destructor {this} {
  25.     # Start destructor user section
  26.     # End destructor user section
  27.     $this GroupDialog::destructor
  28. }
  29.  
  30. constructor GroupVStrDlg {class this name groupV} {
  31.     set this [GroupDialog::constructor $class $this $name]
  32.     $this groupV $groupV
  33.  
  34.     set view $this.top.view
  35.     $view columnCount 52
  36.     BrowsHeader new $view.header0 -label Name -width 20
  37.     BrowsHeader new $view.header1 -label Type -width 18
  38.     BrowsHeader new $view.header2 -label Status -width 14
  39.  
  40.     return $this
  41. }
  42.  
  43. method GroupVStrDlg::modeChanged {this {forceFlag 1}} {
  44.     set currentMode [$this.top.mode.optmenu selected]
  45.     if {! $forceFlag} {
  46.     set mode [$this currentMode]
  47.     if {"$mode" == "$currentMode"} {
  48.         return
  49.     }
  50.     }
  51.     $this currentMode $currentMode
  52.  
  53.     # Enable / disable buttons
  54.     case "$currentMode" in {
  55.     {overview} {
  56.         $this.top.menu.new sensitive 0
  57.         $this.top.menu.show sensitive 0
  58.         $this.top.menu.delete sensitive 0
  59.     }
  60.     {"explicit file"
  61.      "file selector"
  62.      "item selector"} {
  63.         $this.top.menu.show sensitive 0
  64.         $this.top.menu.new sensitive [$this editable]
  65.         $this.top.menu.delete sensitive [$this editable]
  66.     }
  67.     {"explicit group version"
  68.      "group version filter"} {
  69.         # Can not have subgroups any more
  70.         $this.top.menu.show sensitive 1
  71.         $this.top.menu.new sensitive 0
  72.         $this.top.menu.delete sensitive [$this editable]
  73.     }
  74.     {default} {
  75.         $this.top.menu.show sensitive 1
  76.         $this.top.menu.new sensitive [$this editable]
  77.         $this.top.menu.delete sensitive [$this editable]
  78.     }
  79.     }
  80.  
  81.     # Check if the view should be updated
  82.     if {! $forceFlag} {
  83.     set checkList {"file selector" "item selector"}
  84.     if {[lsearch -exact $checkList "$mode"] != -1 &&
  85.         [lsearch -exact $checkList "$currentMode"] != -1} {
  86.         return
  87.     }
  88.     }
  89.  
  90.     # Fill the view
  91.     set groupV [$this groupV]
  92.     set sysV [$this sysV]
  93.     set confV [$this confV]
  94.     case "$currentMode" in {
  95.     {overview} {
  96.         $this showObjectsOk [$groupV selectorEngine $sysV $confV] 1
  97.     }
  98.     {"explicit group version"} {
  99.         $this showObjectsOk [$groupV explicitSubgroupVersions $sysV] 1
  100.     }
  101.     {"group version filter"} {
  102.         $this showObjectsOk [$groupV filterSubgroupVersions "" $sysV] 1
  103.     }
  104.     {"explicit file"} {
  105.         $this showObjectsOk [$groupV explicitFileVersions $sysV] 1
  106.     }
  107.     {"file filter"} {
  108.         $this showObjectsOk [$groupV filterFileVersions "" $sysV] 1
  109.     }
  110.     {"item filter"} {
  111.         $this showObjectsOk [$groupV filterItems "" $sysV] 1
  112.     }
  113.     {"file selector" "item selector"} {
  114.         $this showObjectsOk [$groupV localSelectorEngine $sysV $confV] 1
  115.     }
  116.     }
  117. }
  118.  
  119. method GroupVStrDlg::popUp {this} {
  120.     if {[$this editable] && [catch {[$this groupV] edit} errorMsg]} {
  121.     if [info exists errorInfo] {
  122.         set errorTrace $errorInfo
  123.         set errorCodeCopy $errorCode
  124.     } else {
  125.         set errorTrace ""
  126.         set errorCodeCopy ""
  127.     }
  128.     $this editable 0
  129.     } else {
  130.     set errorMsg ""
  131.     }
  132.  
  133.     # Set the mode entrySet
  134.     set entrySet {
  135.     overview
  136.     "explicit group version"
  137.     "group version filter"
  138.     "explicit file"
  139.     "file filter"
  140.     "item filter"
  141.     }
  142.     set phaseV [$this phaseV]
  143.     if {"[$phaseV getInfo Type]" != "Implementation"} {
  144.     set entrySet [linsert $entrySet 5 "file selector"]
  145.     append entrySet { "item selector"}
  146.     }
  147.     $this.top.mode.optmenu entrySet $entrySet
  148.  
  149.     $this modeChanged
  150.     $this config \
  151.     -modal [$this editable] \
  152.     -title "[$this title] - [[$this groupV] getInfo Name]"
  153.     $this TemplateDialog::popUp
  154.  
  155.     if {"$errorMsg" != ""} {
  156.     global errorInfo errorCode
  157.     set errorInfo $errorTrace
  158.     set errorCode $errorCodeCopy
  159.     wmtkerror $errorMsg
  160.     }
  161. }
  162.  
  163. # Do not delete this line -- regeneration end marker
  164.  
  165.