import java.awt.CardLayout;
import java.awt.Font;
import javax.swing.JLabel;

/*
 * TestGenerationWizard.java
 *
 * Created on October 20, 2003, 9:53 PM
 */

/**
 *
 * @author  Matt
 */
public class TestGenerationWizard extends javax.swing.JFrame {
    final private JLabel[] stepLabels;
    final private Font origFont, italFont;
    private int currentStep = 0;
    
    /** Creates new form TestGenerationWizard */
    public TestGenerationWizard() {
        initComponents();
        
        stepLabels = new JLabel[] {stepOneLabel, stepTwoLabel, stepThreeLabel, 
                stepFourLabel};
                
        for (int i = 1; i < stepLabels.length; i++) {
            stepLabels[i].setVisible(false);
        }
                
        origFont = stepLabels[0].getFont();
        italFont = new Font(origFont.getName(), origFont.getStyle() 
                | Font.ITALIC, origFont.getSize());
                
        stepLabels[0].setFont(italFont);
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    private void initComponents() {//GEN-BEGIN:initComponents
        java.awt.GridBagConstraints gridBagConstraints;

        mainPanel = new javax.swing.JPanel();
        stepListPanel = new javax.swing.JPanel();
        innerStepListPanel = new javax.swing.JPanel();
        stepsLabel = new javax.swing.JLabel();
        stepOneLabel = new javax.swing.JLabel();
        stepTwoLabel = new javax.swing.JLabel();
        stepThreeLabel = new javax.swing.JLabel();
        stepFourLabel = new javax.swing.JLabel();
        stepContentPanel = new javax.swing.JPanel();
        stepOne = new javax.swing.JPanel();
        testNameLabel = new javax.swing.JLabel();
        testNameField = new javax.swing.JTextField();
        modeSelectionLabel = new javax.swing.JLabel();
        jRadioButton1 = new javax.swing.JRadioButton();
        jRadioButton2 = new javax.swing.JRadioButton();
        stepTwo = new javax.swing.JPanel();
        classSelectionPanel = new javax.swing.JPanel();
        availableLabel = new javax.swing.JLabel();
        includedLabel = new javax.swing.JLabel();
        allRightButton = new javax.swing.JButton();
        oneRightButton = new javax.swing.JButton();
        oneLeftButton = new javax.swing.JButton();
        allLeftButton = new javax.swing.JButton();
        availablePane = new javax.swing.JScrollPane();
        availableList = new javax.swing.JList();
        includedPane = new javax.swing.JScrollPane();
        includedList = new javax.swing.JList();
        advancedButton = new javax.swing.JButton();
        stepThreeDescriptionLabel = new javax.swing.JLabel();
        stepThree = new javax.swing.JPanel();
        authorSelectionPanel = new javax.swing.JPanel();
        availableLabel1 = new javax.swing.JLabel();
        includedLabel1 = new javax.swing.JLabel();
        allRightButton1 = new javax.swing.JButton();
        oneRightButton1 = new javax.swing.JButton();
        oneLeftButton1 = new javax.swing.JButton();
        allLeftButton1 = new javax.swing.JButton();
        availablePane1 = new javax.swing.JScrollPane();
        availableList1 = new javax.swing.JList();
        includedPane1 = new javax.swing.JScrollPane();
        includedList1 = new javax.swing.JList();
        advancedButton1 = new javax.swing.JButton();
        stepFourDescriptionLabel = new javax.swing.JLabel();
        stepFour = new javax.swing.JPanel();
        trueFalseAmountLabel = new javax.swing.JLabel();
        multipleChoiceAmountLabel = new javax.swing.JLabel();
        shortResponseAmountLabel = new javax.swing.JLabel();
        essayAmountLabel = new javax.swing.JLabel();
        programmingAmountLabel = new javax.swing.JLabel();
        trueFalseAmountField = new javax.swing.JTextField();
        multipleChoiceAmountField = new javax.swing.JTextField();
        shortResponseAmountField = new javax.swing.JTextField();
        essayAmountField = new javax.swing.JTextField();
        programmingAmountField = new javax.swing.JTextField();
        enterQuantityLabel = new javax.swing.JLabel();
        advancedLengthButton = new javax.swing.JButton();
        lengthLabel = new javax.swing.JLabel();
        lengthField = new javax.swing.JTextField();
        pointValueLabel = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        buttonPanel = new javax.swing.JPanel();
        cancelButton = new javax.swing.JButton();
        previousButton = new javax.swing.JButton();
        nextButton = new javax.swing.JButton();
        finishButton = new javax.swing.JButton();

        setTitle("Test Generation Wizard");
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        mainPanel.setLayout(new java.awt.BorderLayout());

        mainPanel.setPreferredSize(new java.awt.Dimension(550, 300));
        stepListPanel.setLayout(new java.awt.BorderLayout());

        stepListPanel.setBackground(new java.awt.Color(255, 255, 255));
        stepListPanel.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.RAISED));
        innerStepListPanel.setLayout(new java.awt.GridBagLayout());

        innerStepListPanel.setBackground(new java.awt.Color(255, 255, 255));
        stepsLabel.setText("Steps");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 15);
        innerStepListPanel.add(stepsLabel, gridBagConstraints);

        stepOneLabel.setText("Enter test name");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 10);
        innerStepListPanel.add(stepOneLabel, gridBagConstraints);

        stepTwoLabel.setText("Select classes");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10);
        innerStepListPanel.add(stepTwoLabel, gridBagConstraints);

        stepThreeLabel.setText("Select question authors");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridy = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10);
        innerStepListPanel.add(stepThreeLabel, gridBagConstraints);

        stepFourLabel.setText("Specify test length");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridy = 5;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10);
        innerStepListPanel.add(stepFourLabel, gridBagConstraints);

        stepListPanel.add(innerStepListPanel, java.awt.BorderLayout.NORTH);

        mainPanel.add(stepListPanel, java.awt.BorderLayout.WEST);

        stepContentPanel.setLayout(new java.awt.CardLayout());

        stepOne.setLayout(new java.awt.GridBagLayout());

        testNameLabel.setText("Enter the new test's name:");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        stepOne.add(testNameLabel, gridBagConstraints);

        testNameField.setText("New Test");
        testNameField.setPreferredSize(new java.awt.Dimension(175, 20));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        stepOne.add(testNameField, gridBagConstraints);

        modeSelectionLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        modeSelectionLabel.setText("Select a test generation mode");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(10, 10, 0, 0);
        stepOne.add(modeSelectionLabel, gridBagConstraints);

        jRadioButton1.setText("Automatic test generation");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(0, 15, 0, 0);
        stepOne.add(jRadioButton1, gridBagConstraints);

        jRadioButton2.setText("Manual test generation");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(0, 15, 0, 0);
        stepOne.add(jRadioButton2, gridBagConstraints);

        stepContentPanel.add(stepOne, "card2");

        stepTwo.setLayout(new java.awt.BorderLayout());

        classSelectionPanel.setLayout(new java.awt.GridBagLayout());

        availableLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        availableLabel.setText("Available");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.weighty = 0.5;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10);
        classSelectionPanel.add(availableLabel, gridBagConstraints);

        includedLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        includedLabel.setText("Incuded");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        classSelectionPanel.add(includedLabel, gridBagConstraints);

        allRightButton.setText(">>");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.weightx = 1.5;
        gridBagConstraints.weighty = 1.0;
        classSelectionPanel.add(allRightButton, gridBagConstraints);

        oneRightButton.setText(">");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.weighty = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10);
        classSelectionPanel.add(oneRightButton, gridBagConstraints);

        oneLeftButton.setText("<");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.weighty = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        classSelectionPanel.add(oneLeftButton, gridBagConstraints);

        allLeftButton.setText("<<");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 4;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.weightx = 1.5;
        gridBagConstraints.weighty = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        classSelectionPanel.add(allLeftButton, gridBagConstraints);

        availableList.setPreferredSize(new java.awt.Dimension(100, 300));
        availablePane.setViewportView(availableList);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.weightx = 3.0;
        gridBagConstraints.weighty = 6.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 10);
        classSelectionPanel.add(availablePane, gridBagConstraints);

        includedList.setPreferredSize(new java.awt.Dimension(100, 300));
        includedPane.setViewportView(includedList);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.weightx = 3.0;
        gridBagConstraints.weighty = 6.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 10);
        classSelectionPanel.add(includedPane, gridBagConstraints);

        advancedButton.setText("Advanced...");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 10);
        classSelectionPanel.add(advancedButton, gridBagConstraints);

        stepTwo.add(classSelectionPanel, java.awt.BorderLayout.CENTER);

        stepThreeDescriptionLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        stepThreeDescriptionLabel.setText("Select which classes to include in the test");
        stepTwo.add(stepThreeDescriptionLabel, java.awt.BorderLayout.NORTH);

        stepContentPanel.add(stepTwo, "card4");

        stepThree.setLayout(new java.awt.BorderLayout());

        authorSelectionPanel.setLayout(new java.awt.GridBagLayout());

        availableLabel1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        availableLabel1.setText("Available");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.weighty = 0.5;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10);
        authorSelectionPanel.add(availableLabel1, gridBagConstraints);

        includedLabel1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        includedLabel1.setText("Incuded");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        authorSelectionPanel.add(includedLabel1, gridBagConstraints);

        allRightButton1.setText(">>");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.weightx = 1.5;
        gridBagConstraints.weighty = 1.0;
        authorSelectionPanel.add(allRightButton1, gridBagConstraints);

        oneRightButton1.setText(">");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 2;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.weighty = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 10);
        authorSelectionPanel.add(oneRightButton1, gridBagConstraints);

        oneLeftButton1.setText("<");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.weighty = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        authorSelectionPanel.add(oneLeftButton1, gridBagConstraints);

        allLeftButton1.setText("<<");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 4;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.weightx = 1.5;
        gridBagConstraints.weighty = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        authorSelectionPanel.add(allLeftButton1, gridBagConstraints);

        availableList1.setPreferredSize(new java.awt.Dimension(100, 300));
        availablePane1.setViewportView(availableList1);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.weightx = 3.0;
        gridBagConstraints.weighty = 6.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 10);
        authorSelectionPanel.add(availablePane1, gridBagConstraints);

        includedList1.setPreferredSize(new java.awt.Dimension(100, 300));
        includedPane1.setViewportView(includedList1);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.weightx = 3.0;
        gridBagConstraints.weighty = 6.0;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 10);
        authorSelectionPanel.add(includedPane1, gridBagConstraints);

        advancedButton1.setText("Advanced...");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 3;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.gridwidth = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 10, 10);
        authorSelectionPanel.add(advancedButton1, gridBagConstraints);

        stepThree.add(authorSelectionPanel, java.awt.BorderLayout.CENTER);

        stepFourDescriptionLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        stepFourDescriptionLabel.setText("Select which question authors to include in the test");
        stepThree.add(stepFourDescriptionLabel, java.awt.BorderLayout.NORTH);

        stepContentPanel.add(stepThree, "card5");

        stepFour.setLayout(new java.awt.GridBagLayout());

        trueFalseAmountLabel.setText("True/false:");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        stepFour.add(trueFalseAmountLabel, gridBagConstraints);

        multipleChoiceAmountLabel.setText("Multiple choice:");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        stepFour.add(multipleChoiceAmountLabel, gridBagConstraints);

        shortResponseAmountLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        shortResponseAmountLabel.setText("Short response:");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        stepFour.add(shortResponseAmountLabel, gridBagConstraints);

        essayAmountLabel.setText("Essay:");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        stepFour.add(essayAmountLabel, gridBagConstraints);

        programmingAmountLabel.setText("Programming:");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        stepFour.add(programmingAmountLabel, gridBagConstraints);

        trueFalseAmountField.setText("15");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        stepFour.add(trueFalseAmountField, gridBagConstraints);

        multipleChoiceAmountField.setText("20");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        stepFour.add(multipleChoiceAmountField, gridBagConstraints);

        shortResponseAmountField.setText("5");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        stepFour.add(shortResponseAmountField, gridBagConstraints);

        essayAmountField.setText("2");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        stepFour.add(essayAmountField, gridBagConstraints);

        programmingAmountField.setText("0");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 5;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        stepFour.add(programmingAmountField, gridBagConstraints);

        enterQuantityLabel.setText("Enter the quantity of each sort of question to include");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.gridwidth = 2;
        stepFour.add(enterQuantityLabel, gridBagConstraints);

        advancedLengthButton.setText("Advanced...");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 8;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(15, 0, 0, 0);
        stepFour.add(advancedLengthButton, gridBagConstraints);

        lengthLabel.setText("Length of test in minutes:");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 6;
        gridBagConstraints.insets = new java.awt.Insets(10, 0, 0, 0);
        stepFour.add(lengthLabel, gridBagConstraints);

        lengthField.setText("45-50");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 6;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(10, 10, 0, 0);
        stepFour.add(lengthField, gridBagConstraints);

        pointValueLabel.setText("Total point value:");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 7;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        stepFour.add(pointValueLabel, gridBagConstraints);

        jTextField1.setText("100-120");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 7;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        stepFour.add(jTextField1, gridBagConstraints);

        stepContentPanel.add(stepFour, "card6");

        mainPanel.add(stepContentPanel, java.awt.BorderLayout.CENTER);

        getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER);

        buttonPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));

        buttonPanel.setAlignmentX(1.0F);
        cancelButton.setText("Cancel");
        buttonPanel.add(cancelButton);

        previousButton.setText("< Previous");
        buttonPanel.add(previousButton);

        nextButton.setText("Next >");
        nextButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                nextButtonActionPerformed(evt);
            }
        });

        buttonPanel.add(nextButton);

        finishButton.setText("Finish");
        finishButton.setOpaque(false);
        buttonPanel.add(finishButton);

        getContentPane().add(buttonPanel, java.awt.BorderLayout.SOUTH);

        pack();
    }//GEN-END:initComponents

    private void nextButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextButtonActionPerformed
        // Add your handling code here:
        if (currentStep + 1 == stepLabels.length) {
            return;
        }
        
        stepLabels[currentStep++].setFont(origFont);
        if (!stepLabels[currentStep].isVisible()) {
            for (int i = currentStep; i < stepLabels.length; i++) {
                stepLabels[i].setVisible(true);
            }
        }
        stepLabels[currentStep].setFont(italFont);
                
        ((CardLayout)stepContentPanel.getLayout()).next(stepContentPanel);
    }//GEN-LAST:event_nextButtonActionPerformed
    
    /** Exit the Application */
    private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
        System.exit(0);
    }//GEN-LAST:event_exitForm
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        new TestGenerationWizard().show();
    }
    
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton advancedButton;
    private javax.swing.JButton advancedButton1;
    private javax.swing.JButton advancedLengthButton;
    private javax.swing.JButton allLeftButton;
    private javax.swing.JButton allLeftButton1;
    private javax.swing.JButton allRightButton;
    private javax.swing.JButton allRightButton1;
    private javax.swing.JPanel authorSelectionPanel;
    private javax.swing.JLabel availableLabel;
    private javax.swing.JLabel availableLabel1;
    private javax.swing.JList availableList;
    private javax.swing.JList availableList1;
    private javax.swing.JScrollPane availablePane;
    private javax.swing.JScrollPane availablePane1;
    private javax.swing.JPanel buttonPanel;
    private javax.swing.JButton cancelButton;
    private javax.swing.JPanel classSelectionPanel;
    private javax.swing.JLabel enterQuantityLabel;
    private javax.swing.JTextField essayAmountField;
    private javax.swing.JLabel essayAmountLabel;
    private javax.swing.JButton finishButton;
    private javax.swing.JLabel includedLabel;
    private javax.swing.JLabel includedLabel1;
    private javax.swing.JList includedList;
    private javax.swing.JList includedList1;
    private javax.swing.JScrollPane includedPane;
    private javax.swing.JScrollPane includedPane1;
    private javax.swing.JPanel innerStepListPanel;
    private javax.swing.JRadioButton jRadioButton1;
    private javax.swing.JRadioButton jRadioButton2;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField lengthField;
    private javax.swing.JLabel lengthLabel;
    private javax.swing.JPanel mainPanel;
    private javax.swing.JLabel modeSelectionLabel;
    private javax.swing.JTextField multipleChoiceAmountField;
    private javax.swing.JLabel multipleChoiceAmountLabel;
    private javax.swing.JButton nextButton;
    private javax.swing.JButton oneLeftButton;
    private javax.swing.JButton oneLeftButton1;
    private javax.swing.JButton oneRightButton;
    private javax.swing.JButton oneRightButton1;
    private javax.swing.JLabel pointValueLabel;
    private javax.swing.JButton previousButton;
    private javax.swing.JTextField programmingAmountField;
    private javax.swing.JLabel programmingAmountLabel;
    private javax.swing.JTextField shortResponseAmountField;
    private javax.swing.JLabel shortResponseAmountLabel;
    private javax.swing.JPanel stepContentPanel;
    private javax.swing.JPanel stepFour;
    private javax.swing.JLabel stepFourDescriptionLabel;
    private javax.swing.JLabel stepFourLabel;
    private javax.swing.JPanel stepListPanel;
    private javax.swing.JPanel stepOne;
    private javax.swing.JLabel stepOneLabel;
    private javax.swing.JPanel stepThree;
    private javax.swing.JLabel stepThreeDescriptionLabel;
    private javax.swing.JLabel stepThreeLabel;
    private javax.swing.JPanel stepTwo;
    private javax.swing.JLabel stepTwoLabel;
    private javax.swing.JLabel stepsLabel;
    private javax.swing.JTextField testNameField;
    private javax.swing.JLabel testNameLabel;
    private javax.swing.JTextField trueFalseAmountField;
    private javax.swing.JLabel trueFalseAmountLabel;
    // End of variables declaration//GEN-END:variables
    
}