home *** CD-ROM | disk | FTP | other *** search
- #---------------------------------------------------------------------------
- #
- # (c) Cadre Technologies Inc. 1995
- #
- # File: @(#)items.tcl /main/hindenburg/1
- # Author: Harm Leijendeckers
- # Description: Report on WorkItems and properties
- # Usage in: SystemVersion and FileVersion
- #
- #---------------------------------------------------------------------------
- # SccsId = @(#)items.tcl /main/hindenburg/1 11 Dec 1996 Copyright 1995 Cadre Technologies Inc.
-
-
- Class ReportItems : {ReportBase} {
- constructor
- method systemReport
- method fileReport
-
- method doReport
- method doName
- method doProperties
- method getDiagramWorkItems
- }
-
-
- constructor ReportItems {class this} {
- set this [ReportBase::constructor $class $this]
- $this reportName "Items and Properties"
- return $this
- }
-
-
- method ReportItems::systemReport {this} {
- $this doReport [[$this systemV] definedItems]
- }
-
-
- method ReportItems::fileReport {this} {
- set fileV [$this fileV]
- set configV [$this configV]
- set allWorkItems [$fileV definedItems]
-
- if [$fileV isA Diagram] {
- set allWorkItems [flatten [concat $allWorkItems \
- [$this getDiagramWorkItems $fileV $configV]]]
- #[$fileV definedItemRefs $configV]]]
- }
-
- set sv [$this systemV]
- foreach it [query "type == cl && item.qualifier == [ORB::nil]" \
- $allWorkItems] {
- set cdm [$sv findFileVersion -byNameAndType [$it name] cdm]
- if ![$cdm isNil] {
- set allWorkItems [concat $allWorkItems \
- [$this getDiagramWorkItems $cdm $configV]]
- }
- }
-
- $this doReport [flatten $allWorkItems]
- }
-
-
- method ReportItems::doReport {this allWorkItems} {
- if [lempty $allWorkItems] { return 0 }
- set allWorkItems $allWorkItems
-
- set report [$this report]
- $report header {
- [$this report] print Name 34
- [$this report] print Type 5
- [$this report] print Status 8
- [$this report] print "Scope" 9
- [$this report] print "Property Name" 24
- [$this report] print "Property Value" line
- [$this report] line
- }
-
-
- # print properties
- # two seperate loops for speed optimalization
- if [lempty $Options] {
- foreach wi [osort item.qualifiedName $allWorkItems] {
- $this doName $wi
- set propObj [$wi properties]
- if [$propObj isNil] {
- $report line
- continue
- }
- $this doProperties [$propObj properties]
- }
- } else {
- foreach wi [osort item.qualifiedName $allWorkItems] {
- $this doName $wi
- set propObj [$wi properties]
- if [$propObj isNil] {
- $report line
- continue
- }
- $this doProperties [query "name in {$Options}" \
- [$propObj properties]]
- }
- }
-
- $report page
- $report remove header
-
- return 0
- }
-
-
- method ReportItems::doName {this wi} {
- set item [$wi item]
- set qual [$item qualifier]
- set report [$this report]
- $report print [$wi qualifiedName] 33
- $report space
- $report print [$wi type] 4 break
- $report space
- $report print [$wi status] 7
- $report space
- if [$qual isNil] {
- regsub -all scope [$wi scope] "" scope
- $report print $scope 8
- $report space
- } else {
- $report space 9
- }
- }
-
-
- method ReportItems::doProperties {this properties} {
- set report [$this report]
- if [lempty $properties] {
- $report line
- return
- }
- foreach prop [osort name $properties] {
- if ![$report queued] { $report space 56 }
- $report print [$prop name] 23
- $report space
- $report print [$prop value] 49 line
- }
- }
-
-
- method ReportItems::getDiagramWorkItems {this diagram configV} {
- set result ""
- set components [$diagram components]
- set connectors [query "objType == Connector" $components]
-
- set items [concat [[$diagram file] item] \
- [query $components.labels.itemRefs.item] \
- [query $connectors.segments.labels.itemRefs.item]]
-
- foreach item $items {
- set wi [$diagram findDeclaration $item $configV]
- if ![$wi isNil] {
- set result [concat $result $wi]
- }
- }
-
- return [flatten $result]
- }
-
-
- set executeMe [ReportItems new]
-