/*
 * TAU_Conf.java
 *
 * Created on June 10, 2005, 8:58 AM
 */

package tau_conf;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.*;
import java.io.*;
/**
 *
 * @author  wspear
 */
public class TAU_Conf extends javax.swing.JFrame {
    
    /** Creates new form TAU_Conf */
    public TAU_Conf() {
        
        /*boxsetmap.put(epiloglibCheckBox,new CheckBoxSet(" -epiloglib=",epiloglibCheckBox,epiloglibTextField));
        
        Iterator it = boxsetmap.values().iterator();
        CheckBoxSet tmp=null;
        while(it.hasNext())
        {
            tmp=(CheckBoxSet) it.next();
            fieldsetmap.put(tmp.textfield,tmp);
        }*/
        
        initComponents();
    }
    
    String configureline = "./configure";
    String instline = "./installtau";
    Vector cbholder=new Vector();
    Vector comholder = new Vector();
    Vector savedconf = new Vector();
    Vector allconf= new Vector();
    HashMap commap = new HashMap(64);
    HashMap fieldmap= new HashMap(64);
    //HashMap boxsetmap=new HashMap(64);
   // HashMap fieldsetmap = new HashMap(64);
    
    /** 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.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
    private void initComponents() {
        buttonGroup1 = new javax.swing.ButtonGroup();
        profstatsCheckBox = new javax.swing.JCheckBox();
        jFileChooser1 = new javax.swing.JFileChooser();
        jScrollPane1 = new javax.swing.JScrollPane();
        jPanel4 = new javax.swing.JPanel();
        exitButton = new javax.swing.JButton();
        resetButton = new javax.swing.JButton();
        tabPane = new javax.swing.JTabbedPane();
        installationPanel = new javax.swing.JPanel();
        papijPanel = new javax.swing.JPanel();
        papiQjButton = OptionSet.getHelpButton("-papi");
        papiCheckBox = new javax.swing.JCheckBox();
        papiButton = new javax.swing.JButton();
        papiTextField = new javax.swing.JTextField();
        papiwallQjButton = OptionSet.getHelpButton("-PAPIWALLCLOCK");
        papiwallCheckBox = new javax.swing.JCheckBox();
        papivirtQjButton = OptionSet.getHelpButton("-PAPIVIRTUAL");
        papivirtCheckBox = new javax.swing.JCheckBox();
        multcountQjButton = OptionSet.getHelpButton("-MULTIPLECOUNTERS");
        multiplecountCheckBox = new javax.swing.JCheckBox();
        pdtjPanel = new javax.swing.JPanel();
        pdtQjButton = OptionSet.getHelpButton("-pdt");
        pdtCheckBox = new javax.swing.JCheckBox();
        pdtButton = new javax.swing.JButton();
        pdtdirField = new javax.swing.JTextField();
        pdtcppQjButton = OptionSet.getHelpButton("-pdt_c++");
        pdtCompilerLabel = new javax.swing.JLabel();
        String[] pdtcCompStrings = { "Default","CC","KCC","g++","xlC","cxx","pgCC","FCC","guidec++","aCC","c++","ecpc","icpc" };
        pdtcppCombo = new javax.swing.JComboBox(pdtcCompStrings);
        defpdtCheckBox = new javax.swing.JCheckBox();
        defpdtTextField = new javax.swing.JTextField();
        compilerjPanel = new javax.swing.JPanel();
        cppQjButton = OptionSet.getHelpButton("-c++");
        cppcompLabel = new javax.swing.JLabel();
        String[] cppCompStrings = { "Default","CC","KCC","g++","xlC","cxx","pgCC","FCC","guidec++","aCC","c++","ecpc","icpc","pathCC","qk-pgCC","orCC" };
        cppCombo = new javax.swing.JComboBox(cppCompStrings);
        defcppCheckBox = new javax.swing.JCheckBox();
        defcppTextField = new javax.swing.JTextField();
        cQjButton = OptionSet.getHelpButton("-cc");
        cccompLabel = new javax.swing.JLabel();
        String[] ccCompStrings = { "Default","cc","gcc","KCC","pgcc","guidec","xlc","ecc","pathcc","qk-pgcc","orcc" };
        ccCombo = new javax.swing.JComboBox(ccCompStrings);
        defccCheckBox = new javax.swing.JCheckBox();
        fortQjButton = OptionSet.getHelpButton("-fortran");
        defccTextField = new javax.swing.JTextField();
        fortrancompLabel = new javax.swing.JLabel();
        String[] fortranCompStrings = {"Default","gnu","sgi","ibm","ibm64","hp","cray","pgi","absoft","fujitsu","sun","compaq","kai","nec","hitachi","intel","absoft","lahey","nagware","pathscale","open64"};
        fortranCombo = new javax.swing.JComboBox(fortranCompStrings);
        deffortranCheckBox = new javax.swing.JCheckBox();
        deffortranTextField = new javax.swing.JTextField();
        messagePannel = new javax.swing.JPanel();
        mpijPanel = new javax.swing.JPanel();
        mpiQjButton = OptionSet.getHelpButton("-mpi");
        mpiCheckBox = new javax.swing.JCheckBox();
        mpiincQjButton = OptionSet.getHelpButton("-mpiinc");
        mpiincCheckBox = new javax.swing.JCheckBox();
        mpiincButton = new javax.swing.JButton();
        mpiincTextField = new javax.swing.JTextField();
        mpilibQjButton = OptionSet.getHelpButton("-mpilib");
        mpilibCheckBox = new javax.swing.JCheckBox();
        mpilibButton = new javax.swing.JButton();
        mpilibTextField = new javax.swing.JTextField();
        altmpiQjButton = OptionSet.getHelpButton("-mpilibrary");
        altmpiCheckBox = new javax.swing.JCheckBox();
        altmpiTextField = new javax.swing.JTextField();
        tagQjButton = OptionSet.getHelpButton("-tag");
        tagCheckBox = new javax.swing.JCheckBox();
        tagTextField = new javax.swing.JTextField();
        nocommQjButton = OptionSet.getHelpButton("-nocomm");
        nocomCheckBox = new javax.swing.JCheckBox();
        mpitraceQjButton = OptionSet.getHelpButton("-MPITRACE");
        mpitraceCheckBox = new javax.swing.JCheckBox();
        shmemjPanel = new javax.swing.JPanel();
        shmemQjButton = OptionSet.getHelpButton("-shmem");
        shmemCheckBox = new javax.swing.JCheckBox();
        shmemincQjButton = OptionSet.getHelpButton("-shmeminc");
        shmemincCheckBox = new javax.swing.JCheckBox();
        shmemincButton = new javax.swing.JButton();
        shmemincTextField = new javax.swing.JTextField();
        shmemlibQjButton = OptionSet.getHelpButton("-shmemlib");
        shmemlibCheckBox = new javax.swing.JCheckBox();
        shmemlibButton = new javax.swing.JButton();
        shmemlibTextField = new javax.swing.JTextField();
        altshmemQjButton = OptionSet.getHelpButton("-shmemlibrary");
        altshmemCheckBox = new javax.swing.JCheckBox();
        altshmemTextField = new javax.swing.JTextField();
        outputPanel = new javax.swing.JPanel();
        profilePanel = new javax.swing.JPanel();
        profileCheckBox = new javax.swing.JCheckBox();
        compensateCheckBox = new javax.swing.JCheckBox();
        profcallpathCheckBox = new javax.swing.JCheckBox();
        profheadroomCheckBox = new javax.swing.JCheckBox();
        profmemoryCheckBox = new javax.swing.JCheckBox();
        memorypQjButton = OptionSet.getHelpButton("-PROFILEMEMORY");
        profileQjButton = OptionSet.getHelpButton("-PROFILE");
        compensateQjButton = OptionSet.getHelpButton("-COMPENSATE");
        callpathQjButton = OptionSet.getHelpButton("-PROFILECALLPATH");
        headroomQjButton = OptionSet.getHelpButton("-PROFILEHEADROOM");
        tracePanel = new javax.swing.JPanel();
        traceCheckBox = new javax.swing.JCheckBox();
        epilogCheckBox = new javax.swing.JCheckBox();
        epilogTextField = new javax.swing.JTextField();
        slog2CheckBox = new javax.swing.JCheckBox();
        slog2exCheckBox = new javax.swing.JCheckBox();
        slog2TextField = new javax.swing.JTextField();
        vtfCheckBox = new javax.swing.JCheckBox();
        vtfTextField = new javax.swing.JTextField();
        epilogButton = new javax.swing.JButton();
        slog2Button = new javax.swing.JButton();
        vtfButton = new javax.swing.JButton();
        traceQjButton = OptionSet.getHelpButton("-TRACE");
        epilogQjButton = OptionSet.getHelpButton("-epilog");
        slog2QjButton = OptionSet.getHelpButton("-slog2");
        vtfQjButton = OptionSet.getHelpButton("-vtf");
        slog2eQjButton = OptionSet.getHelpButton("-slog2=");
        otfQjButton = OptionSet.getHelpButton("-otf");
        otfCheckBox = new javax.swing.JCheckBox();
        otfButton = new javax.swing.JButton();
        otfTextField = new javax.swing.JTextField();
        vtraceQjButton = OptionSet.getHelpButton("-vampirtrace");
        vtraceCheckBox = new javax.swing.JCheckBox();
        vtraceButton = new javax.swing.JButton();
        vtraceTextField = new javax.swing.JTextField();
        epilogbinQjButton = OptionSet.getHelpButton("-epilogbin");
        epilogincQjButton = OptionSet.getHelpButton("-epiloginc");
        epiloglibQjButton = OptionSet.getHelpButton("-epiloglib");
        epilogbinCheckBox = new javax.swing.JCheckBox();
        epilogincCheckBox = new javax.swing.JCheckBox();
        epiloglibCheckBox = new javax.swing.JCheckBox();
        epilogbinButton = new javax.swing.JButton();
        epilogincButton = new javax.swing.JButton();
        epiloglibButton = new javax.swing.JButton();
        epilogbinTextField = new javax.swing.JTextField();
        epilogincTextField = new javax.swing.JTextField();
        epiloglibTextField = new javax.swing.JTextField();
        jPanel5 = new javax.swing.JPanel();
        profphaseCheckBox = new javax.swing.JCheckBox();
        depthlimitCheckBox = new javax.swing.JCheckBox();
        phaseQjButton = OptionSet.getHelpButton("-PROFILEPHASE");
        depthQjButton = OptionSet.getHelpButton("-DEPTHLIMIT");
        perfjPanel = new javax.swing.JPanel();
        perfincQjButton = OptionSet.getHelpButton("-perfinc");
        perfincCheckBox = new javax.swing.JCheckBox();
        perfincButton = new javax.swing.JButton();
        perfincTextField = new javax.swing.JTextField();
        perflibQjButton = OptionSet.getHelpButton("-perflib");
        perflibCheckBox = new javax.swing.JCheckBox();
        perflibButton = new javax.swing.JButton();
        perflibTextField = new javax.swing.JTextField();
        altperfQjButton = OptionSet.getHelpButton("-perflibrary");
        altperfCheckBox = new javax.swing.JCheckBox();
        altperfTextField = new javax.swing.JTextField();
        threadPanel = new javax.swing.JPanel();
        ompPanel = new javax.swing.JPanel();
        ompCheckBox = new javax.swing.JCheckBox();
        opariCheckBox = new javax.swing.JCheckBox();
        opariTextField = new javax.swing.JTextField();
        opariregionCheckBox = new javax.swing.JCheckBox();
        opariconstructCheckBox = new javax.swing.JCheckBox();
        opariButton = new javax.swing.JButton();
        openmpQjButton = OptionSet.getHelpButton("-openmp");
        opariQjButton = OptionSet.getHelpButton("-opari");
        opariregionQjButton = OptionSet.getHelpButton("-opari_region");
        opariconstructQjButton = OptionSet.getHelpButton("-opari_construct");
        charmPanel = new javax.swing.JPanel();
        charmCheckBox = new javax.swing.JCheckBox();
        charmTextField = new javax.swing.JTextField();
        charmButton = new javax.swing.JButton();
        charmQjButton = OptionSet.getHelpButton("-charm");
        tulipthreadsPanel = new javax.swing.JPanel();
        tulipCheckBox = new javax.swing.JCheckBox();
        tulipTextField = new javax.swing.JTextField();
        smartCheckBox = new javax.swing.JCheckBox();
        tulipButton = new javax.swing.JButton();
        tulipQjButton = OptionSet.getHelpButton("-tulipthread");
        smartQjButton = OptionSet.getHelpButton("-smarts");
        pthreadsPanel = new javax.swing.JPanel();
        pthreadsCheckBox = new javax.swing.JCheckBox();
        pthreadsQjButton = OptionSet.getHelpButton("-pthread");
        sprocPanel = new javax.swing.JPanel();
        sprocCheckBox = new javax.swing.JCheckBox();
        sprocQjButton = OptionSet.getHelpButton("-sproc");
        generalPanel = new javax.swing.JPanel();
        dyninstPanel = new javax.swing.JPanel();
        dyninstCheckBox = new javax.swing.JCheckBox();
        dyninstTextField = new javax.swing.JTextField();
        dyninstButton = new javax.swing.JButton();
        dyninstQjButton = OptionSet.getHelpButton("-dyninst");
        pclPanel = new javax.swing.JPanel();
        pclCheckBox = new javax.swing.JCheckBox();
        pclTextField = new javax.swing.JTextField();
        pclButton = new javax.swing.JButton();
        pclQjButton = OptionSet.getHelpButton("-pcl");
        timePanel = new javax.swing.JPanel();
        cputimeCheckBox = new javax.swing.JCheckBox();
        craytimeCheckBox = new javax.swing.JCheckBox();
        linuxtimeCheckBox = new javax.swing.JCheckBox();
        sgitimeCheckBox = new javax.swing.JCheckBox();
        jLabel2 = new javax.swing.JLabel();
        cputQjButton = OptionSet.getHelpButton("-CPUTIME");
        craytQjButton = OptionSet.getHelpButton("-CRAYTIMERS");
        linuxtQjButton = OptionSet.getHelpButton("-LINUXTIMERS");
        sgitQjButton = OptionSet.getHelpButton("-SGITIMERS");
        musePanel = new javax.swing.JPanel();
        museCheckBox = new javax.swing.JCheckBox();
        museeventCheckBox = new javax.swing.JCheckBox();
        musemultCheckBox = new javax.swing.JCheckBox();
        musemQjButton = OptionSet.getHelpButton("-muse_multiple");
        museeQjButton = OptionSet.getHelpButton("-muse_event");
        museQjButton = OptionSet.getHelpButton("-muse");
        jPanel1 = new javax.swing.JPanel();
        pythonPanel = new javax.swing.JPanel();
        usepythonCheckBox = new javax.swing.JCheckBox();
        pythonincField = new javax.swing.JTextField();
        pythonlibCheckBox = new javax.swing.JCheckBox();
        pythonlibField = new javax.swing.JTextField();
        pythonincButton = new javax.swing.JButton();
        pythonlibButton = new javax.swing.JButton();
        pythonincQjButton = OptionSet.getHelpButton("-pythoninc");
        pythonlibQjButton = OptionSet.getHelpButton("-pythonlib");
        jdkPanel = new javax.swing.JPanel();
        usejdkCheckBox = new javax.swing.JCheckBox();
        jdkField = new javax.swing.JTextField();
        usejavatimersCheckBox = new javax.swing.JCheckBox();
        jdkButton = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jdkQjButton = OptionSet.getHelpButton("-jdk");
        javatQjButton = OptionSet.getHelpButton("-JAVACPUTIME");
        dirarcPanel = new javax.swing.JPanel();
        installdirCheckBox = new javax.swing.JCheckBox();
        installdirField = new javax.swing.JTextField();
        archdirCheckBox = new javax.swing.JCheckBox();
        archdirField = new javax.swing.JTextField();
        archLabel = new javax.swing.JLabel();
        String[] archStrings = { "Default","bgl", "bgp", "craycnl", "ibm64","ibm64linux", "mips","mips32", "sgi64", "sgin32","sgio32","solaris2-64","sunx86_64","xt3" };
        archCombo = new javax.swing.JComboBox(archStrings);
        useroptCheckBox = new javax.swing.JCheckBox();
        useroptField = new javax.swing.JTextField();
        noexceptCheckBox = new javax.swing.JCheckBox();
        installdirButton = new javax.swing.JButton();
        archdirButton = new javax.swing.JButton();
        custinstQjButton = OptionSet.getHelpButton("-prefix");
        custarchQjButton = OptionSet.getHelpButton("-exec-prefix");
        archQjButton = OptionSet.getHelpButton("-arch");
        useroptQjButton = OptionSet.getHelpButton("-useropt");
        noexQjButton = OptionSet.getHelpButton("-noex");
        jPanel2 = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        allconfComboBox = new javax.swing.JComboBox(allconf);
        loadallconfButton = new javax.swing.JButton();
        savedconfComboBox = new javax.swing.JComboBox(savedconf);
        loadsavedconfButton = new javax.swing.JButton();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        removeconfButton = new javax.swing.JButton();
        saveconfButton = new javax.swing.JButton();
        custconfTextField = new javax.swing.JTextField();
        commandPanel = new javax.swing.JPanel();
        confButton = new javax.swing.JButton();
        confjScrollPane = new javax.swing.JScrollPane(commandTextArea);
        commandTextArea = new javax.swing.JTextArea();
        commandTextArea.setText(configureline);
        makejButton = new javax.swing.JButton();
        instjScrollPane = new javax.swing.JScrollPane(commandTextArea);
        instTextArea = new javax.swing.JTextArea();
        commandTextArea.setText(configureline);
        instButton = new javax.swing.JButton();

        profstatsCheckBox.setText("Profile Stats [-PROFILESTATS]");
        jFileChooser1.setFileSelectionMode(javax.swing.JFileChooser.DIRECTORIES_ONLY);

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("TAU_Conf");
        jScrollPane1.setMaximumSize(new java.awt.Dimension(2147483647, 2147483647));
        exitButton.setText("Exit");
        exitButton.setToolTipText("Exits the program");
        exitButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                exitButtonActionPerformed(evt);
            }
        });

        resetButton.setText("Reset");
        resetButton.setToolTipText("Returns settings to default");
        resetButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                resetButtonActionPerformed(evt);
            }
        });

        papijPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        papiQjButton.setText("?");
        papiQjButton.setToolTipText("More Info");
        papiQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        papiQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        papiCheckBox.setText("PAPI [-papi=]:");
        papiCheckBox.setToolTipText("Specify location of PAPI (Performance API)");
        papiCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                papiCheckBoxStateChanged(evt);
            }
        });

        papiButton.setText("Browse");
        papiButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                papiButtonActionPerformed(evt);
            }
        });

        papiTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        papiTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                papiTextFieldActionPerformed(evt);
            }
        });

        papiwallQjButton.setText("?");
        papiwallQjButton.setToolTipText("More Info");
        papiwallQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        papiwallQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        papiwallCheckBox.setText("PAPI Wallclock [-PAPIWALLCLOCK]");
        papiwallCheckBox.setToolTipText("Use PAPI to access wallclock time. Needs -papi");
        papiwallCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                papiwallCheckBoxStateChanged(evt);
            }
        });

        papivirtQjButton.setText("?");
        papivirtQjButton.setToolTipText("More Info");
        papivirtQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        papivirtQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        papivirtCheckBox.setText("PAPI Virtual [-PAPIVIRTUAL]");
        papivirtCheckBox.setToolTipText("Use PAPI for virtual (user) time calculation");
        papivirtCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                papivirtCheckBoxStateChanged(evt);
            }
        });

        multcountQjButton.setText("?");
        multcountQjButton.setToolTipText("More Info");
        multcountQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        multcountQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        multiplecountCheckBox.setText("Multiple Counters [-MULTIPLECOUNTERS]");
        multiplecountCheckBox.setToolTipText("Use multiple hardware counters and time");
        multiplecountCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                multiplecountCheckBoxStateChanged(evt);
            }
        });

        org.jdesktop.layout.GroupLayout papijPanelLayout = new org.jdesktop.layout.GroupLayout(papijPanel);
        papijPanel.setLayout(papijPanelLayout);
        papijPanelLayout.setHorizontalGroup(
            papijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(papijPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(papijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(papijPanelLayout.createSequentialGroup()
                        .add(papijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(papiQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(papiwallQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .add(papijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(papijPanelLayout.createSequentialGroup()
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(papiCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 112, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(papiButton)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(papiTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 550, Short.MAX_VALUE))
                            .add(papijPanelLayout.createSequentialGroup()
                                .add(23, 23, 23)
                                .add(papijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(papivirtCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 197, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(papiwallCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 239, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))))
                    .add(papivirtQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(papijPanelLayout.createSequentialGroup()
                        .add(multcountQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(multiplecountCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 284, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        papijPanelLayout.setVerticalGroup(
            papijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(papijPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(papijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(papiQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(papiCheckBox)
                    .add(papiButton)
                    .add(papiTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(papijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(papiwallQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(papiwallCheckBox))
                .add(1, 1, 1)
                .add(papijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(papivirtQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(papivirtCheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(papijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(multcountQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(multiplecountCheckBox))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pdtjPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        pdtQjButton.setText("?");
        pdtQjButton.setToolTipText("More Info");
        pdtQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        pdtQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        pdtCheckBox.setText("PDT [-pdt=]:");
        pdtCheckBox.setToolTipText("Specify location of PDT (Program Database Toolkit)");
        pdtCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                pdtCheckBoxStateChanged(evt);
            }
        });

        pdtButton.setText("Browse");
        pdtButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                pdtButtonActionPerformed(evt);
            }
        });

        pdtdirField.setPreferredSize(new java.awt.Dimension(200, 19));
        pdtdirField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                pdtdirFieldActionPerformed(evt);
            }
        });

        pdtcppQjButton.setText("?");
        pdtcppQjButton.setToolTipText("More Info");
        pdtcppQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        pdtcppQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        pdtCompilerLabel.setText("PDT C++ Compiler [-pdt_c++=]:");

        pdtcppCombo.setToolTipText("Specify a different PDT C++ compiler");
        pdtcppCombo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                pdtcppComboActionPerformed(evt);
            }
        });

        defpdtCheckBox.setText("User Defined");
        defpdtCheckBox.setToolTipText("Specify an alternate C++ compiler (e.g. *xlC*)");
        defpdtCheckBox.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                defpdtCheckBoxItemStateChanged(evt);
            }
        });

        defpdtTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        defpdtTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                defpdtTextFieldActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout pdtjPanelLayout = new org.jdesktop.layout.GroupLayout(pdtjPanel);
        pdtjPanel.setLayout(pdtjPanelLayout);
        pdtjPanelLayout.setHorizontalGroup(
            pdtjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pdtjPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(pdtjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(org.jdesktop.layout.GroupLayout.TRAILING, pdtjPanelLayout.createSequentialGroup()
                        .add(pdtQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(pdtCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 104, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(31, 31, 31)
                        .add(pdtButton))
                    .add(org.jdesktop.layout.GroupLayout.TRAILING, pdtjPanelLayout.createSequentialGroup()
                        .add(pdtcppQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(pdtjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(pdtCompilerLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 205, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(defpdtCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 106, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(pdtjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(defpdtTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 523, Short.MAX_VALUE)
                    .add(pdtcppCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 90, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(pdtdirField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 523, Short.MAX_VALUE))
                .addContainerGap())
        );
        pdtjPanelLayout.setVerticalGroup(
            pdtjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pdtjPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(pdtjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(pdtQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(pdtCheckBox)
                    .add(pdtButton)
                    .add(pdtdirField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(pdtjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(pdtcppQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(pdtCompilerLabel)
                    .add(pdtcppCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(pdtjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(defpdtCheckBox)
                    .add(defpdtTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        compilerjPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        cppQjButton.setText("?");
        cppQjButton.setToolTipText("More Info");
        cppQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        cppQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        cppcompLabel.setText("C++ Compiler [-c++=]:");

        cppCombo.setToolTipText("Specifies the name of the C++ compiler");
        cppCombo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cppComboActionPerformed(evt);
            }
        });

        defcppCheckBox.setText("User Defined");
        defcppCheckBox.setToolTipText("Specify an alternate C++ compiler (e.g. *xlC*)");
        defcppCheckBox.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                defcppCheckBoxItemStateChanged(evt);
            }
        });

        defcppTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        defcppTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                defcppTextFieldActionPerformed(evt);
            }
        });

        cQjButton.setText("?");
        cQjButton.setToolTipText("More Info");
        cQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        cQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        cccompLabel.setText("C Compiler [-cc=]:");

        ccCombo.setToolTipText("Specifies the name of the C compiler");
        ccCombo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ccComboActionPerformed(evt);
            }
        });

        defccCheckBox.setText("User Defined");
        defccCheckBox.setToolTipText("Specify an alternate C compiler (e.g. *xlc*)");
        defccCheckBox.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                defccCheckBoxItemStateChanged(evt);
            }
        });

        fortQjButton.setText("?");
        fortQjButton.setToolTipText("More Info");
        fortQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        fortQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        defccTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        defccTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                defccTextFieldActionPerformed(evt);
            }
        });

        fortrancompLabel.setText("Fortran Compiler [-fortran=]:");

        fortranCombo.setToolTipText("Specifies the name of the Fortran compiler");
        fortranCombo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                fortranComboActionPerformed(evt);
            }
        });

        deffortranCheckBox.setText("User Defined");
        deffortranCheckBox.setToolTipText("Specify an alternate Fortran compiler");
        deffortranCheckBox.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                deffortranCheckBoxItemStateChanged(evt);
            }
        });

        deffortranTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        deffortranTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                deffortranTextFieldActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout compilerjPanelLayout = new org.jdesktop.layout.GroupLayout(compilerjPanel);
        compilerjPanel.setLayout(compilerjPanelLayout);
        compilerjPanelLayout.setHorizontalGroup(
            compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(compilerjPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(compilerjPanelLayout.createSequentialGroup()
                        .add(cppQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(cppcompLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 149, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(defcppCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 106, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                    .add(compilerjPanelLayout.createSequentialGroup()
                        .add(cQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(defccCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 106, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(cccompLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 115, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                    .add(compilerjPanelLayout.createSequentialGroup()
                        .add(fortQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(deffortranCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 106, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(fortrancompLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 182, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(compilerjPanelLayout.createSequentialGroup()
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(cppCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 90, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(ccCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 90, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(defcppTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 546, Short.MAX_VALUE)))
                    .add(fortranCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 90, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(defccTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 546, Short.MAX_VALUE)
                    .add(deffortranTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 546, Short.MAX_VALUE))
                .addContainerGap())
        );
        compilerjPanelLayout.setVerticalGroup(
            compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(compilerjPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(cppQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(cppcompLabel)
                    .add(cppCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(defcppCheckBox)
                    .add(defcppTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(cQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(cccompLabel)
                    .add(ccCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(defccCheckBox)
                    .add(defccTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(4, 4, 4)
                .add(compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(fortQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(fortrancompLabel)
                    .add(fortranCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(compilerjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(deffortranCheckBox)
                    .add(deffortranTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        org.jdesktop.layout.GroupLayout installationPanelLayout = new org.jdesktop.layout.GroupLayout(installationPanel);
        installationPanel.setLayout(installationPanelLayout);
        installationPanelLayout.setHorizontalGroup(
            installationPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(installationPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(installationPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(compilerjPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(pdtjPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(papijPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        installationPanelLayout.setVerticalGroup(
            installationPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(installationPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(compilerjPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(pdtjPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(papijPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(329, 329, 329))
        );
        tabPane.addTab("Compilers", installationPanel);

        messagePannel.setMinimumSize(new java.awt.Dimension(600, 300));
        messagePannel.setPreferredSize(new java.awt.Dimension(600, 300));
        mpijPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        mpiQjButton.setText("?");
        mpiQjButton.setToolTipText("More Info");
        mpiQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        mpiQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        mpiCheckBox.setText("MPI [-mpi]");
        mpiCheckBox.setToolTipText("Specify use of TAU MPI wrapper library");
        mpiCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                mpiCheckBoxStateChanged(evt);
            }
        });

        mpiincQjButton.setText("?");
        mpiincQjButton.setToolTipText("More Info");
        mpiincQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        mpiincQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        mpiincCheckBox.setText("MPI Includes  [-mpiinc=]:");
        mpiincCheckBox.setToolTipText("Specify location of MPI include dir and use the TAU MPI Profiling and Tracing Interface");
        mpiincCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                mpiincCheckBoxStateChanged(evt);
            }
        });

        mpiincButton.setText("Browse");
        mpiincButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mpiincButtonActionPerformed(evt);
            }
        });

        mpiincTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        mpiincTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mpiincTextFieldActionPerformed(evt);
            }
        });

        mpilibQjButton.setText("?");
        mpilibQjButton.setToolTipText("More Info");
        mpilibQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        mpilibQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        mpilibCheckBox.setText("MPI Librararies [-mpilib=]:");
        mpilibCheckBox.setToolTipText("Specify location of MPI library dir and use the TAU MPI Profiling and Tracing Interface.");
        mpilibCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                mpilibCheckBoxStateChanged(evt);
            }
        });

        mpilibButton.setText("Browse");
        mpilibButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mpilibButtonActionPerformed(evt);
            }
        });

        mpilibTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        mpilibTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mpilibTextFieldActionPerformed(evt);
            }
        });

        altmpiQjButton.setText("?");
        altmpiQjButton.setToolTipText("More Info");
        altmpiQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        altmpiQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        altmpiCheckBox.setText("Alt. MPI LIbrary [-mpilibrary=]:");
        altmpiCheckBox.setToolTipText("Specify a different MPI library e.g., -mpilibrary=-lmpi_r");
        altmpiCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                altmpiCheckBoxStateChanged(evt);
            }
        });

        altmpiTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        altmpiTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                altmpiTextFieldActionPerformed(evt);
            }
        });

        tagQjButton.setText("?");
        tagQjButton.setToolTipText("More Info");
        tagQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        tagQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        tagCheckBox.setText("Tag [-tag=]:");
        tagCheckBox.setToolTipText("Specify a tag to identify the installation");
        tagCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                tagCheckBoxStateChanged(evt);
            }
        });

        tagTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        tagTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tagTextFieldActionPerformed(evt);
            }
        });

        nocommQjButton.setText("?");
        nocommQjButton.setToolTipText("More Info");
        nocommQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        nocommQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        nocomCheckBox.setText("nocomm [-nocomm]");
        nocomCheckBox.setToolTipText("Disable tracking communication events in MPI library");
        nocomCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                nocomCheckBoxStateChanged(evt);
            }
        });

        mpitraceQjButton.setText("?");
        mpitraceQjButton.setToolTipText("More Info");
        mpitraceQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        mpitraceQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        mpitraceCheckBox.setText("MPI Trace [-MPITRACE]");
        mpitraceCheckBox.setToolTipText("Generate event traces for MPI events and their ancestors");
        mpitraceCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                mpitraceCheckBoxStateChanged(evt);
            }
        });

        org.jdesktop.layout.GroupLayout mpijPanelLayout = new org.jdesktop.layout.GroupLayout(mpijPanel);
        mpijPanel.setLayout(mpijPanelLayout);
        mpijPanelLayout.setHorizontalGroup(
            mpijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(mpijPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(mpijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(mpijPanelLayout.createSequentialGroup()
                        .add(mpiQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(mpiCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 91, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(mpijPanelLayout.createSequentialGroup()
                        .add(mpijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(mpijPanelLayout.createSequentialGroup()
                                .add(mpilibQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(mpilibCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 190, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(mpijPanelLayout.createSequentialGroup()
                                .add(mpiincQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(mpiincCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 182, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(mpijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(mpijPanelLayout.createSequentialGroup()
                                .add(mpiincButton)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(mpiincTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 472, Short.MAX_VALUE))
                            .add(mpijPanelLayout.createSequentialGroup()
                                .add(mpilibButton)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(mpijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(mpilibTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 472, Short.MAX_VALUE)
                                    .add(altmpiTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 472, Short.MAX_VALUE)
                                    .add(tagTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 472, Short.MAX_VALUE)))))
                    .add(mpijPanelLayout.createSequentialGroup()
                        .add(altmpiQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(altmpiCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 216, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(mpijPanelLayout.createSequentialGroup()
                        .add(tagQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(tagCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 101, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(mpijPanelLayout.createSequentialGroup()
                        .add(nocommQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(nocomCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 153, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(mpijPanelLayout.createSequentialGroup()
                        .add(mpitraceQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(mpitraceCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 167, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        mpijPanelLayout.setVerticalGroup(
            mpijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(mpijPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(mpijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(mpiQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(mpiCheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(mpijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(mpiincQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(mpiincCheckBox)
                    .add(mpiincButton)
                    .add(mpiincTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(mpijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(mpilibQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(mpilibCheckBox)
                    .add(mpilibButton)
                    .add(mpilibTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(mpijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(altmpiQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(altmpiCheckBox)
                    .add(altmpiTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(mpijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(tagQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(tagCheckBox)
                    .add(tagTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(mpijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(nocommQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(nocomCheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(mpijPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(mpitraceQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(mpitraceCheckBox))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        shmemjPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        shmemQjButton.setText("?");
        shmemQjButton.setToolTipText("More Info");
        shmemQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        shmemQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        shmemCheckBox.setText("SHMEM [-shmem]");
        shmemCheckBox.setToolTipText("Specify use of TAU SHMEM wrapper library");
        shmemCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                shmemCheckBoxStateChanged(evt);
            }
        });

        shmemincQjButton.setText("?");
        shmemincQjButton.setToolTipText("More Info");
        shmemincQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        shmemincQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        shmemincCheckBox.setText("Shmem Includes [-shmeminc=]:");
        shmemincCheckBox.setToolTipText("Specify location of SHMEM include dir and use the TAU SHMEM Profiling and Tracing Interface");
        shmemincCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                shmemincCheckBoxStateChanged(evt);
            }
        });

        shmemincButton.setText("Browse");
        shmemincButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                shmemincButtonActionPerformed(evt);
            }
        });

        shmemincTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        shmemincTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                shmemincTextFieldActionPerformed(evt);
            }
        });

        shmemlibQjButton.setText("?");
        shmemlibQjButton.setToolTipText("More Info");
        shmemlibQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        shmemlibQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        shmemlibCheckBox.setText("Shmem Libraries [-shmemlib=]:");
        shmemlibCheckBox.setToolTipText("Specify location of SHMEM library dir and use the TAU MPI Profiling and Tracing Interface");
        shmemlibCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                shmemlibCheckBoxStateChanged(evt);
            }
        });

        shmemlibButton.setText("Browse");
        shmemlibButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                shmemlibButtonActionPerformed(evt);
            }
        });

        shmemlibTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        shmemlibTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                shmemlibTextFieldActionPerformed(evt);
            }
        });

        altshmemQjButton.setText("?");
        altshmemQjButton.setToolTipText("More Info");
        altshmemQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        altshmemQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        altshmemCheckBox.setText("Alt. Shmem Library [-shmemlibrary=]:");
        altshmemCheckBox.setToolTipText("Specify a different SHMEM library e.g., -shmemlibrary=-lsmac");
        altshmemCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                altshmemCheckBoxStateChanged(evt);
            }
        });

        altshmemTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        altshmemTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                altshmemTextFieldActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout shmemjPanelLayout = new org.jdesktop.layout.GroupLayout(shmemjPanel);
        shmemjPanel.setLayout(shmemjPanelLayout);
        shmemjPanelLayout.setHorizontalGroup(
            shmemjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(shmemjPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(shmemjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(shmemjPanelLayout.createSequentialGroup()
                        .add(shmemQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(shmemCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 136, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(shmemjPanelLayout.createSequentialGroup()
                        .add(shmemincQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(shmemincCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 224, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(shmemincButton)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(shmemincTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 438, Short.MAX_VALUE))
                    .add(shmemjPanelLayout.createSequentialGroup()
                        .add(shmemjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(shmemjPanelLayout.createSequentialGroup()
                                .add(shmemlibQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(shmemlibCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 224, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(shmemlibButton))
                            .add(shmemjPanelLayout.createSequentialGroup()
                                .add(altshmemQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(altshmemCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 262, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(shmemjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(altshmemTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 438, Short.MAX_VALUE)
                            .add(shmemlibTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 438, Short.MAX_VALUE))))
                .addContainerGap())
        );
        shmemjPanelLayout.setVerticalGroup(
            shmemjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(shmemjPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(shmemjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(shmemQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(shmemCheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(shmemjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(shmemincQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(shmemincCheckBox)
                    .add(shmemincButton)
                    .add(shmemincTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(shmemjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(shmemjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(shmemlibQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(shmemlibCheckBox))
                    .add(shmemjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(shmemlibButton)
                        .add(shmemlibTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(shmemjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(shmemjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(altshmemQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(altshmemCheckBox))
                    .add(altshmemTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        org.jdesktop.layout.GroupLayout messagePannelLayout = new org.jdesktop.layout.GroupLayout(messagePannel);
        messagePannel.setLayout(messagePannelLayout);
        messagePannelLayout.setHorizontalGroup(
            messagePannelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(messagePannelLayout.createSequentialGroup()
                .addContainerGap()
                .add(messagePannelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(mpijPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(shmemjPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        messagePannelLayout.setVerticalGroup(
            messagePannelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(messagePannelLayout.createSequentialGroup()
                .addContainerGap()
                .add(mpijPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(shmemjPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(142, 142, 142))
        );
        tabPane.addTab("Message Passing", messagePannel);

        profilePanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        profileCheckBox.setSelected(true);
        profileCheckBox.setText("Profile [-PROFILE]");
        profileCheckBox.setToolTipText("Generate profiles (summary statistics) (default)");
        profileCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                profileCheckBoxStateChanged(evt);
            }
        });

        compensateCheckBox.setText("Compensate [-COMPENSATE]");
        compensateCheckBox.setToolTipText("Compensate for profiling measurement perturbation");
        compensateCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                compensateCheckBoxStateChanged(evt);
            }
        });

        profcallpathCheckBox.setText("Callpath Profiling [-PROFILECALLPATH]");
        profcallpathCheckBox.setToolTipText("Generate call path profiles");
        profcallpathCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                profcallpathCheckBoxStateChanged(evt);
            }
        });

        profheadroomCheckBox.setText("Profile Headroom [-PROFILEHEADROOM]");
        profheadroomCheckBox.setToolTipText("Track memory free (or headroom) at each func entry");
        profheadroomCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                profheadroomCheckBoxStateChanged(evt);
            }
        });

        profmemoryCheckBox.setText("Profile Memory [-PROFILEMEMORY]");
        profmemoryCheckBox.setToolTipText("Track heap memory utilization at each function entry");
        profmemoryCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                profmemoryCheckBoxStateChanged(evt);
            }
        });

        memorypQjButton.setText("?");
        memorypQjButton.setToolTipText("More Info");
        memorypQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        memorypQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        profileQjButton.setText("?");
        profileQjButton.setToolTipText("More Info");
        profileQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        profileQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        compensateQjButton.setText("?");
        compensateQjButton.setToolTipText("More Info");
        compensateQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        compensateQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        callpathQjButton.setText("?");
        callpathQjButton.setToolTipText("More Info");
        callpathQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        callpathQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        headroomQjButton.setText("?");
        headroomQjButton.setToolTipText("More Info");
        headroomQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        headroomQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout profilePanelLayout = new org.jdesktop.layout.GroupLayout(profilePanel);
        profilePanel.setLayout(profilePanelLayout);
        profilePanelLayout.setHorizontalGroup(
            profilePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(profilePanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(profilePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                    .add(profilePanelLayout.createSequentialGroup()
                        .add(profilePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(profileQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(compensateQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(callpathQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(headroomQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(profilePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(profilePanelLayout.createSequentialGroup()
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(profileCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 135, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(profilePanelLayout.createSequentialGroup()
                                .add(2, 2, 2)
                                .add(compensateCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 207, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(profcallpathCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 269, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(profheadroomCheckBox, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE)))
                    .add(profilePanelLayout.createSequentialGroup()
                        .add(memorypQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(profmemoryCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 244, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(482, Short.MAX_VALUE))
        );
        profilePanelLayout.setVerticalGroup(
            profilePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(profilePanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(profilePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(profileQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(profileCheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(profilePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(compensateQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(compensateCheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(profilePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(callpathQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(profcallpathCheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(profilePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(headroomQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(profheadroomCheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(profilePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(memorypQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(profmemoryCheckBox))
                .addContainerGap())
        );

        tracePanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        traceCheckBox.setText("Trace [-TRACE]");
        traceCheckBox.setToolTipText("Generate TAU event traces");
        traceCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                traceCheckBoxStateChanged(evt);
            }
        });

        epilogCheckBox.setText("Epilog [-epilog=]:");
        epilogCheckBox.setToolTipText("Specify location of EPILOG Tracing package");
        epilogCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                epilogCheckBoxStateChanged(evt);
            }
        });

        epilogTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        epilogTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                epilogTextFieldActionPerformed(evt);
            }
        });

        slog2CheckBox.setText("SLOG2 [-slog2]:");
        slog2CheckBox.setToolTipText("Specify use of TAU internal SLOG2 SDK/Jumpshot Package");
        slog2CheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                slog2CheckBoxStateChanged(evt);
            }
        });

        slog2exCheckBox.setText("Use External SLOG2SDK [-slog2=]:");
        slog2exCheckBox.setToolTipText("Specify location of SLOG2 SDK/Jumpshot Package");
        slog2exCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                slog2exCheckBoxStateChanged(evt);
            }
        });

        slog2TextField.setPreferredSize(new java.awt.Dimension(200, 19));
        slog2TextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                slog2TextFieldActionPerformed(evt);
            }
        });

        vtfCheckBox.setText("VTF [-vtf=]:");
        vtfCheckBox.setToolTipText("Specify location of VTF3 Trace Generation Package");
        vtfCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                vtfCheckBoxStateChanged(evt);
            }
        });

        vtfTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        vtfTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                vtfTextFieldActionPerformed(evt);
            }
        });

        epilogButton.setText("Browse");
        epilogButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                epilogButtonActionPerformed(evt);
            }
        });

        slog2Button.setText("Browse");
        slog2Button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                slog2ButtonActionPerformed(evt);
            }
        });

        vtfButton.setText("Browse");
        vtfButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                vtfButtonActionPerformed(evt);
            }
        });

        traceQjButton.setText("?");
        traceQjButton.setToolTipText("More Info");
        traceQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        traceQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        epilogQjButton.setText("?");
        epilogQjButton.setToolTipText("More Info");
        epilogQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        epilogQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        slog2QjButton.setText("?");
        slog2QjButton.setToolTipText("More Info");
        slog2QjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        slog2QjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        vtfQjButton.setText("?");
        vtfQjButton.setToolTipText("More Info");
        vtfQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        vtfQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        slog2eQjButton.setText("?");
        slog2eQjButton.setToolTipText("More Info");
        slog2eQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        slog2eQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        otfQjButton.setText("?");
        otfQjButton.setToolTipText("More Info");
        otfQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        otfQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        otfCheckBox.setText("OTF [-otf=]:");
        otfCheckBox.setToolTipText("Specify location of OTF Trace Generation Package");
        otfCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        otfCheckBox.setMargin(new java.awt.Insets(0, 0, 0, 0));
        otfCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                otfCheckBoxStateChanged(evt);
            }
        });

        otfButton.setText("Browse");
        otfButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                otfButtonActionPerformed(evt);
            }
        });

        otfTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                otfTextFieldActionPerformed(evt);
            }
        });

        vtraceQjButton.setText("?");
        vtraceQjButton.setToolTipText("More Info");
        vtraceQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        vtraceQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        vtraceCheckBox.setText("VampirTrace [-vampirtrace=]:");
        vtraceCheckBox.setToolTipText("Specify location of OTF Trace Generation Package");
        vtraceCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
        vtraceCheckBox.setMargin(new java.awt.Insets(0, 0, 0, 0));
        vtraceCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                vtraceCheckBoxStateChanged(evt);
            }
        });

        vtraceButton.setText("Browse");
        vtraceButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                vtraceButtonActionPerformed(evt);
            }
        });

        vtraceTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                vtraceTextFieldActionPerformed(evt);
            }
        });

        epilogbinQjButton.setText("?");
        epilogbinQjButton.setToolTipText("More Info");
        epilogbinQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        epilogbinQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        epilogincQjButton.setText("?");
        epilogincQjButton.setToolTipText("More Info");
        epilogincQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        epilogincQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        epiloglibQjButton.setText("?");
        epiloglibQjButton.setToolTipText("More Info");
        epiloglibQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        epiloglibQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        epilogbinCheckBox.setText("Epilog Bin [-epilogbin=]:");
        epilogbinCheckBox.setToolTipText("Specify location of EPILOG Tracing package");
        epilogbinCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                epilogbinCheckBoxStateChanged(evt);
            }
        });

        epilogincCheckBox.setText("Epilog Include [-epiloginc=]:");
        epilogincCheckBox.setToolTipText("Specify location of EPILOG Tracing package");
        epilogincCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                epilogincCheckBoxStateChanged(evt);
            }
        });

        epiloglibCheckBox.setText("Epilog Lib [-epiloglib=]:");
        epiloglibCheckBox.setToolTipText("Specify location of EPILOG Tracing package");
        epiloglibCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                epiloglibCheckBoxStateChanged(evt);
            }
        });

        epilogbinButton.setText("Browse");
        epilogbinButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                epilogbinButtonActionPerformed(evt);
            }
        });

        epilogincButton.setText("Browse");
        epilogincButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                epilogincButtonActionPerformed(evt);
            }
        });

        epiloglibButton.setText("Browse");
        epiloglibButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                epiloglibButtonActionPerformed(evt);
            }
        });

        epilogbinTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        epilogbinTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                epilogbinTextFieldActionPerformed(evt);
            }
        });

        epilogincTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        epilogincTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                epilogincTextFieldActionPerformed(evt);
            }
        });

        epiloglibTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        epiloglibTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                epiloglibTextFieldActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout tracePanelLayout = new org.jdesktop.layout.GroupLayout(tracePanel);
        tracePanel.setLayout(tracePanelLayout);
        tracePanelLayout.setHorizontalGroup(
            tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(tracePanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(tracePanelLayout.createSequentialGroup()
                        .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(tracePanelLayout.createSequentialGroup()
                                .add(traceQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(traceCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 119, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(tracePanelLayout.createSequentialGroup()
                                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                                    .add(org.jdesktop.layout.GroupLayout.LEADING, tracePanelLayout.createSequentialGroup()
                                        .add(epilogQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                        .add(epilogCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 136, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                                    .add(org.jdesktop.layout.GroupLayout.LEADING, tracePanelLayout.createSequentialGroup()
                                        .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                            .add(tracePanelLayout.createSequentialGroup()
                                                .add(epilogbinQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                                .add(epilogbinCheckBox))
                                            .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
                                                .add(org.jdesktop.layout.GroupLayout.LEADING, tracePanelLayout.createSequentialGroup()
                                                    .add(epiloglibQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                                    .add(epiloglibCheckBox, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                                .add(org.jdesktop.layout.GroupLayout.LEADING, tracePanelLayout.createSequentialGroup()
                                                    .add(epilogincQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                                    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                                    .add(epilogincCheckBox))))
                                        .add(61, 61, 61)
                                        .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                            .add(epiloglibButton)
                                            .add(epilogincButton)
                                            .add(epilogbinButton)
                                            .add(epilogButton))))
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(epilogTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
                                    .add(epiloglibTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
                                    .add(org.jdesktop.layout.GroupLayout.TRAILING, epilogbinTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
                                    .add(epilogincTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE))))
                        .addContainerGap())
                    .add(tracePanelLayout.createSequentialGroup()
                        .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(tracePanelLayout.createSequentialGroup()
                                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(slog2QjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(slog2eQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(slog2CheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 124, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(tracePanelLayout.createSequentialGroup()
                                        .add(21, 21, 21)
                                        .add(slog2exCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 241, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                        .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                            .add(slog2Button)
                                            .add(vtfButton)
                                            .add(otfButton)
                                            .add(vtraceButton)))))
                            .add(tracePanelLayout.createSequentialGroup()
                                .add(vtfQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(vtfCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 98, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(tracePanelLayout.createSequentialGroup()
                                .add(otfQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(otfCheckBox))
                            .add(tracePanelLayout.createSequentialGroup()
                                .add(vtraceQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(vtraceCheckBox)))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(vtfTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 396, Short.MAX_VALUE)
                            .add(otfTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 396, Short.MAX_VALUE)
                            .add(vtraceTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 396, Short.MAX_VALUE)
                            .add(slog2TextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 396, Short.MAX_VALUE))
                        .add(16, 16, 16))))
        );
        tracePanelLayout.setVerticalGroup(
            tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(tracePanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(traceQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(traceCheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(epilogQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(epilogButton)
                    .add(epilogCheckBox)
                    .add(epilogTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(epilogbinQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(epilogbinCheckBox)
                    .add(epilogbinButton)
                    .add(epilogbinTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                    .add(tracePanelLayout.createSequentialGroup()
                        .add(6, 6, 6)
                        .add(epilogincTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(epilogincQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(epilogincCheckBox)
                        .add(epilogincButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 25, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                        .add(epiloglibQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(epiloglibCheckBox)
                        .add(epiloglibButton))
                    .add(tracePanelLayout.createSequentialGroup()
                        .add(6, 6, 6)
                        .add(epiloglibTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(slog2QjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(slog2CheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(slog2eQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(slog2exCheckBox)
                    .add(slog2Button)
                    .add(slog2TextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(vtfQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(vtfCheckBox)
                    .add(vtfButton)
                    .add(vtfTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(otfQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(otfCheckBox)
                    .add(otfButton)
                    .add(otfTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(tracePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(vtraceQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(vtraceCheckBox)
                    .add(vtraceButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 25, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(vtraceTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        jPanel5.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        profphaseCheckBox.setText("Phase Profiling [-PROFILEPHASE]");
        profphaseCheckBox.setToolTipText("Generate phase based profiles");
        profphaseCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                profphaseCheckBoxStateChanged(evt);
            }
        });

        depthlimitCheckBox.setText("Depth Limit [-DEPTHLIMIT]:");
        depthlimitCheckBox.setToolTipText("Disable instrumentation beyond a certain depth");
        depthlimitCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                depthlimitCheckBoxStateChanged(evt);
            }
        });

        phaseQjButton.setText("?");
        phaseQjButton.setToolTipText("More Info");
        phaseQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        phaseQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        depthQjButton.setText("?");
        depthQjButton.setToolTipText("More Info");
        depthQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        depthQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout jPanel5Layout = new org.jdesktop.layout.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jPanel5Layout.createSequentialGroup()
                        .add(phaseQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(profphaseCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 227, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(jPanel5Layout.createSequentialGroup()
                        .add(depthQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(depthlimitCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 197, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .add(622, 622, 622))
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(phaseQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(profphaseCheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel5Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(depthQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(depthlimitCheckBox))
                .addContainerGap())
        );

        perfjPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        perfincQjButton.setText("?");
        perfincQjButton.setToolTipText("More Info");
        perfincQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        perfincQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        perfincCheckBox.setText("Perf Includes  [-perfinc=]:");
        perfincCheckBox.setToolTipText("Specify location of MPI include dir and use the TAU MPI Profiling and Tracing Interface");
        perfincCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                perfincCheckBoxStateChanged(evt);
            }
        });

        perfincButton.setText("Browse");
        perfincButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                perfincButtonActionPerformed(evt);
            }
        });

        perfincTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        perfincTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                perfincTextFieldActionPerformed(evt);
            }
        });

        perflibQjButton.setText("?");
        perflibQjButton.setToolTipText("More Info");
        perflibQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        perflibQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        perflibCheckBox.setText("Perf Librararies [-perflib=]:");
        perflibCheckBox.setToolTipText("Specify location of MPI library dir and use the TAU MPI Profiling and Tracing Interface.");
        perflibCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                perflibCheckBoxStateChanged(evt);
            }
        });

        perflibButton.setText("Browse");
        perflibButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                perflibButtonActionPerformed(evt);
            }
        });

        perflibTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        perflibTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                perflibTextFieldActionPerformed(evt);
            }
        });

        altperfQjButton.setText("?");
        altperfQjButton.setToolTipText("More Info");
        altperfQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        altperfQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        altperfCheckBox.setText("Alt. Perf LIbrary [-perflibrary=]:");
        altperfCheckBox.setToolTipText("Specify a different MPI library e.g., -mpilibrary=-lmpi_r");
        altperfCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                altperfCheckBoxStateChanged(evt);
            }
        });

        altperfTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        altperfTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                altperfTextFieldActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout perfjPanelLayout = new org.jdesktop.layout.GroupLayout(perfjPanel);
        perfjPanel.setLayout(perfjPanelLayout);
        perfjPanelLayout.setHorizontalGroup(
            perfjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(perfjPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(perfjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(perfjPanelLayout.createSequentialGroup()
                        .add(perfjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(perfjPanelLayout.createSequentialGroup()
                                .add(perflibQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(perflibCheckBox))
                            .add(perfjPanelLayout.createSequentialGroup()
                                .add(perfincQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(perfincCheckBox)))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(perfjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                            .add(perflibButton)
                            .add(perfincButton))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(perfjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(altperfTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 469, Short.MAX_VALUE)
                            .add(org.jdesktop.layout.GroupLayout.TRAILING, perfjPanelLayout.createSequentialGroup()
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(perflibTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 469, Short.MAX_VALUE))
                            .add(perfjPanelLayout.createSequentialGroup()
                                .add(perfincTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 469, Short.MAX_VALUE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED))))
                    .add(perfjPanelLayout.createSequentialGroup()
                        .add(altperfQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(altperfCheckBox)))
                .addContainerGap())
        );
        perfjPanelLayout.setVerticalGroup(
            perfjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(perfjPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(perfjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(perfincQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(perfincCheckBox)
                    .add(perfincButton)
                    .add(perfincTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(perfjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(perflibQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(perflibCheckBox)
                    .add(perflibButton)
                    .add(perflibTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(perfjPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(altperfQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(altperfTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(altperfCheckBox))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        org.jdesktop.layout.GroupLayout outputPanelLayout = new org.jdesktop.layout.GroupLayout(outputPanel);
        outputPanel.setLayout(outputPanelLayout);
        outputPanelLayout.setHorizontalGroup(
            outputPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(outputPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(outputPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(tracePanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(profilePanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(jPanel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 800, Short.MAX_VALUE)
                    .add(perfjPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        outputPanelLayout.setVerticalGroup(
            outputPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(outputPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(profilePanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(tracePanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(perfjPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(20, Short.MAX_VALUE))
        );
        tabPane.addTab("Tracing/Profiling", outputPanel);

        threadPanel.setMinimumSize(new java.awt.Dimension(600, 300));
        threadPanel.setPreferredSize(new java.awt.Dimension(600, 300));
        ompPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        ompCheckBox.setText("openMP [-openmp]");
        ompCheckBox.setToolTipText("Use OpenMP threads");
        ompCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                ompCheckBoxStateChanged(evt);
            }
        });

        opariCheckBox.setText("Use Opari [-opari=]:");
        opariCheckBox.setToolTipText("Specify location of Opari OpenMP tool (use with above)");
        opariCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                opariCheckBoxStateChanged(evt);
            }
        });

        opariTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        opariTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                opariTextFieldActionPerformed(evt);
            }
        });

        opariregionCheckBox.setText("Region [-opari_region]");
        opariregionCheckBox.setToolTipText("Report performance data for all OpenMP regions");
        opariregionCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                opariregionCheckBoxStateChanged(evt);
            }
        });

        opariconstructCheckBox.setText("Construct [-opari_construct]");
        opariconstructCheckBox.setToolTipText("Report performance data for all OpenMP constructs");
        opariconstructCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                opariconstructCheckBoxStateChanged(evt);
            }
        });

        opariButton.setText("Browse");
        opariButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                opariButtonActionPerformed(evt);
            }
        });

        openmpQjButton.setText("?");
        openmpQjButton.setToolTipText("More Info");
        openmpQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        openmpQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        opariQjButton.setText("?");
        opariQjButton.setToolTipText("More Info");
        opariQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        opariQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        opariregionQjButton.setText("?");
        opariregionQjButton.setToolTipText("More Info");
        opariregionQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        opariregionQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        opariconstructQjButton.setText("?");
        opariconstructQjButton.setToolTipText("More Info");
        opariconstructQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        opariconstructQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout ompPanelLayout = new org.jdesktop.layout.GroupLayout(ompPanel);
        ompPanel.setLayout(ompPanelLayout);
        ompPanelLayout.setHorizontalGroup(
            ompPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(ompPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(ompPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(openmpQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(opariQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(opariregionQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(opariconstructQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(ompPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(ompPanelLayout.createSequentialGroup()
                        .add(23, 23, 23)
                        .add(ompPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(opariconstructCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 202, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(ompPanelLayout.createSequentialGroup()
                                .add(opariCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 151, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(opariButton)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(opariTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 490, Short.MAX_VALUE))
                            .add(opariregionCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 166, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                    .add(ompPanelLayout.createSequentialGroup()
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(ompCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 145, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        ompPanelLayout.setVerticalGroup(
            ompPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(ompPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(ompPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(openmpQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(ompCheckBox))
                .add(6, 6, 6)
                .add(ompPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(opariQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(opariCheckBox)
                    .add(opariButton)
                    .add(opariTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(8, 8, 8)
                .add(ompPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(opariregionQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(opariregionCheckBox))
                .add(40, 40, 40))
            .add(org.jdesktop.layout.GroupLayout.TRAILING, ompPanelLayout.createSequentialGroup()
                .add(99, 99, 99)
                .add(ompPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(opariconstructQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(opariconstructCheckBox))
                .add(12, 12, 12))
        );

        charmPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        charmCheckBox.setText("charm++ [-charm=]:");
        charmCheckBox.setToolTipText("Use charm++ thread package");
        charmCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                charmCheckBoxStateChanged(evt);
            }
        });

        charmTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        charmTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                charmTextFieldActionPerformed(evt);
            }
        });

        charmButton.setText("Browse");
        charmButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                charmButtonActionPerformed(evt);
            }
        });

        charmQjButton.setText("?");
        charmQjButton.setToolTipText("More Info");
        charmQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        charmQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout charmPanelLayout = new org.jdesktop.layout.GroupLayout(charmPanel);
        charmPanel.setLayout(charmPanelLayout);
        charmPanelLayout.setHorizontalGroup(
            charmPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(charmPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(charmQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(charmCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 160, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(charmButton)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(charmTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 502, Short.MAX_VALUE)
                .addContainerGap())
        );
        charmPanelLayout.setVerticalGroup(
            charmPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(charmPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(charmPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(charmQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(charmCheckBox)
                    .add(charmButton)
                    .add(charmTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(18, 18, 18))
        );

        tulipthreadsPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        tulipCheckBox.setText("tulip threads [-tulipthread=]:");
        tulipCheckBox.setToolTipText("Specify location of Tulip/Smarts package");
        tulipCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                tulipCheckBoxStateChanged(evt);
            }
        });

        tulipTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        tulipTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tulipTextFieldActionPerformed(evt);
            }
        });

        smartCheckBox.setText("Use smart API [-smart]");
        smartCheckBox.setToolTipText("Use SMARTS API for threads (use with above)");
        smartCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                smartCheckBoxStateChanged(evt);
            }
        });

        tulipButton.setText("Browse");
        tulipButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                tulipButtonActionPerformed(evt);
            }
        });

        tulipQjButton.setText("?");
        tulipQjButton.setToolTipText("More Info");
        tulipQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        tulipQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        smartQjButton.setText("?");
        smartQjButton.setToolTipText("More Info");
        smartQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        smartQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout tulipthreadsPanelLayout = new org.jdesktop.layout.GroupLayout(tulipthreadsPanel);
        tulipthreadsPanel.setLayout(tulipthreadsPanelLayout);
        tulipthreadsPanelLayout.setHorizontalGroup(
            tulipthreadsPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(tulipthreadsPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(tulipthreadsPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(tulipQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(smartQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(tulipthreadsPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(tulipthreadsPanelLayout.createSequentialGroup()
                        .add(tulipCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 207, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(tulipButton)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(tulipTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 455, Short.MAX_VALUE))
                    .add(tulipthreadsPanelLayout.createSequentialGroup()
                        .add(21, 21, 21)
                        .add(smartCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 168, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        tulipthreadsPanelLayout.setVerticalGroup(
            tulipthreadsPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(tulipthreadsPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(tulipthreadsPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(tulipQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(tulipCheckBox)
                    .add(tulipButton)
                    .add(tulipTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(tulipthreadsPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(smartCheckBox)
                    .add(smartQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pthreadsPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        pthreadsCheckBox.setText("pthreads [-pthread]");
        pthreadsCheckBox.setToolTipText("Use pthread thread package");
        pthreadsCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                pthreadsCheckBoxStateChanged(evt);
            }
        });

        pthreadsQjButton.setText("?");
        pthreadsQjButton.setToolTipText("More Info");
        pthreadsQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        pthreadsQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout pthreadsPanelLayout = new org.jdesktop.layout.GroupLayout(pthreadsPanel);
        pthreadsPanel.setLayout(pthreadsPanelLayout);
        pthreadsPanelLayout.setHorizontalGroup(
            pthreadsPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pthreadsPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(pthreadsQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(pthreadsCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 148, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(681, 681, 681))
        );
        pthreadsPanelLayout.setVerticalGroup(
            pthreadsPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pthreadsPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(pthreadsPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(pthreadsQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(pthreadsCheckBox))
                .add(10, 10, 10))
        );

        sprocPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        sprocCheckBox.setText("sproc [-sproc]");
        sprocCheckBox.setToolTipText("Use SGI sproc thread package");
        sprocCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                sprocCheckBoxStateChanged(evt);
            }
        });

        sprocQjButton.setText("?");
        sprocQjButton.setToolTipText("More Info");
        sprocQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        sprocQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout sprocPanelLayout = new org.jdesktop.layout.GroupLayout(sprocPanel);
        sprocPanel.setLayout(sprocPanelLayout);
        sprocPanelLayout.setHorizontalGroup(
            sprocPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(sprocPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(sprocQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(sprocCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 113, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(716, 716, 716))
        );
        sprocPanelLayout.setVerticalGroup(
            sprocPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(sprocPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(sprocPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(sprocQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(sprocCheckBox))
                .add(10, 10, 10))
        );

        org.jdesktop.layout.GroupLayout threadPanelLayout = new org.jdesktop.layout.GroupLayout(threadPanel);
        threadPanel.setLayout(threadPanelLayout);
        threadPanelLayout.setHorizontalGroup(
            threadPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(threadPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(threadPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(charmPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(sprocPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 800, Short.MAX_VALUE)
                    .add(tulipthreadsPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(ompPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(pthreadsPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 800, Short.MAX_VALUE))
                .addContainerGap())
        );
        threadPanelLayout.setVerticalGroup(
            threadPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(threadPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(pthreadsPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .add(7, 7, 7)
                .add(ompPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 135, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(charmPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 59, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(sprocPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(tulipthreadsPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(302, Short.MAX_VALUE))
        );
        tabPane.addTab("Threads", threadPanel);

        generalPanel.setMinimumSize(new java.awt.Dimension(600, 300));
        generalPanel.setPreferredSize(new java.awt.Dimension(600, 300));
        dyninstPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        dyninstCheckBox.setText("Dyninst [-dyninst=]:");
        dyninstCheckBox.setToolTipText("Specify location of DynInst Package");
        dyninstCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                dyninstCheckBoxStateChanged(evt);
            }
        });

        dyninstTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        dyninstTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                dyninstTextFieldActionPerformed(evt);
            }
        });

        dyninstButton.setText("Browse");
        dyninstButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                dyninstButtonActionPerformed(evt);
            }
        });

        dyninstQjButton.setText("?");
        dyninstQjButton.setToolTipText("More Info");
        dyninstQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        dyninstQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout dyninstPanelLayout = new org.jdesktop.layout.GroupLayout(dyninstPanel);
        dyninstPanel.setLayout(dyninstPanelLayout);
        dyninstPanelLayout.setHorizontalGroup(
            dyninstPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(dyninstPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(dyninstQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(dyninstCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 154, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(dyninstButton)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(dyninstTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 508, Short.MAX_VALUE)
                .addContainerGap())
        );
        dyninstPanelLayout.setVerticalGroup(
            dyninstPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(dyninstPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(dyninstPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(dyninstQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(dyninstCheckBox)
                    .add(dyninstButton)
                    .add(dyninstTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        pclPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        pclCheckBox.setText("PCL [-pcl=]:");
        pclCheckBox.setToolTipText("Specify location of PCL (Performance Counter Library)");
        pclCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                pclCheckBoxStateChanged(evt);
            }
        });

        pclTextField.setPreferredSize(new java.awt.Dimension(200, 19));
        pclTextField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                pclTextFieldActionPerformed(evt);
            }
        });

        pclButton.setText("Browse");
        pclButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                pclButtonActionPerformed(evt);
            }
        });

        pclQjButton.setText("?");
        pclQjButton.setToolTipText("More Info");
        pclQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        pclQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout pclPanelLayout = new org.jdesktop.layout.GroupLayout(pclPanel);
        pclPanel.setLayout(pclPanelLayout);
        pclPanelLayout.setHorizontalGroup(
            pclPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pclPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(pclQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(pclCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 99, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(pclButton)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(pclTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 563, Short.MAX_VALUE)
                .addContainerGap())
        );
        pclPanelLayout.setVerticalGroup(
            pclPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, pclPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(pclPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(pclQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(pclCheckBox)
                    .add(pclButton)
                    .add(pclTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        timePanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        cputimeCheckBox.setText("CPU Time [-CPUTIME]");
        cputimeCheckBox.setToolTipText("Use usertime+system time instead of wallclock time");
        cputimeCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                cputimeCheckBoxStateChanged(evt);
            }
        });

        craytimeCheckBox.setText("Cray Timers [-CRAYTIMERS]");
        craytimeCheckBox.setToolTipText("Use fast nanosecond timers on Cray X1 systems");
        craytimeCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                craytimeCheckBoxStateChanged(evt);
            }
        });

        linuxtimeCheckBox.setText("Linux Timers [-LINUXTIMERS]");
        linuxtimeCheckBox.setToolTipText("Use low overhead TSC Counter for wallclock time");
        linuxtimeCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                linuxtimeCheckBoxStateChanged(evt);
            }
        });

        sgitimeCheckBox.setText("SGI Timers [-SGITIMERS]");
        sgitimeCheckBox.setToolTipText("Use fast nanosecond timers on SGI R10000 systems");
        sgitimeCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                sgitimeCheckBoxStateChanged(evt);
            }
        });

        jLabel2.setText("Timer Type");

        cputQjButton.setText("?");
        cputQjButton.setToolTipText("More Info");
        cputQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        cputQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        craytQjButton.setText("?");
        craytQjButton.setToolTipText("More Info");
        craytQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        craytQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        linuxtQjButton.setText("?");
        linuxtQjButton.setToolTipText("More Info");
        linuxtQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        linuxtQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        sgitQjButton.setText("?");
        sgitQjButton.setToolTipText("More Info");
        sgitQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        sgitQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout timePanelLayout = new org.jdesktop.layout.GroupLayout(timePanel);
        timePanel.setLayout(timePanelLayout);
        timePanelLayout.setHorizontalGroup(
            timePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(timePanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(timePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(timePanelLayout.createSequentialGroup()
                        .add(timePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(craytQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(linuxtQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(sgitQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(timePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(craytimeCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 290, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(timePanelLayout.createSequentialGroup()
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(timePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(sgitimeCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 300, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(linuxtimeCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 300, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))))
                    .add(timePanelLayout.createSequentialGroup()
                        .add(22, 22, 22)
                        .add(cputimeCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 280, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 120, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(cputQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(549, 549, 549))
        );
        timePanelLayout.setVerticalGroup(
            timePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, timePanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(jLabel2)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 6, Short.MAX_VALUE)
                .add(timePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(cputimeCheckBox)
                    .add(cputQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(timePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(craytQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(craytimeCheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(timePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(linuxtimeCheckBox)
                    .add(linuxtQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(timePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(sgitimeCheckBox)
                    .add(sgitQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        musePanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        museCheckBox.setText("Muse [-muse]");
        museCheckBox.setToolTipText("Specify the use of MAGNET/MUSE");
        museCheckBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                museCheckBoxActionPerformed(evt);
            }
        });

        museeventCheckBox.setText("Muse Event [-muse_event]");
        museeventCheckBox.setToolTipText("Specify the use of MAGNET/MUSE w/ non-monotonically increasing values");
        museeventCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                museeventCheckBoxStateChanged(evt);
            }
        });

        musemultCheckBox.setText(" Muse Multiple [-muse_multiple]");
        musemultCheckBox.setToolTipText("Specify the use of MAGNET/MUSE w/ monotonically increasing values");
        musemultCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                musemultCheckBoxStateChanged(evt);
            }
        });

        musemQjButton.setText("?");
        musemQjButton.setToolTipText("More Info");
        musemQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        musemQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        museeQjButton.setText("?");
        museeQjButton.setToolTipText("More Info");
        museeQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        museeQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        museQjButton.setText("?");
        museQjButton.setToolTipText("More Info");
        museQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        museQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout musePanelLayout = new org.jdesktop.layout.GroupLayout(musePanel);
        musePanel.setLayout(musePanelLayout);
        musePanelLayout.setHorizontalGroup(
            musePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(musePanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(musePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(musemQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(musePanelLayout.createSequentialGroup()
                        .add(musePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(museQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(museeQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(musePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(museCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 112, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(musePanelLayout.createSequentialGroup()
                                .add(21, 21, 21)
                                .add(musePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(musemultCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 229, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(museeventCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 190, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))))
                .add(599, 599, 599))
        );
        musePanelLayout.setVerticalGroup(
            musePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(musePanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(musePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(museQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(museCheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(musePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(museeQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(museeventCheckBox))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 6, Short.MAX_VALUE)
                .add(musePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(musemQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(musemultCheckBox))
                .add(23, 23, 23))
        );

        org.jdesktop.layout.GroupLayout generalPanelLayout = new org.jdesktop.layout.GroupLayout(generalPanel);
        generalPanel.setLayout(generalPanelLayout);
        generalPanelLayout.setHorizontalGroup(
            generalPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(generalPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(generalPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pclPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(dyninstPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(musePanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 800, Short.MAX_VALUE)
                    .add(timePanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 800, Short.MAX_VALUE))
                .addContainerGap())
        );
        generalPanelLayout.setVerticalGroup(
            generalPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(generalPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(pclPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(dyninstPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(musePanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(timePanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(306, Short.MAX_VALUE))
        );
        tabPane.addTab("Data Tools", generalPanel);

        pythonPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        usepythonCheckBox.setText("Use Python [-pythoninc=]:");
        usepythonCheckBox.setToolTipText("Specify location of Python include directory");
        usepythonCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                usepythonCheckBoxStateChanged(evt);
            }
        });

        pythonincField.setPreferredSize(new java.awt.Dimension(200, 19));
        pythonincField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                pythonincFieldActionPerformed(evt);
            }
        });

        pythonlibCheckBox.setText("Python Libraries [-pythonlib=]:");
        pythonlibCheckBox.setToolTipText("Specify location of Python lib directory");
        pythonlibCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                pythonlibCheckBoxStateChanged(evt);
            }
        });

        pythonlibField.setPreferredSize(new java.awt.Dimension(200, 19));
        pythonlibField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                pythonlibFieldActionPerformed(evt);
            }
        });

        pythonincButton.setText("Browse");
        pythonincButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                pythonincButtonActionPerformed(evt);
            }
        });

        pythonlibButton.setText("Browse");
        pythonlibButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                pythonlibButtonActionPerformed(evt);
            }
        });

        pythonincQjButton.setText("?");
        pythonincQjButton.setToolTipText("More Info");
        pythonincQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        pythonincQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        pythonlibQjButton.setText("?");
        pythonlibQjButton.setToolTipText("More Info");
        pythonlibQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        pythonlibQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout pythonPanelLayout = new org.jdesktop.layout.GroupLayout(pythonPanel);
        pythonPanel.setLayout(pythonPanelLayout);
        pythonPanelLayout.setHorizontalGroup(
            pythonPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pythonPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(pythonPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pythonincQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(pythonlibQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(pythonPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                    .add(usepythonCheckBox, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(org.jdesktop.layout.GroupLayout.TRAILING, pythonlibCheckBox, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 219, Short.MAX_VALUE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(pythonPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pythonincButton)
                    .add(pythonlibButton))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(pythonPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(pythonincField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 443, Short.MAX_VALUE)
                    .add(pythonlibField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 443, Short.MAX_VALUE))
                .addContainerGap())
        );
        pythonPanelLayout.setVerticalGroup(
            pythonPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(pythonPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(pythonPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(pythonincQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(usepythonCheckBox)
                    .add(pythonincButton)
                    .add(pythonincField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(6, 6, 6)
                .add(pythonPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(pythonlibQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(pythonlibCheckBox)
                    .add(pythonlibButton)
                    .add(pythonlibField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        jdkPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        usejdkCheckBox.setText("Use JDK [-jdk=]:");
        usejdkCheckBox.setToolTipText("Specify location of JAVA 2 Development Kit (jdk1.2+)");
        usejdkCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                usejdkCheckBoxStateChanged(evt);
            }
        });

        jdkField.setPreferredSize(new java.awt.Dimension(200, 19));
        jdkField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jdkFieldActionPerformed(evt);
            }
        });

        usejavatimersCheckBox.setText("Java Timers [-JAVACPUTIME]");
        usejavatimersCheckBox.setToolTipText("Use JVMPI thread specific cpu time");
        usejavatimersCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                usejavatimersCheckBoxStateChanged(evt);
            }
        });

        jdkButton.setText("Browse");
        jdkButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jdkButtonActionPerformed(evt);
            }
        });

        jLabel1.setText("For use only when measuring the performance of Java programs.");

        jdkQjButton.setText("?");
        jdkQjButton.setToolTipText("More Info");
        jdkQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        jdkQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        javatQjButton.setText("?");
        javatQjButton.setToolTipText("More Info");
        javatQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        javatQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout jdkPanelLayout = new org.jdesktop.layout.GroupLayout(jdkPanel);
        jdkPanel.setLayout(jdkPanelLayout);
        jdkPanelLayout.setHorizontalGroup(
            jdkPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jdkPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(jdkPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jdkPanelLayout.createSequentialGroup()
                        .add(jdkPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                            .add(jdkPanelLayout.createSequentialGroup()
                                .add(jdkQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(usejdkCheckBox, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 204, Short.MAX_VALUE))
                            .add(jdkPanelLayout.createSequentialGroup()
                                .add(javatQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(usejavatimersCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 204, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jdkButton)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jdkField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 458, Short.MAX_VALUE))
                    .add(jLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 405, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );
        jdkPanelLayout.setVerticalGroup(
            jdkPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jdkPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(jLabel1)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jdkPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jdkQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(usejdkCheckBox)
                    .add(jdkButton)
                    .add(jdkField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jdkPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(javatQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(usejavatimersCheckBox))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        dirarcPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        installdirCheckBox.setText("Custom Installation Directory [-prefix=]:");
        installdirCheckBox.setToolTipText("Specify a target installation directory");
        installdirCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                installdirCheckBoxStateChanged(evt);
            }
        });

        installdirField.setPreferredSize(new java.awt.Dimension(200, 19));
        installdirField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                installdirFieldActionPerformed(evt);
            }
        });

        archdirCheckBox.setText("Custom Arch Directory [-exec-prefix=]:");
        archdirCheckBox.setToolTipText("Specify a target architecture directory");
        archdirCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                archdirCheckBoxStateChanged(evt);
            }
        });

        archdirField.setPreferredSize(new java.awt.Dimension(200, 19));
        archdirField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                archdirFieldActionPerformed(evt);
            }
        });

        archLabel.setText("Architecture [-arch=]:");

        archCombo.setToolTipText("Specify a target architecture");
        archCombo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                archComboActionPerformed(evt);
            }
        });

        useroptCheckBox.setText("Use User Options [-useropt=]:");
        useroptCheckBox.setToolTipText("list of commandline parameters");
        useroptCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                useroptCheckBoxStateChanged(evt);
            }
        });

        useroptField.setPreferredSize(new java.awt.Dimension(200, 19));
        useroptField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                useroptFieldActionPerformed(evt);
            }
        });

        noexceptCheckBox.setText("No Exceptions [-noex]");
        noexceptCheckBox.setToolTipText("Use no exceptions while compiling the library");
        noexceptCheckBox.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                noexceptCheckBoxStateChanged(evt);
            }
        });

        installdirButton.setText("Browse");
        installdirButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                installdirButtonActionPerformed(evt);
            }
        });

        archdirButton.setText("Browse");
        archdirButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                archdirButtonActionPerformed(evt);
            }
        });

        custinstQjButton.setText("?");
        custinstQjButton.setToolTipText("More Info");
        custinstQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        custinstQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        custarchQjButton.setText("?");
        custarchQjButton.setToolTipText("More Info");
        custarchQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        custarchQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        archQjButton.setText("?");
        archQjButton.setToolTipText("More Info");
        archQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        archQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        useroptQjButton.setText("?");
        useroptQjButton.setToolTipText("More Info");
        useroptQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        useroptQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        noexQjButton.setText("?");
        noexQjButton.setToolTipText("More Info");
        noexQjButton.setMargin(new java.awt.Insets(1, 1, 1, 1));
        noexQjButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                QJButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout dirarcPanelLayout = new org.jdesktop.layout.GroupLayout(dirarcPanel);
        dirarcPanel.setLayout(dirarcPanelLayout);
        dirarcPanelLayout.setHorizontalGroup(
            dirarcPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(dirarcPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(dirarcPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(dirarcPanelLayout.createSequentialGroup()
                        .add(dirarcPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(dirarcPanelLayout.createSequentialGroup()
                                .add(custinstQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(installdirCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 279, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(dirarcPanelLayout.createSequentialGroup()
                                .add(useroptQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(useroptCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 215, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(dirarcPanelLayout.createSequentialGroup()
                                .add(archQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(archLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 346, Short.MAX_VALUE))
                            .add(dirarcPanelLayout.createSequentialGroup()
                                .add(custarchQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(archdirCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 271, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(dirarcPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(dirarcPanelLayout.createSequentialGroup()
                                .add(dirarcPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(installdirButton)
                                    .add(archdirButton))
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(dirarcPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                                    .add(installdirField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 296, Short.MAX_VALUE)
                                    .add(archdirField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 296, Short.MAX_VALUE))
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED))
                            .add(archCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 90, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(useroptField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 382, Short.MAX_VALUE)))
                    .add(dirarcPanelLayout.createSequentialGroup()
                        .add(noexQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(noexceptCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 163, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );
        dirarcPanelLayout.setVerticalGroup(
            dirarcPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(dirarcPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(dirarcPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(custinstQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(installdirCheckBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(installdirButton)
                    .add(installdirField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(dirarcPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(dirarcPanelLayout.createSequentialGroup()
                        .add(6, 6, 6)
                        .add(dirarcPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                            .add(custarchQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(archdirCheckBox)
                            .add(archdirButton)))
                    .add(dirarcPanelLayout.createSequentialGroup()
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(archdirField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .add(7, 7, 7)
                .add(dirarcPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(archQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(archLabel)
                    .add(archCombo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .add(10, 10, 10)
                .add(dirarcPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(useroptQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(useroptCheckBox)
                    .add(useroptField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(dirarcPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(noexQjButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 20, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(noexceptCheckBox))
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(dirarcPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(pythonPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .add(jdkPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .add(pythonPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jdkPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(dirarcPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(328, Short.MAX_VALUE))
        );
        tabPane.addTab("Misc", jPanel1);

        jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        allconfComboBox.setMaximumSize(new java.awt.Dimension(100, 32767));
        getConfs(allconf,".all_configs");
        allconfComboBox.setSelectedIndex(allconf.size()-1);

        loadallconfButton.setText("Load");
        loadallconfButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                loadallconfButtonActionPerformed(evt);
            }
        });

        savedconfComboBox.setMaximumSize(new java.awt.Dimension(100, 32767));
        getConfs(savedconf,".saved_configs");
        savedconfComboBox.setSelectedIndex(savedconf.size()-1);

        loadsavedconfButton.setText("Load");
        loadsavedconfButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                loadsavedconfButtonActionPerformed(evt);
            }
        });

        jLabel3.setText("all_configs");

        jLabel4.setText("saved_configs");

        removeconfButton.setText("Remove Selected");
        removeconfButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                removeconfButtonActionPerformed(evt);
            }
        });

        saveconfButton.setText("Save Current Configuration As: ");
        saveconfButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                saveconfButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout jPanel3Layout = new org.jdesktop.layout.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(savedconfComboBox, 0, 772, Short.MAX_VALUE)
                    .add(jPanel3Layout.createSequentialGroup()
                        .add(loadsavedconfButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 90, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(removeconfButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 150, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 70, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(loadallconfButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 90, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 90, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jPanel3Layout.createSequentialGroup()
                        .add(saveconfButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 240, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(custconfTextField, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 526, Short.MAX_VALUE))
                    .add(allconfComboBox, 0, 772, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .add(jLabel3)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(allconfComboBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(loadallconfButton)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jLabel4)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(savedconfComboBox, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(loadsavedconfButton)
                    .add(removeconfButton))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .add(jPanel3Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(saveconfButton)
                    .add(custconfTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel2Layout.createSequentialGroup()
                .add(10, 10, 10)
                .add(jPanel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(481, Short.MAX_VALUE))
        );
        tabPane.addTab("Configurations", jPanel2);

        commandPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        confButton.setText("Configure Tau");
        confButton.setToolTipText("Run the generated TAU configure command");
        confButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                confButtonActionPerformed(evt);
            }
        });

        confjScrollPane.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        confjScrollPane.setAutoscrolls(true);
        confjScrollPane.setRequestFocusEnabled(false);
        commandTextArea.setText("./configure");
        confjScrollPane.setViewportView(commandTextArea);

        makejButton.setText("Make Tau");
        makejButton.setToolTipText("Clean TAU and install the most recent configuration specified");
        makejButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                makejButtonActionPerformed(evt);
            }
        });

        instjScrollPane.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
        instjScrollPane.setAutoscrolls(true);
        instjScrollPane.setRequestFocusEnabled(false);
        instTextArea.setText("./installtau");
        instjScrollPane.setViewportView(instTextArea);

        instButton.setText("Install Tau");
        instButton.setToolTipText("Install TAU with the indicated command");
        instButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                instButtonActionPerformed(evt);
            }
        });

        org.jdesktop.layout.GroupLayout commandPanelLayout = new org.jdesktop.layout.GroupLayout(commandPanel);
        commandPanel.setLayout(commandPanelLayout);
        commandPanelLayout.setHorizontalGroup(
            commandPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(commandPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(commandPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(instjScrollPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 801, Short.MAX_VALUE)
                    .add(confjScrollPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 801, Short.MAX_VALUE)
                    .add(commandPanelLayout.createSequentialGroup()
                        .add(confButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 150, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(makejButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 150, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                    .add(instButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 150, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );
        commandPanelLayout.setVerticalGroup(
            commandPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(commandPanelLayout.createSequentialGroup()
                .addContainerGap()
                .add(confjScrollPane, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(commandPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(confButton)
                    .add(makejButton))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(instjScrollPane, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 38, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(instButton)
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel4Layout.createSequentialGroup()
                .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(jPanel4Layout.createSequentialGroup()
                        .add(exitButton)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(resetButton))
                    .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, commandPanel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .add(org.jdesktop.layout.GroupLayout.LEADING, tabPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 829, Short.MAX_VALUE)))
                .addContainerGap(143, Short.MAX_VALUE))
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel4Layout.createSequentialGroup()
                .add(tabPane, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 735, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(commandPanel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(jPanel4Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(resetButton)
                    .add(exitButton))
                .addContainerGap(101, Short.MAX_VALUE))
        );
        jScrollPane1.setViewportView(jPanel4);

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 921, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 1011, Short.MAX_VALUE)
        );
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-931)/2, (screenSize.height-1041)/2, 931, 1041);
    }// </editor-fold>//GEN-END:initComponents

    private void QJButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_QJButtonActionPerformed
        OptionSet.showHelp(evt.getSource());
    }//GEN-LAST:event_QJButtonActionPerformed

    
/*private class CheckBoxSet{
    CheckBoxSet(String com,JCheckBox cb, JTextField tb){
        command=com;
        checkbox=cb;
        textfield=tb;
    }
    String command=null;
    JCheckBox checkbox=null;
    JTextField textfield=null;
}

private class QButtonSet{
    String maintext=null;
    String titletext=null;
    JButton qbutton=null;
}

private class BButtonSet{
    JButton bbutton=null;
    JTextField textfield=null;
}
    
private void TextFieldListener(java.awt.event.ActionEvent evt){
    
    CheckBoxSet set=(CheckBoxSet) boxsetmap.get(evt.getSource());
    
    if(!set.checkbox.isSelected())return;
    int start = configureline.indexOf(set.command);
    if(start<0){
        return;
    }
    int stop = configureline.indexOf(" ", start+1);//Math.min(configureline.length()-2, configureline.indexOf(" -", start+2));
    String begin = configureline.substring(0,configureline.indexOf("=", start)+1);
    String end = configureline.substring(stop);
    configureline = begin+set.textfield.getText()+end;
    commandTextArea.setText(configureline); updateITCommand();
}    */

private void TextFieldAction(boolean selected,String id, String fieldtext){
    if(!selected)return;
    int start = configureline.indexOf(id);
    if(start<0){
        return;
    }
    int stop = configureline.indexOf(" ", start+1);//Math.min(configureline.length()-2, configureline.indexOf(" -", start+2));
    String begin = configureline.substring(0,configureline.indexOf("=", start)+1);
    String end = configureline.substring(stop);
    configureline = begin+fieldtext+end;
    commandTextArea.setText(configureline); updateITCommand();
}    

/*private void FieldCheckBoxChange(boolean selected, String id, String fieldtext)
{
	if(selected){
	    if(configureline.indexOf(id)==-1){
		configureline+=id;
		configureline+=fieldtext+" ";
	    }
	}
	else{
	    int start = configureline.indexOf(id);
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
	    }
	}
	commandTextArea.setText(configureline); updateITCommand();
}*/


private void FieldCheckBoxChange(boolean selected, String id, String fieldtext)
{
	if(selected){
	    if(configureline.indexOf(id)==-1){
		configureline+=id;
		configureline+=multiArg(fieldtext)+" ";
	    }
	}
	else{
	    int start = configureline.indexOf(id);
	    if(start>-1){
                String endline=" ";
                int end=-1;
                if(configureline.charAt(start+id.length())=='\'')
                {
                    endline="'";
                    end = configureline.indexOf(endline,  start+1);
                    end = configureline.indexOf(endline,  end+1)+1;//for space
                }
                else
       		    end = configureline.indexOf(endline,  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
		
	    }
	}
	commandTextArea.setText(configureline); updateITCommand();
}


private void BinaryCheckBoxChange(boolean selected, String id)
{
	if(selected){
	    if(configureline.indexOf(id)==-1){
		configureline+=id;
	    }
	} else{
	    if(configureline.indexOf(id)>-1)
		configureline = configureline.replaceFirst(id,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
}

private void BrowseButton(JTextField field){
    	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    field.setText(filename);
	}
}

    private void epiloglibTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_epiloglibTextFieldActionPerformed
    TextFieldAction(epiloglibCheckBox.isSelected()," -epiloglib=",epiloglibTextField.getText());
    }//GEN-LAST:event_epiloglibTextFieldActionPerformed
    private void epilogincTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_epilogincTextFieldActionPerformed
	    TextFieldAction(epilogincCheckBox.isSelected()," -epiloginc=",epilogincTextField.getText());
    }//GEN-LAST:event_epilogincTextFieldActionPerformed
    private void epilogbinTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_epilogbinTextFieldActionPerformed
	TextFieldAction(epilogbinCheckBox.isSelected()," -epilogbin=",epilogbinTextField.getText());
    }//GEN-LAST:event_epilogbinTextFieldActionPerformed
    private void epiloglibButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_epiloglibButtonActionPerformed
        BrowseButton(epiloglibTextField);
    }//GEN-LAST:event_epiloglibButtonActionPerformed
    private void epilogincButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_epilogincButtonActionPerformed
	BrowseButton(epilogincTextField);
    }//GEN-LAST:event_epilogincButtonActionPerformed
    private void epilogbinButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_epilogbinButtonActionPerformed
        BrowseButton(epilogbinTextField);
    }//GEN-LAST:event_epilogbinButtonActionPerformed
    private void epiloglibCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_epiloglibCheckBoxStateChanged
	FieldCheckBoxChange(epiloglibCheckBox.isSelected()," -epiloglib=",epiloglibTextField.getText());
    }                                                  private void epilogincCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-LAST:event_epiloglibCheckBoxStateChanged
	FieldCheckBoxChange(epilogincCheckBox.isSelected()," -epiloginc=",epilogincTextField.getText());//GEN-FIRST:event_epilogincCheckBoxStateChanged
    }//GEN-LAST:event_epilogincCheckBoxStateChanged
    private void epilogbinCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_epilogbinCheckBoxStateChanged
	FieldCheckBoxChange(epilogbinCheckBox.isSelected()," -epilogbin=",epilogbinTextField.getText());
    }                                                  private void vtraceTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-LAST:event_epilogbinCheckBoxStateChanged
	TextFieldAction(vtraceCheckBox.isSelected()," -vampirtrace=",vtraceTextField.getText());//GEN-FIRST:event_vtraceTextFieldActionPerformed
    }//GEN-LAST:event_vtraceTextFieldActionPerformed
    private void otfTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_otfTextFieldActionPerformed
	TextFieldAction(otfCheckBox.isSelected()," -otf=",otfTextField.getText());
    }//GEN-LAST:event_otfTextFieldActionPerformed
    private void vtraceButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vtraceButtonActionPerformed
        BrowseButton(vtraceTextField);
    }//GEN-LAST:event_vtraceButtonActionPerformed
    private void vtraceCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_vtraceCheckBoxStateChanged
	FieldCheckBoxChange(vtraceCheckBox.isSelected()," -vampirtrace=",vtraceTextField.getText());
    }                                               private void altperfTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-LAST:event_vtraceCheckBoxStateChanged
	TextFieldAction(altperfCheckBox.isSelected()," -perflibrary=",altperfTextField.getText());//GEN-FIRST:event_altperfTextFieldActionPerformed
    }//GEN-LAST:event_altperfTextFieldActionPerformed

    private void altperfCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_altperfCheckBoxStateChanged
	FieldCheckBoxChange(altperfCheckBox.isSelected(), " -perflibrary=", altperfTextField.getText());
    }//GEN-LAST:event_altperfCheckBoxStateChanged

    private void perflibTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_perflibTextFieldActionPerformed
	TextFieldAction(perflibCheckBox.isSelected()," -perflib=",perflibTextField.getText());
    }//GEN-LAST:event_perflibTextFieldActionPerformed

    private void perflibButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_perflibButtonActionPerformed
        BrowseButton(perflibTextField);
    }//GEN-LAST:event_perflibButtonActionPerformed

    private void perflibCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_perflibCheckBoxStateChanged
	FieldCheckBoxChange(perflibCheckBox.isSelected()," -perflib=",perflibTextField.getText());
    }//GEN-LAST:event_perflibCheckBoxStateChanged

    private void perfincTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_perfincTextFieldActionPerformed
	TextFieldAction(perfincCheckBox.isSelected()," -perfinc=",perfincTextField.getText());
    }//GEN-LAST:event_perfincTextFieldActionPerformed

    private void perfincButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_perfincButtonActionPerformed
        BrowseButton(perfincTextField);
    }//GEN-LAST:event_perfincButtonActionPerformed

    private void perfincCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_perfincCheckBoxStateChanged
        FieldCheckBoxChange(perfincCheckBox.isSelected()," -perfinc=",perfincTextField.getText());
    }//GEN-LAST:event_perfincCheckBoxStateChanged

    private void otfButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_otfButtonActionPerformed
        BrowseButton(otfTextField);
    }//GEN-LAST:event_otfButtonActionPerformed

    private void otfCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_otfCheckBoxStateChanged
	FieldCheckBoxChange(otfCheckBox.isSelected()," -otf",otfTextField.getText());
    }//GEN-LAST:event_otfCheckBoxStateChanged

    private void loadallconfButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_loadallconfButtonActionPerformed
