home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / drsqobject.tcl < prev    next >
Text File  |  1997-03-04  |  5KB  |  133 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)drsqobject.tcl    /main/hindenburg/10
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)drsqobject.tcl    /main/hindenburg/10   4 Mar 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. #Class DrsQObject : {Object} {
  16. #    constructor
  17. #    method destructor
  18. #    method getDoorsParObjId
  19. #    method getParentPropertyObject
  20. #    method saveReference
  21. #    method show
  22. #    attribute qualifier
  23. #}
  24.  
  25. constructor DrsQObject {class this} {
  26.     set this [GCObject::constructor $class $this]
  27.     # Start constructor user section
  28.     # End constructor user section
  29.     return $this
  30. }
  31.  
  32. method DrsQObject::destructor {this} {
  33.     # Start destructor user section
  34.     # End destructor user section
  35. }
  36.  
  37. method DrsQObject::getDoorsParObjId {this} {
  38.     set thisLevel [$this level]
  39.     set levelType [$this levelType]
  40.     set qualifier [$this qualifier]
  41.  
  42.     set configV [$this getConfigVersion]
  43.     set system [$this parentLevel]
  44.     if ![$system isA System] {
  45.     # this is a DrsQItemObject
  46.     set file [$this parentLevel]
  47.     set fileV [$file selectedVersion $configV]
  48.     set system [$file system]
  49.     }
  50.     set systemV [$system selectedVersion $configV]
  51.     set qualWorkItem [$systemV findDefinition $qualifier $configV]
  52.     set qualPropObj [$qualWorkItem properties]
  53.     set parDrsObjId [$qualPropObj getPropertyValue ${FORMALMODULE}_$levelType]
  54.     set intPhase [$qualPropObj getPropertyValue ${FORMALMODULE}_${levelType}_Phase]
  55.     set currPhaseName [[$this getPhase] name]
  56.     if {![llength $parDrsObjId] ||  $currPhaseName != $intPhase}  {
  57.         set dxlCommand [$this dxlCommand]
  58.     set qualDrsObjId  [$qualPropObj getPropertyValue ${FORMALMODULE}]
  59.     set qualIntPhase  [$qualPropObj getPropertyValue ${FORMALMODULE}_Phase]
  60.     if {![llength $qualDrsObjId] || $qualIntPhase != $currPhaseName} {
  61.         global notIntQualFiles
  62.         lappend notIntQualFiles $this
  63.         return 
  64.     }
  65.         set doorsObject [$dxlCommand doorsObjectFind $qualDrsObjId]
  66.         set doorsObject [$dxlCommand doorsObjectCreateChild \
  67.                                         $doorsObject $levelType]
  68.         $dxlCommand doorsObjectAttrSave $doorsObject "Absolute Number"
  69.  
  70.     } else {
  71.         set dxlCommand [$this dxlCommand]
  72.         set doorsObject [$dxlCommand doorsObjectFind $parDrsObjId]
  73.     $dxlCommand doorsObjectShow $doorsObject
  74.     }
  75.     return $doorsObject
  76. }
  77.  
  78.  
  79. method DrsQObject::saveReference {this fLevel drsRefs parOTVers selIts} {
  80.     if {[llength $drsRefs] > 1 } {
  81.         set levelType [$this levelType]
  82.         set qualPropObj [$this getParentPropertyObject]
  83.      
  84.         set ownDrsRef [lreplace $drsRefs 0 0]
  85.         # file section created
  86.         set doorsObjId  [lindex $drsRefs 0]
  87.         set phN [[$this getPhase] name]
  88.         $qualPropObj setProperty ${FORMALMODULE}_$levelType  $doorsObjId
  89.         $qualPropObj setProperty ${FORMALMODULE}_${levelType}_Phase $phN
  90.         #$this addDoorsRefToCorp [[[$this level] project] name] $doorsObjId
  91.     } else {
  92.         # drsRefs : <objectRef> <projectName>
  93.         set ownDrsRef [lindex $drsRefs 0]
  94.     }
  95.     return $ownDrsRef
  96. }
  97.  
  98. method DrsQObject::show {this majorOper minorOper} {
  99.         set qualItem [$this getParentPropertyObject]
  100.         set levelType [$this levelType]
  101.         set myTypeObjId [$qualItem getPropertyValue ${FORMALMODULE}_$levelType]
  102.         set qualItemObjId [$qualItem getPropertyValue $FORMALMODULE ]
  103.         set dxlCommand [$this dxlCommand]
  104.         if {$minorOper == "Objects"} {
  105.             return
  106.         }
  107.         if {[llength $qualItemObjId] && $qualItemObjId > 0 } {
  108.             set doorsObject [$dxlCommand doorsObjectFind $qualItemObjId]
  109.             $dxlCommand doorsObject$majorOper $doorsObject $qualItemObjId
  110.         }
  111.         if {[llength $myTypeObjId] && $myTypeObjId > 0 } {
  112.             set doorsObject [$dxlCommand doorsObjectFind $myTypeObjId]
  113.             $dxlCommand doorsObject$majorOper $doorsObject $minorOper
  114.         }
  115. }
  116.  
  117. method DrsQObject::getParentPropertyObject {this} {
  118.         set thisLevel [$this level]
  119.         set qualifier [$this qualifier]
  120.         set configV [$this getConfigVersion]
  121.         set system [$this parentLevel]
  122.         set systemV [$system selectedVersion $configV]
  123.     if [$systemV isNil] {
  124.         return
  125.     }
  126.         set qualWorkItem [$systemV findDefinition $qualifier $configV]
  127.         return [$qualWorkItem properties]
  128. }
  129.  
  130.  
  131. # Do not delete this line -- regeneration end marker
  132.  
  133.