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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1996
  4. #
  5. #      File:           @(#)revengdlg.tcl    /main/titanic/6
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)revengdlg.tcl    /main/titanic/6   17 Nov 1997 Copyright 1996 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class RevEngDlg : {TemplateDialog} {
  16.     method destructor
  17.     constructor
  18.     method checkDialogStatus
  19.     method getOptions
  20.     method ok
  21.     attribute headerFiles
  22.     attribute language
  23.     attribute revEngTool
  24.     attribute dbObj
  25. }
  26.  
  27. method RevEngDlg::destructor {this} {
  28.     # Start destructor user section
  29.     # End destructor user section
  30. }
  31.  
  32. constructor RevEngDlg {class this name language revEngTool} {
  33.     set this [TemplateDialog::constructor $class $this $name]
  34.     $this config \
  35.         -language $language \
  36.         -revEngTool $revEngTool \
  37.         -title "Reverse Engineer $language" \
  38.         -modal yes \
  39.         -okPressed {
  40.             %this ok
  41.         }
  42.     interface DlgColumn $this.top {
  43.         spaceType EVEN
  44.         DlgRow diag {
  45.             verStretchFactor 0
  46.             verShrinkFactor 0
  47.             Label lab {
  48.                 text "Diagram prefix"
  49.             }
  50.             SingleLineText name {}
  51.         }
  52.         DlgRow gen {
  53.             verStretchFactor 0
  54.             verShrinkFactor 0
  55.             Label lab {
  56.                 text Generate
  57.             }
  58.             OptionMenu types {
  59.                 entrySet {
  60.                     "CDs and CDMs"
  61.                     "Only CDs"
  62.                     "Only CDMs"
  63.                 }
  64.                 selected "CDs and CDMs"
  65.             }
  66.         }
  67.         CheckButton overwrite {
  68.             label "Overwrite Existing Diagrams"
  69.         }
  70.         CheckButton reference {
  71.             label "Create Reference Diagrams"
  72.         }
  73.         NamedGroup dims {
  74.             verStretchFactor 0
  75.             verShrinkFactor 0
  76.             label "Maximum Size (Width x Height)"
  77.             DlgColumn mtx {
  78.                 DlgRow class {
  79.                     Label lab {
  80.                         text Class
  81.                     }
  82.                     DlgRow dim {
  83.                         horStretchFactor 0
  84.                         horShrinkFactor 0
  85.                         spaceType NONE
  86.                         IntField width {
  87.                             columnCount 8
  88.                             intValue 512
  89.                         }
  90.                         IntField height {
  91.                             columnCount 8
  92.                             intValue 512
  93.                         }
  94.                     }
  95.                 }
  96.                 DlgRow tree {
  97.                     Label lab {
  98.                         text Tree
  99.                     }
  100.                     DlgRow dim {
  101.                         horStretchFactor 0
  102.                         horShrinkFactor 0
  103.                         spaceType NONE
  104.                         IntField width {
  105.                             columnCount 8
  106.                             intValue 2048
  107.                         }
  108.                         IntField height {
  109.                             columnCount 8
  110.                             intValue 2048
  111.                         }
  112.                     }
  113.                 }
  114.                 DlgRow screen {
  115.                     Label lab {
  116.                         text Screen
  117.                     }
  118.                     DlgRow dim {
  119.                         horStretchFactor 0
  120.                         horShrinkFactor 0
  121.                         spaceType NONE
  122.                         IntField width {
  123.                             columnCount 8
  124.                             intValue 2048
  125.                         }
  126.                         IntField height {
  127.                             columnCount 8
  128.                             intValue 2048
  129.                         }
  130.                     }
  131.                 }
  132.             }
  133.         }
  134.         DlgRow alg {
  135.             verStretchFactor 0
  136.             verShrinkFactor 0
  137.             Label lab {
  138.                 text "Placement algorithm"
  139.             }
  140.             OptionMenu types {
  141.                 entrySet {
  142.                     "Simple placement"
  143.                     "Grid placement"
  144.                 }
  145.                 selected "Simple placement"
  146.             }
  147.         }
  148.         DlgRow cnum {
  149.             verStretchFactor 0
  150.             verShrinkFactor 0
  151.             Label lab {
  152.                 text "Number of classes per CD"
  153.             }
  154.             IntField num {
  155.                 editable no
  156.                 columnCount 8
  157.                 intValue 7
  158.             }
  159.         }
  160.     }
  161.     $this config -okSensitive 1 -okDefault 1 -cancelDefault 1
  162.     $this.top.diag.name textModified "$this checkDialogStatus"
  163.     $this.top.gen.types selectionChanged "$this checkDialogStatus"
  164.     $this.top.alg.types selectionChanged "$this checkDialogStatus"
  165.     return $this
  166. }
  167.  
  168. method RevEngDlg::checkDialogStatus {this} {
  169.     if {[$this.top.alg.types selected] != "Simple placement"} {
  170.         $this.top.cnum.num editable yes
  171.     } else {
  172.         $this.top.cnum.num editable no
  173.     }
  174.  
  175.     set enableOk 1
  176.     $this okSensitive $enableOk
  177.     $this okDefault $enableOk
  178.     $this cancelDefault [expr 1 - $enableOk]
  179. }
  180.  
  181. method RevEngDlg::getOptions {this} {
  182.     case "[$this.top.gen.types selected]" in {
  183.         {"Only CDMs"} { append script " -f" }
  184.         {"Only CDs"} { append script " -i" }
  185.     }
  186.     if [$this.top.overwrite state] {
  187.         append script " -o"
  188.     }
  189.     if [$this.top.reference state] {
  190.         append script " -r"
  191.     }
  192.     set dim $this.top.dims.mtx.class.dim
  193.     append script " -c[$dim.width intValue]x[$dim.height intValue]"
  194.     set dim $this.top.dims.mtx.screen.dim
  195.     append script " -s[$dim.width intValue]x[$dim.height intValue]"
  196.     set dim $this.top.dims.mtx.tree.dim
  197.     append script " -t[$dim.width intValue]x[$dim.height intValue]"
  198.     append script " -P[[[$this dbObj] getParent Project] name]"
  199.     append script " -C[[[$this dbObj] getParent ConfigVersion] name]"
  200.     append script " -A[[[$this dbObj] getParent PhaseVersion] name]"
  201.     append script " -T[[[$this dbObj] getParent PhaseVersion] browserType]"
  202.     append script " -S[[$this dbObj] name]"
  203.     append script " -V[[[$this dbObj] getParent ConfigVersion] versionName]"
  204.     if {[$this.top.diag.name text] != ""} {
  205.         append script " -D\"[$this.top.diag.name text]\""
  206.     }
  207.     case "[$this.top.alg.types selected]" in {
  208.         {"Simple placement"} { append script " -X \"Simple\"" }
  209.         {"Grid placement"} { append script " -X \"Grid\"" }
  210.     }
  211.     append script " -N [$this.top.cnum.num intValue]"
  212.     return $script
  213. }
  214.  
  215. method RevEngDlg::ok {this} {
  216.     set script [quoteIf [m4_path_name bin [$this revEngTool]$EXE_EXT]]
  217.     append script [$this getOptions]
  218.  
  219.     set argsFile [args_file {}]
  220.     set fid [open $argsFile w]
  221.     foreach file [$this headerFiles] {
  222.         puts $fid $file
  223.     }
  224.     close $fid
  225.     append script " -F$argsFile"
  226.  
  227.     set msg "Starting 'Reverse Engineer [$this language]'"
  228.     $wmttoolObj startCommand mtool "$script" "" "$msg" {1 0} 0
  229. }
  230.  
  231. # Do not delete this line -- regeneration end marker
  232.  
  233.