// TODO add your handling code here:
        parseConf((String)(this.allconfComboBox.getSelectedItem()));
    }//GEN-LAST:event_loadallconfButtonActionPerformed

    private void loadsavedconfButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_loadsavedconfButtonActionPerformed
// TODO add your handling code here:
        String saved=(String)(this.savedconfComboBox.getSelectedItem());
        System.out.println(saved.substring(saved.indexOf(" :> ")+3));
        parseConf(saved.substring(saved.indexOf(" :> ")+3));
    }//GEN-LAST:event_loadsavedconfButtonActionPerformed

    private void removeconfButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_removeconfButtonActionPerformed
// TODO add your handling code here:
        savedconf.remove(this.savedconfComboBox.getSelectedIndex()); //.getSelected();
        this.savedconfComboBox.setSelectedIndex(this.savedconfComboBox.getItemCount()-1);
        try{
          //fos = new FileOutputStream(filename,true);
            BufferedWriter bw=new BufferedWriter(new FileWriter(".saved_configs"));
            //if(confs.size()>1)bw.newLine();
            for(int i=0;i<savedconf.size();i++){
                bw.write((String)(savedconf.get(i)));
                if(i<savedconf.size()-1){
                    bw.newLine();
                }
            }
            //System.out.println((String)(confs.get(confs.size()-1)));
            bw.close();
        }catch(IOException e){e.printStackTrace();}
    }//GEN-LAST:event_removeconfButtonActionPerformed

    private void saveconfButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveconfButtonActionPerformed
