// BudgetsView
package org.javamoney.examples.ez.money.gui.view;
import java.awt.GridBagConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import org.javamoney.examples.ez.money.gui.chooser.CategoryTotalsFilterChooser;
import org.javamoney.examples.ez.money.gui.chooser.MonthPeriodChooser;
import org.javamoney.examples.ez.money.gui.view.totals.BudgetPanel;
/**
* This class facilitates viewing budgets.
*/
public
final
class
BudgetsView
extends View
{
/**
* Constructs a new view.
*/
public
BudgetsView()
{
super(ViewKeys.BUDGETS);
setBudgetTotalPanel(new BudgetPanel());
setFilterChooser(new CategoryTotalsFilterChooser());
setMonthPeriodChooser(new MonthPeriodChooser());
buildPanel();
}
/**
* This method updates the view.
*/
@Override
public
void
updateView()
{
getBudgetTotalPanel().updateView(getMonthPeriodChooser().getStartDate(),
getMonthPeriodChooser().getEndDate(), getFilterChooser().getFilter());
}
//////////////////////////////////////////////////////////////////////////////
// Start of private methods.
//////////////////////////////////////////////////////////////////////////////
private
void
buildPanel()
{
ActionHandler handler = new ActionHandler();
int height = 4;
// Build panel.
addEmptyRowsAt(0, 0, height);
setFill(GridBagConstraints.BOTH);
add(getMonthPeriodChooser(), 1, 0, 1, height, 100, 0);
add(getFilterChooser(), 0, height, 2, 1, 0, 0);
add(getBudgetTotalPanel(), 0, height + 1, 2, 1, 100, 100);
// Add listeners.
getFilterChooser().addActionListener(handler);
getMonthPeriodChooser().addActionListener(handler);
}
private
BudgetPanel
getBudgetTotalPanel()
{
return itsBudgetTotalPanel;
}
private
CategoryTotalsFilterChooser
getFilterChooser()
{
return itsFilterChooser;
}
private
MonthPeriodChooser
getMonthPeriodChooser()
{
return itsMonthPeriodChooser;
}
private
void
setBudgetTotalPanel(BudgetPanel panel)
{
itsBudgetTotalPanel = panel;
}
private
void
setFilterChooser(CategoryTotalsFilterChooser chooser)
{
itsFilterChooser = chooser;
}
private
void
setMonthPeriodChooser(MonthPeriodChooser chooser)
{
itsMonthPeriodChooser = chooser;
}
//////////////////////////////////////////////////////////////////////////////
// Start of inner classes.
//////////////////////////////////////////////////////////////////////////////
private
class
ActionHandler
implements ActionListener
{
public
void
actionPerformed(ActionEvent event)
{
updateView();
}
}
//////////////////////////////////////////////////////////////////////////////
// Start of class members.
//////////////////////////////////////////////////////////////////////////////
private BudgetPanel itsBudgetTotalPanel;
private CategoryTotalsFilterChooser itsFilterChooser;
private MonthPeriodChooser itsMonthPeriodChooser;
}