set origConf [$levelV [$levelV ORB_class]::config]
set origConfName [$origConf name]
return "$origConfName.$versionNumber"
}
proc initSynchronize { } {
global DxlError
set DxlError 0
global frozenFiles
set frozenFiles ""
global notIntQualFiles
set notIntQualFiles ""
}
proc endSynchronize { } {
global frozenFiles
global notIntQualFiles
[.main messageArea] message ""
set frozenMessage ""
set qualMessage ""
foreach drsF $frozenFiles {
set frozenMessage "$frozenMessage\n [$drsF levelName]"
}
foreach drsQ $notIntQualFiles {
set qualMessage "$qualMessage\n [$drsQ levelName]"
}
set message ""
if [llength $frozenMessage] {
set message "The following frozen diagrams/objects can not be installed in DOORS:\n $frozenMessage\n\nbecause no working version was synchronized before."
}
if [llength $qualMessage] {
if [llength $message] {
set message "${message}\n\n--------------------------------------------\n\n"
}
set message "${message}The following qualified diagrams can not be installed in DOORS:\n $qualMessage\n\nbecause their qualified objects (Class/Use Case) do not exist."
}
if [llength $message] {
wmtkwarning $message
}
}
proc getSMTypeName { semType } {
set semTypeName [$semType name]
set filteredName $semTypeName
if {[llength $semTypeName] > 1} {
set filteredName [lindex $semTypeName 1]
}
if {[llength $semTypeName] > 2} {
set filteredName [lindex $semTypeName 2]
}
return $filteredName
}
proc searchOnName { searchList name} {
# searchlist consists of customlevels and workItems.semType
set type [lindex [split $name .] 1]
set name [lindex [split $name .] 0]
foreach element $searchList {
if ![isCommand $element] {
set splitIndex [string last . $element]
set typeIndex [expr $splitIndex + 1]
set endNameIndex [expr $splitIndex - 1]
set elementType [string range $element $typeIndex end]
set element [string range $element 0 $endNameIndex]
} else {
set elementType [$element type]
}
if [$element isA File] {
set elementName [$element qualifiedName :]
} else {
set elementName [$element name]
}
if {$elementName == $name} {
if { ![llength $type] || $type == $elementType} {
return $element
}
}
}
}
proc searchOnNameAndVersion { searchList name versionId} {
# searchlist consists of customlevels and workItems.semType
set type [lindex [split $name .] 1]
set name [lindex [split $name .] 0]
foreach element $searchList {
if ![isCommand $element] {
set splitIndex [string last . $element]
set typeIndex [expr $splitIndex + 1]
set endNameIndex [expr $splitIndex - 1]
set elementType [string range $element $typeIndex end]
set element [string range $element 0 $endNameIndex]
} else {
set levelV $element
set elementType [[$levelV object] type]
}
if [$element isA FileVersion] {
set file [$element file]
set elementName [$file qualifiedName :]
} else {
set elementName [$element name]
}
if {$elementName == $name} {
if { ![llength $type] || $type == $elementType} {
if ![llength $versionId] {
# element is not versiond
return $element
}
set levelV $element
set versionNumber [$levelV versionNumber]
set origConf [$levelV [$levelV ORB_class]::config]
set origConfName [$origConf name]
if {"$origConfName.$versionNumber" == $versionId} {
return $levelV
}
}
}
}
}
proc searchOnVersion { searchList versionId} {
foreach levelV $searchList {
set versionNumber [$levelV versionNumber]
set origConf [$levelV [$levelV ORB_class]::config]
set origConfName [$origConf name]
if {"$origConfName.$versionNumber" == $versionId} {