⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cluster.tk

📁 OpenPBS
💻 TK
📖 第 1 页 / 共 4 页
字号:
        pack $frame.m.x -side bottom -fill x -padx 0 -pady 0 \                                -ipadx 0 -ipady 0        pack $frame.m.y -side right -fill y -padx 0 -pady 0 -ipadx 0 -ipady 0        pack $frame.m.c -expand true -fill both -padx 0 -pady 0 -ipadx 0 \                                                                -ipady 0        pack $frame.s.label -fill both -expand true -padx 0 -pady 0 -ipadx 0 \                                                                -ipady 0        pack $frame.l $frame.m $frame.s -side top -fill both -anchor nw \                                -expand true -padx 0 -pady 0 -ipadx 0 -ipady 0        pack $frame -fill both -expand true -padx 0 -pady 0 -ipadx 0 -ipady 0        return [list $retwidth $retheight]}proc clusterReCreate { frame } {        global canvas sysview        set retwidth 0        set retheight 0        set sitename [systemNameGet [clusterSystemFrameGet $frame]]        set clusterLabel [clusterLabelTextGet $frame]        $frame.l.label configure -text $clusterLabel        set labelWidth [expr \                         2*$canvas(medBd) + 2*$canvas(medLabelBd) + \                $canvas(medLabelFontWidth)*[string length $clusterLabel]]        set labelHeight [expr $canvas(medBd) + 2*$canvas(medLabelBd) \                                + $canvas(medLabelFontHeight)]        set footerHeader [clusterFooterHeaderGet $frame]        $frame.s.label configure -text $footerHeader        set footerWidth [expr \                                2*$canvas(medBd) + \                                2*$canvas(medLabelBd) + \                   $canvas(medLabelFontWidth)*[string length $footerHeader]]        set footerHeight [expr 2*$canvas(medLabelBd) + \                               $canvas(medBd) + \                               2*$canvas(medLabelFontHeight)]        set canvasFrameWidth [expr $canvas(medBd) + \                                   2*$canvas(medCanvasBd)]        set canvasFrameHeight [expr 2*$canvas(medCanvasBd)]        set totwidth 0        set totheight 0        set x1 0        set y1 0        set pw 0        set ph 0	if {$footerWidth > $labelWidth} {        	set maxWidth $footerWidth	} else {        	set maxWidth $labelWidth	}        set nlist [clusterNodesListGet $frame]        set llen [llength $nlist]	set prevNode ""	set rowNodes ""        set j 0        for {set i 0} {$i < $llen} {incr i} {                set nodeinfo [lindex $nlist $i]                set nodename [lindex $nodeinfo 0]                set nodelabel $nodename                set nodetype [lindex $nodeinfo 1]                catch {frame $frame.m.c.$i -borderwidth 0}                nodeNamePut $frame.m.c.$i $nodename                nodeLabelPut $frame.m.c.$i $nodelabel                nodeViewTypePut $frame.m.c.$i $sysview($sitename)                nodeTypePut $frame.m.c.$i $nodetype                $frame.m.c.canvas delete $frame.m.c.$i                set pos [nodeReCreate $frame.m.c.$i]                set w [lindex $pos 0]                set h [lindex $pos 1]                if { $i == 0 } {			set rowNodes $frame.m.c.$i                        incr totwidth $w                        incr totheight $h                } elseif { [expr $j % $canvas(clusterNumBoxesPerRow)] == 0 || \                           [expr $totwidth + $w] > $canvas(clusterMaxWidth) } {                        set rowOffset [expr ($maxWidth - $totwidth) / 2]                        if {$rowOffset > 0} {                                foreach fr $rowNodes {                                        nodeOffsetWidthPut $fr $rowOffset                                }                        }                        set rowNodes $frame.m.c.$i                        set x1 0                        incr y1 $ph                        incr totheight $h                        if {$totwidth > $maxWidth} {                                set maxWidth $totwidth                        }                        set totwidth $w                        set j 0                } else {			lappend rowNodes $frame.m.c.$i                        # same row                        incr x1 $pw                        incr totwidth $w                        if {[string compare $prevNode ""] != 0} {                                nodeNextPut $prevNode $frame.m.c.$i                        }                }                pack forget $frame.m.c.$i                set wid [$frame.m.c.canvas create window $x1 $y1 \                                -window $frame.m.c.$i -anchor nw \                                -tags $frame.m.c.$i -width $w -height $h]                nodeXposPut $frame.m.c.$i $x1                nodeYposPut $frame.m.c.$i $y1                set pw $w                set ph $h		set prevNode $frame.m.c.$i                incr j        }        if {[string compare $rowNodes ""] != 0} {                set rowOffset [expr ($maxWidth - $totwidth) / 2]                if {$rowOffset > 0} {                        foreach fr $rowNodes {                                nodeOffsetWidthPut $fr $rowOffset                        }                }        }        if {$maxWidth > $totwidth} {                set totwidth $maxWidth        }        $frame.m.x.xscroll configure -orient horizontal \                        -width $canvas(medLabelFontHeight) \                        -command [list $frame.m.c.canvas xview]        set scrollHeight [expr \                2*[lindex [$frame.m.x.xscroll configure -borderwidth] end] \                + [lindex [$frame.m.x.xscroll configure -width] end]]        $frame.m.x configure -height $scrollHeight        $frame.m.y.yscroll configure -orient vertical \                                -width $canvas(medLabelFontHeight) \                                -command [list $frame.m.c.canvas yview]        set scrollWidth [expr $canvas(medBd) + \                2*[lindex [$frame.m.y.yscroll configure -borderwidth] end]  \               + [lindex [$frame.m.y.yscroll configure -width] end]]        $frame.m.y configure -width $scrollWidth        clusterScrollRegionWidthPut $frame $totwidth        clusterScrollRegionHeightPut $frame $totheight        set scrollRegionWidth [clusterScrollRegionWidthGet $frame]        set scrollRegionHeight [clusterScrollRegionHeightGet $frame]        set retwidth [expr $canvasFrameWidth + $totwidth + $scrollWidth]        if {$labelWidth > $retwidth && \                $labelWidth > $footerWidth} {                set retwidth $labelWidth        } elseif {$footerWidth > $retwidth && \                $footerWidth > $labelWidth} {                set retwidth $footerWidth        }        clusterCanvasWidthPut $frame $totwidth        clusterDisplayWidthPut $frame $retwidth        set canvWidth $totwidth        if { $retwidth  >  $canvas(clusterMaxWidth) } {                set canvWidth  [expr $canvas(clusterMaxWidth) - \                                     $canvasFrameWidth - $scrollWidth]                if {$canvWidth > 0} {                        clusterDisplayWidthPut $frame $canvas(clusterMaxWidth)                        clusterCanvasWidthPut $frame $canvWidth                        set retwidth $canvas(clusterMaxWidth)                }        }        set retheight [expr $labelHeight + $canvasFrameHeight + $totheight + \                                                $scrollHeight + $footerHeight]        clusterCanvasHeightPut $frame $totheight        clusterDisplayHeightPut $frame $retheight        set canvHeight $totheight        if { $retheight >  $canvas(clusterMaxHeight) } {                set canvHeight [expr    $canvas(clusterMaxHeight) - \                                        $labelHeight - $canvasFrameHeight - \                                        $scrollHeight - $footerHeight]                if {$canvHeight > 0} {                        clusterDisplayHeightPut $frame $canvas(clusterMaxHeight)                        clusterCanvasHeightPut $frame $canvHeight                        set retheight $canvas(clusterMaxHeight)                }        }       set canvWidth [clusterCanvasWidthGet $frame]       set canvHeight [clusterCanvasHeightGet $frame]       $frame.m.c.canvas configure -width $canvWidth -height $canvHeight \                -xscrollcommand [list $frame.m.x.xscroll set] \                -yscrollcommand [list $frame.m.y.yscroll set] \                -scrollregion [list 0 0 $scrollRegionWidth $scrollRegionHeight]        catch {pack forget $frame.m.x.xscroll}        if {$canvWidth > 0 && $scrollRegionWidth > $canvWidth} {                catch {pack $frame.m.x.xscroll -side bottom -fill x -padx 0 \                -pady 0 -ipadx 0 -ipady 0}        }        catch {pack forget $frame.m.y.yscroll}        if {$canvHeight > 0 && $scrollRegionHeight > $canvHeight} {                catch {pack $frame.m.y.yscroll -side right -fill y -padx 0 \                                        -pady 0 -ipadx 0 -ipady 0 -anchor nw}        }        return [list $retwidth $retheight]}proc clusterRepack {clusterframe} {        global canvas	if {[string compare $clusterframe ""] == 0} {		return	}        set systemc [systemCanvasGet [clusterSystemFrameGet $clusterframe]]        if {[string compare $systemc ""] == 0} {                return        }        set label [clusterLabelGet $clusterframe]        set labelf [clusterLabelFrameGet $clusterframe]        set canv [clusterCanvasGet $clusterframe]        set canvf [clusterCanvasFrameGet $clusterframe]        set xscroll [clusterXscrollGet $clusterframe]        set xscrollf [clusterXscrollFrameGet $clusterframe]        set yscroll [clusterYscrollGet $clusterframe]        set yscrollf [clusterYscrollFrameGet $clusterframe]        set sbar [clusterStatusBarGet $clusterframe]        set sbarf [clusterStatusBarFrameGet $clusterframe]        set mframe [clusterMainFrameGet $clusterframe]        set footerHeader [lindex [$sbar configure -text] end]        set footerWidth [expr 2*$canvas(medBd) + \                              2*$canvas(medLabelBd) + \           $canvas(medLabelFontWidth)*[string length $footerHeader]]        set dispWidth [clusterDisplayWidthGet $clusterframe]        if {$footerWidth > $dispWidth} {                set diff [expr ($footerWidth - $dispWidth) * $canvas(nodeScaleFactor)]                clusterPropagateOffset $clusterframe $diff                clusterAddWidth $clusterframe $diff                set dispWidth $footerWidth        }        set dispHeight [clusterDisplayHeightGet $clusterframe]        set canvWidth [clusterCanvasWidthGet $clusterframe]        set canvHeight [clusterCanvasHeightGet $clusterframe]        set scrollRegionWidth [clusterScrollRegionWidthGet $clusterframe]        set scrollRegionHeight [clusterScrollRegionHeightGet $clusterframe]        $systemc delete $clusterframe        catch {pack forget $label $sbar $labelf $mframe $sbarf $xscrollf $yscrollf $canvf}        if {$canvWidth > 0 && $scrollRegionWidth > $canvWidth} {                catch {pack $xscroll -side bottom -fill x -padx 0 -pady 0 -ipadx 0 -ipady 0}        } else {                catch {pack forget $xscroll}        }        if {$canvHeight > 0 && $scrollRegionHeight > $canvHeight} {                catch {pack $yscroll -side right -fill y -padx 0 -pady 0 -ipadx 0 -ipady 0 -anchor nw}        } else {                catch {pack forget $yscroll}        }        $canv configure -width $canvWidth -height $canvHeight \                -scrollregion [list 0 0 $scrollRegionWidth $scrollRegionHeight]        pack $label -fill both -expand true -padx 0 -pady 0 -ipadx 0 -ipady 0        pack $canv -fill both -expand true -padx 0 -pady 0 -ipadx 0 -ipady 0        pack $xscrollf -side bottom -fill x -padx 0 -pady 0 -ipadx 0 -ipady 0        pack $yscrollf -side right -fill y -padx 0 -pady 0 -ipadx 0 -ipady 0        pack $canvf -expand true -fill both -padx 0 -pady 0 -ipadx 0 -ipady 0        pack $sbar -fill both -expand true -padx 0 -pady 0 -ipadx 0 -ipady 0        pack $labelf $mframe $sbarf -side top -anchor nw -fill both \                -expand true -padx 0 -pady 0 -ipadx 0 -ipady 0        set dispWidth  [clusterDisplayWidthGet  $clusterframe]        set dispHeight [clusterDisplayHeightGet $clusterframe]        $systemc create window [clusterXposGet $clusterframe] \                        [clusterYposGet $clusterframe] \                        -window $clusterframe -anchor nw \                        -tags $clusterframe \                        -width  [expr $dispWidth + 2*$canvas(medBd)] \                        -height $dispHeight}proc clusterStatsUpdate {clusterf status oper} {	switch -exact -- $status {            OFFLINE {                clusterOfflinePoolPut $clusterf \                            [expr [clusterOfflinePoolGet $clusterf] $oper 1]            }            DOWN {                clusterDownPoolPut $clusterf \                            [expr [clusterDownPoolGet $clusterf] $oper 1]            }            FREE {                clusterAvailPoolPut $clusterf \                            [expr [clusterAvailPoolGet $clusterf] $oper 1]            }            INUSE-SHARED        -            INUSE-EXCLUSIVE     {                clusterUsePoolPut $clusterf \                            [expr [clusterUsePoolGet $clusterf] $oper 1]            }            RESERVED {                clusterReservedPoolPut $clusterf \                            [expr [clusterReservedPoolGet $clusterf] $oper 1]            }            NOINFO {                clusterUnkPoolPut $clusterf \                                [expr [clusterUnkPoolGet $clusterf] $oper 1]            }	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -