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

  1. #---------------------------------------------------------------------------
  2. #
  3. #    (c) Cadre Technologies Inc. 1995
  4. #
  5. #    File:        @(#)items.tcl    /main/titanic/4
  6. #    Author:        Harm Leijendeckers
  7. #    Description:    Report on WorkItems and properties
  8. #    Usage in:    SystemVersion and FileVersion
  9. #
  10. #---------------------------------------------------------------------------
  11. # SccsId = @(#)items.tcl    /main/titanic/4    27 Aug 1997    Copyright 1995 Cadre Technologies Inc.
  12.  
  13.  
  14. Class ReportItems : {ReportBase} {
  15.     constructor
  16.  
  17.     attribute printProps
  18.  
  19.     method systemReport
  20.     method fileReport
  21.  
  22.     method doReport
  23.     method doName
  24.     method getDiagramWorkItems
  25. }
  26.  
  27.  
  28. constructor ReportItems {class this} {
  29.     set this [ReportBase::constructor $class $this]
  30.     if { [lsearch $Options "properties"] != -1 } {
  31.         $this printProps 1
  32.     } else {
  33.         $this printProps 0
  34.     }
  35.     $this reportName "Items"
  36.     return $this
  37. }
  38.  
  39.  
  40. method ReportItems::systemReport {this} {
  41.     $this doReport [[$this systemV] definedItems]
  42. }
  43.  
  44.  
  45. method ReportItems::fileReport {this} {
  46.     set fileV [$this fileV]
  47.     set configV [$this configV]
  48.     set allWorkItems [$fileV definedItems]
  49.  
  50.     if [$fileV isA Diagram] {
  51.     set allWorkItems [flatten [concat $allWorkItems \
  52.                   [$this getDiagramWorkItems $fileV $configV]]]
  53.                   #[$fileV definedItemRefs $configV]]]
  54.     }
  55.  
  56.     set sv [$this systemV]
  57.     foreach it [query "type == cl && item.qualifier == [ORB::nil]" \
  58.               $allWorkItems] {
  59.     set cdm [$sv findFileVersion -byNameAndType [$it name] cdm]
  60.     if ![$cdm isNil] {
  61.         set allWorkItems [concat $allWorkItems \
  62.                      [$this getDiagramWorkItems $cdm $configV]]
  63.     }
  64.     }
  65.  
  66.     $this doReport [flatten $allWorkItems]
  67. }
  68.  
  69.  
  70. method ReportItems::doReport {this allWorkItems} {
  71.     if [lempty $allWorkItems] { return 0 }
  72.     set allWorkItems $allWorkItems
  73.  
  74.     set report [$this report]
  75.     $report header {
  76.     [$this report] print Name 34
  77.     [$this report] print Type 5
  78.     [$this report] print Status 10 
  79.     [$this report] print Scope line
  80.     [$this report] line
  81.     }
  82.  
  83.  
  84.     # two seperate loops for speed optimalization
  85.     if [$this printProps] {
  86.     foreach wi [osort item.qualifiedName $allWorkItems] {
  87.         $this doName $wi
  88.         set propObj [$wi properties]
  89.         if ![$propObj isNil] {
  90.         $this showProperties $propObj
  91.         }
  92.     }
  93.     } else {
  94.     # elseif ![lempty $Options]  to show no props with no options
  95.     foreach wi [osort item.qualifiedName $allWorkItems] {
  96.         $this doName $wi
  97.         set propObj [$wi properties]
  98.         if ![$propObj isNil] {
  99.         $this showProperties $propObj "$Options"
  100.         }
  101.     }
  102.     }
  103.  
  104.     $report page
  105.     $report remove header
  106.  
  107.     return 0
  108. }
  109.  
  110.  
  111. method ReportItems::doName {this wi} {
  112.     set item [$wi item]
  113.     set qual [$item qualifier]
  114.     set report [$this report]
  115.     $report print [$wi qualifiedName] 33
  116.     $report space
  117.     $report print [$wi type] 4 break
  118.     $report space
  119.     $report print [$wi status] 9
  120.     $report space
  121.     if [$qual isNil] {
  122.     regsub -all scope [$wi scope] "" scope
  123.     $report print $scope 8
  124.     }
  125.     $report line
  126. }
  127.  
  128.  
  129. method ReportItems::getDiagramWorkItems {this diagram configV} {
  130.     set result ""
  131.     set components [$diagram components]
  132.     set connectors [query "objType == Connector" $components]
  133.  
  134.     set items [concat [[$diagram file] item] \
  135.                [query $components.labels.itemRefs.item]]
  136.     if {! [lempty $connectors]} {
  137.     set items [concat $items \
  138.             [query $connectors.segments.labels.itemRefs.item]]
  139.     }
  140.  
  141.     foreach item $items {
  142.     set wi [$diagram findDeclaration $item $configV]
  143.     if ![$wi isNil] {
  144.         set result [concat $result $wi]
  145.     }
  146.     }
  147.  
  148.     return [flatten $result]
  149. }
  150.  
  151.  
  152. set executeMe [ReportItems new]
  153.