Author: mallon Date: 2012-07-05 17:21:06 +0200 (Thu, 05 Jul 2012) New Revision: 3493 Url: http://chorem.org/repositories/revision/lima/3493 Log: Correction du mod?\195?\168le de l'interface de lettrage pour les calculs du d?\195?\169bit, cr?\195?\169dit et de la solde, en fonction des ?\195?\169critures s?\195?\169lectionn?\195?\169es. Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringModelUI.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringTableModel.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringViewHandler.java trunk/lima-swing/src/main/resources/log4j.properties Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringModelUI.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringModelUI.java 2012-07-05 13:10:00 UTC (rev 3492) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringModelUI.java 2012-07-05 15:21:06 UTC (rev 3493) @@ -1,5 +1,7 @@ package org.chorem.lima.ui.lettering; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.chorem.lima.entity.Entry; import javax.swing.*; @@ -25,16 +27,21 @@ private static final long serialVersionUID = 1L; protected final PropertyChangeSupport pcs = new PropertyChangeSupport(this); - + + /** log. */ + private static final Log log = LogFactory.getLog(LetteringModelUI.class); + protected LetteringTableModel model; protected Entry selectedEntry; protected BigDecimal debit = BigDecimal.ZERO; protected BigDecimal credit = BigDecimal.ZERO; protected BigDecimal solde = BigDecimal.ZERO; + protected BigDecimal debitTotal = BigDecimal.ZERO; + protected BigDecimal creditTotal = BigDecimal.ZERO; + protected BigDecimal soldeTotal = BigDecimal.ZERO; protected boolean lettrer; protected boolean delettrer; - protected String currentLettring; protected Entry currentEntry; @@ -130,6 +137,7 @@ @Override public void setSelectionInterval(int row, int column) { Entry entryAt = model.getEntryAt(row); + List<Entry> modelEntries = model.getEntries(); setSelectedEntry(entryAt); if (entryAt.getLettering() != null){ @@ -140,12 +148,14 @@ //Test not null for currentEntry cause of selection before of entry without letter if (currentEntry != null){ super.clearSelection(); + debitTotal = BigDecimal.ZERO; + creditTotal = BigDecimal.ZERO; + soldeTotal = BigDecimal.ZERO; } currentLettring = entryAt.getLettering(); super.setSelectionInterval(row, column); //select entries with the same letter of the selected entry - List<Entry> modelEntries = model.getEntries(); for(Entry entry : modelEntries){ if (entry.getLettering() != null && !entry.getLettering().isEmpty()){ if (entry.getLettering().equals(entryAt.getLettering())){ @@ -155,24 +165,79 @@ } } } - }else{ - //no line selected or line selected different of the current //Test null for currentEntry cause of selection before of entry with letter if (isSelectionEmpty() || currentEntry == null || !currentEntry.equals(entryAt)){ - if (currentEntry == null){ + if (currentLettring != null){ super.clearSelection(); + debitTotal = BigDecimal.ZERO; + creditTotal = BigDecimal.ZERO; + soldeTotal = BigDecimal.ZERO; } currentEntry = entryAt; super.addSelectionInterval(row, column); - //remove entry and get precedent entry for currentEntry + //remove entry and get precedent entry for currentEntry }else { super.removeSelectionInterval(row, column); currentEntry = model.getEntryAt(super.getMaxSelectionIndex()); } } + + /**Managing components when n rows are selected + * */ + if (!isSelectionEmpty()){ + + boolean debitSelected = selectedEntry.getDebit(); + BigDecimal amountSelected = selectedEntry.getAmount(); + + BigDecimal debitVal = debitSelected ? amountSelected : BigDecimal.ZERO; + + if (log.isInfoEnabled()) { + log.info("debit : " + debitTotal + "\n" + + "credit : " + creditTotal + "\n" + + "solde : " + soldeTotal); + } + + if (debitVal == BigDecimal.ZERO){ + BigDecimal creditVal = debitSelected ? BigDecimal.ZERO : amountSelected; + + if (creditVal != BigDecimal.ZERO){ + creditTotal = creditTotal.add(creditVal); + soldeTotal = soldeTotal.subtract(creditVal); + }else{ + creditTotal = creditTotal.add(creditVal); + soldeTotal = soldeTotal.add(creditVal); + } + }else{ + debitTotal = debitTotal.add(debitVal); + soldeTotal = soldeTotal.add(debitVal); + } + + if (log.isInfoEnabled()) { + log.info("AFTER / debit : " + debitTotal + "\n" + + "credit : " + creditTotal + "\n" + + "solde : " + soldeTotal); + } + + setDebit(debitTotal); + setCredit(creditTotal); + setSolde(soldeTotal); + + //Managing lettering buttons + String lettering = null; + + //lettering impossible if one of entries have letter + lettering = entryAt.getLettering(); + if (lettering != null && !lettering.isEmpty()){ + setDelettrer(true); + } + + if (solde.intValue() == 0 && !delettrer){ + setLettrer(true); + } + } } @Override Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringTableModel.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringTableModel.java 2012-07-05 13:10:00 UTC (rev 3492) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringTableModel.java 2012-07-05 15:21:06 UTC (rev 3493) @@ -116,9 +116,6 @@ setDate(datesEntree); setJournal(entryBooks); fireTableDataChanged(); - if (log.isInfoEnabled()) { - log.info("Nb entries model (In model) : " + getNUmberOfEntries()); - } } protected void setDate(List<Date> datesEntree){ Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringViewHandler.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringViewHandler.java 2012-07-05 13:10:00 UTC (rev 3492) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringViewHandler.java 2012-07-05 15:21:06 UTC (rev 3493) @@ -41,9 +41,6 @@ import org.chorem.lima.service.LimaServiceFactory; import javax.swing.*; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; -import java.math.BigDecimal; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -61,8 +58,7 @@ public class LetteringViewHandler implements ServiceListener{ /** log. */ - private static final Log log = - LogFactory.getLog(LetteringViewHandler.class); + private static final Log log = LogFactory.getLog(LetteringViewHandler.class); protected LetteringView view; @@ -96,7 +92,7 @@ */ public void init() { loadComboAndRows(); - LetteringModelUI modelUi = view.getModelUi(); + /*LetteringModelUI modelUi = view.getModelUi(); modelUi.addListSelectionListener(new ListSelectionListener(){ List<Entry> entries = new ArrayList<Entry>(); @@ -139,7 +135,7 @@ loadCurrentSelection(modelUiPropChange, entries); } } - }); + });*/ } public void loadComboAndRows(){ @@ -240,82 +236,6 @@ } } - /**Managing components when n rows are selected - * */ - public void loadCurrentSelection(LetteringModelUI modelUi, List<Entry> selectedEntries){ - financialTransactionService = LimaServiceFactory.getService(FinancialTransactionService.class); - - if (selectedEntries.size() > 0){ - - boolean enableLettring = false; - boolean enableDelettring = false; - BigDecimal soldeTotal = BigDecimal.ZERO; - BigDecimal creditTotal = BigDecimal.ZERO; - BigDecimal debitTotal = BigDecimal.ZERO; - - for (Entry selectedEntry : selectedEntries) { - //Managing balance, credit and debit - boolean debitSelected = selectedEntry.getDebit(); - BigDecimal amountSelected = selectedEntry.getAmount(); - - - if (log.isInfoEnabled()) { - log.info("amountSelected : " + amountSelected); - } - modelUi.setDebit(debitSelected ? amountSelected : BigDecimal.ZERO); - modelUi.setCredit(debitSelected ? BigDecimal.ZERO : amountSelected); - - BigDecimal debitVal = modelUi.getDebit(); - if (log.isInfoEnabled()) { - log.info("Debit actuel : " + debitVal); - } - if (debitVal == BigDecimal.ZERO){ - BigDecimal creditVal = modelUi.getCredit(); - if (log.isInfoEnabled()) { - log.info("creditVal : " + creditVal); - } - if (creditVal != BigDecimal.ZERO){ - creditTotal = creditTotal.add(creditVal); - creditVal = new BigDecimal("-" + creditVal.toString()); - if (log.isInfoEnabled()) { - log.info("creditVal neg : " + creditVal); - } - soldeTotal = soldeTotal.add(creditVal); - }else{ - creditTotal = creditTotal.add(creditVal); - soldeTotal = soldeTotal.add(creditVal); - } - }else{ - debitTotal = debitTotal.add(debitVal); - soldeTotal = soldeTotal.add(debitVal); - } - } - - modelUi.setSolde(soldeTotal); - modelUi.setCredit(creditTotal); - modelUi.setDebit(debitTotal); - - //Managing lettering buttons - String lettering = null; - - //lettering impossible if one of entries have letter - for (Entry selectedEntry : selectedEntries) { - lettering = selectedEntry.getLettering(); - if (lettering != null && !lettering.isEmpty()){ - enableDelettring= true; - break; - } - } - - if (soldeTotal.intValue() == 0 && !enableDelettring & view.getTable().getSelectedRows().length > 1){ - enableLettring = true; - } - - modelUi.setLettrer(enableLettring); - modelUi.setDelettrer(enableDelettring); - } - } - /** * Select previous value in combo box. * Modified: trunk/lima-swing/src/main/resources/log4j.properties =================================================================== --- trunk/lima-swing/src/main/resources/log4j.properties 2012-07-05 13:10:00 UTC (rev 3492) +++ trunk/lima-swing/src/main/resources/log4j.properties 2012-07-05 15:21:06 UTC (rev 3493) @@ -44,4 +44,4 @@ log4j.logger.org.chorem.lima.business.accountingrules.DefaultAccountingRules=DEBUG log4j.logger.org.chorem.lima.ui.lettering.LetteringViewHandler=DEBUG log4j.logger.org.chorem.lima.ui.lettering.LetteringTableModel=DEBUG -log4j.logger.org.chorem.lima.ui.lettering.LetteringTableSelectionModel=DEBUG \ No newline at end of file +log4j.logger.org.chorem.lima.ui.lettering.LetteringModelUi=DEBUG \ No newline at end of file
participants (1)
-
mallon@users.chorem.org