home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 1997 November
/
PCWorld_1997-11_cd.bin
/
software
/
programy
/
komix
/
DATA.Z
/
items.tcl
< prev
next >
Wrap
Text File
|
1996-12-11
|
4KB
|
167 lines
#---------------------------------------------------------------------------
#
# (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]