// TODO add your handling code here:
        if(configureline.equals("./configure")){
            this.savedconf.add(this.custconfTextField.getText()+" :> ");}
        else
        savedconf.add(this.custconfTextField.getText()+" :> "+configureline.substring(configureline.indexOf(" ")+1));
        //+System.out.println( "A"+ configureline.substring(configureline.indexOf(" ")+1) +"B" );
        writeConfs(savedconf,".saved_configs");
        //this.savedconfComboBox.addItem(savedconf.get(savedconf.size()-1));
        this.savedconfComboBox.setSelectedIndex(savedconfComboBox.getItemCount()-1);
    }//GEN-LAST:event_saveconfButtonActionPerformed
    private void useroptFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_useroptFieldActionPerformed
        TextFieldAction(useroptCheckBox.isSelected()," -useropt=",multiArg(useroptField.getText()));
    }//GEN-LAST:event_useroptFieldActionPerformed
    private void archdirFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_archdirFieldActionPerformed
	TextFieldAction(archdirCheckBox.isSelected()," -exec-prefix=",archdirField.getText());
    }//GEN-LAST:event_archdirFieldActionPerformed
    private void installdirFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_installdirFieldActionPerformed
	TextFieldAction(installdirCheckBox.isSelected()," -prefix=",installdirField.getText());
    }//GEN-LAST:event_installdirFieldActionPerformed
    private void jdkFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jdkFieldActionPerformed
	TextFieldAction(usejdkCheckBox.isSelected()," -jdk=",jdkField.getText());
    }//GEN-LAST:event_jdkFieldActionPerformed
    private void pythonincFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pythonincFieldActionPerformed
        TextFieldAction(usepythonCheckBox.isSelected()," -pythoninc=",pythonincField.getText());
    }//GEN-LAST:event_pythonincFieldActionPerformed
    private void pythonlibFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pythonlibFieldActionPerformed
	TextFieldAction(pythonlibCheckBox.isSelected()," -pythonlib=",pythonlibField.getText());
    }//GEN-LAST:event_pythonlibFieldActionPerformed
    private void dyninstTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dyninstTextFieldActionPerformed
	TextFieldAction(dyninstCheckBox.isSelected()," -dyninst=",dyninstTextField.getText());
    }//GEN-LAST:event_dyninstTextFieldActionPerformed
    private void pclTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pclTextFieldActionPerformed
	TextFieldAction(pclCheckBox.isSelected()," -pcl=",pclTextField.getText());
    }//GEN-LAST:event_pclTextFieldActionPerformed
    private void tulipTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tulipTextFieldActionPerformed
	TextFieldAction(tulipCheckBox.isSelected()," -tulipthread=",tulipTextField.getText());
    }//GEN-LAST:event_tulipTextFieldActionPerformed
    private void charmTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_charmTextFieldActionPerformed
	TextFieldAction(charmCheckBox.isSelected()," -charm=",charmTextField.getText());
    }//GEN-LAST:event_charmTextFieldActionPerformed
    private void opariTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_opariTextFieldActionPerformed
	TextFieldAction(opariCheckBox.isSelected()," -opari=",opariTextField.getText());
    }//GEN-LAST:event_opariTextFieldActionPerformed
    private void vtfTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vtfTextFieldActionPerformed
	TextFieldAction(vtfCheckBox.isSelected()," -vtf=",vtfTextField.getText());
    }//GEN-LAST:event_vtfTextFieldActionPerformed
    private void slog2TextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_slog2TextFieldActionPerformed
	TextFieldAction(slog2CheckBox.isSelected()," -slog2=",slog2TextField.getText());
    }//GEN-LAST:event_slog2TextFieldActionPerformed
    private void epilogTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_epilogTextFieldActionPerformed
	TextFieldAction(epilogCheckBox.isSelected()," -epilog=",epilogTextField.getText());
    }//GEN-LAST:event_epilogTextFieldActionPerformed
    private void altshmemTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_altshmemTextFieldActionPerformed
	TextFieldAction(altshmemCheckBox.isSelected()," -shmemlibrary=",multiArg(altshmemTextField.getText()));
    }//GEN-LAST:event_altshmemTextFieldActionPerformed
    private void shmemlibTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_shmemlibTextFieldActionPerformed
	TextFieldAction(shmemlibCheckBox.isSelected()," -shmemlib=",shmemlibTextField.getText());
    }//GEN-LAST:event_shmemlibTextFieldActionPerformed
    private void shmemincTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_shmemincTextFieldActionPerformed
	TextFieldAction(shmemincCheckBox.isSelected()," -shmeminc=",shmemincTextField.getText());
    }//GEN-LAST:event_shmemincTextFieldActionPerformed
    private void tagTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tagTextFieldActionPerformed
	TextFieldAction(tagCheckBox.isSelected()," -tag=",tagTextField.getText());
    }//GEN-LAST:event_tagTextFieldActionPerformed
    private void altmpiTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_altmpiTextFieldActionPerformed
        TextFieldAction(altmpiCheckBox.isSelected()," -mpilibrary=",multiArg(altmpiTextField.getText()));
    }//GEN-LAST:event_altmpiTextFieldActionPerformed
    private void mpilibTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mpilibTextFieldActionPerformed
	TextFieldAction(mpilibCheckBox.isSelected()," -mpilib=",mpilibTextField.getText());
    }//GEN-LAST:event_mpilibTextFieldActionPerformed
    private void mpiincTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mpiincTextFieldActionPerformed
	TextFieldAction(mpiincCheckBox.isSelected()," -mpiinc=",mpiincTextField.getText());
    }//GEN-LAST:event_mpiincTextFieldActionPerformed
    private void papiTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_papiTextFieldActionPerformed
	TextFieldAction(papiCheckBox.isSelected()," -papi=",papiTextField.getText());
    }//GEN-LAST:event_papiTextFieldActionPerformed
    private void defpdtTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_defpdtTextFieldActionPerformed
	TextFieldAction(defpdtCheckBox.isSelected()," -pdt_c++=",defpdtTextField.getText());
    }//GEN-LAST:event_defpdtTextFieldActionPerformed
    private void pdtdirFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pdtdirFieldActionPerformed
	TextFieldAction(pdtCheckBox.isSelected()," -pdt=",pdtdirField.getText());
    }//GEN-LAST:event_pdtdirFieldActionPerformed
    private void deffortranTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deffortranTextFieldActionPerformed
	TextFieldAction(deffortranCheckBox.isSelected()," -fortran=",deffortranTextField.getText());
    }//GEN-LAST:event_deffortranTextFieldActionPerformed
    private void defcppTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_defcppTextFieldActionPerformed
	TextFieldAction(defcppCheckBox.isSelected()," -c++=",defcppTextField.getText());
    }//GEN-LAST:event_defcppTextFieldActionPerformed
    private void defccTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_defccTextFieldActionPerformed
	TextFieldAction(defccCheckBox.isSelected()," -cc=",defccTextField.getText());
    }//GEN-LAST:event_defccTextFieldActionPerformed

