Example usage for com.jgoodies.forms.builder DefaultFormBuilder DefaultFormBuilder

List of usage examples for com.jgoodies.forms.builder DefaultFormBuilder DefaultFormBuilder

Introduction

In this page you can find the example usage for com.jgoodies.forms.builder DefaultFormBuilder DefaultFormBuilder.

Prototype

public DefaultFormBuilder(FormLayout layout) 

Source Link

Document

Constructs a DefaultFormBuilder for the given layout.

Usage

From source file:jgnash.ui.report.compiled.IncomeExpensePieChart.java

License:Open Source License

private JPanel createPanel() {
    EnumSet<AccountType> set = EnumSet.of(AccountType.INCOME, AccountType.EXPENSE);

    JButton refreshButton = new JButton(rb.getString("Button.Refresh"));

    startField = new DatePanel();

    endField = new DatePanel();

    showEmptyCheck = new JCheckBox(rb.getString("Label.ShowEmptyAccounts"));

    showPercentCheck = new JCheckBox(rb.getString("Label.ShowPercentValues"));

    combo = AccountListComboBox//from   w ww  .j a v a  2s.c o  m
            .getParentTypeInstance(EngineFactory.getEngine(EngineFactory.DEFAULT).getRootAccount(), set);

    Date dStart = DateUtils.subtractYear(DateUtils.getFirstDayOfTheMonth(new Date()));

    long start = pref.getLong(STARTDATE, dStart.getTime());

    startField.setDate(new Date(start));

    currentAccount = combo.getSelectedAccount();
    JFreeChart chart = createPieChart(currentAccount);
    chartPanel = new ChartPanel(chart, true, true, true, false, true);
    //                         (chart, properties, save, print, zoom, tooltips)

    FormLayout layout = new FormLayout("p, 4dlu, 70dlu, 8dlu, p, 4dlu, 70dlu, 8dlu, p, 4dlu:g, left:p",
            "f:d, 3dlu, f:d, 6dlu, f:p:g");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    layout.setRowGroups(new int[][] { { 1, 3 } });

    builder.append(combo, 9);
    builder.append(showEmptyCheck);
    builder.nextLine();

    builder.nextLine();

    builder.append(rb.getString("Label.StartDate"), startField);
    builder.append(rb.getString("Label.EndDate"), endField);
    builder.append(refreshButton);

    builder.append(showPercentCheck);
    builder.nextLine();
    builder.nextLine();

    builder.append(chartPanel, 11);

    JPanel panel = builder.getPanel();

    combo.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            setCurrentAccount(combo.getSelectedAccount());
            pref.putLong(STARTDATE, startField.getDate().getTime());
        }
    });

    refreshButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            setCurrentAccount(currentAccount);
            pref.putLong(STARTDATE, startField.getDate().getTime());
        }
    });

    showEmptyCheck.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            setCurrentAccount(currentAccount);
        }
    });

    showPercentCheck.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            ((PiePlot) chartPanel.getChart().getPlot())
                    .setLabelGenerator(showPercentCheck.isSelected() ? percentLabels : defaultLabels);
        }
    });

    ChartMouseListener mouseListener = new ChartMouseListener() {

        @Override
        public void chartMouseClicked(final ChartMouseEvent event) {
            MouseEvent me = event.getTrigger();
            if (me.getID() == MouseEvent.MOUSE_CLICKED && me.getClickCount() == 1) {
                try {
                    ChartEntity entity = event.getEntity();
                    // expand sections if interesting, back out if in nothing
                    if (entity instanceof PieSectionEntity) {
                        Account a = (Account) ((PieSectionEntity) entity).getSectionKey();
                        if (a.getChildCount() > 0) {
                            setCurrentAccount(a);
                        }
                    } else if (entity == null) {
                        Account parent = currentAccount;
                        if (parent == null) {
                            return;
                        }
                        parent = parent.getParent();
                        if (parent == null || parent instanceof RootAccount) {
                            return;
                        }
                        setCurrentAccount(parent);
                    }
                } catch (Exception ex) {
                    System.err.println(ex);
                }
            }
        }

        @Override
        public void chartMouseMoved(ChartMouseEvent event) {
            setChartCursor(chartPanel, event.getEntity(), event.getTrigger().getPoint());
        }
    };

    chartPanel.addChartMouseListener(mouseListener);

    return panel;
}

From source file:jgnash.ui.report.compiled.MonthBalanceCSV.java

License:Open Source License

private Date[] getDates() {

    Date[] dates;/*w  w w.  jav a 2  s  .co m*/

    DatePanel startField = new DatePanel();
    DatePanel endField = new DatePanel();

    ButtonGroup group = new ButtonGroup();
    JRadioButton vert = new JRadioButton(rb.getString("Button.Vertical"));
    JRadioButton horiz = new JRadioButton(rb.getString("Button.Horizontal"));

    group.add(vert);
    group.add(horiz);
    vert.setSelected(true);

    FormLayout layout = new FormLayout("right:p, 4dlu, p:g", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setRowGroupingEnabled(true);

    builder.append(rb.getString("Label.StartDate"), startField);
    builder.append(rb.getString("Label.EndDate"), endField);
    builder.append(rb.getString("Label.Layout"), vert);
    builder.append("", horiz);
    builder.nextLine();
    builder.appendUnrelatedComponentsGapRow();
    builder.nextLine();

    JPanel panel = builder.getPanel();

    int option = JOptionPane.showConfirmDialog(null, new Object[] { panel },
            rb.getString("Message.StartEndDate"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);

    if (option == JOptionPane.OK_OPTION) {
        dates = getLastDays(startField.getDate(), endField.getDate());
    } else {
        dates = null;
    }

    vertical = vert.isSelected();

    return dates;

}

From source file:jgnash.ui.report.compiled.MonthlyAccountBalanceChart.java

License:Open Source License

private JPanel createPanel() {
    Date end = DateUtils.getLastDayOfTheMonth(endDateField.getDate());
    Date start = DateUtils.subtractYear(end);
    startDateField.setDate(start);//from   w w w  .  j  a  v a  2s  . c  o  m

    JButton refreshButton = new JButton(rb.getString("Button.Refresh"));
    refreshButton.setIcon(Resource.getIcon("/jgnash/resource/view-refresh.png"));

    subAccountCheckBox = new JCheckBox(rb.getString("Button.IncludeSubAccounts"));
    subAccountCheckBox.setSelected(true);

    hideLockedAccountCheckBox = new JCheckBox(rb.getString("Button.HideLockedAccount"));
    hidePlaceholderAccountCheckBox = new JCheckBox(rb.getString("Button.HidePlaceholderAccount"));

    Account a = combo.getSelectedAccount();
    JFreeChart chart = createVerticalXYBarChart(a);
    final ChartPanel chartPanel = new ChartPanel(chart);

    FormLayout layout = new FormLayout("p, 4dlu, p:g", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);

    FormLayout dLayout = new FormLayout("p, 4dlu, p, 8dlu, p, 4dlu, p, 8dlu, p", "");
    DefaultFormBuilder dBuilder = new DefaultFormBuilder(dLayout);

    dBuilder.append(rb.getString("Label.StartDate"), startDateField);
    dBuilder.append(rb.getString("Label.EndDate"), endDateField);
    dBuilder.append(refreshButton);

    FormLayout cbLayout = new FormLayout("p, 4dlu, p, 4dlu, p, 4dlu", "");
    DefaultFormBuilder cbBuilder = new DefaultFormBuilder(cbLayout);

    cbBuilder.append(subAccountCheckBox);
    cbBuilder.append(hideLockedAccountCheckBox);
    cbBuilder.append(hidePlaceholderAccountCheckBox);

    builder.append(rb.getString("Label.Account"), combo);
    builder.nextLine();
    builder.append(" ");
    builder.append(cbBuilder.getPanel());
    builder.nextLine();
    builder.appendRelatedComponentsGapRow();
    builder.nextLine();
    builder.append(dBuilder.getPanel(), 3);
    builder.nextLine();
    builder.appendUnrelatedComponentsGapRow();
    builder.nextLine();

    builder.appendRow(RowSpec.decode("fill:p:g"));
    builder.append(chartPanel, 3);

    final JPanel panel = builder.getPanel();

    ActionListener listener = new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            try {
                Account account = combo.getSelectedAccount();
                if (account == null) {
                    return;
                }

                updateSubAccountBox();

                chartPanel.setChart(createVerticalXYBarChart(account));
                panel.validate();
            } catch (Exception ex) {
                System.out.println(ex);
            }
        }
    };

    combo.addActionListener(listener);

    hideLockedAccountCheckBox.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            combo.setHideLocked(hideLockedAccountCheckBox.isSelected());
            try {
                Account account = combo.getSelectedAccount();
                if (account == null) {
                    return;
                }

                updateSubAccountBox();

                chartPanel.setChart(createVerticalXYBarChart(account));
                panel.validate();
            } catch (Exception ex) {
                System.out.println(ex);
            }
        }
    });

    hidePlaceholderAccountCheckBox.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            combo.setHidePlaceholder(hidePlaceholderAccountCheckBox.isSelected());
            try {
                Account account = combo.getSelectedAccount();
                if (account == null) {
                    return;
                }

                updateSubAccountBox();

                chartPanel.setChart(createVerticalXYBarChart(account));
                panel.validate();
            } catch (Exception ex) {
                System.out.println(ex);
            }
        }
    });
    refreshButton.addActionListener(listener);

    updateSubAccountBox();

    return panel;
}

From source file:jgnash.ui.report.compiled.MonthlyAccountBalanceChartCompare.java

License:Open Source License

private JPanel createPanel() {
    Date end = DateUtils.getLastDayOfTheMonth(endDateField.getDate());
    Date start = DateUtils.subtractYear(end);
    startDateField.setDate(start);//from  www .j  a  va  2  s.  c  o  m

    JButton refreshButton = new JButton(rb.getString("Button.Refresh"));
    refreshButton.setIcon(Resource.getIcon("/jgnash/resource/view-refresh.png"));

    subAccountCheckBox = new JCheckBox(rb.getString("Button.IncludeSubAccounts"));
    subAccountCheckBox.setSelected(true);

    hideLockedAccountCheckBox = new JCheckBox(rb.getString("Button.HideLockedAccount"));
    hidePlaceholderAccountCheckBox = new JCheckBox(rb.getString("Button.HidePlaceholderAccount"));

    jcb_compare = new JCheckBox(rb.getString("Button.Compare"));
    jcb_compare.setSelected(true);

    Account a = combo1.getSelectedAccount();
    Account a2 = combo2.getSelectedAccount();

    JFreeChart chart = createVerticalXYBarChart(a, a2);
    final ChartPanel chartPanel = new ChartPanel(chart);

    FormLayout layout = new FormLayout("p, 4dlu, p:g", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);

    FormLayout dLayout = new FormLayout("p, 4dlu, p, 8dlu, p, 4dlu, p, 8dlu, p", "");
    DefaultFormBuilder dBuilder = new DefaultFormBuilder(dLayout);

    dBuilder.append(rb.getString("Label.StartDate"), startDateField);
    dBuilder.append(rb.getString("Label.EndDate"), endDateField);
    dBuilder.append(refreshButton);

    FormLayout cbLayout = new FormLayout("p, 4dlu, p, 4dlu, p, 4dlu", "");
    DefaultFormBuilder cbBuilder = new DefaultFormBuilder(cbLayout);

    cbBuilder.append(subAccountCheckBox);
    cbBuilder.append(hideLockedAccountCheckBox);
    cbBuilder.append(hidePlaceholderAccountCheckBox);

    builder.append(rb.getString("Label.Account"), combo1);
    builder.nextLine();
    builder.append(rb.getString("Label.Compare"), combo2);
    builder.nextLine();
    builder.append(jcb_compare);
    builder.append(cbBuilder.getPanel());
    builder.nextLine();
    builder.appendRelatedComponentsGapRow();
    builder.nextLine();
    builder.append(dBuilder.getPanel(), 3);
    builder.nextLine();
    builder.appendUnrelatedComponentsGapRow();
    builder.nextLine();

    builder.appendRow(RowSpec.decode("fill:p:g"));
    builder.append(chartPanel, 3);

    final JPanel panel = builder.getPanel();

    ActionListener listener = new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            try {
                if (e.getSource() == jcb_compare) {
                    combo2.setEnabled(jcb_compare.isSelected());
                }

                Account account = combo1.getSelectedAccount();
                if (account == null) {
                    return;
                }

                Account account2 = combo2.getSelectedAccount();
                if (jcb_compare.isSelected() && account2 == null) {
                    return;
                }

                updateSubAccountBox();

                chartPanel.setChart(createVerticalXYBarChart(account, account2));
                panel.validate();
            } catch (Exception ex) {
                System.out.println(ex);
            }
        }
    };

    combo1.addActionListener(listener);
    combo2.addActionListener(listener);
    jcb_compare.addActionListener(listener);
    subAccountCheckBox.addActionListener(listener);

    hideLockedAccountCheckBox.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            combo1.setHideLocked(hideLockedAccountCheckBox.isSelected());
            combo2.setHideLocked(hideLockedAccountCheckBox.isSelected());
            try {
                Account account = combo1.getSelectedAccount();
                if (account == null) {
                    return;
                }

                Account account2 = combo2.getSelectedAccount();
                if (jcb_compare.isSelected() && account2 == null) {
                    return;
                }

                updateSubAccountBox();

                chartPanel.setChart(createVerticalXYBarChart(account, account2));
                panel.validate();
            } catch (Exception ex) {
                System.out.println(ex);
            }
        }
    });

    hidePlaceholderAccountCheckBox.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            combo1.setHidePlaceholder(hidePlaceholderAccountCheckBox.isSelected());
            combo2.setHidePlaceholder(hidePlaceholderAccountCheckBox.isSelected());
            try {
                Account account = combo1.getSelectedAccount();
                if (account == null) {
                    return;
                }
                Account account2 = combo2.getSelectedAccount();
                if (jcb_compare.isSelected() && account2 == null) {
                    return;
                }

                updateSubAccountBox();

                chartPanel.setChart(createVerticalXYBarChart(account, account2));
                panel.validate();
            } catch (Exception ex) {
                System.out.println(ex);
            }
        }
    });
    refreshButton.addActionListener(listener);

    updateSubAccountBox();

    return panel;
}

From source file:jgnash.ui.report.compiled.PayeePieChart.java

License:Open Source License

private JPanel createPanel() {

    JButton refreshButton = new JButton(rb.getString("Button.Refresh"));

    JButton addFilterButton = new JButton(rb.getString("Button.AddFilter"));
    final JButton saveButton = new JButton(rb.getString("Button.SaveFilters"));
    JButton deleteFilterButton = new JButton(rb.getString("Button.DeleteFilter"));
    JButton clearPrefButton = new JButton(rb.getString("Button.MasterDelete"));

    filterCombo = new JComboBox<>();

    startField = new DatePanel();
    endField = new DatePanel();

    txtAddFilter = new TextField();

    filterList = new ArrayList<>();
    filtersChanged = false;//from  w  w  w .  j  av a 2  s .c  om
    useFilters = new JCheckBox(rb.getString("Label.UseFilters"));
    useFilters.setSelected(true);

    showPercentCheck = new JCheckBox(rb.getString("Label.ShowPercentValues"));

    combo = AccountListComboBox.getFullInstance();

    Date dStart = DateUtils.subtractYear(DateUtils.getFirstDayOfTheMonth(new Date()));

    long start = pref.getLong(STARTDATE, dStart.getTime());

    startField.setDate(new Date(start));

    currentAccount = combo.getSelectedAccount();
    JFreeChart chart = createPieChart(currentAccount);
    chartPanel = new ChartPanel(chart, true, true, true, false, true);
    //                         (chart, properties, save, print, zoom, tooltips)

    FormLayout layout = new FormLayout("p, 4dlu, 70dlu, 8dlu, p, 4dlu, 70dlu, 8dlu, p, 4dlu:g, left:p",
            "f:d, 3dlu, f:d, 6dlu, f:p:g");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    layout.setRowGroups(new int[][] { { 1, 3 } });

    builder.append(combo, 9);
    builder.append(useFilters);
    builder.nextLine();

    builder.nextLine();

    builder.append(rb.getString("Label.StartDate"), startField);
    builder.append(rb.getString("Label.EndDate"), endField);
    builder.append(refreshButton);

    builder.append(showPercentCheck);
    builder.nextLine();
    builder.nextLine();

    builder.append(chartPanel, 11);
    builder.nextLine();

    builder.append(txtAddFilter, 3);
    builder.append(addFilterButton, 3);
    builder.append(saveButton);
    builder.nextLine();
    builder.append(filterCombo, 3);
    builder.append(deleteFilterButton, 3);
    builder.append(clearPrefButton);
    builder.nextLine();

    JPanel panel = builder.getPanel();

    combo.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            Account newAccount = combo.getSelectedAccount();

            if (filtersChanged) {
                int result = JOptionPane.showConfirmDialog(null, rb.getString("Message.SaveFilters"), "Warning",
                        JOptionPane.YES_NO_OPTION);
                if (result == JOptionPane.YES_OPTION) {
                    saveButton.doClick();
                }
            }
            filtersChanged = false;

            String[] list = POUND_DELIMITER_PATTERN.split(pref.get(FILTERTAG + newAccount.hashCode(), ""));
            filterList.clear();
            for (String filter : list) {
                if (filter.length() > 0) {
                    //System.out.println("Adding filter: #" + filter + "#");
                    filterList.add(filter);
                }
            }
            refreshFilters();

            setCurrentAccount(newAccount);
            pref.putLong(STARTDATE, startField.getDate().getTime());
        }
    });

    refreshButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            setCurrentAccount(currentAccount);
            pref.putLong(STARTDATE, startField.getDate().getTime());
        }
    });

    clearPrefButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            int result = JOptionPane.showConfirmDialog(null, rb.getString("Message.MasterDelete"), "Warning",
                    JOptionPane.YES_NO_OPTION);
            if (result == JOptionPane.YES_OPTION) {
                try {
                    pref.clear();
                } catch (Exception ex) {
                    System.out.println("Exception clearing preferences" + ex);
                }
            }
        }
    });

    saveButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            StringBuilder sb = new StringBuilder();

            for (String filter : filterList) {
                sb.append(filter);
                sb.append('#');
            }
            //System.out.println("Save = " + FILTERTAG + currentAccount.hashCode() + " = " + sb.toString());
            pref.put(FILTERTAG + currentAccount.hashCode(), sb.toString());
            filtersChanged = false;
        }
    });

    addFilterButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            String newFilter = txtAddFilter.getText();
            filterList.remove(newFilter);
            if (newFilter.length() > 0) {
                filterList.add(newFilter);
                filtersChanged = true;
                txtAddFilter.setText("");
            }
            refreshFilters();
        }
    });

    deleteFilterButton.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            if (filterList.size() > 0) {
                String filter = (String) filterCombo.getSelectedItem();
                filterList.remove(filter);
                filtersChanged = true;
            }
            refreshFilters();
        }
    });

    useFilters.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            setCurrentAccount(currentAccount);
        }
    });

    showPercentCheck.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            ((PiePlot) chartPanel.getChart().getPlot())
                    .setLabelGenerator(showPercentCheck.isSelected() ? percentLabels : defaultLabels);
        }
    });

    return panel;
}

