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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)comparepha.tcl    /main/hindenburg/1
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)comparepha.tcl    /main/hindenburg/1   28 Nov 1996 Copyright 1994 Westmount Technology
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class ComparePhaseDlg : {TemplateDialog} {
  16.     method destructor
  17.     constructor
  18.     method ok
  19.     method popUp
  20.     attribute dbObj
  21. }
  22.  
  23. method ComparePhaseDlg::destructor {this} {
  24.     # Start destructor user section
  25.     # End destructor user section
  26. }
  27.  
  28. constructor ComparePhaseDlg {class this name} {
  29.     set this [TemplateDialog::constructor $class $this $name]
  30.  
  31.     $this config \
  32.     -modal yes \
  33.     -cancelPressed {%this delete} \
  34.     -okPressed {
  35.         %this ok
  36.         %this delete
  37.     }
  38.  
  39.     interface DlgColumn $this.top {
  40.     DlgRow row {
  41.         VerRadioGroup type {
  42.         }
  43.     }
  44.     Label phaseLab {
  45.         text "Phase:"
  46.     }
  47.     OptionMenu phase {
  48.     }
  49.     }
  50.  
  51.     return $this
  52. }
  53.  
  54. method ComparePhaseDlg::ok {this} {
  55.     if {[isCommand $this.top.row.col.what] &&
  56.     "[$this.top.row.col.what selected]" == "Selected Objects"} {
  57.     set tmpFile [args_file {}]
  58.     set fid [open $tmpFile w]
  59.     foreach obj [$wmttoolObj selectedObjSet] {
  60.         if {[$obj isA SystemVersion] ||
  61.         [$obj isA FileVersion] ||
  62.         [$obj isA SystemFileReference] ||
  63.         [$obj isA ExternalLink]} {
  64.         puts $fid "[$obj identity]"
  65.         }
  66.     }
  67.     close $fid
  68.     set selectedSet "-f $tmpFile"
  69.     } else {
  70.     set selectedSet ""
  71.     }
  72.  
  73.     # Determine the previous phase-version
  74.     set prevPhaseV [[$this dbObj] prevPhaseV]
  75.     set phaseName [$this.top.phase selected]
  76.     if {"$phaseName" != "[[$prevPhaseV phase] name]"} {
  77.     set id [lsearch -exact "[$this.top.phase entrySet]" "$phaseName"]
  78.     set phaseType [lindex [lindex ${BrowserProcs::phases} $id] 1]
  79.     set confV [[$this dbObj] getParent ConfigVersion]
  80.     set prevPhaseV [$confV findPhaseVersion "$phaseName" "$phaseType"]
  81.     }
  82.     if [$prevPhaseV isNil] {
  83.     wmtkmessage "PhaseVersion '$phaseName' does not exist"
  84.     return
  85.     }
  86.  
  87.     set script "[quoteIf [m4_path_name bin compare_phase$EXE_EXT]] \
  88.     -p [$prevPhaseV identity] \
  89.     -d [string tolower [string index [$this.top.row.type selected] 0]] \
  90.     $selectedSet"
  91.     $wmttoolObj startCommand mtool \
  92.     "$script" "" "Starting 'Compare Phase'" {0 0} 0
  93. }
  94.  
  95. method ComparePhaseDlg::popUp {this} {
  96.     if {! [isCommand [$this dbObj]]} {
  97.     return
  98.     }
  99.  
  100.     set entrySet {Systems Files Components}
  101.     if [[$this dbObj] isA PhaseVersion] {
  102.     $this.top.row.type config \
  103.         -entrySet $entrySet \
  104.         -selected Systems
  105.     } else {
  106.     $this.top.row.type config \
  107.         -entrySet [lrange $entrySet 1 end] \
  108.         -selected Files
  109.     }
  110.     if {! [lempty [$wmttoolObj selectedObjSet]]} {
  111.     interface DlgColumn $this.top.row.col {
  112.         Label lab {
  113.         text "Compare For:"
  114.         }
  115.         VerRadioGroup what {
  116.         entrySet {AllObjects "Selected Objects"}
  117.         selected "Selected Objects"
  118.         }
  119.     }
  120.     }
  121.     set entrySet ""
  122.     foreach phase ${BrowserProcs::phases} {
  123.     lappend entrySet [lindex $phase 0]
  124.     }
  125.     $this.top.phase config \
  126.     -entrySet $entrySet \
  127.     -selected [[[[$this dbObj] prevPhaseV] phase] name]
  128.  
  129.     $this TemplateDialog::popUp
  130. }
  131.  
  132. # Do not delete this line -- regeneration end marker
  133.  
  134.