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

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