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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1996
  4. #
  5. #      File:           @(#)s_sysvdbob.tcl    /main/titanic/5
  6. #      Author:         Marcel Bancken
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)s_sysvdbob.tcl    /main/titanic/5   24 Nov 1997 Copyright 1996 Cayenne Software Inc.
  10.  
  11. method SysVDbObj::activateObject {this} {
  12.     set typeSpec [getObjectSpec [.main objectHdlr] CorporateGroupVersion ""]
  13.     if {"$typeSpec" != ""} {
  14.     set icon [$typeSpec smallIcon]
  15.     } else {
  16.     set icon ""
  17.     }
  18.  
  19.     set headerSpecList {
  20.     {Name 25 ascii {increasing 1}}
  21.     {Version 8 ascii {increasing 2}}
  22.     {Created 30 ascii {none}}
  23.     {Comments 50 ascii {none}}
  24.     }
  25.     foreach corpGV [$this reused] {
  26.     set reusedList($corpGV) 1
  27.     }
  28.     set corpGVList ""
  29.     set objectSpecList ""
  30.     set srcType [[$this parent] getInfo Type]
  31.     foreach corpGV [[.main corporateObj] corporateGroupVersions] {
  32.     if [info exists reusedList($corpGV)] continue
  33.     set dstType [[[[$corpGV savedGroupVersion] system] phase] type]
  34.     if {"$srcType" != "$dstType" &&
  35.         ("$srcType" == "Implementation" ||
  36.          "$dstType" == "Implementation")} continue
  37.  
  38.     lappend corpGVList $corpGV
  39.     lappend objectSpecList [list $icon \
  40.         [[$corpGV corporateGroup] name] \
  41.         [$corpGV versionNumber] \
  42.         [$corpGV createTime2String] \
  43.         [$corpGV comments] \
  44.     ]
  45.     }
  46.  
  47.     if [lempty $corpGVList] {
  48.     wmtkinfo \
  49.         "There are no unused CoporateGroups that can be activated\
  50.          within this SystemVersion"
  51.     return
  52.     }
  53.  
  54.     require "browsviewd.tcl"
  55.     set box .main.activate
  56.     ClassMaker::extend BrowsViewDialog ActivateBrowsViewDialog dbObj
  57.     ActivateBrowsViewDialog new $box \
  58.     -title "Activate Corporate Group" \
  59.     -headerSpecList $headerSpecList \
  60.     -objectSpecList $objectSpecList \
  61.     -objectList $corpGVList \
  62.     -dbObj $this \
  63.     -cancelPressed {%this delete} \
  64.     -okPressed {
  65.         set dbObj [%this dbObj]
  66.         set confV [$dbObj getParent ConfigVersion]
  67.         set script ""
  68.         foreach object [[%this view] selectedSet] {
  69.         set corpGV [$object object]
  70.         if {"$script" != ""} {
  71.             append script " ;"
  72.         }
  73.         append script " $dbObj reuse $corpGV $confV"
  74.         }
  75.         .main startCommand tcl \
  76.         "$script" "" \
  77.         "Activating CorporateGroupVersion(s)..." \
  78.         {1 0} 1
  79.         %this delete
  80.     }
  81.     $box popUp
  82. }
  83.  
  84. method SysVDbObj::copyGroupVersion {this groupV fromSysV fromConfV toConfV} {
  85.     # Remove imported object in case of a cut operation
  86.     set editPasteCmdBusy [.main undoCommandBusy EditPasteCmd]
  87.     if {$editPasteCmdBusy &&
  88.         "[[.main undoCommand] operation]" == "cut"} {
  89.         $fromSysV cutVersion $groupV
  90.     }
  91.  
  92.     set script " $this copy [ORB::nil] -groupVersion \
  93.         $groupV $fromSysV $fromConfV $toConfV $editPasteCmdBusy"
  94.     if {$this == [[.main currentObj] browsUiObj]} {
  95.         set update 1
  96.     } else {
  97.         set update 0
  98.     }
  99.     .main startCommand tcl \
  100.         "$script" "" \
  101.         "Copying definition of [$groupV getInfo Text]" \
  102.         [list $update 0] 1
  103. }
  104.  
  105. method SysVDbObj::deactivateObject {this} {
  106.     set corpGVList [$this reused]
  107.     if [lempty $corpGVList] {
  108.     wmtkinfo \
  109.         "There are no CorporateGroups activated within this SystemVersion"
  110.     return
  111.     }
  112.  
  113.     set typeSpec [getObjectSpec [.main objectHdlr] CorporateGroupVersion ""]
  114.     if {"$typeSpec" != ""} {
  115.     set icon [$typeSpec smallIcon]
  116.     } else {
  117.     set icon ""
  118.     }
  119.     set headerSpecList {
  120.     {Name 25 ascii {increasing 1}}
  121.     {Version 8 ascii {increasing 2}}
  122.     {Created 30 ascii {none}}
  123.     {Comments 50 ascii {none}}
  124.     }
  125.     set objectSpecList ""
  126.     foreach corpGV $corpGVList {
  127.     lappend objectSpecList [list $icon \
  128.         [[$corpGV corporateGroup] name] \
  129.         [$corpGV versionNumber] \
  130.         [$corpGV createTime2String] \
  131.         [$corpGV comments] \
  132.     ]
  133.     }
  134.  
  135.     require "browsviewd.tcl"
  136.     set box .main.deactivate
  137.     ClassMaker::extend BrowsViewDialog DeactivateBrowsViewDialog dbObj
  138.     DeactivateBrowsViewDialog new $box \
  139.     -title "Deactivate Corporate Group" \
  140.     -headerSpecList $headerSpecList \
  141.     -objectSpecList $objectSpecList \
  142.     -objectList $corpGVList \
  143.     -dbObj $this \
  144.     -cancelPressed {%this delete} \
  145.     -okPressed {
  146.         set dbObj [%this dbObj]
  147.         set script ""
  148.         foreach object [[%this view] selectedSet] {
  149.         set corpGV [$object object]
  150.         if {"$script" != ""} {
  151.             append script " ;"
  152.         }
  153.         append script " $dbObj unuse $corpGV"
  154.         }
  155.         .main startCommand tcl \
  156.         "$script" "" \
  157.         "Deactivating CorporateGroupVersion(s)..." \
  158.         {1 0} 1
  159.         %this delete
  160.     }
  161.     $box popUp
  162. }
  163.  
  164. method SysVDbObj::groupVersions {this} {
  165.     set groupVersions ""
  166.     foreach link [$this groupVersionLinks] {
  167.     set groupV [$link groupVersion]
  168.     $groupV setInfo SystemGroupLink $link
  169.     lappend groupVersions $groupV
  170.     }
  171.     return $groupVersions
  172. }
  173.  
  174. method SysVDbObj::reused {this} {
  175.     return [$this SystemVersion::reused]
  176. }
  177.