home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / proploceda.tcl < prev    next >
Text File  |  1997-10-31  |  5KB  |  174 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)proploceda.tcl    /main/titanic/5
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)proploceda.tcl    /main/titanic/5   31 Oct 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. require "proplocobj.tcl"
  13. require "proplocdia.tcl"
  14. # End user added include file section
  15.  
  16. require "custdefsar.tcl"
  17.  
  18. Class PropLocEdArea : {CustDefsArea} {
  19.     constructor
  20.     method destructor
  21.     method read
  22.     method parseLines
  23.     method parseDefs
  24.     method newObject
  25.     method createObject
  26.     method clearArea
  27.     method getLongName
  28.     method setLongName
  29.     method removeLongName
  30.     method getCntTypeSet
  31.     method setCntTypeSet
  32.     method removeCntTypeSet
  33.     attribute areaCleared
  34.     attribute propLocDefiner
  35.     attribute longName
  36.     attribute cntTypeSet
  37. }
  38.  
  39. constructor PropLocEdArea {class this name} {
  40.     set this [CustDefsArea::constructor $class $this $name]
  41.     $this areaCleared 0
  42.     $this longName [Dictionary new]
  43.     $this cntTypeSet [Dictionary new]
  44.     # Start constructor user section
  45.     $this rowCount 12
  46.     $this columnCount 75
  47.     $this font "[m4_var get M4_font -context uce]"
  48.     $this destinationSet "PROPLOC dropEvent"
  49.     $this mode DETAIL
  50.     BrowsHeader new $this.short -label Name -width 17
  51.     BrowsHeader new $this.long -label {Long Name} -width 25
  52.     BrowsHeader new $this.cnt -label {Container Kind} -width 21
  53.     BrowsHeader new $this.cntType -label {Container Type} -width 15
  54.     BrowsHeader new $this.level -label Level -width 25
  55.     BrowsHeader new $this.phase -label {Phase Type} -width 15
  56.     BrowsHeader new $this.file -label {Diagram Type} -width  13
  57.     BrowsHeader new $this.comp -label {Component Type} -width 15
  58.     BrowsHeader new $this.label -label {Label Type} -width 11
  59.     BrowsHeader new $this.cond -label Condition -width 10
  60.     # End constructor user section
  61.     return $this
  62. }
  63.  
  64. method PropLocEdArea::destructor {this} {
  65.     # Start destructor user section
  66.     # End destructor user section
  67.     $this CustDefsArea::destructor
  68. }
  69.  
  70. method PropLocEdArea::read {this object type} {
  71.     $this readDefs $object $type
  72.     $this CustDefsArea::read $object $type
  73. }
  74.  
  75. method PropLocEdArea::parseLines {this lines level} {
  76.     foreach locLine $lines {
  77.         set longName [$this getLongName [lindex $locLine 0]]
  78.         if {$longName == ""} {
  79.             set longName [lindex $locLine 0]
  80.         }
  81.         set types [$this getCntTypeSet [lindex $locLine 1]]
  82.         if {[lindex $locLine 2] != ""} {
  83.             lappend_unique types [lindex $locLine 2]
  84.         }               
  85.         $this setCntTypeSet [lindex $locLine 1] [lsort $types]
  86.         $this createObject [list shortName    [lindex $locLine 0] \
  87.                      longName    $longName \
  88.                      cnt        [lindex $locLine 1] \
  89.                      cntType    [lindex $locLine 2] \
  90.                      phase        [lindex $locLine 3] \
  91.                      fileType    [lindex $locLine 4] \
  92.                      componentType    [lindex $locLine 5] \
  93.                      labelType    [lindex $locLine 6] \
  94.                      condition    [lindex $locLine 7]] \
  95.                    $level
  96.     }
  97. }
  98.  
  99. method PropLocEdArea::parseDefs {this lines level} {
  100.     foreach defLine $lines {
  101.         $this setLongName [lindex $defLine 0] [lindex $defLine 1]
  102.     }
  103. }
  104.  
  105. method PropLocEdArea::newObject {this name {edit 0}} {
  106.  
  107.     $this isChanged 1
  108.  
  109.     set longName [$this getLongName $name]
  110.  
  111.     set obj [$this createObject [list shortName    $name \
  112.                       longName    $longName \
  113.                       specLevel    [$this _level]] \
  114.                     [$this _level]]
  115.  
  116.     $this sortArea
  117.  
  118.     if $edit {
  119.         $obj open
  120.     }
  121. }
  122.  
  123. method PropLocEdArea::createObject {this objSpec level} {
  124.  
  125.     global classCount
  126.     set newIndex [llength [$this objectSet]]
  127.     set object [PropLocObject new $this.Object$classCount $objSpec]
  128.     $object index $newIndex
  129.     incr classCount
  130.  
  131.     $this adjustCreatedObject $object $level
  132.  
  133.     # update the object-details in the view
  134.     $object updateView
  135.  
  136.     return $object
  137. }
  138.  
  139. method PropLocEdArea::clearArea {this} {
  140.  
  141.     $this areaCleared 1
  142.     $this CustDefsArea::clearArea
  143.     foreach longName [[$this longName] names] {
  144.         $this removeLongName $longName
  145.     }
  146. }
  147.  
  148. # Do not delete this line -- regeneration end marker
  149.  
  150. method PropLocEdArea::getLongName {this shortName} {
  151.     return [[$this longName] set $shortName]
  152. }
  153.  
  154. method PropLocEdArea::setLongName {this shortName newLongName} {
  155.     [$this longName] set $shortName $newLongName
  156. }
  157.  
  158. method PropLocEdArea::removeLongName {this shortName} {
  159.     [$this longName] unset $shortName
  160. }
  161.  
  162. method PropLocEdArea::getCntTypeSet {this cntKind} {
  163.     return [[$this cntTypeSet] set $cntKind]
  164. }
  165.  
  166. method PropLocEdArea::setCntTypeSet {this cntKind newCntTypeSet} {
  167.     [$this cntTypeSet] set $cntKind $newCntTypeSet
  168. }
  169.  
  170. method PropLocEdArea::removeCntTypeSet {this cntKind} {
  171.     [$this cntTypeSet] unset $cntKind
  172. }
  173.  
  174.