anl.verdi.area.target.FormulaDialog.java Source code

Java tutorial

Introduction

Here is the source code for anl.verdi.area.target.FormulaDialog.java

Source

package anl.verdi.area.target;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.ButtonGroup;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.ListSelectionModel;
import javax.swing.ScrollPaneConstants;

import anl.verdi.gui.FormulaListElement;

import com.jgoodies.forms.factories.Borders;
import com.jgoodies.forms.factories.DefaultComponentFactory;
import com.jgoodies.forms.factories.FormFactory;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.RowSpec;
import com.jgoodies.forms.layout.Sizes;

/**
 * @author User #2
 */
public class FormulaDialog extends JDialog {

    /**
     * 
     */
    private static final long serialVersionUID = 5085805480891992298L;
    private String[] selectedFormulas;

    public FormulaDialog(Frame owner) {
        super(owner);
        initComponents();
        setTitle("Area Information");
    }

    public FormulaDialog(Dialog owner) {
        super(owner);
        initComponents();
        setTitle("Area Information");
    }

    public void setFormulas(java.util.List<FormulaListElement> elements, String var) {
        FormulaListElement currentItem = null;
        DefaultListModel model = new DefaultListModel();
        //      DefaultListModel<FormulaListElement> model = new DefaultListModel<FormulaListElement>();
        for (FormulaListElement item : elements) {
            model.addElement(item);
            if (var != null && var.equals(item.getFormula())) {
                currentItem = item;
            }
        }
        formulaList.setModel(model);
        formulaList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
        if (currentItem != null)
            formulaList.setSelectedValue(currentItem, true);

        okButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                // make a list of the formula selected
                DefaultListModel model = (DefaultListModel) formulaList.getModel();
                //            for (int i = 0; i < model.size(); i++) {      do-nothing loop
                ////               FormulaListElement element = (FormulaListElement) model.getElementAt(i);
                //
                //            }
                //            Object[] vals=formulaList.getSelectedValues();
                List vals = formulaList.getSelectedValuesList();
                //            if(vals.length<=0){
                int valSize = vals.size();
                if (valSize <= 0) {
                    // show warning and return
                    errorMessage.setText("Select a formula.");
                    return;
                }
                //            selectedFormulas=new String[vals.length];
                //            for(int i=0;i<vals.length;i++){
                selectedFormulas = new String[valSize];
                for (int i = 0; i < valSize; i++) {
                    FormulaListElement element = (FormulaListElement) vals.get(i); //[i];
                    selectedFormulas[i] = element.getFormula();
                }
                dispose();
            }
        });

        cancelButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                dispose();
            }
        });
    }

    //   private void findAxisFormulas() {
    //      DefaultListModel model = (DefaultListModel) formulaList.getModel();
    //      for (int i = 0; i < model.size(); i++) {
    //         FormulaListElement element = (FormulaListElement) model.getElementAt(i);
    //
    //      }
    //   }

    private void initComponents() {
        // JFormDesigner - Component initialization - DO NOT MODIFY  //GEN-BEGIN:initComponents
        // Generated using JFormDesigner non-commercial license
        DefaultComponentFactory compFactory = DefaultComponentFactory.getInstance();
        dialogPane = new JPanel();
        contentPanel = new JPanel();
        separator2 = compFactory.createSeparator("View Area Values for the Selected Formulas");
        label2 = new JLabel();
        radioButton1 = new JRadioButton();
        radioButton2 = new JRadioButton();
        label1 = new JLabel();
        scrollPane1 = new JScrollPane();
        formulaList = new JList();
        buttonBar = new JPanel();
        separator1 = new JSeparator();
        errorMessage = new JLabel();
        okButton = new JButton();
        cancelButton = new JButton();
        CellConstraints cc = new CellConstraints();

        //======== this ========
        setModal(true);
        setTitle("Area Information");
        Container contentPane = getContentPane();
        contentPane.setLayout(new BorderLayout());

        //======== dialogPane ========
        {
            dialogPane.setBorder(Borders.DIALOG_BORDER);
            dialogPane.setMinimumSize(new Dimension(445, 400));
            dialogPane.setLayout(new BorderLayout());

            //======== contentPanel ========
            {
                contentPanel.setPreferredSize(new Dimension(400, 75));
                contentPanel.setMinimumSize(new Dimension(423, 75));

                // 2014 - underlyaing jgoodies class changed
                ColumnSpec[] aColumnSpec = ColumnSpec.decodeSpecs("min(min;5dlu):grow");
                ColumnSpec[] bColumnSpec = ColumnSpec.decodeSpecs("max(min;75dlu)");

                contentPanel.setLayout(new FormLayout(
                        new ColumnSpec[] { FormFactory.DEFAULT_COLSPEC, FormFactory.PREF_COLSPEC, aColumnSpec[0],
                                FormFactory.LABEL_COMPONENT_GAP_COLSPEC, FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
                                FormFactory.DEFAULT_COLSPEC, FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
                                FormFactory.LABEL_COMPONENT_GAP_COLSPEC, FormFactory.RELATED_GAP_COLSPEC,
                                FormFactory.LABEL_COMPONENT_GAP_COLSPEC, bColumnSpec[0],
                                FormFactory.LABEL_COMPONENT_GAP_COLSPEC, FormFactory.DEFAULT_COLSPEC },
                        new RowSpec[] { FormFactory.DEFAULT_ROWSPEC, FormFactory.LINE_GAP_ROWSPEC,
                                FormFactory.DEFAULT_ROWSPEC, FormFactory.LINE_GAP_ROWSPEC,
                                FormFactory.DEFAULT_ROWSPEC }));
                //            contentPanel.setLayout(new FormLayout(
                //                  new ColumnSpec[] {
                //                        FormFactory.DEFAULT_COLSPEC,
                //                        FormFactory.PREF_COLSPEC,
                //                        new ColumnSpec("min(min;5dlu):grow"),
                //                        FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
                //                        FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
                //                        FormFactory.DEFAULT_COLSPEC,
                //                        FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
                //                        FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
                //                        FormFactory.RELATED_GAP_COLSPEC,
                //                        FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
                //                        new ColumnSpec("max(min;75dlu)"),
                //                        FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
                //                        FormFactory.DEFAULT_COLSPEC
                //                  },
                //                  new RowSpec[] {
                //                        FormFactory.DEFAULT_ROWSPEC,
                //                        FormFactory.LINE_GAP_ROWSPEC,
                //                        FormFactory.DEFAULT_ROWSPEC,
                //                        FormFactory.LINE_GAP_ROWSPEC,
                //                        FormFactory.DEFAULT_ROWSPEC
                //                  }));
                contentPanel.add(separator2, cc.xywh(1, 1, 13, 1));

                //---- label2 ----
                label2.setText("Areas:");
                contentPanel.add(label2, cc.xy(1, 3));

                //---- radioButton1 ----
                radioButton1.setText("Selected");
                radioButton1.setSelected(true);
                contentPanel.add(radioButton1, cc.xy(2, 3));

                //---- radioButton2 ----
                radioButton2.setText("All");
                contentPanel.add(radioButton2, cc.xywh(3, 3, 9, 1));

                //---- label1 ----
                label1.setText("Formulas:");
                contentPanel.add(label1, cc.xy(1, 5));
            }
            dialogPane.add(contentPanel, BorderLayout.NORTH);

            //======== scrollPane1 ========
            {
                scrollPane1.setMinimumSize(new Dimension(300, 400));
                scrollPane1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
                scrollPane1.setPreferredSize(new Dimension(350, 200));
                scrollPane1.setMaximumSize(new Dimension(1000, 1000));

                //---- formulaList ----
                formulaList.setMinimumSize(new Dimension(300, 200));
                formulaList.setMaximumSize(new Dimension(300, 500));
                formulaList.setPreferredSize(new Dimension(300, 200));
                scrollPane1.setViewportView(formulaList);
            }
            dialogPane.add(scrollPane1, BorderLayout.CENTER);

            //======== buttonBar ========
            {
                buttonBar.setBorder(Borders.BUTTON_BAR_GAP_BORDER);
                buttonBar.setPreferredSize(new Dimension(181, 60));
                buttonBar.setLayout(new FormLayout(
                        new ColumnSpec[] { FormFactory.LABEL_COMPONENT_GAP_COLSPEC, FormFactory.DEFAULT_COLSPEC,
                                FormFactory.LABEL_COMPONENT_GAP_COLSPEC, FormFactory.DEFAULT_COLSPEC,
                                FormFactory.LABEL_COMPONENT_GAP_COLSPEC, FormFactory.DEFAULT_COLSPEC,
                                FormFactory.GLUE_COLSPEC, FormFactory.BUTTON_COLSPEC,
                                FormFactory.RELATED_GAP_COLSPEC, FormFactory.BUTTON_COLSPEC },
                        new RowSpec[] { new RowSpec(Sizes.dluY(15)), FormFactory.PREF_ROWSPEC,
                                FormFactory.LINE_GAP_ROWSPEC, FormFactory.DEFAULT_ROWSPEC }));
                buttonBar.add(separator1, cc.xywh(2, 1, 9, 1));

                //---- errorMessage ----
                errorMessage
                        .setFont(errorMessage.getFont().deriveFont(errorMessage.getFont().getStyle() | Font.BOLD));
                buttonBar.add(errorMessage, cc.xywh(2, 2, 6, 1));

                //---- okButton ----
                okButton.setText("OK");
                buttonBar.add(okButton, cc.xy(8, 2));

                //---- cancelButton ----
                cancelButton.setText("Cancel");
                buttonBar.add(cancelButton, cc.xy(10, 2));
            }
            dialogPane.add(buttonBar, BorderLayout.SOUTH);
        }
        contentPane.add(dialogPane, BorderLayout.CENTER);
        setSize(375, 345);
        setLocationRelativeTo(getOwner());

        //---- buttonGroup1 ----
        ButtonGroup buttonGroup1 = new ButtonGroup();
        buttonGroup1.add(radioButton1);
        buttonGroup1.add(radioButton2);
        // JFormDesigner - End of component initialization  //GEN-END:initComponents
    }

    // JFormDesigner - Variables declaration - DO NOT MODIFY  //GEN-BEGIN:variables
    // Generated using JFormDesigner non-commercial license
    private JPanel dialogPane;
    private JPanel contentPanel;
    private JComponent separator2;
    private JLabel label2;
    private JRadioButton radioButton1;
    private JRadioButton radioButton2;
    private JLabel label1;
    private JScrollPane scrollPane1;
    private JList<DefaultListModel<FormulaListElement>> formulaList;
    private JPanel buttonBar;
    private JSeparator separator1;
    private JLabel errorMessage;
    private JButton okButton;
    private JButton cancelButton;
    // JFormDesigner - End of variables declaration  //GEN-END:variables

    public String[] getSelectedFormulas() {
        return selectedFormulas;
    }

    public boolean getSelectedAreasOnly() {
        return radioButton1.isSelected();
    }
}