private void updateITCommand(){
//    String confcop = configureline;
//String buildinst = "";

    instline = "./installtau ";
    
    String[] varopts = {"arch", "fortran", "cc", "c++", "useropt", "pdt", 
	    "pdtcompdir", "pdt_c++", "papi", "vtf", "slog2", "dyninst",
	    "mpiinc","mpilib","mpilibrary","tag","opari","epilog","prefix",
	    "exec-prefix","perfinc","perflib","perflibrary"};

    String[] singopts = {"slog2", "mpi", "nocomm"};
    int start;
    String addop;
    for(int i=0;i<varopts.length;i++){
	addop=" -"+varopts[i]+"=";//"-"+varopts[i]+"=";
	start = configureline.indexOf(addop);//" -"+varopts[i]+"=" 
	if(start>-1){
            
                String endline=" ";
                int end=-1;
                if(configureline.charAt(start+addop.length())=='\'')
                {
                    endline="'";
                    end = configureline.indexOf(endline,  start+1);
                    end = configureline.indexOf(endline,  end+1)+1;//for space
                }
                else
       		    end = configureline.indexOf(endline,  start+1);
	    instline+=configureline.substring(start, end);//configureline.indexOf(" ", start+1)
	}
    }
    
    for(int i=0; i<singopts.length;i++){
	
	start=configureline.indexOf("-"+singopts[i]+" ");
	if(start>-1){
	    instline+=" -"+singopts[i]+" ";
	}
    }
    
    this.instTextArea.setText(instline);

}    
    
    
    private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exitButtonActionPerformed
    System.exit(0);
    }//GEN-LAST:event_exitButtonActionPerformed

    private void resetButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_resetButtonActionPerformed
	//System.out.println(this.);
        this.reset();
	
    }//GEN-LAST:event_resetButtonActionPerformed

    private void instButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_instButtonActionPerformed
	instButton.setEnabled(false);
	try {
	     Runtime rt = Runtime.getRuntime();
            Process proc = rt.exec(instline);
            InputStream stdin = proc.getInputStream();
            InputStreamReader isr = new InputStreamReader(stdin);
            BufferedReader br = new BufferedReader(isr);
            String line = null;
           // System.out.println("<ERROR>");
	    
            while ( (line = br.readLine()) != null)
                System.out.println(line);
	    
            //System.out.println("</ERROR>");
            int ret = proc.waitFor();
	    br.close();
            //System.out.println("Process exitValue: " + exitVal);
	
	if(ret==0)
	{JOptionPane.showMessageDialog(null,"Installation Successful", "Success!", JOptionPane.INFORMATION_MESSAGE);}
	else
	{
	    JOptionPane.showMessageDialog(null,"Installation Error.  Returned: "+ret, "Error!", JOptionPane.ERROR_MESSAGE);
	}
	
	} catch (Exception e) {
	e.printStackTrace();}
	instButton.setEnabled(true);
    }//GEN-LAST:event_instButtonActionPerformed

    private void makejButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_makejButtonActionPerformed
	makejButton.setEnabled(false);
	try {
	     Runtime rt = Runtime.getRuntime();
            Process proc = rt.exec("make clean install");
            InputStream stdin = proc.getInputStream();
            InputStreamReader isr = new InputStreamReader(stdin);
            BufferedReader br = new BufferedReader(isr);
            String line = null;
           // System.out.println("<ERROR>");
	    
            while ( (line = br.readLine()) != null)
                System.out.println(line);
	    
            //System.out.println("</ERROR>");
            int ret = proc.waitFor();
	    br.close();
            //System.out.println("Process exitValue: " + exitVal);
	
	if(ret==0)
	{JOptionPane.showMessageDialog(null,"Installation Successful", "Success!", JOptionPane.INFORMATION_MESSAGE);}
	else
	{
	    JOptionPane.showMessageDialog(null,"Installation Error.  Returned: "+ret, "Error!", JOptionPane.ERROR_MESSAGE);
	}
	
	} catch (Exception e) {
	e.printStackTrace();}
	makejButton.setEnabled(true);
    }//GEN-LAST:event_makejButtonActionPerformed

    private void confButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_confButtonActionPerformed
	confButton.setEnabled(false);
	try {
	     Runtime rt = Runtime.getRuntime();
            Process proc = rt.exec(configureline);
            InputStream stdin = proc.getInputStream();
            InputStreamReader isr = new InputStreamReader(stdin);
            BufferedReader br = new BufferedReader(isr);
            String line = null;
           // System.out.println("<ERROR>");
	    
            while ( (line = br.readLine()) != null)
                System.out.println(line);
	    
            //System.out.println("</ERROR>");
            int ret = proc.waitFor();
	    br.close();
            //System.out.println("Process exitValue: " + exitVal);
	
	if(ret==0)
	{JOptionPane.showMessageDialog(null,"Configuration Successful", "Success!", JOptionPane.INFORMATION_MESSAGE);}
	else
	{
	    JOptionPane.showMessageDialog(null,"Configuration Error.  Returned: "+ret, "Error!", JOptionPane.ERROR_MESSAGE);
	}
	
	} catch (Exception e) {
	e.printStackTrace();}
	confButton.setEnabled(true);
        
        //getConfs(allconf,".all_configs");
        if(configureline.equals("./configure")){
            this.allconfComboBox.addItem("");}
        else
        this.allconfComboBox.addItem(configureline.substring(configureline.indexOf(" ")));
    }//GEN-LAST:event_confButtonActionPerformed

    private void deffortranCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_deffortranCheckBoxItemStateChanged
	if(deffortranCheckBox.isSelected()){
	    if(!(evt.getStateChange()==evt.SELECTED))
	    {
		return;
	    }
	     int start = configureline.indexOf(" -fortran=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
	    }
	    if(configureline.indexOf(" -fortran=")==-1){
		configureline+=" -fortran=";
		configureline+=deffortranTextField.getText()+" ";
	    }
	    fortranCombo.setEnabled(false);
	}
	else{
	    if(!(evt.getStateChange()==evt.DESELECTED))
	    {
		return;
	    }
	    int start = configureline.indexOf(" -fortran=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
	    }
	    fortranCombo.setEnabled(true);
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_deffortranCheckBoxItemStateChanged

    private void defcppCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_defcppCheckBoxItemStateChanged
if(defcppCheckBox.isSelected()){
    	    if(!(evt.getStateChange()==evt.SELECTED))
	    {
		return;
	    }
	    int start = configureline.indexOf(" -c++=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
	    }
	    if(configureline.indexOf(" -c++=")==-1){
		configureline+=" -c++=";
		configureline+=defcppTextField.getText()+" ";
	    }
	    cppCombo.setEnabled(false);
	}
	else{
	    if(!(evt.getStateChange()==evt.DESELECTED))
	    {
		return;
	    }
	    int start = configureline.indexOf(" -c++=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
	    }
	    cppCombo.setEnabled(true);
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_defcppCheckBoxItemStateChanged

    private void defccCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_defccCheckBoxItemStateChanged
if(defccCheckBox.isSelected()){
    	    if(!(evt.getStateChange()==evt.SELECTED))
	    {
		return;
	    }
	    int start = configureline.indexOf(" -cc=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
	    }
	    if(configureline.indexOf(" -cc=")==-1){
		configureline+=" -cc=";
		configureline+=defccTextField.getText()+" ";
	    }
	    ccCombo.setEnabled(false);
	}
	else{
	    if(!(evt.getStateChange()==evt.DESELECTED))
	    {
		return;
	    }
	    int start = configureline.indexOf(" -cc=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
	    }
	    ccCombo.setEnabled(true);
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_defccCheckBoxItemStateChanged

    private void defpdtCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_defpdtCheckBoxItemStateChanged
    if(defpdtCheckBox.isSelected())
    {
	if(!(evt.getStateChange()==evt.SELECTED))
	    {
		return;
	    }
	 int start = configureline.indexOf(" -pdt_c++=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}}
	if(configureline.indexOf(" -pdt_c++=")==-1){
		configureline+=" -pdt_c++=";
		configureline+=defpdtTextField.getText()+" ";
	    }
	    pdtcppCombo.setEnabled(false);
	}
	else{
	    if(!(evt.getStateChange()==evt.DESELECTED))
	    {
		return;
	    }
	    int start = configureline.indexOf(" -pdt_c++=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
	    }
	    pdtcppCombo.setEnabled(true);
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_defpdtCheckBoxItemStateChanged

    private void noexceptCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_noexceptCheckBoxStateChanged
        BinaryCheckBoxChange(noexceptCheckBox.isSelected()," -noex ");
        /*String entry=" -noex ";
	if(noexceptCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();*/
    }//GEN-LAST:event_noexceptCheckBoxStateChanged

    private void useroptCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_useroptCheckBoxStateChanged
	FieldCheckBoxChange(useroptCheckBox.isSelected()," -useropt=",useroptField.getText());
        /*String entry =" -useropt=";
	if(useroptCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
		configureline+=multiArg(useroptField.getText())+" ";
	    }
	}
	
	else{
	    int start = configureline.indexOf(entry);
	    if(start>-1){
                String endline=" ";
                int end=-1;
                if(configureline.charAt(start+entry.length())=='\'')
                {
                    endline="'";
                    end = configureline.indexOf(endline,  start+1);
                    end = configureline.indexOf(endline,  end+1)+1;//for space
                }
                else
       		    end = configureline.indexOf(endline,  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
		
	    }
	}
	
	commandTextArea.setText(configureline); updateITCommand();*/
    }//GEN-LAST:event_useroptCheckBoxStateChanged

    private void archComboActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_archComboActionPerformed
	String input = (String)archCombo.getSelectedItem();
	
	int start = configureline.indexOf(" -arch=");
	
	if(start>-1)
	{
	    int end = configureline.indexOf(" ",  start+1);
	    if(end==-1)
	    {
	        configureline = configureline.substring(0, start);
	    } 
	    else
	    {
		configureline = configureline.substring(0, start)+configureline.substring(end+1);
	    }
	}
	

	if(!input.equals("Default"))
	{
	    configureline+=" -arch="+input+" ";
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_archComboActionPerformed

    private void archdirButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_archdirButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    archdirField.setText(filename);
	}
    }//GEN-LAST:event_archdirButtonActionPerformed

    private void archdirCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_archdirCheckBoxStateChanged
	FieldCheckBoxChange(archdirCheckBox.isSelected()," -exec_prefix=",archdirField.getText());
    }//GEN-LAST:event_archdirCheckBoxStateChanged

    private void installdirButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_installdirButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    installdirField.setText(filename);
	}
    }//GEN-LAST:event_installdirButtonActionPerformed

    private void installdirCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_installdirCheckBoxStateChanged
	FieldCheckBoxChange(installdirCheckBox.isSelected()," -prefix=",installdirField.getText());
    }//GEN-LAST:event_installdirCheckBoxStateChanged

    private void usejavatimersCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_usejavatimersCheckBoxStateChanged
        String entry=" -JAVACPUTIME ";
	if(usejavatimersCheckBox.isSelected()){
    
	if(!usejdkCheckBox.isSelected()){
	    usejdkCheckBox.doClick();
	}
    
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_usejavatimersCheckBoxStateChanged

    private void jdkButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jdkButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    jdkField.setText(filename);
	}
    }//GEN-LAST:event_jdkButtonActionPerformed

    private void usejdkCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_usejdkCheckBoxStateChanged
	FieldCheckBoxChange(usejdkCheckBox.isSelected()," -jdk=",jdkField.getText());
    }//GEN-LAST:event_usejdkCheckBoxStateChanged

    private void pythonlibButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pythonlibButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    pythonlibField.setText(filename);
	}
    }//GEN-LAST:event_pythonlibButtonActionPerformed

    private void pythonlibCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_pythonlibCheckBoxStateChanged
	FieldCheckBoxChange(pythonlibCheckBox.isSelected()," -pythonlib=",pythonlibField.getText());
    }//GEN-LAST:event_pythonlibCheckBoxStateChanged

    private void pythonincButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pythonincButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    pythonincField.setText(filename);
	}
    }//GEN-LAST:event_pythonincButtonActionPerformed

    private void usepythonCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_usepythonCheckBoxStateChanged
	FieldCheckBoxChange(usepythonCheckBox.isSelected()," -pythoninc=",pythonincField.getText());
    }//GEN-LAST:event_usepythonCheckBoxStateChanged

    private void fortranComboActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fortranComboActionPerformed
	String input = (String)fortranCombo.getSelectedItem();
	
	int start = configureline.indexOf(" -fortran=");
	
	if(start>-1)
	{
	    int end = configureline.indexOf(" ",  start+1);
	    if(end==-1)
	    {
	        configureline = configureline.substring(0, start);
	    } 
	    else
	    {
		configureline = configureline.substring(0, start)+configureline.substring(end+1);
	    }
	}
	

	if(!input.equals("Default"))
	{
	    configureline+=" -fortran="+input+" ";
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_fortranComboActionPerformed

    private void cppComboActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cppComboActionPerformed
	String input = (String)cppCombo.getSelectedItem();
	
	int start = configureline.indexOf(" -c++=");
	
	if(start>-1)
	{
	    int end = configureline.indexOf(" ",  start+1);
	    if(end==-1)
	    {
	        configureline = configureline.substring(0, start);
	    } 
	    else
	    {
		configureline = configureline.substring(0, start)+configureline.substring(end+1);
	    }
	}
	

	if(!input.equals("Default"))
	{
	    configureline+=" -c++="+input+" ";
	}
	if(input.equals("xlC"))
	{
	    if(defcppTextField.getText().equals(""))
	    {
		defcppTextField.setText("xlC");
	    }
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_cppComboActionPerformed

    private void ccComboActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ccComboActionPerformed
	String input = (String)ccCombo.getSelectedItem();
	
	int start = configureline.indexOf(" -cc=");
	
	if(start>-1)
	{
	    int end = configureline.indexOf(" ",  start+1);
	    if(end==-1)
	    {
	        configureline = configureline.substring(0, start);
	    } 
	    else
	    {
		configureline = configureline.substring(0, start)+configureline.substring(end+1);
	    }
	}
	

	if(!input.equals("Default"))
	{
	    configureline+=" -cc="+input+" ";
	}
	if(input.equals("xlC"))
	{
	    if(defccTextField.getText().equals(""))
	    {
		defccTextField.setText("xlc");
	    }
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_ccComboActionPerformed

    private void charmCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_charmCheckBoxStateChanged
	FieldCheckBoxChange(charmCheckBox.isSelected()," -charm=",charmTextField.getText());
    }//GEN-LAST:event_charmCheckBoxStateChanged

    private void smartCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_smartCheckBoxStateChanged
String entry=" -smart ";
	if(smartCheckBox.isSelected()){

    	    if(!tulipCheckBox.isSelected()){
		tulipCheckBox.doClick();
	    }    
    
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_smartCheckBoxStateChanged

    private void tulipButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tulipButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    tulipTextField.setText(filename);
	}
    }//GEN-LAST:event_tulipButtonActionPerformed

    private void tulipCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_tulipCheckBoxStateChanged
String entry=" -tulipthread=";
	if(tulipCheckBox.isSelected()){
    
    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
		configureline+=tulipTextField.getText()+" ";
	    }
	} else{
    
    	    if(smartCheckBox.isSelected()) {
		tulipCheckBox.setSelected(true);
		return;
	    }
	    
 int start = configureline.indexOf(entry);
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
		
	    }
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_tulipCheckBoxStateChanged

    private void sprocCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_sprocCheckBoxStateChanged
