Author: mallon Date: 2012-07-13 13:01:02 +0200 (Fri, 13 Jul 2012) New Revision: 3524 Url: http://chorem.org/repositories/revision/lima/3524 Log: fixes #694 Correction sur les modeles delegues, afin de gerer la s?\195?\169lection de ligne via le 'control-click'; correction suppl?\195?\169mentaire pour le calcul de deb. / cred. / solde. Modified: trunk/lima-callao/src/main/java/org/chorem/lima/entity/EntryDAOImpl.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringEditModel.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringSelectionModel.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringTable.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringViewHandler.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LettringAndUnlettringSelectionModel.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/UnlettringSelectionModel.java Modified: trunk/lima-callao/src/main/java/org/chorem/lima/entity/EntryDAOImpl.java =================================================================== --- trunk/lima-callao/src/main/java/org/chorem/lima/entity/EntryDAOImpl.java 2012-07-13 07:31:05 UTC (rev 3523) +++ trunk/lima-callao/src/main/java/org/chorem/lima/entity/EntryDAOImpl.java 2012-07-13 11:01:02 UTC (rev 3524) @@ -201,9 +201,7 @@ } } - query += /*" and :beginDate <= F.transactionDate" + - " and F.transactionDate <= :endDate"+*/ - " and E.financialTransaction.transactionDate between :beginDate and :endDate " + + query += " and E.financialTransaction.transactionDate between :beginDate and :endDate " + " order by F.transactionDate, F." + FinancialTransaction.TOPIA_CREATE_DATE; entries = context.findAll(query, "account", filter.getAccount().getAccountNumber() + "%", "beginDate", filter.getFiscalDateFilter().getDateStart(), "endDate", filter.getFiscalDateFilter().getDateEnd()); Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringEditModel.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringEditModel.java 2012-07-13 07:31:05 UTC (rev 3523) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringEditModel.java 2012-07-13 11:01:02 UTC (rev 3524) @@ -63,14 +63,8 @@ boolean oldLettrer = isLettred(); if(lettred && (solde == BigDecimal.ZERO || solde.intValue() == 0)){ this.lettred = lettred; - if (log.isInfoEnabled()) { - log.info("Lettred true"); - } }else{ this.lettred = false; - if (log.isInfoEnabled()) { - log.info("Lettred false"); - } } firePropertyChange(LETTRED_PROPERTY, oldLettrer, this.lettred); } @@ -108,16 +102,9 @@ public void setCredit(BigDecimal credit) { BigDecimal oldCredit = getCredit(); - if (log.isInfoEnabled()) { - log.info("Credit : " + credit); - } - if (credit != BigDecimal.ZERO){ this.credit = credit.add(oldCredit); }else{ - if (log.isInfoEnabled()) { - log.info("Credit passe a zero"); - } this.credit=BigDecimal.ZERO; } Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringSelectionModel.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringSelectionModel.java 2012-07-13 07:31:05 UTC (rev 3523) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringSelectionModel.java 2012-07-13 11:01:02 UTC (rev 3524) @@ -48,40 +48,50 @@ public LetteringSelectionModel(LetteringTableModel letteringTableModel, LetteringEditModel editModel) { this.letteringTableModel = letteringTableModel; this.editModel = editModel; - editModel.resetDebitCreditBalance(); } + //@Override + public void addSelectionInterval(int row, int column){ + setSelectionInterval(row, column); + } + + //@Override + public void removeSelectionInterval(int row, int column){ + //setSelectionInterval(row, column); + } + @Override public void setSelectionInterval(int row, int column){ - if (log.isInfoEnabled()) { - log.info("Selection ligne..."); - } - resetAttribute(); - super.clearSelection(); + if ( selectedRows.isEmpty() || !searchRowSelected(row)){ - lineSelected = row; - String currentLettring = getCurrentLettring(); + if (log.isInfoEnabled()) { + log.info("Selection ligne..."); + } + resetAttribute(); + super.clearSelection(); - setValueIsAdjusting(true); + lineSelected = row; + String currentLettring = getCurrentLettring(); - try { - //select entries with the same letter of the selected entry - for(Entry entry : getEntries()){ - if (log.isInfoEnabled()) { - log.info("Parcours..."); - } - if (StringUtils.isNotBlank(entry.getLettering())){ - if (entry.getLettering().equals(currentLettring)){ - int entryToSelect = letteringTableModel.getIndexOfEntry(entry); - selectedRows.add(entryToSelect); - super.addSelectionInterval(entryToSelect, entryToSelect); + setValueIsAdjusting(true); + + try { + //select entries with the same letter of the selected entry + for(Entry entry : getEntries()){ + if (StringUtils.isNotBlank(entry.getLettering())){ + if (entry.getLettering().equals(currentLettring)){ + int entryToSelect = letteringTableModel.getIndexOfEntry(entry); + selectedRows.add(entryToSelect); + super.addSelectionInterval(entryToSelect, entryToSelect); + } } } + } finally { + setValueIsAdjusting(false); } - } finally { - setValueIsAdjusting(false); + updateBalanceAndLetteringButton(false); } - updateBalanceAndLetteringButton(false); + resetAttribute(); } /**PropertyChange on editModel in the handler, and, there, @@ -109,6 +119,20 @@ } } + /**search if the selected row is in the list + * (List of precedent selected rows) + * @param row line searched in the list + * @return true if line find + * */ + public boolean searchRowSelected(int row){ + for (Integer rowSearching : selectedRows){ + if (rowSearching == row){ + return true; + } + } + return false; + } + public List<Entry> getEntries(){ return letteringTableModel.getEntries(); } Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringTable.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringTable.java 2012-07-13 07:31:05 UTC (rev 3523) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringTable.java 2012-07-13 11:01:02 UTC (rev 3524) @@ -49,9 +49,11 @@ private static final long serialVersionUID = 3133690382049594727L; protected LetteringViewHandler handler; + protected boolean controlTouchPressed; public LetteringTable(LetteringTableModel letteringTableModel) { super(letteringTableModel); + controlTouchPressed = false; //Get new date editor setDefaultEditor(Date.class, new DateTableCellEditor()); @@ -64,13 +66,5 @@ setDefaultEditor(BigDecimal.class, new BigDecimalTableCellEditor()); //Get new BigDecimal renderer setDefaultRenderer(BigDecimal.class, new BigDecimalTableCellRenderer()); - - } - - //@Override - /*public void changeSelection(int rowIndex , int columnIndex, boolean bascule, boolean extend) { - - }*/ - } 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-13 07:31:05 UTC (rev 3523) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringViewHandler.java 2012-07-13 11:01:02 UTC (rev 3524) @@ -70,6 +70,7 @@ protected AccountService accountService; protected FinancialTransactionService financialTransactionService; protected EntryBookService entryBookService; + protected LetteringFilter filter; protected LetteringEditModel editModel; @@ -96,9 +97,6 @@ @Override public void propertyChange(PropertyChangeEvent evt) { - if (log.isInfoEnabled()) { - log.info("Filter changing..."); - } editModel.resetDebitCreditBalance(); updateAllEntries(); } @@ -110,9 +108,6 @@ @Override public void propertyChange(PropertyChangeEvent evt) { - if (log.isInfoEnabled()) { - log.info("Filter changing..."); - } editModel.resetDebitCreditBalance(); updateAllEntries(); } @@ -122,30 +117,21 @@ @Override public void propertyChange(PropertyChangeEvent evt) { - if (log.isInfoEnabled()) { - log.info("Property change listener sur edit model"); - } updateBalanceAndLetteringButton(); } }); } public void loadComboAndRows(){ - log.debug("loadComboAndRows"); List<Account> allAccounts = accountService.getAllAccounts(); view.getAccountComboBoxModel().setObjects(allAccounts); - log.debug("loadComboAndRows"); - if (!allAccounts.isEmpty()) { view.getAccountComboBox().setSelectedItem(allAccounts.get(0)); } - if (log.isDebugEnabled()) { - log.debug("1er item comptes : " + allAccounts.get(0)); - } //By default, we have the beginning of the fiscal period (Or of current //date if no fiscal period) and the end of the current date @@ -164,25 +150,14 @@ Date defaultDateEndCurrent = DateUtils.setDays(new Date(), dernierJourMoisCourant); - if (log.isDebugEnabled()) { - log.debug("Date de debut : " + defaultDateBegFiscalPeriod); - log.debug("Date de fin : " + defaultDateEndCurrent); - } view.getPickerDebut().setDate(defaultDateBegFiscalPeriod); view.getPickerFin().setDate(defaultDateEndCurrent); - - log.debug("Val select letter : " + view.getLetteredCheckGroup().getSelectedButton().getName()); - filter.getFiscalDateFilter().setDateStart(defaultDateBegFiscalPeriod); filter.getFiscalDateFilter().setDateEnd(defaultDateEndCurrent); filter.setDisplayUnlettred(true); updateAllEntries(); - - if (log.isInfoEnabled()) { - log.info("Nb entries model (After update all entries) : " + view.getTableModel().getNumberOfEntries()); - } } protected List<Entry> findAllEntries(LetteringFilter filter){ @@ -196,10 +171,6 @@ public void updateAllEntries() { - if (log.isInfoEnabled()) { - log.info("updateAllEntries"); - } - if (filter != null) { List<Entry> entries = findAllEntries(filter); @@ -212,9 +183,6 @@ } view.getTableModel().updateEntries(entries, datesEntree, journalEntrees); - if (log.isInfoEnabled()) { - log.info("Nb entries model : " + view.getTableModel().getNumberOfEntries()); - } } editModel.resetDebitCreditBalance(); view.getLettringAndUnlettringSelectionModel().clearSelection(); Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LettringAndUnlettringSelectionModel.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LettringAndUnlettringSelectionModel.java 2012-07-13 07:31:05 UTC (rev 3523) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LettringAndUnlettringSelectionModel.java 2012-07-13 11:01:02 UTC (rev 3524) @@ -67,12 +67,7 @@ letteringSelectionModel.resetAttribute(); } - editModel.resetDebitCreditBalance(); - if (log.isInfoEnabled()) { - log.info("debit : " + editModel.getDebit() + "\n" + - "credit : " + editModel.getCredit() + "\n" + - "solde : " + editModel.getSolde()); - } + //editModel.resetDebitCreditBalance(); delegate.setSelectionInterval(row, column); } Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/UnlettringSelectionModel.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/UnlettringSelectionModel.java 2012-07-13 07:31:05 UTC (rev 3523) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/UnlettringSelectionModel.java 2012-07-13 11:01:02 UTC (rev 3524) @@ -47,6 +47,17 @@ } @Override + public void addSelectionInterval(int row, int column){ + setSelectionInterval(row, column); + } + + @Override + public void removeSelectionInterval(int row, int column){ + deleteLine(row, column); + updateBalanceAndLetteringButton(true); + } + + @Override public void setSelectionInterval(int row, int column){ if (log.isInfoEnabled()) { @@ -68,11 +79,7 @@ log.info("New row selected"); } }else { - deleteLine(row); - super.removeSelectionInterval(row, column); - if (log.isInfoEnabled()) { - log.info("Old row : deleting..."); - } + deleteLine(row, column); } updateBalanceAndLetteringButton(true); } @@ -82,13 +89,18 @@ * and delete it * @param row line to delete * */ - public void deleteLine(int row){ + public void deleteLine(int row, int column){ for (Integer rowSearching : selectedRows){ if (rowSearching == row){ selectedRows.remove(rowSearching); break; } } + + super.removeSelectionInterval(row, column); + if (log.isInfoEnabled()) { + log.info("Old row : deleting..."); + } } /**search if the selected row is in the list