From source file:jgnash.ui.report.compiled.PortfolioReport.java

License:Open Source License

/**
 * Creates a report control panel.  May return null if a panel is not used
 * The ReportController is responsible for dynamic report options with the exception
 * of page format options//from www  .ja va  2 s .  c  om
 *
 * @return control panel
 */
@Override
public JPanel getReportController() {
    FormLayout layout = new FormLayout("p, $lcgap, p:g, 8dlu, p", "f:d, $lgap, f:d");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);

    builder.setDefaultDialogBorder();
    builder.append(rb.getString("Label.Account"), accountCombo);
    builder.append(refreshButton);
    builder.nextLine();
    builder.nextLine();
    builder.append(buildOptionPanel(), 5);

    layout.addGroupedRow(1);
    layout.addGroupedRow(3);

    return builder.getPanel();
}

From source file:jgnash.ui.report.compiled.PortfolioReport.java

License:Open Source License

private JPanel buildOptionPanel() {
    FormLayout layout = new FormLayout("p, 8dlu, p", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);

    builder.append(subAccountCheckBox);//from ww w  . j a v a2s  . c om
    builder.append(verboseCheckBox);

    return builder.getPanel();
}

From source file:jgnash.ui.report.compiled.ProfitLossTXT.java

License:Open Source License