String entry=" -sproc ";
	if(sprocCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_sprocCheckBoxStateChanged

    private void charmButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_charmButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    charmTextField.setText(filename);
	}
    }//GEN-LAST:event_charmButtonActionPerformed

    private void opariconstructCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_opariconstructCheckBoxStateChanged
String entry=" -opari_construct ";
	if(opariconstructCheckBox.isSelected()){

    	    if(!opariCheckBox.isSelected()){
		opariCheckBox.doClick();
	    }    
    
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_opariconstructCheckBoxStateChanged

    private void opariregionCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_opariregionCheckBoxStateChanged
String entry=" -opari_region ";
	if(opariregionCheckBox.isSelected()){
    
    	    if(!opariCheckBox.isSelected()){
		opariCheckBox.doClick();
	    }
    
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_opariregionCheckBoxStateChanged

    private void opariButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_opariButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    opariTextField.setText(filename);
	}
    }//GEN-LAST:event_opariButtonActionPerformed

    private void opariCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_opariCheckBoxStateChanged
String entry=" -opari=";
	if(opariCheckBox.isSelected()){
    
	    if(!ompCheckBox.isSelected()){
		ompCheckBox.doClick();
	    }
    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
		configureline+=opariTextField.getText()+" ";
	    }
	} else{
    
    	    if(opariregionCheckBox.isSelected()||opariconstructCheckBox.isSelected()) {
		opariCheckBox.setSelected(true);
		return;
	    }
	    
 int start = configureline.indexOf(entry);
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
		
	    }
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_opariCheckBoxStateChanged

    private void ompCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_ompCheckBoxStateChanged
