BCI Interface - CustomWizard

Description

In BBj 13.00 and higher, the interface com.basis.install.CustomWizard provides the ability to add a BCI custom wizard.

Syntax

Return Value

Method

void

create(CustomWizardData p_customWizardData)

void

run()

Example

custominstall.xml

<?xml version="1.0" encoding="UTF-8"?>
<Suites>
    <Suite name="ChileCo">
       <CustomAction name="com.chileco.install.ChileCoStartInstallCustomAction" occurs="startinstall"/>
   </Suite>
</Suites>

ChileCoStartInstallCustomAction.java

/*
 * ChileCoInstallerStartCustomAction.java
 *
 * Created on October 28, 2011, 11:24 AM
 */
package com.chileco.install;
import com.basis.install.StartInstallCustomAction;
import com.basis.install.StartInstallCustomActionData;
import com.basis.install.CustomWizard;
public class ChileCoStartInstallCustomAction implements StartInstallCustomAction
{
    /* Creates a new instance of ChileCoStartInstallCustomAction */
    public ChileCoStartInstallCustomAction()
    {
    }
    
    /* Method called when action is to be run */
    public void execute(StartInstallCustomActionData p_startInstallCustomActionData)
    {
        ChileCoWizard chilecoWizard = new ChileCoWizard();
        p_startInstallCustomActionData.addCustomWizard(0,chilecoWizard);
    }
    
}

 

ChileCoWizard.java

/*
 * ChileCoWizard.java
 *
 * Created on October 28, 2011, 11:24 AM
 */
package com.chileco.install;
import com.basis.install.CustomWizard;
import com.basis.install.CustomWizardData;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ChileCoWizard implements CustomWizard, ActionListener
{
    private CustomWizardData m_customWizardData;
    private JFrame           m_licenseWindow;
    private JButton          m_nextButton;
    private JButton          m_exitButton;
   
    /* Creates a new instance of ChileCoWizard */
    public ChileCoWizard()
    {
    }
    /* Method called when wizard is to be created */
    public void create(CustomWizardData p_customWizardData)
    {
        m_customWizardData = p_customWizardData;
        if (p_customWizardData.isGUI())
        {
            // create the license window
            m_licenseWindow = new JFrame("Chile Co");
            
            // set the font
            m_licenseWindow.setFont(p_customWizardData.getFont());
 
            /* get the content pane */
            Container contentPane = m_licenseWindow.getContentPane();
            contentPane.setLayout(new BorderLayout());
            /* get the backgound panel */
            JPanel backgroundPanel = p_customWizardData.getWizardBackgroundPanel();
            backgroundPanel.setLayout(new BorderLayout());
            /* create the control panel */
            JPanel controlPanel = new JPanel();
            controlPanel.setLayout(null);
            controlPanel.setOpaque(false);
 
            // create the necessary controls */
            JLabel licAgreement = new JLabel("This is ChileCo License Agreeement...");
            licAgreement.setBounds(10,100,300,25);
            controlPanel.add(licAgreement);
            
            /* add the control panel */
            backgroundPanel.add(controlPanel, BorderLayout.CENTER);
            /* create the button control panel */
            JPanel buttonControlPanel = new JPanel();
            buttonControlPanel.setOpaque(false);
            buttonControlPanel.setLayout(new BorderLayout());
            /* create the button panel */
            JPanel buttonPanel = new JPanel();
            buttonPanel.setOpaque(false);
            /* create necessary buttons */
            m_exitButton = new JButton("Exit");
            m_exitButton.addActionListener(this);
            buttonPanel.add(m_exitButton);
            m_nextButton = new JButton("Next >");
            m_nextButton.addActionListener(this);
            buttonPanel.add(m_nextButton);
            /* add the button panel to the button control panel */
            buttonControlPanel.add(buttonPanel,BorderLayout.EAST);
            /* add the control button panel to the background panel */
            backgroundPanel.add(buttonControlPanel, BorderLayout.SOUTH);
            /* add the background panel to the main content pane */
            contentPane.add(backgroundPanel, BorderLayout.CENTER);
        }
    }
    
    /* Method called when wizard is to be run */
    public void run()
    {
        if (m_licenseWindow != null)
        {
            // Set window placement and dimensions
            m_licenseWindow.setBounds(m_customWizardData.getX(),
                                      m_customWizardData.getY(),
                                      m_customWizardData.getWidth(),
                                      m_customWizardData.getHeight());
            // Show the dialog
            m_licenseWindow.setVisible(true);
        }
    }
    
 
    private WindowListener closeWindow = new WindowAdapter()
    {
        public void windowClosing(WindowEvent e)
        {
            e.getWindow().dispose();
            m_customWizardData.exit();
        }
    };
         
    public void actionPerformed(java.awt.event.ActionEvent e)
    {
        if (e.getSource() == m_nextButton)
        {
            m_licenseWindow.setVisible(false);
            m_customWizardData.next();
        }
        else if (e.getSource() == m_exitButton)
        {
            m_licenseWindow.dispose();
            m_customWizardData.exit();
        }
            
    }
}

 

See Also

BCI Class - CustomWizardData