home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / custfvuiob.tcl < prev    next >
Text File  |  1996-11-08  |  7KB  |  246 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)custfvuiob.tcl    /main/hindenburg/3
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)custfvuiob.tcl    /main/hindenburg/3   8 Nov 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "browsuiobj.tcl"
  15.  
  16. Class CustFVUiObj : {BrowsUiObj} {
  17.     constructor
  18.     method destructor
  19.     method addCustomFileV
  20.     method customFileVersions
  21.     method deselectObjects
  22.     method initializeInfo
  23.     method newObjects
  24.     method printObjects
  25.     method removeObjects
  26.     method selectObject
  27. }
  28.  
  29. global CustFVUiObj::uiClass
  30. set CustFVUiObj::uiClass "CustomFileVersions"
  31.  
  32.  
  33. constructor CustFVUiObj {class this name} {
  34.     set this [BrowsUiObj::constructor $class $this $name]
  35.     # Start constructor user section
  36.  
  37.     $this uiName "<customization files>"
  38.     $this uiText "customization file versions"
  39.  
  40.     # End constructor user section
  41.     return $this
  42. }
  43.  
  44. method CustFVUiObj::destructor {this} {
  45.     # Start destructor user section
  46.     # End destructor user section
  47.     $this BrowsUiObj::destructor
  48. }
  49.  
  50. method CustFVUiObj::addCustomFileV {this} {
  51.     foreach childType [CustFVUiObj::customFileVersionNames] {
  52.     set customFileList($childType) 1
  53.     }
  54.     foreach customFileV [$this getChildSet customFileVersions] {
  55.     set customFile [$customFileV customFile]
  56.     set name [$customFile name]
  57.     set type [$customFile type]
  58.     if {"$type" != ""} {
  59.         append name ".$type"
  60.     }
  61.     if [info exists customFileList($name)] {
  62.         unset customFileList($name)
  63.     }
  64.     }
  65.     if [info exists customFileList] {
  66.     set entrySet [lsort [array names customFileList]]
  67.     } else {
  68.     set entrySet ""
  69.     }
  70.  
  71.     require "editseldia.tcl"
  72.     set box $wmttoolObj.newCustfileV
  73.     ClassMaker::extend EditSelDialog NewCustfileVEditSelDialog dbObj
  74.     NewCustfileVEditSelDialog new $box \
  75.     -title "New Customization File Version" \
  76.     -message "Customization File:" \
  77.     -entrySet $entrySet \
  78.     -dbObj [$this getParent CustomLevelVersion] \
  79.     -okPressed {
  80.         set file [%this text]
  81.         set selection [splitFileName $file]
  82.         set name [lindex $selection 0]
  83.         set type [lindex $selection 1]
  84.         set script "global CustFVUiObj:custFV"
  85.         append script " ;"
  86.         append script " set CustFVUiObj:custFV \[CustFileUtilities::make \
  87.         [%this dbObj] [list $name] [list $type] \
  88.         \]"
  89.         require "custfileut.tcl"
  90.         $wmttoolObj startCommand tcl \
  91.         "$script" "" \
  92.         "Creating customization file version '$file'" \
  93.         {1 0} 1
  94.         %this delete
  95.     } \
  96.     -editPressed {
  97.         if [info exists CustFVUiObj:custFV] {
  98.         ${CustFVUiObj:custFV} editFile
  99.         }
  100.     }
  101.     $box popUp
  102. }
  103.  
  104. proc CustFVUiObj::associations {} {
  105.     return {customFileVersions}
  106. }
  107.  
  108. proc CustFVUiObj::childTypes {assoc} {
  109.     if {[lsearch -exact "[CustFVUiObj::associations]" "$assoc"] == -1} {
  110.     return ""
  111.     }
  112.     set childTypes [BrowserProcs::childTypes $assoc]
  113.     case "$childTypes" in {
  114.     {CustomFileVersion} {
  115.         return {
  116.         mnu objtype opendefs openlocs pnl propdefs proplocs
  117.         roundtrip vie
  118.         }
  119.     }
  120.     {default} {
  121.         return "$childTypes"
  122.     }
  123.     }
  124. }
  125.  
  126. proc CustFVUiObj::customFileVersionNames {} {
  127.     return {
  128.     cad.mnu cad.pnl ccd.mnu ccd.pnl checkconfig class.mnu desk.mnu
  129.     desk.vie dfd.mnu dfd.pnl diagram.mnu etd.mnu etd.pnl mgd.mnu
  130.     mgd.pnl m4env objtype.objtype opendefs.opendefs openlocs.openlocs
  131.     propdefs.propdefs proplocs.proplocs roundtrip.roundtrip std.mnu std.pnl
  132.     ucd.mnu ucd.pnl
  133.     }
  134. }
  135.  
  136. method CustFVUiObj::customFileVersions {this} {
  137.     return [[$this parent] customFileVersions]
  138. }
  139.  
  140. method CustFVUiObj::deselectObjects {this} {
  141.     set custlvlV [$this getParent CustomLevelVersion]
  142.     set script ""
  143.     foreach obj [$wmttoolObj selectedObjSet] {
  144.     if {"$script" != ""} {
  145.         append script " ;"
  146.     }
  147.     append script " $custlvlV deselectVersion $obj"
  148.     }
  149.     $wmttoolObj startCommand tcl "$script" "" "" {1 0} 1
  150. }
  151.  
  152. proc CustFVUiObj::infoProperties {} {
  153.     return [BrowserProcs::infoProperties]
  154. }
  155.  
  156. method CustFVUiObj::initializeInfo {this dummy} {
  157.     $this BrowsUiObj::initializeInfo $dummy
  158.     $this setInfo Text "[$this uiText] of [[$this parent] getInfo Text]"
  159. }
  160.  
  161. method CustFVUiObj::newObjects {this} {
  162.     set custlvlV [$this getParent CustomLevelVersion]
  163.     set script ""
  164.     foreach obj [$wmttoolObj selectedObjSet] {
  165.     if {"$script" != ""} {
  166.         append script " ;"
  167.     }
  168.     append script " $custlvlV derive $obj"
  169.     }
  170.     $wmttoolObj startCommand tcl "$script" "" "" {1 0} 1
  171. }
  172.  
  173. method CustFVUiObj::printObjects {this} {
  174.     set asciiFiles ""
  175.     foreach obj [$wmttoolObj selectedObjSet] {
  176.     set tmpFile [args_file {}]
  177.     $obj downLoad $tmpFile
  178.     lappend asciiFiles $tmpFile
  179.     }
  180.     BrowserProcs::printObjects $asciiFiles "" "" 1
  181. }
  182.  
  183. method CustFVUiObj::removeObjects {this} {
  184.     set box $wmttoolObj.removeWarning
  185.     ClassMaker::extend WarningDialog RemoveObjectsWarningDialog dbObj
  186.     RemoveObjectsWarningDialog new $box \
  187.     -title "Delete Warning" \
  188.     -message [BrowserProcs::removeMessage] \
  189.     -dbObj [$this getParent CustomLevelVersion] \
  190.     -helpPressed {.main helpOnName removeWarning} \
  191.     -cancelPressed {%this delete} \
  192.     -okPressed {
  193.         set dbObj [%this dbObj]
  194.         set script ""
  195.         foreach obj [$wmttoolObj selectedObjSet] {
  196.         if {"$script" != ""} {
  197.             append script " ;"
  198.         }
  199.         append script " $dbObj remove $obj"
  200.         }
  201.         $wmttoolObj startCommand tcl "$script" "" "" {1 0} 1
  202.         %this delete
  203.     }
  204.     $box popUp
  205. }
  206.  
  207. method CustFVUiObj::selectObject {this mode} {
  208.     set custlvlV [$this getParent CustomLevelVersion]
  209.     set versionList ""
  210.     foreach custFV [$custlvlV customFileVersions] {
  211.     set workingList([$custFV customFile]) $custFV
  212.     }
  213.     case "$mode" in {
  214.     {new} {
  215.         set custFList ""
  216.         foreach custF [[$custlvlV customLevel] customFiles] {
  217.         if [info exists workingList($custF)] continue
  218.         lappend custFList $custF
  219.         }
  220.     }
  221.     {default} {
  222.         set custFList ""
  223.         foreach obj [$wmttoolObj selectedObjSet] {
  224.         lappend custFList [$obj customFile]
  225.         }
  226.     }
  227.     }
  228.     foreach custF $custFList {
  229.     set custFName [$custF name]
  230.     if [info exists workingList($custF)] {
  231.         set working $workingList($custF)
  232.     } else {
  233.         set working [ORB::nil]
  234.     }
  235.     foreach version [$custF customFileVersions] {
  236.         if [$version isSame $working] continue
  237.         if {"[$version status]" == "working"} continue
  238.         lappend versionList [list $version "$custFName"]
  239.     }
  240.     }
  241.     BrowserProcs::selectObject $custlvlV $versionList $mode
  242. }
  243.  
  244. # Do not delete this line -- regeneration end marker
  245.  
  246.