📄 compslct.tcl
字号:
## This procedure will set dupRetVal to 1 and close the duplicate product# dialog box## SYNOPSIS# .tS# onDupProdSelComp# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc onDupProdSelComp {} { global dupRetVal set dupRetVal 1 windowClose duplicate_products_warn}############################################################################### dupProdDlgInit - initialize values for dupProdDlg dialog box## This procedure will initialize values for dupProdDlg dialog box## SYNOPSIS# .tS# dupProdDlgInit# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc dupProdDlgInit {} { global setupVals foreach item $setupVals(duplicateProducts) { set lst [format %s\r\n $item] append prodList $lst } controlTextSet duplicate_products_warn.dupProdText $prodList controlSelectionSet duplicate_products_warn.dupProdText 0 0}############################################################################### dupProdDlg - display warnings if products are being re-installed## This procedure will display warnings if products are being re-installed## SYNOPSIS# .tS# dupProdDlg# .tE## PARAMETERS: N/A## RETURNS: dupRetVal which is set to 1 by onDupProdSelComp or# 0 by onDupProdContinue## ERRORS: N/A#proc dupProdDlg {} { global setupVals global ctrlVals global dupRetVal set controls [list \ [list label -title \ "Setup has detected that the following products \ were previously installed in [destDirGet] \ and you are about to re-install them:" \ -name dupProdLabel \ -xpos 7 -ypos 9 -width 186 -height 30] \ [list text -name dupProdText -border \ -xpos 7 -ypos 37 -width 185 -height 40 \ -readonly -multiline -vscroll] \ [list label -title [strTableGet 1137_DUP_PRODUCT_WARN] \ -name dupProdLabel2 \ -xpos 7 -ypos 84 -width 186 -height 40] \ [list button -title "&Continue" -name continue -default \ -xpos 8 -ypos 129 -width 67 -height 14 \ -callback onDupProdContinue] \ [list button -title "&Select Products" -name cancelButt \ -xpos 127 -ypos 129 -width 67 -height 14 \ -callback onDupProdSelComp ] \ ] dialogCreate \ -name duplicate_products_warn \ -title Setup\ -init dupProdDlgInit \ -parent $ctrlVals(parentDialog) \ -helpfile $setupVals(setupHelp) \ -width 200 -height 150 \ -controls $controls return $dupRetVal}############################################################################### pageProcess(compSelect) - process inputs from compSelect page## This procedure will process inputs from compSelect page## SYNOPSIS# .tS# pageProcess(compSelect)# .tE## PARAMETERS: N/A## RETURNS: 0 if the user needs to re-select the products# 1 if the user is allowed to continue with installation# 2 if user decides to quit## ERRORS: N/A#proc pageProcess(compSelect) {} { global ctrlVals global setupVals set torVer "Tornado 101" set retVal 1 # check to see if installing over a T101 tree and prevent it. set t101File "host/resource/tcl/app-config/Tornado/01WindCFG.win32.tcl" set t101File [file join [destDirGet] $t101File] if {[file exists $t101File]} { # don't want the user to overwrite existing t1 tree # test automation if { $ctrlVals(useInputScript) } { autoSetupLog "\tError: Attempt to install over an \ existing $torVer tree. \ Please choose a new installation path." applicationExit return 0 } # warn and prevent the user from proceeding with installation preventInstallation $torVer # pop the user back to the destination path screen return [calcPage destDir] } # check for a core installation and previously installed products checkForPreviouslyInstalledProds if {$setupVals(dupCoreInstall)} { # overwrite existing directory automatically in autoInstall mode # test automation if { $ctrlVals(useInputScript) } { set retVal 1 } else { messageBeep catch {dialog base_install_warn "Setup" \ [strTableGet 4000_BASE_INSTALL_WARN] \ question 0} result if {$result == 1 || $result == ""} { return [calcPage destDir] } else { set retVal 1 } } } set dupProds $setupVals(duplicateProducts) if {[lindex $dupProds 0] != ""} { # present dialog to request permission to overwrite existing products # test automation if { $ctrlVals(useInputScript) } { autoSetupLog "\tAllowing overwrite of existing products." } else { messageBeep if {[dupProdDlg] == 1} { return 0 } } } set reqSpace [controlValuesGet $ctrlVals(mainWindow).reqSpace] set availSpace [controlValuesGet $ctrlVals(mainWindow).availSpace] if {[llength [cdInfoGet selectedProdIndexList]] == 0} { messageBox [strTableGet 1151_COMP_SELECT_WARN] set retVal 0 } # display the warnings file for each selected product foreach prodIndex [cdInfoGet selectedProdIndexList] { searchAndProcessSection WarningsFile [chooseInfFile $prodIndex] } if {$reqSpace > $availSpace} { # test automation if { $ctrlVals(useInputScript) } { autoSetupLog "\tWarning: not enough disk space." set i 1 } else { messageBeep set i [dialog ok_proceed_exit "Setup" \ [strTableGet 1150_COMP_SELECT_WARN]] } switch $i { 0 { set retVal [calcPage destDir] } 1 { set retVal 1 } 2 { quitCallback } } } # this is done now for unix since the folderSelect page is not used # for unix if {[isUnix]} { global tornadoInstalled foreach prodIndex [cdInfoGet selectedProdIndexList] { set productName [productInfoGet name $prodIndex] if {$productName == "tornado"||$productName == "tornado-vxsim"} { set tornadoInstalled 1 } } if ![info exists tornadoInstalled] { pageRemove remoteRegistryHost pageRemove compatibility pageRemove howTo } } return $retVal}############################################################################### partListDlg - create dialog box for displaying parts within each Tornado# product## This procedure will create dialog box for displaying parts within each# Tornado product## SYNOPSIS# .tS# partListDlg# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc partListDlg {} { global ctrlVals global setupVals dialogCreate \ -name partListDlgHnd \ -title "Select Parts" \ -width 263 -height 195 \ -helpfile $setupVals(setupHelp) \ -init partListDlgInit \ -parent $ctrlVals(mainWindow) \ -exit checkProductDependency \ -controls { \ { button -title "Cancel" -name cancelButt \ -xpos 206 -ypos 173 -width 50 -height 14 \ -callback onPartListDlgCancel \ } { button -title "OK" -name okButt -default \ -xpos 150 -ypos 173 -width 50 -height 14 \ -callback onPartListDlgOk \ } { checklist -name optionList \ -xpos 7 -ypos 45 -width 249 -height 83 \ -callback onClickPartCheckList \ } { label -title "Information" -name Information \ -xpos 12 -ypos 130 -w 50 -height 8 \ } { frame -name frm1 \ -xpos 7 -ypos 140 -width 249 -height 27 \ } { label -title "Space Required:" -name spaceRequireLabel \ -xpos 16 -ypos 149 -width 170 -height 8 \ } { label -title "In the part list below click \ to select items you want to install or\ clear items you don't want to install." \ -name label3 \ -xpos 7 -ypos 7 -width 249 -height 18 \ } { label -title "Parts:" -name label2 \ -xpos 8 -ypos 31 -width 86 -height 8 \ } }}############################################################################### partListDlgInit - initialize partListDlg by calling partGuiUpdate## This procedure will initialize partListDlg by calling partGuiUpdate## SYNOPSIS# .tS# partListDlgInit# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc partListDlgInit {} { partGuiUpdate 0}############################################################################### currSelProdIndexSet - save the index of a product in a global array ctrlVals## This procedure will save the index of a product in a global array ctrlVals## SYNOPSIS# .tS# currSelProdIndexSet <index># .tE## PARAMETERS:# .IP index# a indexing number to the product list## RETURNS: N/A## ERRORS: N/A#proc currSelProdIndexSet {index} { global ctrlVals set ctrlVals(currSelProdIndex) $index}############################################################################### currSelProdIndexGet - obtain the current selected product's index## This procedure will obtain the current selected product's index## SYNOPSIS# .tS# currSelProdIndexGet <info># .tE## PARAMETERS:# .IP info## RETURNS: N/A## ERRORS: N/A#proc currSelProdIndexGet {{info obj}} { global objGuiMap ctrlVals if {"$info" != "obj"} { set retVal $ctrlVals(currSelProdIndex) } else { set retVal $objGuiMap(gui2prod,$ctrlVals(currSelProdIndex)) } return $retVal}############################################################################### onClickPartCheckList - is invoked when a part is selected from the# partListDlg dialog box and it calls helper# procedures to update the GUI and the object## This procedure is a callback when a part is selected from the partListDlg# dialog box and it calls helper procedures to update the GUI and the object### SYNOPSIS# .tS# onClickPartCheckList# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc onClickPartCheckList {} { partObjUpdate partGuiSizeUpdate}############################################################################### partObjUpdate - update the Tornado part object## This procedure will update the Tornado part object## SYNOPSIS# .tS# partObjUpdate# .tE## PARAMETERS: N/A## RETURNS: N/A## ERRORS: N/A#proc partObjUpdate {} { global ctrlVals objGuiMap set i 0 foreach itemState \ [controlItemPropertyGet partListDlgHnd.optionList -checkstate] { partInfoSet instFlag $objGuiMap(gui2part,$i) $itemState incr i }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -