anl.verdi.gui.FormulasPanel.java Source code

Java tutorial

Introduction

Here is the source code for anl.verdi.gui.FormulasPanel.java

Source

/*
 * Created by JFormDesigner on Sun Mar 11 21:12:03 CDT 2007
 */

package anl.verdi.gui;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JCheckBox;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

import org.apache.logging.log4j.LogManager; // 2014
import org.apache.logging.log4j.Logger; // 2014 replacing System.out.println with logger messages

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;

/**
 * @author User #1
 */
public class FormulasPanel extends JPanel {

    /**
     * 
     */
    private static final long serialVersionUID = 4063989712599725937L;
    static final Logger Logger = LogManager.getLogger(FormulasPanel.class.getName());

    public FormulasPanel() {
        this(new FormulaListModel());
    }

    public FormulasPanel(FormulaListModel model) {
        Logger.debug("in formulasPanel constructor FormulaListModel");
        initComponents();
        addFormulaPanel.setFormulaListModel(model);
        addFormulaSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent e) {
                if (!e.getValueIsAdjusting()) {
                    JList list = (JList) e.getSource();
                    int index = list.getSelectedIndex();
                    if (index >= 0) {
                        FormulaListElement element = (FormulaListElement) list.getModel().getElementAt(index);
                        setTimeValues(element);
                        setLayerValues(element);
                        setDomainValues(element);
                    } else {
                        setTimeValues(null);
                        setLayerValues(null);
                        setDomainValues(null);
                    }
                }
            }
        });

        addPanelListeners();
    }

    private void addPanelListeners() {
        Logger.debug("in FormulasPanel addPanelListener");
        timePanel1.addListeners(new ChangeListener() {
            public void stateChanged(ChangeEvent e) {
                Object obj = addFormulaPanel.getList().getSelectedValue();
                if (obj != null) {
                    JSpinner spinner = (JSpinner) e.getSource();
                    int val = ((Integer) spinner.getValue()).intValue() - 1;
                    ((FormulaListElement) obj).setTimeMin(val);
                }
            }
        }, new ChangeListener() {
            public void stateChanged(ChangeEvent e) {
                Object obj = addFormulaPanel.getList().getSelectedValue();
                if (obj != null) {
                    JSpinner spinner = (JSpinner) e.getSource();
                    int val = ((Integer) spinner.getValue()).intValue() - 1;
                    ((FormulaListElement) obj).setTimeMax(val);
                }
            }
        },

                new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        Object obj = addFormulaPanel.getList().getSelectedValue();
                        if (obj != null) {
                            JCheckBox box = (JCheckBox) e.getSource();
                            ((FormulaListElement) obj).setTimeUsed(box.isSelected());
                        }
                    }
                });

        layerPanel1.addListeners(new ChangeListener() {
            public void stateChanged(ChangeEvent e) {
                Object obj = addFormulaPanel.getList().getSelectedValue();
                if (obj != null) {
                    JSpinner spinner = (JSpinner) e.getSource();
                    int val = ((Integer) spinner.getValue()).intValue() - 1;
                    ((FormulaListElement) obj).setLayerMin(val);
                }
            }
        }, new ChangeListener() {
            public void stateChanged(ChangeEvent e) {
                Object obj = addFormulaPanel.getList().getSelectedValue();
                if (obj != null) {
                    JSpinner spinner = (JSpinner) e.getSource();
                    int val = ((Integer) spinner.getValue()).intValue() - 1;
                    ((FormulaListElement) obj).setLayerMax(val);
                }
            }
        },

                new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {
                        Object obj = addFormulaPanel.getList().getSelectedValue();
                        if (obj != null) {
                            JCheckBox box = (JCheckBox) evt.getSource();
                            ((FormulaListElement) obj).setLayerUsed(box.isSelected());
                        }
                    }
                });
    }

    private void setTimeValues(FormulaListElement element) {
        Logger.debug("in FormulasPanel setTimeValues");
        if (element != null && element.getTimeMin() != FormulaListElement.NO_TIME_VALUE) {
            timePanel1.setEnabled(true);
            timePanel1.reset(element.getAxes(), element.getTimeMin(), element.getTimeMax(), element.isTimeUsed());
        } else {
            timePanel1.setEnabled(false);
        }
    }

    public void setLayerValues(FormulaListElement element) {
        Logger.debug("in FormulasPanel setLayerValue");
        if (element != null && element.getLayerMin() != FormulaListElement.NO_LAYER_VALUE) {
            layerPanel1.setEnabled(true);
            layerPanel1.reset(element.getAxes(), element.getLayerMin(), element.getLayerMax(),
                    element.isLayerUsed());
        } else {
            layerPanel1.setEnabled(false);
        }
    }

    public FormulaEditor getFormulaEditor() {
        Logger.debug("in FormulasPanel getFormulaEditor");
        return addFormulaPanel;
    }

    public void addFormulaSelectionListener(ListSelectionListener listener) {
        Logger.debug("in FormulasPanel addFormulaSelectionListener");
        addFormulaPanel.addFormulaSelectionListener(listener);
    }

    public void setFormulaCreator(FormulaElementCreator validator) {
        Logger.debug("in FormulasPanel setFormulaCreator");
        addFormulaPanel.setCreator(validator);
    }

    public void setDomainValues(AbstractListElement element) {
        Logger.debug("in FormulasPanel setDomainValues");
        if (element == null)
            domainPanel1.setDomainValues(null);
        else if (element.getAxes().getXAxis() != null && element.getAxes().getYAxis() != null)
            domainPanel1.setDomainValues(element);
        else
            domainPanel1.setDomainValues(null);
    }

    private void initComponents() {
        Logger.debug("in FormulasPanel initComponents");
        // JFormDesigner - Component initialization - DO NOT MODIFY  //GEN-BEGIN:initComponents
        // Generated using JFormDesigner non-commercial license
        addFormulaPanel = new AddFormulaPanel();
        timePanel1 = new TimePanel();
        layerPanel1 = new LayerPanel();
        domainPanel1 = new DomainPanel();
        CellConstraints cc = new CellConstraints();

        //======== this ========
        setPreferredSize(new Dimension(274, 700));
        setMinimumSize(new Dimension(146, 600));
        // 2014
        RowSpec[] aRowSpec = RowSpec.decodeSpecs("fill:max(pref;125dlu):grow");
        ColumnSpec[] aColumnSpec = ColumnSpec.decodeSpecs("default:grow");
        setLayout(new FormLayout(aColumnSpec,
                new RowSpec[] { FormFactory.PREF_ROWSPEC, FormFactory.LINE_GAP_ROWSPEC, FormFactory.PREF_ROWSPEC,
                        FormFactory.LINE_GAP_ROWSPEC, FormFactory.PREF_ROWSPEC, FormFactory.LINE_GAP_ROWSPEC,
                        aRowSpec[0] }));
        //      setLayout(new FormLayout(
        //            ColumnSpec.decodeSpecs("default:grow"),
        //            new RowSpec[]{
        //                        FormFactory.PREF_ROWSPEC,
        //                        FormFactory.LINE_GAP_ROWSPEC,
        //                        FormFactory.PREF_ROWSPEC,
        //                        FormFactory.LINE_GAP_ROWSPEC,
        //                        FormFactory.PREF_ROWSPEC,
        //                        FormFactory.LINE_GAP_ROWSPEC,
        //                        new RowSpec("fill:max(pref;125dlu):grow")
        //            }));
        add(addFormulaPanel, cc.xy(1, 1));
        add(timePanel1, cc.xy(1, 3));
        add(layerPanel1, cc.xy(1, 5));
        add(domainPanel1, cc.xy(1, 7));
        // JFormDesigner - End of component initialization  //GEN-END:initComponents
    }

    // JFormDesigner - Variables declaration - DO NOT MODIFY  //GEN-BEGIN:variables
    // Generated using JFormDesigner non-commercial license
    private AddFormulaPanel addFormulaPanel;
    private TimePanel timePanel1;
    private LayerPanel layerPanel1;
    private DomainPanel domainPanel1;
    // JFormDesigner - End of variables declaration  //GEN-END:variables
}