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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)brokerlogd.tcl    /main/titanic/7
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)brokerlogd.tcl    /main/titanic/7   17 Oct 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. # A dialog that displays the log
  16. # of a Cayenne broker.  The broker
  17. # must have been started with the
  18. # @tt{-l} option.
  19.  
  20. Class BrokerLogDialog : {TemplateDialog} {
  21.     constructor
  22.     method destructor
  23.     method refresh
  24.     method print
  25.     method save
  26.     attribute text
  27.  
  28.     # The host on which the broker runs
  29.     # for which this dialog shows the log.
  30.     #
  31.     attribute host
  32.     attribute file
  33.  
  34.     # The script that is evaluated by the
  35.     # @meth{refresh} method.
  36.     #
  37.     attribute refreshScript
  38. }
  39.  
  40. constructor BrokerLogDialog {class this name} {
  41.     set this [TemplateDialog::constructor $class $this $name]
  42.     # Start constructor user section
  43.  
  44.     $this modal $win95
  45.         $this delCancelButton
  46.         $this delHelpButton
  47.  
  48.     interface DlgColumn $this.c {
  49.         MultiLineText text {
  50.         editable 0
  51.         rowCount 20
  52.         columnCount 120
  53.         }
  54.     }
  55.  
  56.     set log $this.c.text
  57.     $this text $log
  58.  
  59.     if $win95 {
  60.         $log font "Courier New-normal-10-0"
  61.         } else {
  62.         $log font "courier-normal-10-0"
  63.         }
  64.  
  65.         set logFont [m4_var get M4_font -context brokerlog]
  66.         if {$logFont != ""} {
  67.         $log font $logFont
  68.         }
  69.  
  70.     PushButton new $this.refresh \
  71.         -label "Refresh" \
  72.         -default 1 \
  73.         -activated "$this refresh"
  74.  
  75.     PushButton new $this.save \
  76.         -label "Save..." \
  77.         -default 0 \
  78.             -activated "$this save"
  79.  
  80.     PushButton new $this.print \
  81.         -label "Print" \
  82.         -default 0 \
  83.             -activated "$this print"
  84.  
  85.     # End constructor user section
  86.     return $this
  87. }
  88.  
  89. method BrokerLogDialog::destructor {this} {
  90.     # Start destructor user section
  91.     # End destructor user section
  92. }
  93.  
  94.  
  95. # Refreshes the display by evaluating
  96. # the value of the @meth{refreshScript}
  97. # attribute.
  98. #
  99. method BrokerLogDialog::refresh {this} {
  100.     set log [$this text]
  101.     eval "$log [$this refreshScript]"
  102.     $log cursorIndex [string length [$log text]]
  103. }
  104.  
  105.  
  106. # Prints the log.
  107. #
  108. method BrokerLogDialog::print {this} {
  109.     set log [$this text]
  110.     set printer [m4_var get M4_a_printer]
  111.     set printfile [args_file [list [$log text]]]
  112.     .main startCommand extern \
  113.     "$printer $printfile" [list BasicFS::removeFile $printfile] \
  114.     "Sending output to $printer..." \
  115.     {0 0} 0
  116. }
  117.  
  118.  
  119. # Pops up a @type{FileChooser} dialog
  120. # which allows the log to be saved.
  121. #
  122. method BrokerLogDialog::save {this} {
  123.     set log [$this text]
  124.     set dlg .main.savelogdlg-[$this host]
  125.     if ![isCommand $dlg] {
  126.         FileChooser new $dlg \
  127.             -selectionPolicy BROWSE \
  128.         -title "Save Broker Log" \
  129.             -selectedSet [list brokerlog-[$this host].log]
  130.         $dlg okPressed "
  131.         set logFile \[lindex \[%this selectedSet] 0]
  132.         if \[catch {set fid \[open \$logFile w]} msg] {
  133.         set dlg .main.savelogerrdlg
  134.         ErrorDialog new \$dlg \
  135.             -message \$msg \
  136.             -title \"Save Broker Log Error\" \
  137.             -okPressed \"\$dlg delete\"
  138.         \$dlg delHelpButton
  139.         \$dlg popUp
  140.         return
  141.         }
  142.         puts \$fid \"\[$log text]\"
  143.         close \$fid
  144.     "
  145.     $dlg delHelpButton
  146.     }
  147.     $dlg popUp
  148. }
  149.  
  150. # Do not delete this line -- regeneration end marker
  151.  
  152.