home *** CD-ROM | disk | FTP | other *** search
- #---------------------------------------------------------------------------
- #
- # (c) Cayenne Software Inc. 1997
- #
- # File: @(#)drsprojobj.tcl /main/hindenburg/9
- # Author: <generated>
- # Description:
- #---------------------------------------------------------------------------
- # SccsId = @(#)drsprojobj.tcl /main/hindenburg/9 23 May 1997 Copyright 1997 Cayenne Software Inc.
-
- # Start user added include file section
- # End user added include file section
-
- require "drstreeobj.tcl"
-
- #Class DrsProjObject : {DrsTreeObject} {
- # method destructor
- # constructor
- # method install
- # method synObjects
- # method deleteObject
- # method childLevelVersions
- # attribute parentLevel
- #}
-
- method DrsProjObject::destructor {this} {
- # Start destructor user section
- # End destructor user section
- $this DrsTreeObject::destructor
- }
-
- constructor DrsProjObject {class this proj corp} {
- set this [DrsTreeObject::constructor $class $this $proj]
- $this parentLevel $corp
- $this childLevels [$proj phases]
- return $this
- }
-
- method DrsProjObject::install {this} {
- set level [$this level]
- set doorsObjId [$level getPropertyValue $FORMALMODULE]
- set projectName [$this levelName]
- if [llength $doorsObjId] {
- set intProj [$level getPropertyValue ${FORMALMODULE}_Project]
- if {$intProj == $projectName} {
- return "1"
- }
- }
- set dxlCommand [$this newDxlCommand "edit"]
- if [llength $doorsObjId] {
- set doorsObject [$dxlCommand doorsObjectFind $doorsObjId]
- } else {
- set doorsObject [$dxlCommand doorsObjectCreateTopObject $projectName]
- $dxlCommand doorsObjectAttrSetValue $doorsObject OTType [$this levelType]
- }
- $dxlCommand doorsObjectAttrSave $doorsObject "Absolute Number"
- $dxlCommand doorsObjectAttrSetValue $doorsObject \
- "Object Heading" $projectName
- set result [$this sendDxlCommand]
- if {$result > 0} {
- $level setProperty $FORMALMODULE $result
- $level setProperty ${FORMALMODULE}_Project $projectName
- } else {
- wmtkinfo "Operation canceled"
- }
- return $result
- }
-
- method DrsProjObject::synObjects {this} {
- return "1"
- }
-
- method DrsProjObject::deleteObject {this} {
- set doorsObjId [[$this level] getPropertyValue $FORMALMODULE]
- if ![llength $doorsObjId] {
- wmtkinfo "Unable to remove [$this levelType] [$this levelName] \
- from DOORS because it is not installed"
- return "1"
- }
- set dxlCommand [$this newDxlCommand "edit"]
- set searchObject [$dxlCommand doorsObjectFind $doorsObjId]
- $dxlCommand doorsObjectDelete $searchObject
- $dxlCommand doorsResultSave "1"
- set dxlResult [$this sendDxlCommand]
- if {$dxlResult <= 0 } {
- wmtkinfo "Operation on project canceled, result: $dxlResult"
- return
- }
- set thisLevel [$this level]
- $thisLevel removeProperty $FORMALMODULE
-
- set parentLevel [$this parentLevel]
- set projectName [$this levelName]
- set parentChilds [$parentLevel getPropertyValue ${FORMALMODULE}_SelectedItems]
- set removeIndex [lsearch $parentChilds $projectName]
- set parentChilds [lreplace $parentChilds $removeIndex $removeIndex]
- if [llength $parentChilds] {
- $parentLevel setProperty ${FORMALMODULE}_SelectedItems $parentChilds
- } else {
- $parentLevel removeProperty ${FORMALMODULE}_SelectedItems
- }
- }
-
- method DrsProjObject::childLevelVersions {this} {
- set versOfCurrLevel [$level phaseVersions]
- set thisPhaseVers [searchOnVersion $versOfCurrLevel [$this versionId]]
- return [$thisPhaseVers systemVersions]
- }
-
- # Do not delete this line -- regeneration end marker
-
-