// ImportTransactionModel
package org.javamoney.examples.ez.money.gui.table.model;
import static org.javamoney.examples.ez.money.ApplicationProperties.UI_CURRENCY_FORMAT;
import static org.javamoney.examples.ez.money.ApplicationProperties.UI_DATE_FORMAT;
import static org.javamoney.examples.ez.money.gui.table.ImportTransactionTable.AMOUNT_COLUMN;
import static org.javamoney.examples.ez.money.gui.table.ImportTransactionTable.CHECK_NUMBER_COLUMN;
import static org.javamoney.examples.ez.money.gui.table.ImportTransactionTable.DATE_COLUMN;
import static org.javamoney.examples.ez.money.gui.table.ImportTransactionTable.DUPLICATE_COLUMN;
import static org.javamoney.examples.ez.money.gui.table.ImportTransactionTable.PAYEE_COLUMN;
import static org.javamoney.examples.ez.money.gui.table.ImportTransactionTable.SELECT_COLUMN;
import static org.javamoney.examples.ez.money.gui.table.ImportTransactionTable.TYPE_COLUMN;
import javax.swing.table.DefaultTableModel;
import org.javamoney.examples.ez.money.model.dynamic.transaction.ImportTransaction;
import org.javamoney.examples.ez.money.model.persisted.transaction.Transaction;
/**
* This class facilitates adding import transactions into a table.
*/
public
final
class
ImportTransactionModel
extends DefaultTableModel
{
/**
*
*/
private static final long serialVersionUID = 7511477980550047395L;
/**
* This method adds the specified import transaction into the model's table.
*
* @param iTrans The import transaction to add.
*/
public
void
addRow(ImportTransaction iTrans)
{
Transaction trans = iTrans.getTransaction();
String[] rowData = new String[7];
rowData[AMOUNT_COLUMN] = UI_CURRENCY_FORMAT.format(trans.getAmount().getNumber().doubleValue());
rowData[CHECK_NUMBER_COLUMN] = trans.getCheckNumber();
rowData[DUPLICATE_COLUMN] = "";
rowData[DATE_COLUMN] = UI_DATE_FORMAT.format(trans.getDate());
rowData[PAYEE_COLUMN] = trans.getPayee();
rowData[SELECT_COLUMN] = "";
rowData[TYPE_COLUMN] = iTrans.getType().toString();
addRow(rowData);
}
/**
* This method returns true if the cell at the specified row and column is
* editable.
*
* @param row The cell's row.
* @param column The cell's column.
*
* @return true or false.
*/
@Override
public
boolean
isCellEditable(int row, int column)
{
return column == SELECT_COLUMN;
}
}