// TransferTotalPanel package org.javamoney.examples.ez.money.gui.view.totals; import static org.javamoney.examples.ez.money.gui.GUIConstants.COLOR_BACKGROUND_FILL; import java.awt.GridBagConstraints; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import org.javamoney.examples.ez.money.gui.table.TransferTotalTable; import org.javamoney.examples.ez.money.model.dynamic.total.TransferTotal; import org.javamoney.examples.ez.common.gui.Panel; import org.javamoney.examples.ez.common.gui.ScrollPane; /** * This class facilitates viewing transfer totals. */ final class TransferTotalPanel extends TotalPanel { /** * Constructs a new transfer total panel. */ protected TransferTotalPanel() { setPieChartPanel(new TransferTotalPieChartPanel()); setTable(new TransferTotalTable()); buildPanel(); } /** * This method clears all the transfer total details. */ protected void clear() { getPieChartPanel().clear(); getTable().clear(); getTransactionDetailPanel().clear(); } /** * This method returns the table that maintains this panel's transfer totals. * * @return The table that maintains this panel's transfer totals. */ protected TransferTotalTable getTable() { return itsTable; } ////////////////////////////////////////////////////////////////////////////// // Start of private methods. ////////////////////////////////////////////////////////////////////////////// private void buildPanel() { // Build panel. setFill(GridBagConstraints.BOTH); add(createTablePanel(), 0, 0, 1, 1, 100, 100); add(getPieChartPanel(), 1, 0, 1, 4, 0, 0); addEmptyRowsAt(0, 1, 2); add(getTransactionDetailPanel(), 0, 3, 1, 1, 0, 0); // Add listeners. getTable().getSelectionModel().addListSelectionListener(new SelectionHandler()); } private Panel createTablePanel() { Panel panel = new Panel(); ScrollPane scrollPane = new ScrollPane(getTable()); // Build scroll pane. scrollPane.setBackground(COLOR_BACKGROUND_FILL); // Build panel. panel.setFill(GridBagConstraints.BOTH); panel.add(scrollPane, 0, 0, 1, 1, 100, 100); panel.addEmptyCellAt(1, 0); return panel; } private TransferTotalPieChartPanel getPieChartPanel() { return itsPieChartPanel; } private void setPieChartPanel(TransferTotalPieChartPanel panel) { itsPieChartPanel = panel; } private void setTable(TransferTotalTable table) { itsTable = table; } ////////////////////////////////////////////////////////////////////////////// // Start of inner classes. ////////////////////////////////////////////////////////////////////////////// private class SelectionHandler implements ListSelectionListener { public void valueChanged(ListSelectionEvent event) { if(event.getValueIsAdjusting() == false && getTable().getSelectedRow() != -1) { TransferTotal total = getTable().get(getTable().getSelectedRow()); getPieChartPanel().updateView(total); getTransactionDetailPanel().updateView(total.getTransactionDetails()); } } } ////////////////////////////////////////////////////////////////////////////// // Start of class members. ////////////////////////////////////////////////////////////////////////////// private TransferTotalPieChartPanel itsPieChartPanel; private TransferTotalTable itsTable; }