/* * MoneyOperationObjectSourceListener.java */ package budget.listeners; import budget.domain.MoneyOperation; import budget.domain.OperationType; import org.weda.common.ChangeType; import org.weda.store.ObjectSourceListener; import org.weda.store.RowsChangeEvent; /**Делает отрицательной сумму дебетовой операции * и положительной сумму кредитовой операции. * * @author Mikhail */ public class MoneyOperationObjectSourceListener implements ObjectSourceListener { public void rowsChanging(RowsChangeEvent event) { if ( event.getChangeType() == ChangeType.ADD || event.getChangeType() == ChangeType.UPDATE) { for (Object[] objects: event.getRows()) { MoneyOperation money = (MoneyOperation)objects[0]; OperationType opType = money.getOperationItem().getOperationType(); if (opType!=null && money.getAmount()!=null){ if ( ( opType == OperationType.Кредитовая && money.getAmount()<0 ) || ( opType == OperationType.Дебетовая && money.getAmount()>0) ) { money.setAmount(-1*money.getAmount()); } } } } } public void rowsChanged(RowsChangeEvent event) { } }