home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / openloceda.tcl < prev    next >
Text File  |  1997-04-24  |  4KB  |  138 lines

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