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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)vbversionm.tcl    /main/titanic/20
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)vbversionm.tcl    /main/titanic/20   27 Nov 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class VBVersionMenuProcs : {Object} {
  16.     constructor
  17.     method destructor
  18. }
  19.  
  20. constructor VBVersionMenuProcs {class this name} {
  21.     set this [Object::constructor $class $this $name]
  22.     # Start constructor user section
  23.     # End constructor user section
  24.     return $this
  25. }
  26.  
  27. method VBVersionMenuProcs::destructor {this} {
  28.     # Start destructor user section
  29.     # End destructor user section
  30. }
  31.  
  32. proc VBVersionMenuProcs::compare {} {
  33.  
  34.     set objs [.main selectedObjSet]
  35.     set target [lindex $objs 0]
  36.     set source [lindex $objs 1]
  37.  
  38.     if {$source == ""} {
  39.         if {[$target isA PhaseVersion] ||
  40.             [$target isA ConfigVersion] ||
  41.             [$target isA SystemVersion]} {
  42.             set name Merge
  43.             VBProcs::selectOther VBVersionMenuProcs::compare $name
  44.         } else {
  45.             set name Compare
  46.             VBProcs::selectOther VBVersionMenuProcs::compare $name 1
  47.         }
  48.         return
  49.     }
  50.  
  51.     VBVersionMenuProcs::doCompare $source $target
  52. }
  53.  
  54. proc VBVersionMenuProcs::doCompare {version1 version2} {
  55.  
  56.     set type mtool
  57.  
  58.     if {[$version1 isA Graph] || [$version1 isA Matrix]} {
  59.     set script "[quoteIf [m4_path_name bin udmcmp$EXE_EXT]] \
  60.         [$version1 identity] [$version2 identity]"
  61.     set endScript ""
  62.     set message "Starting Compare Version"
  63.     } elseif [$version1 isA ExternalFileVersion] {
  64.     set script "[m4_var get M4_diff] "
  65.     set endScript ""
  66.     foreach version "$version1 $version2" {
  67.         set tmpFile [args_file {}]
  68.         case "[$version status]" in {
  69.                 {backGround} {
  70.                 $version activate
  71.                 $version downLoadFrozenContents $tmpFile
  72.                 $version deactivate
  73.                 }
  74.                 {frozen reused} {
  75.                 $version downLoadFrozenContents $tmpFile
  76.                 }
  77.                 {frozen reused} {
  78.                 $version synchWithFileSystem
  79.             }
  80.                 {default} {
  81.                 copy_text_file [$version path \
  82.                     [$version currentContext]] $tmpFile
  83.                 }
  84.         }
  85.         append script "$tmpFile "
  86.         append endScript "BasicFS::removeFile $tmpFile ;"
  87.     }
  88.     set message "Starting Compare"
  89.     } elseif [$version1 isA RemoteFile] {
  90.     set script "[m4_var get M4_diff] "
  91.     set endScript ""
  92.     foreach version "$version1 $version2" {
  93.         set tmpFile [args_file {}]
  94.         case "[$version status]" in {
  95.             {backGround} {
  96.             $version activate
  97.             $version downLoad $tmpFile
  98.             $version deactivate
  99.             }
  100.             {default} {
  101.             $version downLoad $tmpFile
  102.             }
  103.         }
  104.         append script "$tmpFile "
  105.         append endScript [list BasicFS::removeFile $tmpFile ]
  106.         append endScript " ;"
  107.     }
  108.     set message "Starting Compare"
  109.     } elseif {[$version1 isA PhaseVersion] ||
  110.               [$version1 isA ConfigVersion] ||
  111.               [$version1 isA SystemVersion]} {
  112.     set cc [[ClientContext::global] currentLevelIdString]
  113.     set fc $cc/[$version1 identity]
  114.     set tc $cc/[$version2 identity]
  115.     set script "SystemUtilities::fork otk mtmerge"
  116.     set script "$script -c [list [get_comm_name]] -fc $fc -tc $tc"
  117.     set endScript ""
  118.     set message "Starting Merge Tool"
  119.     set type tcl
  120.     } else {
  121.     wmtkerror "Sorry, don't know how to compare [$version1 objType]"
  122.     return
  123.     }
  124.     .main startCommand $type \
  125.     "$script" "$endScript" "$message" {0 0} 0
  126. }
  127.  
  128. proc VBVersionMenuProcs::mergeLink {} {
  129.     
  130.     set selVersions [.main selectedVersionSet]
  131.     set to [lindex $selVersions 0]
  132.     set from [lindex $selVersions 1]
  133.  
  134.     if {$from == ""} {
  135.         VBProcs::selectOther VBVersionMenuProcs::mergeLink MergeLink
  136.         return
  137.     }
  138.  
  139.     set title "MergeLink From '[[$from version] versionName]' To '[[$to version] versionName]'"
  140.     require mergedialo.tcl
  141.     MergeDialog new .main.mergeDialog
  142.     .main.mergeDialog from $from
  143.     .main.mergeDialog to $to
  144.     .main.mergeDialog title $title
  145.     .main.mergeDialog popUp
  146. }
  147.  
  148. proc VBVersionMenuProcs::deleteMergeLink {} {
  149.  
  150.     set selVersions [.main selectedVersionSet]
  151.     set to [lindex $selVersions 0]
  152.     set from [lindex $selVersions 1]
  153.  
  154.     if {$from == ""} {
  155.         set title "Deleting MergeLink"
  156.         VBProcs::selectOther VBVersionMenuProcs::deleteMergeLink $title 1
  157.         return
  158.     }
  159.  
  160.     set link [query "from == [$from version]" [$to version].mergeLinks]
  161.  
  162.     if {$link == ""} {
  163.         wmtkerror "Merge Link not found"
  164.         return
  165.     }
  166.  
  167.     set title "Confirm MergeLink From '[[$from version] versionName]' To '[[$to version] versionName]' Delete"
  168.     require deletemerg.tcl
  169.     DeleteMergeDialog new .main.deleteMergeDialog
  170.     .main.deleteMergeDialog to $to
  171.     .main.deleteMergeDialog from $from
  172.     .main.deleteMergeDialog title $title
  173.     .main.deleteMergeDialog popUp
  174. }
  175.  
  176. proc VBVersionMenuProcs::freeze {} {
  177.     BrowserProcs::freezeObjects [.main selectedObjSet]
  178.     .main updateView
  179. }
  180.  
  181. proc VBVersionMenuProcs::unFreeze {} {
  182.     # working on the selectedSet 'selectedObjSet'
  183.     BrowserProcs::unfreezeObjects
  184.     .main updateView
  185. }
  186.  
  187. proc VBVersionMenuProcs::new {} {
  188.  
  189.     set obj [lindex [.main selectedObjSet] 0]
  190.     if [$obj isA CustomFileVersion] {
  191.         set custlvlV [$obj getParent CustomLevelVersion]
  192.         append script " $custlvlV derive $obj"
  193.         .main startCommand tcl "$script" "" "" {1 0} 1
  194.     } else {
  195.         # working on the selectedSet 'selectedObjSet'
  196.         [[.main infoView] getParentVersionObj] newObjects
  197.     }
  198.  
  199.     VBViewMenuProcs::updateView
  200. }
  201.  
  202. proc VBVersionMenuProcs::delete {} {
  203.     set version [lindex [.main selectedObjSet] 0]
  204.     set parent [lindex [VBProcs::getOwners $version] 0]
  205.     # working on the selectedSet 'selectedObjSet'
  206.     BrowserProcs::removeVersion $parent \
  207.         "[[.main infoView] versionable]" "[.main selectedObjSet]" \
  208.         VBVersionMenuProcs::updateAfterDelete
  209. }
  210.  
  211. proc VBVersionMenuProcs::updateAfterDelete {} {
  212.  
  213.     VBViewMenuProcs::updateView
  214. }
  215.  
  216. proc VBVersionMenuProcs::select {} {
  217.  
  218.     busy {
  219.         set newVersion [[.main selectedVersionSet] version]
  220.         [[.main infoView] getParentVersionObj] selectVersion $newVersion
  221.         .main updateView
  222.     }
  223. }
  224.  
  225. # Do not delete this line -- regeneration end marker
  226.  
  227.