📄 main.tk
字号:
# OpenPBS (Portable Batch System) v2.3 Software License# # Copyright (c) 1999-2000 Veridian Information Solutions, Inc.# All rights reserved.# # ---------------------------------------------------------------------------# For a license to use or redistribute the OpenPBS software under conditions# other than those described below, or to purchase support for this software,# please contact Veridian Systems, PBS Products Department ("Licensor") at:# # www.OpenPBS.org +1 650 967-4675 sales@OpenPBS.org# 877 902-4PBS (US toll-free)# ---------------------------------------------------------------------------# # This license covers use of the OpenPBS v2.3 software (the "Software") at# your site or location, and, for certain users, redistribution of the# Software to other sites and locations. Use and redistribution of# OpenPBS v2.3 in source and binary forms, with or without modification,# are permitted provided that all of the following conditions are met.# After December 31, 2001, only conditions 3-6 must be met:# # 1. Commercial and/or non-commercial use of the Software is permitted# provided a current software registration is on file at www.OpenPBS.org.# If use of this software contributes to a publication, product, or# service, proper attribution must be given; see www.OpenPBS.org/credit.html# # 2. Redistribution in any form is only permitted for non-commercial,# non-profit purposes. There can be no charge for the Software or any# software incorporating the Software. Further, there can be no# expectation of revenue generated as a consequence of redistributing# the Software.# # 3. Any Redistribution of source code must retain the above copyright notice# and the acknowledgment contained in paragraph 6, this list of conditions# and the disclaimer contained in paragraph 7.# # 4. Any Redistribution in binary form must reproduce the above copyright# notice and the acknowledgment contained in paragraph 6, this list of# conditions and the disclaimer contained in paragraph 7 in the# documentation and/or other materials provided with the distribution.# # 5. Redistributions in any form must be accompanied by information on how to# obtain complete source code for the OpenPBS software and any# modifications and/or additions to the OpenPBS software. The source code# must either be included in the distribution or be available for no more# than the cost of distribution plus a nominal fee, and all modifications# and additions to the Software must be freely redistributable by any party# (including Licensor) without restriction.# # 6. All advertising materials mentioning features or use of the Software must# display the following acknowledgment:# # "This product includes software developed by NASA Ames Research Center,# Lawrence Livermore National Laboratory, and Veridian Information# Solutions, Inc.# Visit www.OpenPBS.org for OpenPBS software support,# products, and information."# # 7. DISCLAIMER OF WARRANTY# # THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. ANY EXPRESS# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT# ARE EXPRESSLY DISCLAIMED.# # IN NO EVENT SHALL VERIDIAN CORPORATION, ITS AFFILIATED COMPANIES, OR THE# U.S. GOVERNMENT OR ANY OF ITS AGENCIES BE LIABLE FOR ANY DIRECT OR INDIRECT,# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.# # This license will be governed by the laws of the Commonwealth of Virginia,# without reference to its choice of law rules.############################################################################### ## Main.tk: Contains a series of procedures for building the main application ## window. # # # ##############################################################################proc build_main_window {mainWindow} { global sysinfo frame $mainWindow.menubar -class Plain frame $mainWindow.main -class Plain set sysinfo(main_frame) $mainWindow.main frame $mainWindow.statusbar -class Plain# pack the rest of the frames: hosts, queues, and jobs. pack $mainWindow.menubar $mainWindow.main $mainWindow.statusbar -pady 1 \ -side top -expand 1 -fill both set sysinfo(statusbar_frame) $mainWindow.statusbar fillMenubarFrame $mainWindow.menubar fillStatusbarFrame $mainWindow.statusbar fillMainFrame $mainWindow.main}proc fillMainFrame widget_name { global sysinfo sysnodes displayView $widget_name $sysinfo(systemName) 1}proc fillStatusbarFrame widget_name { global sysinfo canvas frame $widget_name.header -borderwidth 2 -height 10m -relief raised frame $widget_name.list -borderwidth 3 label $widget_name.header.label -anchor nw \ -text "INFO:" -padx 1 -pady 1 pack $widget_name.header.label -fill both -expand true set sysinfo(infoBox) [lindex [buildFullListbox $widget_name.list \ $sysinfo(infoListBoxWidth)x$sysinfo(infoListBoxHeight) "" xyscroll] 3] pack $widget_name.header $widget_name.list -side left -fill both -expand 1 -padx 0 -pady 0}proc displayView {frame sitename {init 0}} { global sysinfo sysview if {[string compare $sitename ""] == 0} { return }# if { !$init && [info exists sysinfo(systemName)] && \# [string compare $sysinfo(systemName) $sitename] == 0} {# return# } systemDelete $sysinfo(systemFrame) set sysinfo(systemFrame) $frame.c_$sitename set sysinfo(systemName) $sitename if { [string compare $sysview($sitename) ICON] == 0 } { iconView 1 } elseif { [string compare $sysview($sitename) FULL] == 0 } { fullView 1 } else { InfoBox_sendmsg "displayView: view type: $sysview($sitename) unknown!" 1 }}################################################################################## MENU BAR Frame procedures ################################################################################### MENU BAR Frame procedures ################################################################################proc fillMenubarFrame {widget_name} { global sysinfo canvas bitmap_dir tk_version dialog frame $widget_name.menu -class Plain frame $widget_name.buttons -class Plain menubutton $widget_name.menu.sys -menu $widget_name.menu.sys.m \ -anchor w -text "Site.." -borderwidth 2 -relief raised set sysinfo(sysMenuButton) $widget_name.menu.sys.m menu $sysinfo(sysMenuButton) -borderwidth 2 -relief raised foreach sitename [siteNamesGet] { $sysinfo(sysMenuButton) add radio -label $sitename \ -variable sysinfo(systemName) \ -value $sitename \ -command "displayView $sysinfo(main_frame) $sitename" } if {$tk_version >= 4.0} { $sysinfo(sysMenuButton) configure -tearoff 0 }# pack $widget_name.menu.sys -side left -anchor nw -expand 1 -fill both pack $widget_name.menu.sys -side left -anchor nw -expand 1 -fill both pack $widget_name.menu $widget_name.buttons -side left set cmdButtons [buildCmdButtons $widget_name.buttons \ { { {prefer "Pref.."} } \ { {update_auto "AutoUpdate.."} } \ { {help "Help"} \ {about "About.."} } \ { {close "Close"} } { {iconify ""} \ {maximize ""} } } x 1 10 1 0 0 20] set cmdButtonFrame [lindex $cmdButtons 0] set cmdButtonPref [lindex $cmdButtons 1] set cmdButtonUpdAuto [lindex $cmdButtons 2] set cmdButtonHelp [lindex $cmdButtons 3] set cmdButtonAbout [lindex $cmdButtons 4] set cmdButtonClose [lindex $cmdButtons 5] set cmdButtonIconify [lindex $cmdButtons 6] set cmdButtonMaximize [lindex $cmdButtons 7] $cmdButtonPref configure -width 10 -command {pref $dialog(mainWindow) $dialog(mainWindow)} $cmdButtonUpdAuto configure -width 14 -command {auto_upd} set sysinfo(cmdButtonUpdAuto) $cmdButtonUpdAuto $cmdButtonIconify configure -bitmap @$bitmap_dir/iconize.bmp -padx 1 -pady 1 \ -anchor c -width 14 -height $canvas(bigLabelFontHeight) \ -command {iconView} $cmdButtonMaximize configure -bitmap @$bitmap_dir/maximize.bmp -padx 1 \ -pady 1 -anchor c -width 14 -height $canvas(bigLabelFontHeight) \ -command {fullView} $cmdButtonHelp configure -command { xpbs_help main ""} $cmdButtonAbout configure -command { about } $cmdButtonClose configure -command { prefSaveSitesInfo if [prefDoIt] { prefsave } exit }}proc iconView {{force 0}} { global canvas sysinfo sysview if {[string compare $sysinfo(systemFrame) ""] == 0 || \ [string compare $sysinfo(systemName) ""] == 0} { return } if {!$force && \ [string compare $sysview($sysinfo(systemName)) ICON] == 0} { return } set sysview($sysinfo(systemName)) ICON if [winfo exists $sysinfo(systemFrame)] { systemNodesReCreate $sysinfo(systemFrame) } else { systemNodesCreate $sysinfo(systemFrame) $sysinfo(systemName) after 1000 systemPopulateNodesWithInfo $sysinfo(systemFrame) 1 }}proc fullView {{force 0}} { global canvas sysinfo sysview if {[string compare $sysinfo(systemFrame) ""] == 0 || \ [string compare $sysinfo(systemName) ""] == 0} { return } if {!$force && \ [string compare $sysview($sysinfo(systemName)) FULL] == 0} { return } set sysview($sysinfo(systemName)) FULL if [winfo exists $sysinfo(systemFrame)] { systemNodesReCreate $sysinfo(systemFrame) } else { systemNodesCreate $sysinfo(systemFrame) $sysinfo(systemName) after 1000 systemPopulateNodesWithInfo $sysinfo(systemFrame) 1 }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -