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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)navigation.tcl    /main/titanic/12
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)navigation.tcl    /main/titanic/12   3 Oct 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "dropobject.tcl"
  15.  
  16. Class NavigationView : {BrowsTree DropObject} {
  17.     method destructor
  18.     constructor
  19.     method getDropTarget
  20.     method postDropUpdate
  21.     method rebuild
  22.     method updateSelected
  23. }
  24.  
  25. method NavigationView::destructor {this} {
  26.     # Start destructor user section
  27.     # End destructor user section
  28.     $this DropObject::destructor
  29. }
  30.  
  31. constructor NavigationView {class this name} {
  32.     set this [BrowsTree::constructor $class $this $name]
  33.     $this dropMode ON
  34.         $this setDestinationSet
  35.     return $this
  36. }
  37.  
  38. method NavigationView::getDropTarget {this droppedAfterObj droppedBeforeObj treeNode} {
  39.     upvar $treeNode node
  40.     if [isCommand $droppedAfterObj] {
  41.     set node $droppedAfterObj
  42.     } else {
  43.     set node [.main currentObj]
  44.     if {! [isCommand $node]} {
  45.         set node [lindex [$this rootSet] 0]
  46.     }
  47.     }
  48.     return $node
  49. }
  50.  
  51. method NavigationView::postDropUpdate {this target node} {
  52.     # Update tree-node
  53.     if {(! [$node foldState]) && (! [$node activeState])} {
  54.     $node appendChildren
  55.     }
  56. }
  57.  
  58. method NavigationView::rebuild {this} {
  59.     foreach root [$this rootSet] {
  60.     $root rebuild
  61.     }
  62. }
  63.  
  64. method NavigationView::updateSelected {this} {
  65.     set treeNode [$this selected]
  66.     if {"$treeNode" == ""} {
  67.     return
  68.     }
  69.  
  70.     # Must update selected tree node because
  71.     # one browsUiObj can have two different parents
  72.     set browsUiObj [$treeNode browsUiObj]
  73.     $browsUiObj makeUpToDate
  74.     BrowserProcs::initializeInfo $browsUiObj $treeNode
  75.  
  76.     # Open tree-node
  77.     if [$treeNode activeState] {
  78.     .main selectionChanged
  79.     } else {
  80.     $treeNode open
  81.     }
  82. }
  83.  
  84. # Do not delete this line -- regeneration end marker
  85.  
  86.