home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / cadpanel.tcl < prev    next >
Text File  |  1997-09-30  |  3KB  |  114 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)cadpanel.tcl    /main/titanic/6
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)cadpanel.tcl    /main/titanic/6   30 Sep 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12.  
  13. require edcontrolp.tcl
  14.  
  15. # End user added include file section
  16.  
  17. require "extendedco.tcl"
  18.  
  19. Class CADPanel : {ExtendedControlPanel} {
  20.     constructor
  21.     method destructor
  22.     method updateArea
  23.     method createPanelExtension
  24.     method initialize
  25.     attribute startPanel
  26.     attribute endPanel
  27. }
  28.  
  29. constructor CADPanel {class this name} {
  30.     set this [ExtendedControlPanel::constructor $class $this $name]
  31.     # Start constructor user section
  32.     # End constructor user section
  33.     return $this
  34. }
  35.  
  36. method CADPanel::destructor {this} {
  37.     # Start destructor user section
  38.     # End destructor user section
  39.     $this ExtendedControlPanel::destructor
  40. }
  41.  
  42. method CADPanel::updateArea {this args} {
  43.         if { [llength $args] == 0 } {
  44.         $this updateArea start
  45.         $this updateArea end
  46.         return
  47.     }
  48.     
  49.     set side [lindex $args 0]
  50.     if { [m4_var get M4_diagram_look] == "OMT" } {
  51.         set multIndex [expr [string length $side] + 1]
  52.         set mult [string range [$this.mult.$side selected] $multIndex end]
  53.     } else {
  54.         regsub -all "_uml" [$this.mult.$side selected] "" mult
  55.     }
  56.     if { $side == "start" } {
  57.         [$this _area] currentStartMultiplicity $mult
  58.     } else {
  59.         [$this _area] currentEndMultiplicity $mult
  60.     }
  61. }
  62.  
  63. method CADPanel::createPanelExtension {this} {
  64.     # todo: optimize with initialize()
  65.     # be carefull with layout problems
  66.         if { [m4_var get M4_diagram_look] == "OMT" } {
  67.         set startEntrySet {start_one start_optional start_many}
  68.         set endEntrySet {end_one end_optional end_many}
  69.     } else {
  70.         set startEntrySet {one_uml optional_uml many_uml}
  71.         set endEntrySet $startEntrySet
  72.     }
  73.     DlgRow new $this.mult
  74.     $this.mult allowResize 1
  75.     $this startPanel [VerControlPanel new $this.mult.start \
  76.         -entrySet $startEntrySet \
  77.         -tipSet {"Begin Mandatory Association" \
  78.         "Begin Optional Association" \
  79.         "Begin Many Association"} \
  80.         -selected [lindex $startEntrySet 0] \
  81.         -selectionChanged "$this updateArea start" \
  82.         -allowResize 1
  83.     ]
  84.     $this endPanel [VerControlPanel new $this.mult.end \
  85.         -entrySet $endEntrySet \
  86.         -tipSet {"End Mandatory Association" \
  87.         "End Optional Association" \
  88.         "End Many Association"} \
  89.         -selected [lindex $endEntrySet 0] \
  90.         -selectionChanged "$this updateArea end" \
  91.         -allowResize 1
  92.     ]
  93. }
  94.  
  95. method CADPanel::initialize {this edType} {
  96.     [$this symbPanel] initialize $edType
  97.     $this ExtendedControlPanel::initialize $edType
  98.         if { [m4_var get M4_diagram_look] == "OMT" } {
  99.         set startEntrySet {start_one start_optional start_many}
  100.         set endEntrySet {end_one end_optional end_many}
  101.     } else {
  102.         set startEntrySet {one_uml optional_uml many_uml}
  103.         set endEntrySet $startEntrySet
  104.     }
  105.     [$this startPanel] entrySet $startEntrySet
  106.     [$this startPanel] selected [lindex $startEntrySet 0]
  107.     [$this endPanel] entrySet $endEntrySet
  108.     [$this endPanel] selected [lindex $endEntrySet 0]
  109.     $this updateArea
  110. }
  111.  
  112. # Do not delete this line -- regeneration end marker
  113.  
  114.