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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)openloceda.tcl    /main/hindenburg/1
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)openloceda.tcl    /main/hindenburg/1   29 Aug 1996 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. require "openlocobj.tcl"
  13. # End user added include file section
  14.  
  15. require "custdefsar.tcl"
  16.  
  17. Class OpenLocEdArea : {CustDefsArea} {
  18.     constructor
  19.     method destructor
  20.     method read
  21.     method newObject
  22.     method createObject
  23.     method clearArea
  24.     method getStrategyType
  25.     method setStrategyType
  26.     method removeStrategyType
  27.     attribute usageDefiner
  28.     attribute strategyType
  29. }
  30.  
  31. constructor OpenLocEdArea {class this name} {
  32.     set this [CustDefsArea::constructor $class $this $name]
  33.     $this strategyType [Dictionary new]
  34.     # Start constructor user section
  35.     $this rowCount 12
  36.     $this columnCount 80
  37.     $this font "[m4_var get M4_font -context uce]"
  38.     $this destinationSet "OPENSTGLOC dropEvent"
  39.     $this mode DETAIL
  40.     BrowsHeader new $this.name  -label Strategy  -width 25
  41.     BrowsHeader new $this.type  -label Type      -width 20
  42.     BrowsHeader new $this.level -label Level     -width 15
  43.     BrowsHeader new $this.item  -label Item      -width  5
  44.     BrowsHeader new $this.phase -label Phase     -width 15
  45.     BrowsHeader new $this.file  -label File      -width  5
  46.     BrowsHeader new $this.comp  -label Component -width 15
  47.     BrowsHeader new $this.label -label Label     -width 10
  48.     BrowsHeader new $this.cond  -label Condition -width 10
  49.     # End constructor user section
  50.     return $this
  51. }
  52.  
  53. method OpenLocEdArea::destructor {this} {
  54.     # Start destructor user section
  55.     # End destructor user section
  56.     $this CustDefsArea::destructor
  57. }
  58.  
  59. method OpenLocEdArea::read {this object type} {
  60.     set locFileName [$this _curName]
  61.     set locFileType [$this _curType]
  62.     set nameLast [expr [string last locs $locFileName] - 1]
  63.     set typeLast [expr [string last locs $locFileType] - 1]
  64.     set defFileName [string range $locFileName 0 $nameLast]defs
  65.     set defFileType [string range $locFileType 0 $typeLast]defs
  66.  
  67.     foreach defLine [$this readConfig $object $defFileName $defFileType] {
  68.         $this setStrategyType [lindex $defLine 0] [lindex $defLine 1]
  69.     }
  70.  
  71.     foreach locLine [$this readConfig $object $locFileName $locFileType] {
  72.         set strategyType [$this getStrategyType [lindex $locLine 0]]
  73.         $this createObject "name      \"[lindex $locLine 0]\"
  74.                     type      \"$strategyType\"
  75.                     itemType      \"[lindex $locLine 1]\"
  76.                     phase      \"[lindex $locLine 2]\"
  77.                     fileType      \"[lindex $locLine 3]\"
  78.                     componentType \"[lindex $locLine 4]\"
  79.                     labelType      \"[lindex $locLine 5]\"
  80.                     condition      \"[lindex $locLine 6]\"" \
  81.                     $type
  82.     }
  83. }
  84.  
  85. method OpenLocEdArea::newObject {this name {edit 0}} {
  86.     $this isChanged 1
  87.  
  88.     set obj [$this createObject "name    \"$name\"
  89.                type    \"[$this getStrategyType $name]\"
  90.                specLevel    \"[$this _level]\"" \
  91.                [$this _level]]
  92.  
  93.     $this sortArea
  94.  
  95.     if $edit {
  96.         $obj open
  97.     }
  98. }
  99.  
  100. method OpenLocEdArea::createObject {this objSpec level} {
  101.     global classCount
  102.     set newIndex [llength [$this objectSet]]
  103.     set object [OpenLocObject new $this.Object$classCount $objSpec]
  104.     $object index $newIndex
  105.     incr classCount
  106.  
  107.     $this adjustCreatedObject $object $level
  108.  
  109.     # update the object-details in the view
  110.     $object updateView
  111.  
  112.     return $object
  113. }
  114.  
  115. method OpenLocEdArea::clearArea {this} {
  116.     $this CustDefsArea::clearArea
  117.     foreach strategyName [[$this strategyType] names] {
  118.         $this removeStrategyType $strategyName
  119.     }
  120. }
  121.  
  122. # Do not delete this line -- regeneration end marker
  123.  
  124. method OpenLocEdArea::getStrategyType {this strategyName} {
  125.     return [[$this strategyType] set $strategyName]
  126. }
  127.  
  128. method OpenLocEdArea::setStrategyType {this strategyName newStrategyType} {
  129.     [$this strategyType] set $strategyName $newStrategyType
  130. }
  131.  
  132. method OpenLocEdArea::removeStrategyType {this strategyName} {
  133.     [$this strategyType] unset $strategyName
  134. }
  135.  
  136.