private SimpleDate earliestDate, latestDate;
private SimpleDate lastDate = SimpleDate.today();
private boolean done;
+ private int transactionCount = 0;
public TransactionAccumulator(MainModel model) {
this.model = model;
}
public void put(LedgerTransaction transaction, SimpleDate date) {
if (done)
throw new IllegalStateException("Can't put new items after done()");
- if (null == latestDate)
+
+ // first item
+ if (null == latestDate) {
+ list.add(new TransactionListItem());
latestDate = date;
+ list.add(new TransactionListItem(date, SimpleDate.today().month != date.month));
+ }
earliestDate = date;
if (!date.equals(lastDate)) {
list.add(new TransactionListItem(transaction));
lastDate = date;
+ transactionCount++;
}
public void done() {
done = true;
- model.setDisplayedTransactions(list);
+ model.setDisplayedTransactions(list, transactionCount);
model.setFirstTransactionDate(earliestDate);
model.setLastTransactionDate(latestDate);
}