home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / drsqobject.tcl < prev    next >
Text File  |  1997-08-29  |  5KB  |  132 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)drsqobject.tcl    /main/titanic/4
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)drsqobject.tcl    /main/titanic/4   29 Aug 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 ${DrsDriver::FORMALMODULE}_$levelType]
  54.     set intPhase [$qualPropObj getPropertyValue ${DrsDriver::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 ${DrsDriver::FORMALMODULE}]
  59.     set qualIntPhase  [$qualPropObj getPropertyValue ${DrsDriver::FORMALMODULE}_Phase]
  60.     if {![llength $qualDrsObjId] || $qualIntPhase != $currPhaseName} {
  61.         set notIntQualFiles [[$this driver] notIntQualFiles]
  62.         lappend notIntQualFiles $this
  63.         [$this driver] notIntQualFiles $notIntQualFiles
  64.         return 
  65.     }
  66.         set doorsObject [$dxlCommand doorsObjectFind $qualDrsObjId]
  67.         set doorsObject [$dxlCommand doorsObjectCreateChild \
  68.                                         $doorsObject $levelType]
  69.         $dxlCommand doorsObjectAttrSave $doorsObject "Absolute Number"
  70.  
  71.     } else {
  72.         set dxlCommand [$this dxlCommand]
  73.         set doorsObject [$dxlCommand doorsObjectFind $parDrsObjId]
  74.     $dxlCommand doorsObjectShow $doorsObject
  75.     }
  76.     return $doorsObject
  77. }
  78.  
  79. method DrsQObject::getParentPropertyObject {this} {
  80.         set thisLevel [$this level]
  81.         set qualifier [$this qualifier]
  82.         set configV [$this getConfigVersion]
  83.         set system [$this parentLevel]
  84.         set systemV [$system selectedVersion $configV]
  85.     if [$systemV isNil] {
  86.         return
  87.     }
  88.         set qualWorkItem [$systemV findDefinition $qualifier $configV]
  89.         return [$qualWorkItem properties]
  90. }
  91.  
  92. method DrsQObject::saveReference {this fLevel drsRefs parOTVers selIts} {
  93.     if {[llength $drsRefs] > 1 } {
  94.         set levelType [$this levelType]
  95.         set qualPropObj [$this getParentPropertyObject]
  96.      
  97.         set ownDrsRef [lreplace $drsRefs 0 0]
  98.         # file section created
  99.         set doorsObjId  [lindex $drsRefs 0]
  100.         set phN [[$this getPhase] name]
  101.         $qualPropObj setProperty ${DrsDriver::FORMALMODULE}_$levelType  $doorsObjId
  102.         $qualPropObj setProperty ${DrsDriver::FORMALMODULE}_${levelType}_Phase $phN
  103.         #$this addDoorsRefToCorp [[[$this level] project] name] $doorsObjId
  104.     } else {
  105.         # drsRefs : <objectRef> <projectName>
  106.         set ownDrsRef [lindex $drsRefs 0]
  107.     }
  108.     return $ownDrsRef
  109. }
  110.  
  111. method DrsQObject::show {this majorOper minorOper} {
  112.         set qualItem [$this getParentPropertyObject]
  113.         set levelType [$this levelType]
  114.         set myTypeObjId [$qualItem getPropertyValue ${DrsDriver::FORMALMODULE}_$levelType]
  115.         set qualItemObjId [$qualItem getPropertyValue ${DrsDriver::FORMALMODULE}]
  116.         set dxlCommand [$this dxlCommand]
  117.         if {$minorOper == "Objects"} {
  118.             return
  119.         }
  120.         if {[llength $qualItemObjId] && $qualItemObjId > 0 } {
  121.             set doorsObject [$dxlCommand doorsObjectFind $qualItemObjId]
  122.             $dxlCommand doorsObject$majorOper $doorsObject $qualItemObjId
  123.         }
  124.         if {[llength $myTypeObjId] && $myTypeObjId > 0 } {
  125.             set doorsObject [$dxlCommand doorsObjectFind $myTypeObjId]
  126.             $dxlCommand doorsObject$majorOper $doorsObject $minorOper
  127.         }
  128. }
  129.  
  130. # Do not delete this line -- regeneration end marker
  131.  
  132.