home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / reptoolvie.tcl < prev    next >
Text File  |  1996-11-27  |  5KB  |  205 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1996
  4. #
  5. #      File:           @(#)reptoolvie.tcl    /main/hindenburg/17
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)reptoolvie.tcl    /main/hindenburg/17   27 Nov 1996 Copyright 1996 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. require showversio.tcl
  13. require tooloption.tcl
  14. require repository.tcl
  15. require reptoolwmt.tcl
  16. require reptoolfon.tcl
  17. require reptoolurl.tcl
  18. # End user added include file section
  19.  
  20. require "wmttool.tcl"
  21.  
  22. # Abstract base class for all RepTool views.
  23.  
  24. Class RepToolView : {MainWindow WmtTool} {
  25.     method destructor
  26.     constructor
  27.     method selectionChanged
  28.     method addContextArea
  29.     method updateToolBar
  30.     method setTitle
  31.     method setFont
  32.     method changePassword
  33.     method messageHandler
  34.     method error
  35.     method warning
  36.     method message
  37.     method fileExit
  38.     method viewRefresh
  39.     method optionsFont
  40.     method helpOnContext
  41.     method helpOnName
  42.     attribute levelPath
  43.     attribute levelPathIds
  44.     attribute contextError
  45.     attribute varContext
  46.     attribute toolId
  47.     attribute rep
  48.     attribute menuHandler
  49.     attribute wmtArea
  50.     attribute fontChooser
  51.     attribute passwordDialog
  52. }
  53.  
  54. method RepToolView::destructor {this} {
  55.     # Start destructor user section
  56.  
  57.         $this saveWindowGeometry [$this varContext]
  58.         $this saveContextAreaPresence [$this varContext]
  59.         $this saveToolBarPresence [$this varContext]
  60.         $this saveMessageAreaPresence [$this varContext]
  61.  
  62.     # End destructor user section
  63.     $this WmtTool::destructor
  64. }
  65.  
  66. constructor RepToolView {class this name toolId} {
  67.     set this [MainWindow::constructor $class $this $name]
  68.     set this [WmtTool::constructor $class $this $name]
  69.  
  70.     $this toolId $toolId
  71.  
  72.     # Create the Repository utility class used by all children.
  73.     #
  74.     $this rep [Repository new]
  75.     [$this rep] messageHandler "$this messageHandler"
  76.  
  77.     # Set common attributes.
  78.     #
  79.     $this config \
  80.         -varContext $toolId \
  81.     -closed { %this fileExit } \
  82.     -exitButton $this.bar.file.menu.exit
  83.  
  84.     # Create component user interface parts.
  85.     #
  86.     MenuBar new $this.bar
  87.     $this menuHandler [CustBrMenuHandler new $toolId]
  88.     $this setToolBarPresence $toolId
  89.  
  90.     # Create column named 'gui'.
  91.     # Subclasses should add further elements.
  92.     #
  93.     interface DlgColumn $this.gui {
  94.         spaceType NONE
  95.     }
  96.  
  97.     $this setContextAreaPresence $toolId
  98.     $this setMessageAreaPresence $toolId
  99.  
  100.     catch {[$this menuHandler] setCurrentContext}
  101.  
  102.     return $this
  103. }
  104.  
  105. method RepToolView::selectionChanged {this} {
  106.     set handler [$this menuHandler]
  107.     if {$handler != ""} {
  108.     $handler selectionChanged
  109.     }
  110. }
  111.  
  112. method RepToolView::addContextArea {this} {
  113.     $this wmtArea [RepToolWmtArea new $this.gui.wmtArea reptool]
  114. }
  115.  
  116. method RepToolView::updateToolBar {this} {
  117.     catch {[$this menuHandler] setCurrentContext}
  118. }
  119.  
  120. method RepToolView::setTitle {this title {icon ""}} {
  121.     $this config \
  122.     -title "ObjectTeam Repository Tool - $title" \
  123.     -iconTitle $title
  124.  
  125.     if {$icon != ""} {
  126.         $this icon $icon
  127.     $this setWindowGeometry [$this varContext]
  128.     }
  129. }
  130.  
  131. method RepToolView::setFont {this font} {
  132.     if [catch {m4_var set M4_font $font -context [$this toolId]} error] {
  133.     $this error "Unable to set font for Repository Tool:\n$error" -add
  134.     }
  135. }
  136.  
  137. method RepToolView::changePassword {this changed} {
  138.     if {[$this passwordDialog] == ""} {
  139.     $this passwordDialog [RepPasswordDialog new $this.changepwd]
  140.     }
  141.     [$this passwordDialog] changed $changed
  142.     [$this passwordDialog] entry ""
  143.     [$this passwordDialog] popUp
  144. }
  145.  
  146. method RepToolView::messageHandler {this type msg {options ""}} {
  147.     switch $type {
  148.         ERROR    { $this error $msg $options }
  149.         WARNING    { $this warning $msg }
  150.     MESSAGE    -
  151.         default    { $this message $msg }
  152.     }       
  153. }
  154.  
  155. method RepToolView::error {this msg {options ""}} {
  156.     if {[lindex $options 0] == "-add"} {
  157.         catch {error $msg}
  158.     }
  159.     wmtkerror $msg
  160. }
  161.  
  162. method RepToolView::warning {this msg} {
  163.     global errorCode
  164.     set errorCode 0
  165.  
  166.     wmtkwarning $msg
  167. }
  168.  
  169. method RepToolView::message {this msg} {
  170.     wmtkmessage $msg
  171. }
  172.  
  173. method RepToolView::fileExit {this} {
  174.     $this message "Exiting..."
  175.     $this stop
  176. }
  177.  
  178. method RepToolView::viewRefresh {this} {
  179.     $this update
  180.     $this selectionChanged
  181. }
  182.  
  183. method RepToolView::optionsFont {this} {
  184.     if {[$this fontChooser] == ""} {
  185.         $this fontChooser [RepToolFontChooser new $this.fontdlg $this]
  186.     }
  187.     [$this fontChooser] popUp
  188. }
  189.  
  190. method RepToolView::helpOnContext {this} {
  191.     $this error "Not implemented."
  192. }
  193.  
  194. method RepToolView::helpOnName {this name} {
  195.     global short2url
  196.     if [catch {set url $short2url($name)}] {
  197.     $this error "Sorry, no help available for '$name'"
  198.     } else {
  199.     showHelp $url
  200.     }
  201. }
  202.  
  203. # Do not delete this line -- regeneration end marker
  204.  
  205.