home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / viewobject.tcl < prev    next >
Text File  |  1997-03-14  |  3KB  |  109 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cadre Technologies Inc.    1996
  4. #
  5. #      File:           @(#)viewobject.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)viewobject.tcl    /main/titanic/2   14 Mar 1997 Copyright 1996 Cadre Technologies Inc.
  10.  
  11. # Start user added include file section
  12. require "custsort.tcl"
  13. # End user added include file section
  14.  
  15. require "custbrowso.tcl"
  16.  
  17. Class ViewObject : {CustBrowsObject BrowsObject} {
  18.     method destructor
  19.     constructor
  20.     method updateView
  21.     method infoList
  22.     method validEnvironment
  23.     method open
  24.     attribute repositoryType
  25.     attribute browserType
  26.     attribute redefined
  27. }
  28.  
  29. method ViewObject::destructor {this} {
  30.     # Start destructor user section
  31.     # End destructor user section
  32.     $this CustBrowsObject::destructor
  33. }
  34.  
  35. constructor ViewObject {class this name specification} {
  36.     set this [BrowsObject::constructor $class $this $name]
  37.     set this [CustBrowsObject::constructor $class $this $name]
  38.  
  39.     $this smallIcon folder_16
  40.     $this largeIcon folder_32
  41.     $this activated {%this open}
  42.  
  43.     while {![lempty $specification]} {
  44.         set key [lvarpop specification]
  45.         $this $key [lvarpop specification]
  46.     }
  47.  
  48.     # give the name of the object the name of the view
  49.     $this displayName [$this name]
  50.     # type is always ViewObject
  51.     $this type ViewObject
  52.  
  53.     return $this
  54. }
  55.  
  56. method ViewObject::updateView {this} {
  57.  
  58.     if [$this editable] {
  59.         set level "[$this specLevel] *"
  60.     } else {
  61.         set level [$this specLevel]
  62.     }
  63.  
  64.     $this label [$this repositoryType]
  65.     $this details [list [$this browserType] \
  66.                   [$this _displayName] \
  67.                 $level \
  68.                     [$this scope]]
  69. }
  70.  
  71. method ViewObject::infoList {this} {
  72.  
  73.     set list [$this CustBrowsObject::infoList]
  74.     lappend list repositoryType [$this repositoryType]
  75.     lappend list browserType [$this browserType]
  76.  
  77.     return $list
  78. }
  79.  
  80. method ViewObject::validEnvironment {this curPath} {
  81.  
  82.     set objScope [$this scope]
  83.  
  84.     # extract corporate 
  85.     set curPathLen [expr {[llength $curPath]-1}]
  86.  
  87.     if {$curPathLen != [llength $objScope]} {
  88.         return 0
  89.     }
  90.  
  91.     return [$this validScope $curPath]
  92. }
  93.  
  94. method ViewObject::open {this} {
  95.  
  96.     .main busy TRUE
  97.     set definer [[.main editorArea] viewDefiner]
  98.  
  99.     if {[catch {$definer load $this}]} {
  100.         set definer [ViewDefineDialog new .main.viewDefiner]
  101.         [.main editorArea] viewDefiner $definer
  102.         $definer load $this
  103.     }
  104.     .main busy FALSE
  105. }
  106.  
  107. # Do not delete this line -- regeneration end marker
  108.  
  109.