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

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