6.3   Installing a New Application in Tornado

Tornado applications can be launched from the host command shell, as you did when testing this application. However, it is more convenient to launch them from the launcher (on UNIX hosts) or from the launch toolbar (on Windows hosts). The next sections explain how to install a new application.

6.3.1   The Tornado Launcher (UNIX Hosts)

Once the new Tornado application is working, you can add it to the Tornado launcher. To do this, install a Tcl resource file containing the command that adds a button to the launcher in the Launch directory. The name of this file is related to the application you are starting and is prefixed with "01" so that it will be sourced with other applications early in the initialization process. The complete path to the new resource file is:

installDir/host/resource/tcl/app-config/Launch/01Wtxapp.tcl.

The Tcl program shown in Example 6-2 uses the objectCreate command to create a new button in the Tornado launcher. This button is associated with the Tcl routine launchWtxapp that gets the name of the target server currently selected in the launcher target window and passes it as a parameter to wtxapp.

The second parameter of objectCreate is the name of a bitmap file to be displayed as an icon at the bottom of the launcher. Add the bitmap file to the resource bitmap directory for the launcher. In this example the complete path to the bitmap is installDir/host/resource/bitmap/Launch/objects/wtxapp. This file can be created with an icon editor like bitmap from the X11 distribution. For more information about objectCreate, see the online material under Tornado API Reference>GUI Tcl Library (UNIX).

Example 6-2:  Install wtxapp in Launcher

# Wtxapp.tcl - simple wtx application support for launch 
# 
# modification history 
# -------------------- 
# 01a,25jul95,p_m  written 
#*/ 
 
# Add a wtxapp activation button to bottom of the launcher 
# The associated icon is the default icon (WRS logo) if there is not a 
# bitmap file called "wtxapp" in  
# installDir/host/resource/bitmaps/Launch/objects.  
 
objectCreate app wtxapp    wtxapp       {launchWtxapp}
######################################################################## # # wtxapp launch on selected target server #
proc launchWtxapp {} { global env global tgtsvr_selected global tgtsvr_user global tgtsvr_lock
# check for a selected target server
if {$tgtsvr_selected == ""} { noticePost error "Select a target first." return }
# check if target server is locked
if {$tgtsvr_lock == "locked"} { noticePost error "Target server locked by $tgtsvr_user." return }
# check if we have access authorization on the selected target server if {$tgtsvr_lock == "unauthorized"} { noticePost error "Access not authorized." return } exec wtxapp $tgtsvr_selected & }

6.3.2   The Launch Toolbar (Windows Hosts)

Once the new Tornado application is working, you can add it to the Tornado launch toolbar. To do this, install a Tcl resource file containing a command to add a button to the toolbar in the Tornado directory. The name of this file is related to the application you are starting and is prefixed with "01"so that it will be sourced with other applications early in the initialization process. The complete path to the new resource file is:

installDir\host\resource\tcl\app-config\Tornado\01Wtxapp.win32.tcl

The Tcl program shown in Example 6-3 uses the controlCreate command to create a new button in the Tornado launcher. This button is associated with the launchWtxapp Tcl routine that gets the name of the target server currently selected in the launcher target window and passes it as a parameter to wtxapp.

The -bitmap parameter of controlCreate is the name of a bitmap file to be displayed as an icon on the button. Add the bitmap file to the resource bitmap directory for the toolbar. In this example the complete path to the bitmap is installDir\host\resource\bitmaps\Launch\controls\wtxapp.bmp. This file can be created with an icon editor such as Microsoft Paintbrush. For more information about controlCreate see the online material under Tornado API Reference>GUI Tcl Library (Windows).

Example 6-3:  Install wtxapp on Launch Toolbar

# Wtxapp.win32.tcl - simple wtx application support for launcher 
# 
# modification history 
# -------------------- 
# 01a, 05may96, j_k written 
#*/ 
 
# Add a wtxapp activation button to the launch toolbar 
# The associated bitmap will be the default bitmap (WRS logo) if 
# there is no bitmap file called "wtxapp" in 
# installDir/host/resource/bitmaps/Tornado, no bitmap appears 
 
set wtxappBitmap [wtxPath host resource bitmaps Tornado]Wtxapp.bmp 
controlCreate launch [list toolbarbutton -name wtxapp \ 
                    -callback launchWtxapp \ 
                    -tooltip "Launch Wtxapp" \ 
                    -bitmap $wtxappBitmap]
############################################################################ # wtxapp launch on selected target server # proc launchWtxapp {} { global env # first get the name of the selected target set tgtsvr_selected [selectedTargetGet] if {$tgtsvr_selected == ""} { messageBox -stopicon "Select a target first." return } # Then try to attach to the tool without any errors. # If any, return the error to be displayed for the user. if {[catch {wtxToolAttach $tgtsvr_selected wtxapp} attachRetVal]} { messageBox -stopicon "Tool attach failed. $attachRetVal" return } # Next try to get the target server information. # If any errors, report to the user if [catch "wtxTsInfoGet" info] { if {[lindex $info 3] == "(SVR_TARGET_NOT_ATTACHED)"} { wtxToolDetach messageBox -stopicon "Target not attached" return } messageBox -stopicon "Couldn't obtain target server infomation" return } # If we get here, looks pretty good set tgtsvr_user [lindex $info 8] set tgtsvr_lock [lindex $info 11] # Now check if target server is locked if {$tgtsvr_lock == "locked"} { messageBox -stopicon "Target server locked by $tgtsvr_user." return } # Now check if we have access authorization on the selected target server if {$tgtsvr_lock == "locked"} { messageBox -stopicon "Access not authorized." return }
# Finally since everything looks good lets launch the target server if {[catch {toolLaunch "Wtxapp" "wtxapp $tgtsvr_selected" \ $env(WIND_BASE)/host/x86-win32/bin 0 0 0 0 0 0} result]} { puts "\nError: wtxapp launch failed: '$result'\n" }
}