home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / drsprojobj.tcl < prev    next >
Text File  |  1997-05-23  |  4KB  |  112 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)drsprojobj.tcl    /main/hindenburg/9
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)drsprojobj.tcl    /main/hindenburg/9   23 May 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "drstreeobj.tcl"
  15.  
  16. #Class DrsProjObject : {DrsTreeObject} {
  17. #    method destructor
  18. #    constructor
  19. #    method install
  20. #    method synObjects
  21. #    method deleteObject
  22. #    method childLevelVersions
  23. #    attribute parentLevel
  24. #}
  25.  
  26. method DrsProjObject::destructor {this} {
  27.     # Start destructor user section
  28.     # End destructor user section
  29.     $this DrsTreeObject::destructor
  30. }
  31.  
  32. constructor DrsProjObject {class this proj corp} {
  33.     set this [DrsTreeObject::constructor $class $this $proj]
  34.     $this parentLevel $corp
  35.         $this childLevels [$proj phases]
  36.     return $this
  37. }
  38.  
  39. method DrsProjObject::install {this} {
  40.     set level [$this level]
  41.     set doorsObjId [$level getPropertyValue $FORMALMODULE]
  42.     set projectName [$this levelName]
  43.     if [llength $doorsObjId] {
  44.         set intProj [$level getPropertyValue ${FORMALMODULE}_Project]
  45.         if {$intProj == $projectName} {
  46.         return "1"
  47.         }
  48.     } 
  49.     set dxlCommand [$this newDxlCommand "edit"]
  50.     if [llength $doorsObjId] {
  51.         set doorsObject [$dxlCommand doorsObjectFind $doorsObjId]
  52.     } else {
  53.         set doorsObject [$dxlCommand doorsObjectCreateTopObject $projectName]
  54.         $dxlCommand doorsObjectAttrSetValue $doorsObject OTType [$this levelType]
  55.     }
  56.     $dxlCommand doorsObjectAttrSave $doorsObject "Absolute Number"
  57.     $dxlCommand doorsObjectAttrSetValue $doorsObject \
  58.                                 "Object Heading" $projectName
  59.     set result [$this sendDxlCommand]
  60.     if {$result > 0} {
  61.         $level setProperty $FORMALMODULE $result
  62.         $level setProperty ${FORMALMODULE}_Project $projectName
  63.     } else {
  64.         wmtkinfo "Operation canceled"
  65.     }
  66.     return $result
  67. }
  68.  
  69. method DrsProjObject::synObjects {this} {
  70.     return "1"
  71. }
  72.  
  73. method DrsProjObject::deleteObject {this} {
  74.     set doorsObjId [[$this level] getPropertyValue $FORMALMODULE]
  75.     if ![llength $doorsObjId] {
  76.         wmtkinfo "Unable to remove [$this levelType] [$this levelName] \
  77.                 from DOORS because it is not installed"
  78.         return "1"
  79.     }
  80.     set dxlCommand [$this newDxlCommand "edit"]
  81.     set searchObject [$dxlCommand doorsObjectFind $doorsObjId]
  82.     $dxlCommand doorsObjectDelete $searchObject
  83.     $dxlCommand doorsResultSave "1"
  84.     set dxlResult [$this sendDxlCommand]
  85.     if {$dxlResult <= 0 } {
  86.         wmtkinfo "Operation on project canceled, result: $dxlResult"
  87.         return
  88.     }
  89.     set thisLevel [$this level]
  90.     $thisLevel removeProperty $FORMALMODULE
  91.      
  92.     set parentLevel [$this parentLevel]
  93.     set projectName [$this levelName]
  94.     set parentChilds [$parentLevel getPropertyValue ${FORMALMODULE}_SelectedItems]
  95.     set removeIndex [lsearch $parentChilds $projectName]
  96.     set parentChilds [lreplace $parentChilds $removeIndex $removeIndex]
  97.     if [llength $parentChilds] {
  98.         $parentLevel setProperty ${FORMALMODULE}_SelectedItems $parentChilds
  99.     } else {
  100.         $parentLevel removeProperty ${FORMALMODULE}_SelectedItems
  101.     }
  102. }
  103.  
  104. method DrsProjObject::childLevelVersions {this} {
  105.     set versOfCurrLevel [$level phaseVersions]
  106.     set thisPhaseVers [searchOnVersion $versOfCurrLevel [$this versionId]]
  107.     return [$thisPhaseVers systemVersions]
  108. }
  109.  
  110. # Do not delete this line -- regeneration end marker
  111.  
  112.