String entry=" -openmp ";
	if(ompCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
    
	    if(opariCheckBox.isSelected()) {
		ompCheckBox.setSelected(true);
		return;
	    }
    
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_ompCheckBoxStateChanged

    private void pthreadsCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_pthreadsCheckBoxStateChanged
String entry=" -pthread ";
	if(pthreadsCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_pthreadsCheckBoxStateChanged

    private void altshmemCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_altshmemCheckBoxStateChanged
	FieldCheckBoxChange(altshmemCheckBox.isSelected()," -shmemlibrary=",altshmemTextField.getText());
    }//GEN-LAST:event_altshmemCheckBoxStateChanged

    private void shmemlibButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_shmemlibButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    shmemlibTextField.setText(filename);
	}
    }//GEN-LAST:event_shmemlibButtonActionPerformed

    private void shmemlibCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_shmemlibCheckBoxStateChanged
	FieldCheckBoxChange(shmemlibCheckBox.isSelected()," -shmemlib=",shmemlibTextField.getText());
    }//GEN-LAST:event_shmemlibCheckBoxStateChanged

    private void shmemincButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_shmemincButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    shmemincTextField.setText(filename);
	}
    }//GEN-LAST:event_shmemincButtonActionPerformed

    private void shmemincCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_shmemincCheckBoxStateChanged
        FieldCheckBoxChange(shmemincCheckBox.isSelected()," -shmeminc=",shmemincTextField.getText());
    }//GEN-LAST:event_shmemincCheckBoxStateChanged

    private void shmemCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_shmemCheckBoxStateChanged
String entry=" -shmem ";
	if(shmemCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_shmemCheckBoxStateChanged

    private void mpitraceCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_mpitraceCheckBoxStateChanged
String entry=" -MPITRACE ";
	if(mpitraceCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_mpitraceCheckBoxStateChanged

    private void nocomCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_nocomCheckBoxStateChanged
String entry=" -nocomm ";
	if(nocomCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_nocomCheckBoxStateChanged

    private void tagCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_tagCheckBoxStateChanged
	String entry =" -tag=";
	if(tagCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
		configureline+=tagTextField.getText()+" ";
	    }
	}
	
	else{
	    int start = configureline.indexOf(entry);
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
		
	    }
	}
	
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_tagCheckBoxStateChanged

    private void altmpiCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_altmpiCheckBoxStateChanged
	String entry =" -mpilibrary=";
	if(altmpiCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
		configureline+=multiArg(altmpiTextField.getText())+" ";
	    }
	}
	
	else{
	    int start = configureline.indexOf(entry);
	    if(start>-1){
                String endline=" ";
                int end=-1;
                if(configureline.charAt(start+entry.length())=='\'')
                {
                    endline="'";
                    end = configureline.indexOf(endline,  start+1);
                    end = configureline.indexOf(endline,  end+1)+1;//for space
                }
                else
       		    end = configureline.indexOf(endline,  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
		
	    }
	}
	
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_altmpiCheckBoxStateChanged

    private void mpiincButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mpiincButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    mpiincTextField.setText(filename);
	}
    }//GEN-LAST:event_mpiincButtonActionPerformed

    private void mpilibCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_mpilibCheckBoxStateChanged
	String entry =" -mpilib=";
	if(mpilibCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
		configureline+=mpilibTextField.getText()+" ";
	    }
	}
	
	else{
	    int start = configureline.indexOf(entry);
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
		
	    }
	}
	
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_mpilibCheckBoxStateChanged

    private void mpilibButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mpilibButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    mpilibTextField.setText(filename);
	}
    }//GEN-LAST:event_mpilibButtonActionPerformed

    private void mpiincCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_mpiincCheckBoxStateChanged

	String entry =" -mpiinc=";
	if(mpiincCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
		configureline+=mpiincTextField.getText()+" ";
	    }
	}
	
	else{
	    int start = configureline.indexOf(entry);
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
		
	    }
	}
	
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_mpiincCheckBoxStateChanged

    private void mpiCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_mpiCheckBoxStateChanged