Date[] getDates() {

    Date start = new Date();
    start = DateUtils.subtractYear(start);

    JDateField startField = new JDateField();
    JDateField endField = new JDateField();

    startField.setValue(start);//from w  w  w .ja  v  a  2  s.  c  o  m

    FormLayout layout = new FormLayout("right:p, 4dlu, p:g", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);
    builder.setRowGroupingEnabled(true);

    builder.append(rb.getString("Label.StartDate"), startField);
    builder.append(rb.getString("Label.EndDate"), endField);
    builder.nextLine();
    builder.appendUnrelatedComponentsGapRow();
    builder.nextLine();

    JPanel panel = builder.getPanel();

    int option = JOptionPane.showConfirmDialog(null, new Object[] { panel },
            rb.getString("Message.StartEndDate"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);

    if (option == JOptionPane.OK_OPTION) {
        return getLastDays(startField.dateValue(), endField.dateValue());
    }

    return null;
}

From source file:jgnash.ui.report.compiled.RunningAccountBalanceChart.java

License:Open Source License

private JPanel createPanel() {
    Date end = DateUtils.getLastDayOfTheMonth(endDateField.getDate());
    Date start = DateUtils.subtractYear(end);
    startDateField.setDate(start);//from   w w w.j a v  a2s. c  om

    JButton refreshButton = new JButton(rb.getString("Button.Refresh"));
    refreshButton.setIcon(Resource.getIcon("/jgnash/resource/view-refresh.png"));

    subAccountCheckBox = new JCheckBox(rb.getString("Button.IncludeSubAccounts"));
    subAccountCheckBox.setSelected(true);

    hideLockedAccountCheckBox = new JCheckBox(rb.getString("Button.HideLockedAccount"));
    hidePlaceholderAccountCheckBox = new JCheckBox(rb.getString("Button.HidePlaceholderAccount"));

    JFreeChart chart = createVerticalXYBarChart(combo.getSelectedAccount());
    final ChartPanel chartPanel = new ChartPanel(chart);

    FormLayout layout = new FormLayout("p, 4dlu, p:g", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);

    FormLayout dLayout = new FormLayout("p, 4dlu, p, 8dlu, p, 4dlu, p, 8dlu, p", "");
    DefaultFormBuilder dBuilder = new DefaultFormBuilder(dLayout);

    dBuilder.append(rb.getString("Label.StartDate"), startDateField);
    dBuilder.append(rb.getString("Label.EndDate"), endDateField);
    dBuilder.append(refreshButton);

    FormLayout cbLayout = new FormLayout("p, 4dlu, p, 4dlu, p, 4dlu", "");
    DefaultFormBuilder cbBuilder = new DefaultFormBuilder(cbLayout);

    cbBuilder.append(subAccountCheckBox);
    cbBuilder.append(hideLockedAccountCheckBox);
    cbBuilder.append(hidePlaceholderAccountCheckBox);

    builder.append(rb.getString("Label.Account"), combo);
    builder.nextLine();
    builder.append(" ");
    builder.append(cbBuilder.getPanel());
    builder.nextLine();
    builder.appendRelatedComponentsGapRow();
    builder.nextLine();
    builder.append(dBuilder.getPanel(), 3);
    builder.nextLine();
    builder.appendUnrelatedComponentsGapRow();
    builder.nextLine();

    builder.appendRow(RowSpec.decode("fill:p:g"));
    builder.append(chartPanel, 3);

    final JPanel panel = builder.getPanel();

    ActionListener listener = new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            updateSubAccountBox();
            Account a = combo.getSelectedAccount();
            if (a == null) {
                return;
            }
            chartPanel.setChart(createVerticalXYBarChart(a));
            panel.validate();
        }
    };

    hideLockedAccountCheckBox.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            combo.setHideLocked(hideLockedAccountCheckBox.isSelected());
            updateSubAccountBox();
            Account a = combo.getSelectedAccount();
            if (a == null) {
                return;
            }
            chartPanel.setChart(createVerticalXYBarChart(a));
            panel.validate();
        }
    });

    hidePlaceholderAccountCheckBox.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(final ActionEvent e) {
            combo.setHidePlaceholder(hidePlaceholderAccountCheckBox.isSelected());
            updateSubAccountBox();
            Account a = combo.getSelectedAccount();
            if (a == null) {
                return;
            }
            chartPanel.setChart(createVerticalXYBarChart(a));
            panel.validate();
        }
    });

    updateSubAccountBox();

    combo.addActionListener(listener);
    refreshButton.addActionListener(listener);

    return panel;
}

From source file:jgnash.ui.report.compiled.SecurityHighLowChart.java

License:Open Source License

JPanel createPanel() {

    combo = new SecurityComboBox();

    // create an empty chart for panel construction
    chartPanel = new ChartPanel(new JFreeChart(new XYPlot()));

    FormLayout layout = new FormLayout("p, 4dlu:g", "");
    DefaultFormBuilder builder = new DefaultFormBuilder(layout);

    builder.append(combo);/*from  w w  w.  j a  v a2  s  .  c  o m*/
    builder.nextLine();
    builder.appendRelatedComponentsGapRow();
    builder.nextLine();
    builder.appendRow(RowSpec.decode("fill:p:g"));
    builder.append(chartPanel, 2);

    combo.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            updateChart();
        }
    });

    return builder.getPanel();
}