home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / cadeditor.tcl < prev    next >
Text File  |  1997-03-07  |  3KB  |  124 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1996
  4. #
  5. #      File:           @(#)cadeditor.tcl    /main/hindenburg/8
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)cadeditor.tcl    /main/hindenburg/8   7 Mar 1997 Copyright 1996 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12.  
  13. require cadpanel.tcl
  14.  
  15. # End user added include file section
  16.  
  17. require "diagramedi.tcl"
  18.  
  19. Class CADEditor : {DiagramEditor} {
  20.     constructor
  21.     method destructor
  22.     method diagramType
  23.     method systemVersion
  24.     method configVersion
  25.     method checkLocalModel
  26. }
  27.  
  28. constructor CADEditor {class this name} {
  29.     set this [DiagramEditor::constructor $class $this $name]
  30.     # Start constructor user section
  31.  
  32.     # take care of the cad-specific entries
  33.     $this specificMenuHdlr [CustEdMenuHandler new cad]
  34.     [$this specificMenuHdlr] setCurrentContext
  35.     set foldButton "[$this menuBar].options.menu.initialfold"
  36.     if [isCommand $foldButton] {
  37.         $foldButton state [m4_var get M4_initial_fold]
  38.     }
  39.     [$this options] syntaxEntries {class data process}
  40.  
  41.     $this title "Class Association Diagram Editor"
  42.     set cadPanel [CADPanel new $this.c.r.panel]
  43.     $this panel [$cadPanel symbPanel]
  44.     [$this panel] initialize cad
  45.     [$this panel] selected Select
  46.     $this panel $cadPanel
  47.  
  48.     CADArea new $this.c.r.cad -panX 0 -panY 0 \
  49.                   -currentSymbol Select \
  50.                   -doubleClicked "$this open"
  51.     $this editorArea $this.c.r.cad
  52.     [$this editorArea] setSize 600 400
  53.     [$this editorArea] possibleOperationsChanged \
  54.         "$this enDisableMenuEntries"
  55.  
  56.     $cadPanel area [$this editorArea]
  57.     $this createEdAreaPopUpMenu
  58.     $this setWindowGeometry cad
  59.  
  60.     # End constructor user section
  61.     return $this
  62. }
  63.  
  64. method CADEditor::destructor {this} {
  65.     # Start destructor user section
  66.     $this saveFileHistory cad
  67.     $this saveWindowGeometry cad
  68.     [$this specificMenuHdlr] delete
  69.     # End destructor user section
  70.     $this DiagramEditor::destructor
  71. }
  72.  
  73. method CADEditor::diagramType {this} {
  74.     return cad
  75. }
  76.  
  77. method CADEditor::systemVersion {this {sv -}} {
  78.     if {$sv == "-"} {
  79.         return [$this DiagramEditor::systemVersion]
  80.     }
  81.     $this DiagramEditor::systemVersion $sv
  82.     [$this editorArea] systemVersion $sv
  83. }
  84.  
  85. method CADEditor::configVersion {this {cv -}} {
  86.     if {$cv == "-"} {
  87.         return [$this DiagramEditor::configVersion]
  88.     }
  89.     $this DiagramEditor::configVersion $cv
  90.     [$this editorArea] configVersion $cv
  91. }
  92.  
  93. method CADEditor::checkLocalModel {this} {
  94.     set area [$this editorArea]
  95.     # Get selected components. Throw away "hidden" components.
  96.     set args ""
  97.     global hiddenCompTypes
  98.     foreach comp [$area getSelectedComponents] {
  99.         if {![info exists hiddenCompTypes([$comp type])]} {
  100.             if {[$comp type] != "cad_class" &&
  101.                 [$comp type] != "cad_container"} {
  102.                 $this DiagramEditor::checkLocalModel
  103.                 $area releaseSelectedComponents
  104.                 return
  105.             }
  106.             set nameItem [$comp nameItem]
  107.             if {$nameItem != ""} {
  108.                 append args "-S [$nameItem name].cdm "
  109.             }
  110.         }
  111.     }
  112.     if {$args == ""} {
  113.         set file [[$this fileVersion] file]
  114.         append args "-S [$file name].[$file type] "
  115.     }
  116.     append args "-f check.tcl"
  117.     set script "[quoteIf [m4_path_name bin otsh$EXE_EXT]] $args"
  118.     $this startCommand mtool $script "" "Starting 'Check'" {0 0} 0
  119.     $area releaseSelectedComponents
  120. }
  121.  
  122. # Do not delete this line -- regeneration end marker
  123.  
  124.