String entry=" -mpi ";
	if(mpiCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_mpiCheckBoxStateChanged

    private void musemultCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_musemultCheckBoxStateChanged
	String entry=" -muse_multiple ";
	if(musemultCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	    if(!museCheckBox.isSelected()){
		museCheckBox.doClick();
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_musemultCheckBoxStateChanged

    private void museeventCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_museeventCheckBoxStateChanged
	String entry=" -muse_event ";
	if(museeventCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	    if(!museCheckBox.isSelected()){
		museCheckBox.doClick();
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_museeventCheckBoxStateChanged

    private void museCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_museCheckBoxActionPerformed
	String entry=" -muse ";
	if(museCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    
	    if(museeventCheckBox.isSelected() || musemultCheckBox.isSelected()) {
		museCheckBox.setSelected(true);
		return;
	    }
	    
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_museCheckBoxActionPerformed

    private void dyninstButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dyninstButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    dyninstTextField.setText(filename);
	}
    }//GEN-LAST:event_dyninstButtonActionPerformed

    private void dyninstCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_dyninstCheckBoxStateChanged
if(dyninstCheckBox.isSelected()){
	    if(configureline.indexOf(" -dyninst=")==-1){
		configureline+=" -dyninst=";
		configureline+=dyninstTextField.getText()+" ";
	    }
	}
	
	else{
	    int start = configureline.indexOf(" -dyninst=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
		
	    }
	}
	
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_dyninstCheckBoxStateChanged

    private void pdtcppComboActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pdtcppComboActionPerformed
	String input = (String)pdtcppCombo.getSelectedItem();
	
	int start = configureline.indexOf(" -pdt_c++=");
	
	if(start>-1)
	{
	    int end = configureline.indexOf(" ",  start+1);
	    if(end==-1)
	    {
	        configureline = configureline.substring(0, start);
	    } 
	    else
	    {
		configureline = configureline.substring(0, start)+configureline.substring(end+1);
	    }
	}
	

	if(!input.equals("Default"))
	{
	    configureline+=" -pdt_c++="+input+" ";
	}
	if(input.equals("xlC"))
	{
	    if(defpdtTextField.getText().equals(""))
	    {
		defpdtTextField.setText("xlC");
	    }
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_pdtcppComboActionPerformed

    private void pdtButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pdtButtonActionPerformed
int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    pdtdirField.setText(filename);
	}
    }//GEN-LAST:event_pdtButtonActionPerformed

    private void pdtCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_pdtCheckBoxStateChanged
if(pdtCheckBox.isSelected()){
	    if(configureline.indexOf(" -pdt=")==-1){
		configureline+=" -pdt=";
		configureline+=pdtdirField.getText()+" ";
	    }
	}
	else{
	    int start = configureline.indexOf(" -pdt=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
	    }
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_pdtCheckBoxStateChanged

    private void multiplecountCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_multiplecountCheckBoxStateChanged
String entry=" -MULTIPLECOUNTERS ";
	if(multiplecountCheckBox.isSelected()){
    
	   /* if(!papiCheckBox.isSelected()){
		papiCheckBox.doClick();
	    }*/
    
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_multiplecountCheckBoxStateChanged

    private void papivirtCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_papivirtCheckBoxStateChanged
String entry=" -PAPIVIRTUAL ";
	if(papivirtCheckBox.isSelected()){
    
	    if(!papiCheckBox.isSelected()){
		papiCheckBox.doClick();
	    }
    
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_papivirtCheckBoxStateChanged

    private void papiwallCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_papiwallCheckBoxStateChanged
String entry=" -PAPIWALLCLOCK ";
	if(papiwallCheckBox.isSelected()){
    
	    if(!papiCheckBox.isSelected()){
		papiCheckBox.doClick();
	    }
    
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	//System.out.println("Set "+configureline);
	commandTextArea.setText(configureline); updateITCommand();
	//System.out.println("Done "+configureline);
    }//GEN-LAST:event_papiwallCheckBoxStateChanged

    private void papiButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_papiButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    papiTextField.setText(filename);
	}
    }//GEN-LAST:event_papiButtonActionPerformed

    private void papiCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_papiCheckBoxStateChanged
if(papiCheckBox.isSelected()){
	    if(configureline.indexOf(" -papi=")==-1){
		configureline+=" -papi=";
		configureline+=papiTextField.getText()+" ";
	    }
	}
	else{
    
    
    	    if(papiwallCheckBox.isSelected() || papivirtCheckBox.isSelected()) {//||multiplecountCheckBox.isSelected()
		papiCheckBox.setSelected(true);
		return;
	    }
    
	    int start = configureline.indexOf(" -papi=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
	    }
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_papiCheckBoxStateChanged

    private void pclButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_pclButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    pclTextField.setText(filename);
	}
    }//GEN-LAST:event_pclButtonActionPerformed

    private void pclCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_pclCheckBoxStateChanged
if(pclCheckBox.isSelected()){
	    if(configureline.indexOf(" -pcl=")==-1){
		configureline+=" -pcl=";
		configureline+=pclTextField.getText()+" ";
	    }
	}
	
	else{
	    int start = configureline.indexOf(" -pcl=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
		
	    }
	}
	
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_pclCheckBoxStateChanged

    private void profileCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_profileCheckBoxStateChanged
	if(profileCheckBox.isSelected()){
	    if(traceCheckBox.isSelected()) {
		if(configureline.indexOf(" -PROFILE ")==-1)
		    configureline+=" -PROFILE ";
		if(configureline.indexOf(" -TRACE ")==-1)
		    configureline+=" -TRACE ";
	    }
	} else {
	    
	    if(compensateCheckBox.isSelected() || profmemoryCheckBox.isSelected() || profheadroomCheckBox.isSelected() || profcallpathCheckBox.isSelected()) {
		profileCheckBox.setSelected(true);
		return;
	    }
	    
	    if(!traceCheckBox.isSelected()) {
		profileCheckBox.doClick();
	    } else{
		if(configureline.indexOf(" -PROFILE ")>-1) {
		    configureline = configureline.replaceFirst(" -PROFILE ","");
		}
	    }
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_profileCheckBoxStateChanged

    private void compensateCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_compensateCheckBoxStateChanged
	if(compensateCheckBox.isSelected()){
	    if(configureline.indexOf(" -COMPENSATE ")==-1){
		configureline+=" -COMPENSATE ";
	    }
	    if(!profileCheckBox.isSelected()){
		profileCheckBox.doClick();
	    }
	} else{
	    if(configureline.indexOf(" -COMPENSATE ")>-1)
		configureline = configureline.replaceFirst(" -COMPENSATE ","");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_compensateCheckBoxStateChanged

    private void profcallpathCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_profcallpathCheckBoxStateChanged
	if(profcallpathCheckBox.isSelected()){
	    if(configureline.indexOf(" -PROFILECALLPATH ")==-1){
		configureline+=" -PROFILECALLPATH ";
	    }
	    if(!profileCheckBox.isSelected()){
		profileCheckBox.doClick();
	    }
	} else{
	    if(configureline.indexOf(" -PROFILECALLPATH ")>-1)
		configureline = configureline.replaceFirst(" -PROFILECALLPATH ","");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_profcallpathCheckBoxStateChanged

    private void profheadroomCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_profheadroomCheckBoxStateChanged
	if(profheadroomCheckBox.isSelected()){
	    if(configureline.indexOf(" -PROFILEHEADROOM ")==-1){
		configureline+=" -PROFILEHEADROOM ";
	    }
	    if(!profileCheckBox.isSelected()){
		profileCheckBox.doClick();
	    }
	} else{
	    if(configureline.indexOf(" -PROFILEHEADROOM ")>-1)
		configureline = configureline.replaceFirst(" -PROFILEHEADROOM ","");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_profheadroomCheckBoxStateChanged

    private void profmemoryCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_profmemoryCheckBoxStateChanged
	if(profmemoryCheckBox.isSelected()){
	    if(configureline.indexOf(" -PROFILEMEMORY ")==-1){
		configureline+=" -PROFILEMEMORY ";
	    }
	    if(!profileCheckBox.isSelected()){
		profileCheckBox.doClick();
	    }
	} else{
	    if(configureline.indexOf(" -PROFILEMEMORY ")>-1)
		configureline = configureline.replaceFirst(" -PROFILEMEMORY ","");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_profmemoryCheckBoxStateChanged

    private void traceCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_traceCheckBoxStateChanged
	if(traceCheckBox.isSelected()) {
	    if(profileCheckBox.isSelected()) {
		if(configureline.indexOf(" -PROFILE ")==-1)
		    configureline+=" -PROFILE ";
		if(configureline.indexOf(" -TRACE ")==-1)
		    configureline+=" -TRACE ";
	    }
	} else {
	    if(epilogCheckBox.isSelected() || slog2CheckBox.isSelected() || vtfCheckBox.isSelected()) {
		traceCheckBox.setSelected(true);
		return;
	    }
	    
	    if(!profileCheckBox.isSelected()) {
		profileCheckBox.doClick();//setSelected(true);
	    }
	    if(configureline.indexOf(" -PROFILE ")>-1)
		configureline = configureline.replaceFirst(" -PROFILE ","");
	    //configureline+=" -PROFILE";
	    if(configureline.indexOf(" -TRACE ")>-1)
		configureline = configureline.replaceFirst(" -TRACE ","");
	    //configureline+=" -TRACE";
	}
	
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_traceCheckBoxStateChanged

    private void epilogCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_epilogCheckBoxStateChanged
	if(epilogCheckBox.isSelected()){
	    if(configureline.indexOf(" -epilog=")==-1){
		configureline+=" -epilog=";
		configureline+=epilogTextField.getText()+" ";
	    }
	    
	    if(!traceCheckBox.isSelected()){
		traceCheckBox.doClick();
	    }
	}
	
	else{
	    int start = configureline.indexOf(" -epilog=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
		
	    }
	}
	
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_epilogCheckBoxStateChanged

    private void slog2CheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_slog2CheckBoxStateChanged
	if(slog2CheckBox.isSelected()){
	    if(configureline.indexOf(" -slog2 ")==-1){
		configureline+=" -slog2 ";
	    }
	    
	    if(!traceCheckBox.isSelected()){
		traceCheckBox.doClick();
	    }
	    if(slog2exCheckBox.isSelected()){
		slog2exCheckBox.setSelected(false);
	    }
	}
	
	else{
	    
	    if(configureline.indexOf(" -slog2 ")>-1)
		configureline = configureline.replaceFirst(" -slog2 ","");
	}
	
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_slog2CheckBoxStateChanged

    private void slog2exCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_slog2exCheckBoxStateChanged
	if(slog2exCheckBox.isSelected()){
	    if(configureline.indexOf(" -slog2=")==-1){
		configureline+=" -slog2=";
		configureline+=slog2TextField.getText()+" ";
	    }
	    
	    if(!traceCheckBox.isSelected()){
		traceCheckBox.doClick();
	    }
	    if(slog2CheckBox.isSelected()){
		slog2CheckBox.setSelected(false);
	    }
	}
	
	else{
	    int start = configureline.indexOf(" -slog2=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
		
	    }
	}
	
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_slog2exCheckBoxStateChanged

    private void vtfCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_vtfCheckBoxStateChanged
	if(vtfCheckBox.isSelected()){
	    if(configureline.indexOf(" -vtf=")==-1){
		configureline+=" -vtf=";
		configureline+=vtfTextField.getText()+" ";
	    }
	    
	    if(!traceCheckBox.isSelected()){
		traceCheckBox.doClick();
	    }
	}
	
	else{
	    int start = configureline.indexOf(" -vtf=");
	    if(start>-1){
		int end = configureline.indexOf(" ",  start+1);
		if(end==-1){
		    configureline = configureline.substring(0, start);
		} else{
		    configureline = configureline.substring(0, start)+configureline.substring(end+1);
		}
		
	    }
	}
	
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_vtfCheckBoxStateChanged

    private void epilogButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_epilogButtonActionPerformed
//if (e.getSource() == openButton) {
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    epilogTextField.setText(filename);
	    //This is where a real application would open the file.
	    //  log.append("Opening: " + file.getName() + "." + newline);
	}// else {
	//log.append("Open command cancelled by user." + newline);
	// }
	//}
    }//GEN-LAST:event_epilogButtonActionPerformed

    private void slog2ButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_slog2ButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    slog2TextField.setText(filename);
	}
    }//GEN-LAST:event_slog2ButtonActionPerformed

    private void vtfButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_vtfButtonActionPerformed
	int returnVal = jFileChooser1.showOpenDialog(null);
	
	if (returnVal == JFileChooser.APPROVE_OPTION) {
	    File file = jFileChooser1.getSelectedFile();
	    String filename = file.getAbsolutePath();
	    vtfTextField.setText(filename);
	}
    }//GEN-LAST:event_vtfButtonActionPerformed

    private void profphaseCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_profphaseCheckBoxStateChanged
	if(profphaseCheckBox.isSelected()){
	    if(configureline.indexOf(" -PROFILEPHASE ")==-1){
		configureline+=" -PROFILEPHASE ";
	    }
	} else{
	    if(configureline.indexOf(" -PROFILEPHASE ")>-1)
		configureline = configureline.replaceFirst(" -PROFILEPHASE ","");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_profphaseCheckBoxStateChanged

    private void depthlimitCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_depthlimitCheckBoxStateChanged
	String entry=" -DEPTHLIMIT ";
	if(depthlimitCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_depthlimitCheckBoxStateChanged

    private void cputimeCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_cputimeCheckBoxStateChanged
	String entry=" -CPUTIME ";
	if(cputimeCheckBox.isSelected()){
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_cputimeCheckBoxStateChanged

    private void craytimeCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_craytimeCheckBoxStateChanged
	String entry=" -CRAYTIME ";
	if(craytimeCheckBox.isSelected()){
	    if(linuxtimeCheckBox.isSelected()){
		linuxtimeCheckBox.setSelected(false);
	    }
	    if(sgitimeCheckBox.isSelected()){
		sgitimeCheckBox.setSelected(false);
	    }
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
		//System.out.println(configureline);
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	//System.out.println("Set "+configureline);
	commandTextArea.setText(configureline); updateITCommand();
	//System.out.println("Done "+configureline);
    }//GEN-LAST:event_craytimeCheckBoxStateChanged

    private void linuxtimeCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_linuxtimeCheckBoxStateChanged
	String entry=" -LINUXTIMERS ";
	if(linuxtimeCheckBox.isSelected()){
	    if(sgitimeCheckBox.isSelected()){
		sgitimeCheckBox.setSelected(false);;
	    }
	    if(craytimeCheckBox.isSelected()){
		craytimeCheckBox.setSelected(false);;
	    }
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_linuxtimeCheckBoxStateChanged

    private void sgitimeCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_sgitimeCheckBoxStateChanged
	String entry=" -SGITIME ";
	if(sgitimeCheckBox.isSelected()){
	    if(linuxtimeCheckBox.isSelected()){
		linuxtimeCheckBox.setSelected(false);;
	    }
	    if(craytimeCheckBox.isSelected()){
		craytimeCheckBox.setSelected(false);;
	    }
	    if(configureline.indexOf(entry)==-1){
		configureline+=entry;
	    }
	} else{
	    if(configureline.indexOf(entry)>-1)
		configureline = configureline.replaceFirst(entry,"");
	}
	commandTextArea.setText(configureline); updateITCommand();
    }//GEN-LAST:event_sgitimeCheckBoxStateChanged
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TAU_Conf().setVisible(true);
            }
        });
    }
    
    private void initcb(){
        cbholder.add(altmpiCheckBox);
        cbholder.add(altshmemCheckBox);
        cbholder.add(archdirCheckBox);
        cbholder.add(charmCheckBox);
        cbholder.add(compensateCheckBox);
        cbholder.add(cputimeCheckBox);
        cbholder.add(craytimeCheckBox);
        cbholder.add(defccCheckBox);
        cbholder.add(defcppCheckBox);
        cbholder.add(deffortranCheckBox);
        cbholder.add(defpdtCheckBox);
        cbholder.add(depthlimitCheckBox);
        cbholder.add(dyninstCheckBox);
        cbholder.add(epilogCheckBox);
        cbholder.add(installdirCheckBox);
        cbholder.add(linuxtimeCheckBox);
        cbholder.add(mpiCheckBox);
        cbholder.add(mpiincCheckBox);
        cbholder.add(mpilibCheckBox);
        cbholder.add(mpitraceCheckBox);
        cbholder.add(multiplecountCheckBox);
        
        cbholder.add(museeventCheckBox);
        cbholder.add(musemultCheckBox);
        
        cbholder.add(museCheckBox);
        
        cbholder.add(nocomCheckBox);
        cbholder.add(noexceptCheckBox);
        
        
        cbholder.add(opariconstructCheckBox);
        cbholder.add(opariregionCheckBox);
        
        cbholder.add(opariCheckBox);
        
        cbholder.add(ompCheckBox);
        
        cbholder.add(papiCheckBox);
        cbholder.add(papivirtCheckBox);
        cbholder.add(papiwallCheckBox);
        cbholder.add(pclCheckBox);
        cbholder.add(pdtCheckBox);
        cbholder.add(profcallpathCheckBox);
        cbholder.add(profheadroomCheckBox);
        cbholder.add(profileCheckBox);
        cbholder.add(profmemoryCheckBox);
        cbholder.add(profphaseCheckBox);
        cbholder.add(profstatsCheckBox);
        cbholder.add(pthreadsCheckBox);
        cbholder.add(pythonlibCheckBox);
        cbholder.add(sgitimeCheckBox);
        cbholder.add(shmemCheckBox);
        cbholder.add(shmemincCheckBox);
        cbholder.add(shmemlibCheckBox);
        cbholder.add(slog2CheckBox);
        cbholder.add(slog2exCheckBox);
        cbholder.add(smartCheckBox);
        cbholder.add(sprocCheckBox);
        cbholder.add(tagCheckBox);
        
        cbholder.add(vtfCheckBox);
        cbholder.add(otfCheckBox);
        cbholder.add(vtraceCheckBox);
        
        cbholder.add(traceCheckBox);
        cbholder.add(tulipCheckBox);
        cbholder.add(usejavatimersCheckBox);
        cbholder.add(usejdkCheckBox);
        cbholder.add(usepythonCheckBox);
        cbholder.add(useroptCheckBox);
   
        cbholder.add(opariCheckBox);
        cbholder.add(opariconstructCheckBox);
        cbholder.add(opariregionCheckBox);
        cbholder.add(papiCheckBox);
        cbholder.add(papivirtCheckBox);
        
        cbholder.add(perflibCheckBox);
        cbholder.add(perfincCheckBox);
        cbholder.add(altperfCheckBox);
        
        cbholder.add(epilogbinCheckBox);
        cbholder.add(epilogincCheckBox);
        cbholder.add(epiloglibCheckBox);
        
        //Set up the mapping between commands and checkboxes
        commap.put(" -perflibrary",altperfCheckBox);
        commap.put(" -perflib",perflibCheckBox);
        commap.put(" -perfinc",perfincCheckBox);
        
        commap.put(" -mpilibrary=",altmpiCheckBox);
        commap.put(" -shmemlibrary=",altshmemCheckBox);
        commap.put(" -exec-prefix=",archdirCheckBox);
        commap.put(" -charm=",charmCheckBox);
        commap.put(" -COMPENSATE",compensateCheckBox);
        commap.put(" -CPUTIME",cputimeCheckBox);
        commap.put(" -CRAYTIME",craytimeCheckBox);
        commap.put(" -cc=",defccCheckBox);
        commap.put(" -c++=",defcppCheckBox);
        commap.put(" -fortran=",deffortranCheckBox);
        commap.put(" -pdt_c++",defpdtCheckBox);
        commap.put(" -DEPTHLIMIT",depthlimitCheckBox);
        commap.put(" -dyninst=",dyninstCheckBox);
        commap.put(" -epilog=",epilogCheckBox);
        commap.put(" -prefix=",installdirCheckBox);
        commap.put(" -LINUXTIMERS",linuxtimeCheckBox);
        commap.put(" -mpi",mpiCheckBox);
        commap.put(" -mpiinc=",mpiincCheckBox);
        commap.put(" -mpilib=",mpilibCheckBox);
        commap.put(" -MPITRACE",mpitraceCheckBox);
        commap.put(" -MULTIPLECOUNTERS",multiplecountCheckBox);
        
        commap.put(" -muse_event",museeventCheckBox);
        commap.put(" -muse_multiple",musemultCheckBox);
        
        commap.put(" -muse",museCheckBox);
        
        commap.put(" -nocomm",nocomCheckBox);
        commap.put(" -noex",noexceptCheckBox);
        
        
        commap.put(" -opari_construct",opariconstructCheckBox);
        commap.put(" -opari_region",opariregionCheckBox);
        
        commap.put(" -opari=",opariCheckBox);
        
        commap.put(" -openmp",ompCheckBox);
        
        commap.put(" -papi=",papiCheckBox);
        commap.put(" -PAPIVIRTUAL",papivirtCheckBox);
        commap.put(" -PAPIWALLCLOCK",papiwallCheckBox);
        commap.put(" -pcl=",pclCheckBox);
        commap.put(" -pdt=",pdtCheckBox);
        commap.put(" -PROFILECALLPATH",profcallpathCheckBox);
        commap.put(" -PROFILEHEADROOM",profheadroomCheckBox);
        commap.put(" -profile",profileCheckBox);
        commap.put(" -PROFILEMEMORY",profmemoryCheckBox);
        commap.put(" -PROFILEPHASE",profphaseCheckBox);
        commap.put(" -PROFILESTATS",profstatsCheckBox);
        commap.put(" -pthread",pthreadsCheckBox);
        commap.put(" -pythonlib=",pythonlibCheckBox);
        commap.put(" -SGITIMERS",sgitimeCheckBox);
        commap.put(" -shmem",shmemCheckBox);
        commap.put(" -shemeinc=",shmemincCheckBox);
        commap.put(" -shmemlib=",shmemlibCheckBox);
        commap.put(" -slog2",slog2CheckBox);
        commap.put(" -slog2=",slog2exCheckBox);
        commap.put(" -smart",smartCheckBox);
        commap.put(" -sproc",sprocCheckBox);
        commap.put(" -tag=",tagCheckBox);
        
        commap.put(" -vtf=",vtfCheckBox);
        commap.put(" -otf=",otfCheckBox);
        commap.put(" -vampirtrace=",vtraceCheckBox);
        
        commap.put(" -TRACE",traceCheckBox);
        commap.put(" -tulipthread=",tulipCheckBox);
        commap.put(" -JAVACPUTIME",usejavatimersCheckBox);
        commap.put(" -jdk=",usejdkCheckBox);
        commap.put(" -pythoninc=",usepythonCheckBox);
        commap.put(" -useropt=",useroptCheckBox);
   
        commap.put(" -opari=",opariCheckBox);
        commap.put(" -opari_construct",opariconstructCheckBox);
        commap.put(" -opari_region",opariregionCheckBox);
        commap.put(" -papi=",papiCheckBox);
        commap.put(" -PAPIVIRTUAL",papivirtCheckBox);
        commap.put(" -epilogbin",epilogbinCheckBox);
        commap.put(" -epiloginc",epilogincCheckBox);
        commap.put(" -epiloglib",epiloglibCheckBox);
        
        //map the command names to the field objects where required
        fieldmap.put(" -c++=",defcppTextField);
	fieldmap.put(" -cc=",defccTextField);
        fieldmap.put(" -fortran=",deffortranTextField);
        fieldmap.put(" -pdt=",pdtdirField);
        fieldmap.put(" -pdt_c++",defpdtTextField);
        fieldmap.put(" -papi=",papiTextField);
        fieldmap.put(" -mpiinc=",mpiincTextField);
        fieldmap.put(" -mpilib=",mpilibTextField);
        fieldmap.put(" -mpilibrary=",altmpiTextField);
        fieldmap.put(" -tag=",tagTextField);
        fieldmap.put(" -shemeinc=",shmemincTextField);
        fieldmap.put(" -shmemlib=",shmemlibTextField);
        fieldmap.put(" -shmemlibrary=",altshmemTextField);
        fieldmap.put(" -epilog=",epilogTextField);
        fieldmap.put(" -slog2=",slog2TextField);
        fieldmap.put(" -vtf=",vtfTextField);
        fieldmap.put(" -otf=",otfTextField);
        fieldmap.put(" -vampirtrace",vtraceTextField);
        fieldmap.put(" -opari=",opariTextField);
        fieldmap.put(" -charm=",charmTextField);
        fieldmap.put(" -tulipthread=",tulipTextField);
        fieldmap.put(" -pcl=",pclTextField);
        fieldmap.put(" -dyninst=",dyninstTextField);
        fieldmap.put(" -pythoninc=",pythonincField);
        fieldmap.put(" -pythonlib=",pythonlibField);
        fieldmap.put(" -jdk=",jdkField);
        fieldmap.put(" -prefix=",installdirField);
        fieldmap.put(" -exec-prefix=",archdirField);
        fieldmap.put(" -useropt=",useroptField);
        fieldmap.put(" -epilogbin=",epilogbinTextField);
        fieldmap.put(" -epiloginc=",epilogincTextField);
        fieldmap.put(" -epiloglib=",epiloglibTextField);
        
    }
    
    private void initcom(){
        comholder.add(archCombo);
        comholder.add(ccCombo);
        comholder.add(cppCombo);
        comholder.add(fortranCombo);
        comholder.add(pdtcppCombo);
    }
    
    private void reset(){
        //Component[] allcomps = this.getComponents();
        //this.get
        
        if(cbholder.size()==0){initcb();}
        
        if(comholder.size()==0){initcom();}
        
        for(int i=0;i<cbholder.size();i++){
            if(((JCheckBox)cbholder.get(i)).isSelected())
                ((JCheckBox)cbholder.get(i)).doClick();
        }
        
        for(int i=0;i<comholder.size();i++){
            ((JComboBox)comholder.get(i)).setSelectedIndex(0);
        }
    }
    
    private void parseConf(String confline){
        reset();
        confline=" "+confline;
        String[] commands=confline.split(" -");
        for(int i=0;i<commands.length;i++){
            //System.out.println(commands[i]);
            confBuild(" -"+commands[i]);
        }
    }
    
    /*Run programatically activate the command in String 'command'*/
    private void confBuild(String command){
        String remainder = null;
        //String raw=command;
        System.out.println(command+" 1");
        if(command.indexOf("=")>=0){//Formerly contains
            remainder=command.substring(command.indexOf('=')+1);
            command=command.substring(0,command.indexOf('=')+1);
        }
        System.out.println(command);
        System.out.println(remainder);
        javax.swing.JCheckBox box = (JCheckBox) commap.get(command);
        if(box!=null){
            javax.swing.JTextField field = (JTextField) fieldmap.get(command);
            if(field!=null){
                field.setText(remainder);
            }
            box.doClick();
        }
        else{
            if(command.indexOf(" -arch=")==0){
                System.out.println(remainder);
                this.archCombo.setSelectedItem(remainder);
            }
             /*else if(command.indexOf(" -c++=")==0){
                if(comboHas(this.cppCombo,remainder))
                    this.cppCombo.setSelectedItem(remainder);
            }*/
        }
    }
    
    
    private boolean comboHas(javax.swing.JComboBox cbox, String item){
        for(int i=0;i<cbox.getItemCount();i++)
        {
            if(((String)cbox.getItemAt(i)).equals(item))
                return true;
        }
        return false;
    }
    
    /*Add each line of the file 'filename' as an entry to vector 'holdconfs'*/
    private void getConfs(Vector holdconfs, String filename){
        FileInputStream fin;
        try{
            fin=new FileInputStream(filename);
            BufferedReader br = new BufferedReader(new InputStreamReader(fin));
            while(br.ready()){
                holdconfs.add(br.readLine());
            }
            fin.close();
        }catch(IOException e){holdconfs.add(filename+" unavailable.");}
    }
    
    private void writeConfs(Vector confs,String filename){
        //FileOutputStream fos;
        try{
          //  fos = new FileOutputStream(filename,true);
            
            BufferedWriter bw=new BufferedWriter(new FileWriter(filename,true));
            if(confs.size()>1)bw.newLine();
            bw.write((String)(confs.get(confs.size()-1)));
            //System.out.println((String)(confs.get(confs.size()-1)));
            bw.close();
        }catch(IOException e){e.printStackTrace();}
    }
    
    private String multiArg(String argument)
    {
        if(argument.indexOf(" ")>-1)
        {
            argument="'"+argument+"'";
        }    
        return argument;
    }
    
/*    private void getSavedConfs(){
        
    }*/
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JComboBox allconfComboBox;
    private javax.swing.JCheckBox altmpiCheckBox;
    private javax.swing.JButton altmpiQjButton;
    private javax.swing.JTextField altmpiTextField;
    private javax.swing.JCheckBox altperfCheckBox;
    private javax.swing.JButton altperfQjButton;
    private javax.swing.JTextField altperfTextField;
    private javax.swing.JCheckBox altshmemCheckBox;
    private javax.swing.JButton altshmemQjButton;
    private javax.swing.JTextField altshmemTextField;
    private javax.swing.JComboBox archCombo;
    private javax.swing.JLabel archLabel;
    private javax.swing.JButton archQjButton;
    private javax.swing.JButton archdirButton;
    private javax.swing.JCheckBox archdirCheckBox;
    private javax.swing.JTextField archdirField;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JButton cQjButton;
    private javax.swing.JButton callpathQjButton;
    private javax.swing.JComboBox ccCombo;
    private javax.swing.JLabel cccompLabel;
    private javax.swing.JButton charmButton;
    private javax.swing.JCheckBox charmCheckBox;
    private javax.swing.JPanel charmPanel;
    private javax.swing.JButton charmQjButton;
    private javax.swing.JTextField charmTextField;
    private javax.swing.JPanel commandPanel;
    private javax.swing.JTextArea commandTextArea;
    private javax.swing.JCheckBox compensateCheckBox;
    private javax.swing.JButton compensateQjButton;
    private javax.swing.JPanel compilerjPanel;
    private javax.swing.JButton confButton;
    private javax.swing.JScrollPane confjScrollPane;
    private javax.swing.JComboBox cppCombo;
    private javax.swing.JButton cppQjButton;
    private javax.swing.JLabel cppcompLabel;
    private javax.swing.JButton cputQjButton;
    private javax.swing.JCheckBox cputimeCheckBox;
    private javax.swing.JButton craytQjButton;
    private javax.swing.JCheckBox craytimeCheckBox;
    private javax.swing.JButton custarchQjButton;
    private javax.swing.JTextField custconfTextField;
    private javax.swing.JButton custinstQjButton;
    private javax.swing.JCheckBox defccCheckBox;
    private javax.swing.JTextField defccTextField;
    private javax.swing.JCheckBox defcppCheckBox;
    private javax.swing.JTextField defcppTextField;
    private javax.swing.JCheckBox deffortranCheckBox;
    private javax.swing.JTextField deffortranTextField;
    private javax.swing.JCheckBox defpdtCheckBox;
    private javax.swing.JTextField defpdtTextField;
    private javax.swing.JButton depthQjButton;
    private javax.swing.JCheckBox depthlimitCheckBox;
    private javax.swing.JPanel dirarcPanel;
    private javax.swing.JButton dyninstButton;
    private javax.swing.JCheckBox dyninstCheckBox;
    private javax.swing.JPanel dyninstPanel;
    private javax.swing.JButton dyninstQjButton;
    private javax.swing.JTextField dyninstTextField;
    private javax.swing.JButton epilogButton;
    private javax.swing.JCheckBox epilogCheckBox;
    private javax.swing.JButton epilogQjButton;
    private javax.swing.JTextField epilogTextField;
    private javax.swing.JButton epilogbinButton;
    private javax.swing.JCheckBox epilogbinCheckBox;
    private javax.swing.JButton epilogbinQjButton;
    private javax.swing.JTextField epilogbinTextField;
    private javax.swing.JButton epilogincButton;
    private javax.swing.JCheckBox epilogincCheckBox;
    private javax.swing.JButton epilogincQjButton;
    private javax.swing.JTextField epilogincTextField;
    private javax.swing.JButton epiloglibButton;
    private javax.swing.JCheckBox epiloglibCheckBox;
    private javax.swing.JButton epiloglibQjButton;
    private javax.swing.JTextField epiloglibTextField;
    private javax.swing.JButton exitButton;
    private javax.swing.JButton fortQjButton;
    private javax.swing.JComboBox fortranCombo;
    private javax.swing.JLabel fortrancompLabel;
    private javax.swing.JPanel generalPanel;
    private javax.swing.JButton headroomQjButton;
    private javax.swing.JButton instButton;
    private javax.swing.JTextArea instTextArea;
    private javax.swing.JPanel installationPanel;
    private javax.swing.JButton installdirButton;
    private javax.swing.JCheckBox installdirCheckBox;
    private javax.swing.JTextField installdirField;
    private javax.swing.JScrollPane instjScrollPane;
    private javax.swing.JFileChooser jFileChooser1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JButton javatQjButton;
    private javax.swing.JButton jdkButton;
    private javax.swing.JTextField jdkField;
    private javax.swing.JPanel jdkPanel;
    private javax.swing.JButton jdkQjButton;
    private javax.swing.JButton linuxtQjButton;
    private javax.swing.JCheckBox linuxtimeCheckBox;
    private javax.swing.JButton loadallconfButton;
    private javax.swing.JButton loadsavedconfButton;
    private javax.swing.JButton makejButton;
    private javax.swing.JButton memorypQjButton;
    private javax.swing.JPanel messagePannel;
    private javax.swing.JCheckBox mpiCheckBox;
    private javax.swing.JButton mpiQjButton;
    private javax.swing.JButton mpiincButton;
    private javax.swing.JCheckBox mpiincCheckBox;
    private javax.swing.JButton mpiincQjButton;
    private javax.swing.JTextField mpiincTextField;
    private javax.swing.JPanel mpijPanel;
    private javax.swing.JButton mpilibButton;
    private javax.swing.JCheckBox mpilibCheckBox;
    private javax.swing.JButton mpilibQjButton;
    private javax.swing.JTextField mpilibTextField;
    private javax.swing.JCheckBox mpitraceCheckBox;
    private javax.swing.JButton mpitraceQjButton;
    private javax.swing.JButton multcountQjButton;
    private javax.swing.JCheckBox multiplecountCheckBox;
    private javax.swing.JCheckBox museCheckBox;
    private javax.swing.JPanel musePanel;
    private javax.swing.JButton museQjButton;
    private javax.swing.JButton museeQjButton;
    private javax.swing.JCheckBox museeventCheckBox;
    private javax.swing.JButton musemQjButton;
    private javax.swing.JCheckBox musemultCheckBox;
    private javax.swing.JCheckBox nocomCheckBox;
    private javax.swing.JButton nocommQjButton;
    private javax.swing.JButton noexQjButton;
    private javax.swing.JCheckBox noexceptCheckBox;
    private javax.swing.JCheckBox ompCheckBox;
    private javax.swing.JPanel ompPanel;
    private javax.swing.JButton opariButton;
    private javax.swing.JCheckBox opariCheckBox;
    private javax.swing.JButton opariQjButton;
    private javax.swing.JTextField opariTextField;
    private javax.swing.JCheckBox opariconstructCheckBox;
    private javax.swing.JButton opariconstructQjButton;
    private javax.swing.JCheckBox opariregionCheckBox;
    private javax.swing.JButton opariregionQjButton;
    private javax.swing.JButton openmpQjButton;
    private javax.swing.JButton otfButton;
    private javax.swing.JCheckBox otfCheckBox;
    private javax.swing.JButton otfQjButton;
    private javax.swing.JTextField otfTextField;
    private javax.swing.JPanel outputPanel;
    private javax.swing.JButton papiButton;
    private javax.swing.JCheckBox papiCheckBox;
    private javax.swing.JButton papiQjButton;
    private javax.swing.JTextField papiTextField;
    private javax.swing.JPanel papijPanel;
    private javax.swing.JCheckBox papivirtCheckBox;
    private javax.swing.JButton papivirtQjButton;
    private javax.swing.JCheckBox papiwallCheckBox;
    private javax.swing.JButton papiwallQjButton;
    private javax.swing.JButton pclButton;
    private javax.swing.JCheckBox pclCheckBox;
    private javax.swing.JPanel pclPanel;
    private javax.swing.JButton pclQjButton;
    private javax.swing.JTextField pclTextField;
    private javax.swing.JButton pdtButton;
    private javax.swing.JCheckBox pdtCheckBox;
    private javax.swing.JLabel pdtCompilerLabel;
    private javax.swing.JButton pdtQjButton;
    private javax.swing.JComboBox pdtcppCombo;
    private javax.swing.JButton pdtcppQjButton;
    private javax.swing.JTextField pdtdirField;
    private javax.swing.JPanel pdtjPanel;
    private javax.swing.JButton perfincButton;
    private javax.swing.JCheckBox perfincCheckBox;
    private javax.swing.JButton perfincQjButton;
    private javax.swing.JTextField perfincTextField;
    private javax.swing.JPanel perfjPanel;
    private javax.swing.JButton perflibButton;
    private javax.swing.JCheckBox perflibCheckBox;
    private javax.swing.JButton perflibQjButton;
    private javax.swing.JTextField perflibTextField;
    private javax.swing.JButton phaseQjButton;
    private javax.swing.JCheckBox profcallpathCheckBox;
    private javax.swing.JCheckBox profheadroomCheckBox;
    private javax.swing.JCheckBox profileCheckBox;
    private javax.swing.JPanel profilePanel;
    private javax.swing.JButton profileQjButton;
    private javax.swing.JCheckBox profmemoryCheckBox;
    private javax.swing.JCheckBox profphaseCheckBox;
    private javax.swing.JCheckBox profstatsCheckBox;
    private javax.swing.JCheckBox pthreadsCheckBox;
    private javax.swing.JPanel pthreadsPanel;
    private javax.swing.JButton pthreadsQjButton;
    private javax.swing.JPanel pythonPanel;
    private javax.swing.JButton pythonincButton;
    private javax.swing.JTextField pythonincField;
    private javax.swing.JButton pythonincQjButton;
    private javax.swing.JButton pythonlibButton;
    private javax.swing.JCheckBox pythonlibCheckBox;
    private javax.swing.JTextField pythonlibField;
    private javax.swing.JButton pythonlibQjButton;
    private javax.swing.JButton removeconfButton;
    private javax.swing.JButton resetButton;
    private javax.swing.JButton saveconfButton;
    private javax.swing.JComboBox savedconfComboBox;
    private javax.swing.JButton sgitQjButton;
    private javax.swing.JCheckBox sgitimeCheckBox;
    private javax.swing.JCheckBox shmemCheckBox;
    private javax.swing.JButton shmemQjButton;
    private javax.swing.JButton shmemincButton;
    private javax.swing.JCheckBox shmemincCheckBox;
    private javax.swing.JButton shmemincQjButton;
    private javax.swing.JTextField shmemincTextField;
    private javax.swing.JPanel shmemjPanel;
    private javax.swing.JButton shmemlibButton;
    private javax.swing.JCheckBox shmemlibCheckBox;
    private javax.swing.JButton shmemlibQjButton;
    private javax.swing.JTextField shmemlibTextField;
    private javax.swing.JButton slog2Button;
    private javax.swing.JCheckBox slog2CheckBox;
    private javax.swing.JButton slog2QjButton;
    private javax.swing.JTextField slog2TextField;
    private javax.swing.JButton slog2eQjButton;
    private javax.swing.JCheckBox slog2exCheckBox;
    private javax.swing.JCheckBox smartCheckBox;
    private javax.swing.JButton smartQjButton;
    private javax.swing.JCheckBox sprocCheckBox;
    private javax.swing.JPanel sprocPanel;
    private javax.swing.JButton sprocQjButton;
    private javax.swing.JTabbedPane tabPane;
    private javax.swing.JCheckBox tagCheckBox;
    private javax.swing.JButton tagQjButton;
    private javax.swing.JTextField tagTextField;
    private javax.swing.JPanel threadPanel;
    private javax.swing.JPanel timePanel;
    private javax.swing.JCheckBox traceCheckBox;
    private javax.swing.JPanel tracePanel;
    private javax.swing.JButton traceQjButton;
    private javax.swing.JButton tulipButton;
    private javax.swing.JCheckBox tulipCheckBox;
    private javax.swing.JButton tulipQjButton;
    private javax.swing.JTextField tulipTextField;
    private javax.swing.JPanel tulipthreadsPanel;
    private javax.swing.JCheckBox usejavatimersCheckBox;
    private javax.swing.JCheckBox usejdkCheckBox;
    private javax.swing.JCheckBox usepythonCheckBox;
    private javax.swing.JCheckBox useroptCheckBox;
    private javax.swing.JTextField useroptField;
    private javax.swing.JButton useroptQjButton;
    private javax.swing.JButton vtfButton;
    private javax.swing.JCheckBox vtfCheckBox;
    private javax.swing.JButton vtfQjButton;
    private javax.swing.JTextField vtfTextField;
    private javax.swing.JButton vtraceButton;
    private javax.swing.JCheckBox vtraceCheckBox;
    private javax.swing.JButton vtraceQjButton;
    private javax.swing.JTextField vtraceTextField;
    // End of variables declaration//GEN-END:variables
    
}
