📄 compslct.tcl
字号:
}############################################################################### partGuiUpdate - update the partListDlg GUI## This procedure will update the partListDlg GUI## SYNOPSIS# .tS# partGuiUpdate <guiPartIndex># .tE## PARAMETERS:# .IP guiPartIndex# the index of selected part## RETURNS: N/A## ERRORS: N/A#proc partGuiUpdate {guiPartIndex} { partGuiChkLstUpdate $guiPartIndex partGuiSizeUpdate}############################################################################### partGuiChkLstUpdate - update the partListDlg GUI## This procedure will update the partListDlg GUI## SYNOPSIS# .tS# partGuiChkLstUpdate <guiPartIndex># .tE## PARAMETERS:# .IP guiPartIndex# the index of selected part## RETURNS: N/A## ERRORS: N/A#proc partGuiChkLstUpdate {guiPartIndex} { global objGuiMap global ctrlVals set prodIndex [currSelProdIndexGet] if {"$prodIndex" == ""} { windowClose partListDlgHnd messageBox "Please select a product first" } else { set chkList {} set i 0 foreach partIndex [productInfoGet partIndexList $prodIndex] { set objGuiMap(gui2part,$i) $partIndex set objGuiMap(part2gui,$partIndex) $i set size [partInfoGet size $partIndex] set formatMbSize [format "%7s MB" [byteToMbyte $size]] set desc " [partInfoGet desc $partIndex]\t$formatMbSize " lappend chkList [list $desc [partInfoGet instFlag $partIndex]] incr i } controlValuesSet partListDlgHnd.optionList $chkList controlFocusSet partListDlgHnd.optionList controlSelectionSet partListDlgHnd.optionList -noevent $guiPartIndex }}############################################################################### partGuiSizeUpdate - update the size of each Tornado part## This procedure will update the size of each Tornado part## SYNOPSIS# .tS# partGuiSizeUpdate# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc partGuiSizeUpdate {} { set totalSize [byteToMbyte [productInfoGet size [currSelProdIndexGet]]] controlValuesSet partListDlgHnd.spaceRequireLabel \ "Space Required: $totalSize MB"}############################################################################### onPartListDlgOk - callback when OK button is pushed and close partListDlg# dialog box and save changes## This procedure is a callback whne OK button is pushed and# close partListDlg dialog box and save changes## SYNOPSIS# .tS# onPartListDlgOk# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc onPartListDlgOk {} { global objGuiMap set prodIndex [currSelProdIndexGet] windowClose partListDlgHnd switch [productInfoGet stateInfo $prodIndex] { changedIncr { productInfoSet instFlag \ [partInfoGet parent $objGuiMap(gui2part,0)] 1 set desc [productInfoGet desc $prodIndex] set hostType [windHostTypeGet] set prodHostType [prodHostTypeGet $desc] if {[productInfoGet instFlag $prodIndex]} { if {$hostType != $prodHostType && $prodHostType != "unknown"} { set msg "The product, $desc, is not meant for installation \ on this host type of $hostType.\nContinuing with the \ installation may lead to an incomplete installation \ due to missing host tools." dialog ok "SETUP" $msg } } } changedToNone { productInfoSet instFlag \ [partInfoGet parent $objGuiMap(gui2part,0)] 0 } } productGuiChkLstUpdate [currSelProdIndexGet gui] productInfoSet stateCommit [currSelProdIndexGet] productInfoSet childStateCommit [currSelProdIndexGet] productGuiSizeUpdate}############################################################################### onPartListDlgCancel - callback when cancel button is pushed and restore# the previous settings## This procedure## SYNOPSIS# .tS# onPartListDlgCancel# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc onPartListDlgCancel {} { windowClose partListDlgHnd productInfoSet childStateRestore [currSelProdIndexGet]}############################################################################### detailShow - enable detail button if the Tornado product has subparts## This procedure will enable detail button if the Tornado product has subparts## SYNOPSIS# .tS# detailShow# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc detailShow {} { global productObj global ctrlVals set hasSubPart [expr [llength [productInfoGet partIndexList \ [currSelProdIndexGet]]] > 1] set numSubPart \ [llength [productInfoGet partIndexList [currSelProdIndexGet]]] if {$hasSubPart} { # add in indication of components/product selected set nCompSel 0 set totComps 0 foreach partIndex $productObj([currSelProdIndexGet],partIndexList) { if {"[partInfoGet instFlag $partIndex]" == "1"} { incr nCompSel } incr totComps } if {[productInfoGet instFlag [currSelProdIndexGet]] == 1} { controlValuesSet $ctrlVals(mainWindow).compSelected "You have \ selected $nCompSel out of $totComps components for this product." } else { controlValuesSet $ctrlVals(mainWindow).compSelected "You have \ selected 0 out of $totComps components for this product." } controlEnable $ctrlVals(mainWindow).partDetailButt 1 } else { # This is a single part product if {[productInfoGet instFlag [currSelProdIndexGet]] == 1} { controlValuesSet $ctrlVals(mainWindow).compSelected "You have \ selected 1 out of 1 components for this product." } else { controlValuesSet $ctrlVals(mainWindow).compSelected "You have \ selected 0 out of 1 components for this product." } controlEnable $ctrlVals(mainWindow).partDetailButt 0 } return $hasSubPart}############################################################################### drvIndexGet - return the driverObjects/Header product index if it exists# on the CD.## This procedure will returns the driverObjects/Header product index# if it exists on the CD.## SYNOPSIS# .tS# drvIndexGet# .tE## PARAMETERS:# .IP currentProdIndex# the current product index being selected or deselected## RETURNS: Returns the index of the driverObjects product if the index of the# driverObjec is same as that of the current selected product# else returns -1## ERRORS: N/A#proc drvIndexGet {currProdIndex} { global setupVals if {$setupVals(drvIndex) == -1} { return -1 } foreach drvObj $setupVals(drvIndex) { set index [lindex $drvObj 0] if {$index == $currProdIndex} { return $index } } return -1}############################################################################### drvArchGet - return the driverObjects/Header product arch if it exists# on the CD.## This procedure will return the driverObjects/Header product arch if it exists# on the CD.## SYNOPSIS# .tS# drvArchGet# .tE## PARAMETERS:# .IP currentProdIndex# the current product index being selected or deselected## RETURNS: Returns the arch of the driverObjects product if the index of the# driverObjec is same as that of the current selected product# else returns -1## ERRORS: N/A#proc drvArchGet {currProdIndex} { global setupVals if {$setupVals(drvIndex) == -1} { return -1 } foreach drvObj $setupVals(drvIndex) { set index [lindex $drvObj 0] if {$index == $currProdIndex} { return [lindex $drvObj 1] } } return -1}############################################################################### prodHostTypeGet - proc to return a host type string## SYNOPSIS# .tS# prodHostTypeGet# .tE## PARAMETERS: N/A## RETURNS: the hos type (a string) if it exists, else "unknown"## ERRORS: N/A#proc prodHostTypeGet {desc} { set descLen [string length $desc] set index [string first ":" $desc] set host [string range $desc [expr $index + 1] $descLen] set index [string first " x " $host] set host [string trim [string range $host 0 [expr $index - 1]]] switch -glob $host { solaris {set prodHostType sun4-solaris2} x86-win?? {set prodHostType x86-win32} Windows?? {set prodHostType x86-win32} hp9700 {set prodHostType parisc-hpux10} default {set prodHostType unknown} } # look for host specfic string in the description if {"$prodHostType" == "unknown" } { switch -glob $desc { *solaris* {set prodHostType sun4-solaris2} *x86-win* {set prodHostType x86-win32} *hp9700* {set prodHostType parisc-hpux10} *simsolaris* {set prodHostType sun4-solaris2} *simnt* {set prodHostType x86-win32} *simhppa* {set prodHostType parisc-hpux10} *SIMHPPA* {set prodHostType parisc-hpux10} } } return $prodHostType}############################################################################### onClickProdCheckList - callback procedure invoked when product is checked# on compSelect page## This procedure is a callback procedure invoked when product is checked# on compSelect page## SYNOPSIS# .tS# onClickProdCheckList# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc onClickProdCheckList {} { global ctrlVals global setupVals currSelProdIndexSet [controlSelectionGet $ctrlVals(mainWindow).optionList] set hasSubPart [detailShow] set currProdIndex [currSelProdIndexGet] if {[lindex [controlEventGet $ctrlVals(mainWindow).optionList] 0] == \ "chkchange"} { set newState [lindex \ [controlItemPropertyGet $ctrlVals(mainWindow).optionList \ -checkstate] [currSelProdIndexGet gui]] # determine if customer is trying to uncheck a driverObject/Header prod set drvIndex [drvIndexGet $currProdIndex] set drvArch [drvArchGet $currProdIndex] set drvObjRestored 0 if {[info exists setupVals(tornadoIndex)] && $drvIndex != -1} { foreach torObj $setupVals(tornadoIndex) { set tornadoSelected [isTornadoSelected [lindex $torObj 0]] if {$tornadoSelected && [lindex $torObj 1] == $drvArch} { set savedProdIndex -1 messageBox [strTableGet 5010_DRIVERS_INFO] -informationicon set index [guiMapCtrlIndexGet $drvIndex] controlItemPropertySet $ctrlVals(mainWindow).optionList \ -index $index -checkstate 1 set drvObjRestored 1 break } } } # warn user about non-native installations set desc [productInfoGet desc $currProdIndex] set hostType [windHostTypeGet] set prodHostType [prodHostTypeGet $desc] if {![productInfoGet instFlag $currProdIndex]} { if {$hostType != $prodHostType && $prodHostType != "unknown"} { set msg "The product, $desc, is not meant for installation on \ this host type of $hostType.\nContinuing with the \ installation may lead to an incomplete installation \ due to missing host tools." dialog ok "SETUP" $msg } } # commit the user's selection if {!$drvObjRestored} { set savedProdIndex $currProdIndex productInfoSet instFlag $currProdIndex $newState if {$newState && $hasSubPart} { productGuiChkLstUpdate [currSelProdIndexGet gui] } productGuiSizeUpdate $newState productInfoSet stateCommit $currProdIndex productInfoSet childStateCommit $currProdIndex } # check if product just selected is tornado-obj, if so we must # re-select the driver object products set drvObjRestored 0 if {[info exists setupVals(tornadoIndex)]} { foreach torObj $setupVals(tornadoIndex) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -