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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)drsobject.tcl    /main/titanic/4
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)drsobject.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. require "reqobject.tcl"
  15.  
  16. Class DrsObject : {ReqObject} {
  17.     method destructor
  18.     constructor
  19.     method levelName
  20.     method levelType
  21.     method newDxlCommand
  22.     method getDxlCommand
  23.     method sendDxlCommand
  24.     method removeDoorsRefFromCorp
  25.     method addDoorsRefToCorp
  26.     method filter
  27.     attribute level
  28.     attribute doorsModule
  29.     attribute dxlCommand
  30.     attribute corporate
  31. }
  32.  
  33. method DrsObject::destructor {this} {
  34.     # Start destructor user section
  35.     # End destructor user section
  36.     $this ReqObject::destructor
  37. }
  38.  
  39. constructor DrsObject {class this level} {
  40.     set this [ReqObject::constructor $class $this]
  41.         $this level $level
  42.         $this corporate [[ClientContext::global] currentCorporate]
  43.     return $this
  44. }
  45.  
  46. method DrsObject::levelName {this} {
  47.     return [[$this level] name]
  48. }
  49.  
  50. method DrsObject::levelType {this} {
  51.     return [[$this level] ORB_class]
  52. }
  53.  
  54. method DrsObject::newDxlCommand {this {editType "edit"} {displayed "false"}} {
  55.     set m4_shared [m4_var get M4_doors_edit_shared]
  56.     if ![llength $m4_shared] {
  57.         m4_var set M4_doors_edit_shared "false"
  58.         m4_var saveStatus M4_doors_edit_shared 0
  59.     }
  60.     if {$editType == "edit" && $m4_shared == "true"} {
  61.         set editType "share"
  62.     }
  63.     
  64.     set m4_disp [m4_var get M4_doors_edit_displayed]
  65.     if ![llength $m4_disp] {
  66.         m4_var set M4_doors_edit_displayed "true"
  67.         m4_var saveStatus M4_doors_edit_displayed 0
  68.     }
  69.     if {$m4_disp == "true"} {
  70.         set displayed "true"
  71.     }               
  72.     set dxlCommand [DrsDxlCommand new]
  73.         $this dxlCommand $dxlCommand
  74.         $dxlCommand doorsInitialize
  75.     set formalModName [m4_var get M4_doors_formal_module]
  76.         set doorsModule [$dxlCommand doorsModuleEdit $formalModName $editType $displayed]
  77.         $this doorsModule $doorsModule
  78.         return $dxlCommand
  79. }
  80.  
  81. method DrsObject::getDxlCommand {this {editType "read"}} {
  82.     # only used by filter operation, so read is enough
  83.     set dxlCommand [$this dxlCommand]
  84.         if ![llength [$this dxlCommand]] {
  85.             $this newDxlCommand $editType "true"
  86.         }
  87.         return [$this dxlCommand]
  88. }
  89.  
  90. method DrsObject::sendDxlCommand {this} {
  91.     set dxlCommand [$this dxlCommand]
  92.         set doorsModule [$this doorsModule]
  93.         return [$dxlCommand execute $doorsModule ]
  94. }
  95.  
  96. method DrsObject::removeDoorsRefFromCorp {this projectName doorsId} {
  97.     set projectChilds [[$this corporate] getPropertyValue \
  98.                             ${DrsDriver::FORMALMODULE}_${projectName}_ids ]
  99.         set removeIndex [lsearch $projectChilds $doorsId ]
  100.         set projectChilds [lreplace $projectChilds $removeIndex $removeIndex]
  101.         [$this corporate] setProperty \
  102.                             ${DrsDriver::FORMALMODULE}_${projectName}_ids $projectChilds
  103. }
  104.  
  105. method DrsObject::addDoorsRefToCorp {this projectName doorsId} {
  106.     set projectChilds [[$this corporate] getPropertyValue \
  107.                         ${DrsDriver::FORMALMODULE}_${projectName}_ids ]
  108.         set projectChilds "$doorsId $projectChilds"
  109.         [$this corporate] setProperty \
  110.                         ${DrsDriver::FORMALMODULE}_${projectName}_ids $projectChilds
  111.  
  112. }
  113.  
  114. method DrsObject::filter {this majorOper minorOper} {
  115.     set dxlCommand [$this getDxlCommand]
  116.         if {$minorOper == "All"} {
  117.             $dxlCommand doorsObject$majorOper "" $minorOper
  118.             return
  119.         }
  120. }
  121.  
  122. # Do not delete this line -- regeneration end marker
  123.  
  124.