Author: mallon Date: 2012-07-12 17:26:15 +0200 (Thu, 12 Jul 2012) New Revision: 3520 Url: http://chorem.org/repositories/revision/lima/3520 Log: fixes #692 R?\195?\169initialisation de la liste des entr?\195?\169es lors du changement de mod?\195?\168le de s?\195?\169lection, et remise ?\195?\160 z?\195?\169ro des debit / credit / solde lors du delettrage. Removed: trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/AddLetterForm.jaxx 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/LetteringSelectionModel.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 Deleted: trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/AddLetterForm.jaxx =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/AddLetterForm.jaxx 2012-07-12 10:27:43 UTC (rev 3519) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/AddLetterForm.jaxx 2012-07-12 15:26:15 UTC (rev 3520) @@ -1,81 +0,0 @@ -<!-- - #%L - Lima Swing - - $Id$ - $HeadURL$ - %% - Copyright (C) 2008 - 2010 CodeLutin - %% - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public - License along with this program. If not, see - <http://www.gnu.org/licenses/gpl-3.0.html>. - #L% - --> - -<JDialog modal="true" - defaultCloseOperation="{JDialog.DO_NOTHING_ON_CLOSE}" - onWindowClosing="performCancel();"> - <import> - jaxx.runtime.swing.JAXXButtonGroup - </import> - - <JAXXButtonGroup id="radioButtons" javaBean='new JAXXButtonGroup()'/> - <Boolean id="validOk" javaBean='true'/> - - <script> - <![CDATA[ - - getRootPane().setDefaultButton(ok); - protected void performCancel() { - setValidOk(false); - dispose(); - } - ]]> - </script> - - <Table> - <row fill="horizontal"> - <cell> - <JRadioButton id="newLetter" - text='lima.entries.lettering.radiobutton.new' - value='{true}' buttonGroup="{getRadioButtons()}" - selected='true'/> - </cell> - <cell> - <JTextField editable="false" visible="{newLetter.isSelected()}" - id='newLetterTextField'/> - </cell> - </row> - <row> - <cell> - <JRadioButton id="listLetter" - text='lima.entries.lettering.radiobutton.list' - value='{false}' buttonGroup="{getRadioButtons()}" - selected='true'/> - </cell> - <cell> - <JComboBox id='LetterListComboBox' visible="{listLetter.isSelected()}" - javaBean="new JComboBox()"/> - </cell> - </row> - <row> - <cell fill="none"> - <JButton text="lima.common.cancel" onActionPerformed="performCancel()"/> - </cell> - <cell fill="none"> - <JButton id="ok" text="lima.common.ok" onActionPerformed="dispose()"/> - </cell> - </row> - </Table> -</JDialog> \ No newline at end of file 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-12 10:27:43 UTC (rev 3519) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringEditModel.java 2012-07-12 15:26:15 UTC (rev 3520) @@ -108,9 +108,16 @@ 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-12 10:27:43 UTC (rev 3519) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringSelectionModel.java 2012-07-12 15:26:15 UTC (rev 3520) @@ -23,16 +23,15 @@ * #L% */ -import java.util.ArrayList; -import java.util.List; - -import javax.swing.DefaultListSelectionModel; - import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.lima.entity.Entry; +import javax.swing.*; +import java.util.ArrayList; +import java.util.List; + /** * @author sletellier <letellier@codelutin.com> */ @@ -42,7 +41,7 @@ protected LetteringTableModel letteringTableModel; protected LetteringEditModel editModel; protected int lineSelected; - protected List<Integer> selectedRows; + protected List<Integer> selectedRows = new ArrayList<Integer>(); //Modele de selection du tableau lors de la selection d une entree lettree @@ -57,7 +56,7 @@ if (log.isInfoEnabled()) { log.info("Selection ligne..."); } - selectedRows = new ArrayList<Integer>(); + resetAttribute(); super.clearSelection(); lineSelected = row; @@ -103,6 +102,13 @@ editModel.setLettred(lettering); } + //to reinitialize model attribute + public void resetAttribute(){ + for (int i = 0; i < selectedRows.size(); i ++){ + selectedRows.remove(i); + } + } + public List<Entry> getEntries(){ return letteringTableModel.getEntries(); } 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-12 10:27:43 UTC (rev 3519) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringViewHandler.java 2012-07-12 15:26:15 UTC (rev 3520) @@ -216,19 +216,31 @@ log.info("Nb entries model : " + view.getTableModel().getNumberOfEntries()); } } - view.getEditModel().resetDebitCreditBalance(); + editModel.resetDebitCreditBalance(); view.getLettringAndUnlettringSelectionModel().clearSelection(); } public void updateBalanceAndLetteringButton(){ - view.creditTextField.setText(editModel.getCredit().toString()); - view.debitTexttField.setText(editModel.getDebit().toString()); - view.soldeTextField.setText(editModel.getSolde().toString()); + + /**Update table and reset credit / debit / balance + * only when one of buttons lettering/unlettering + * is true and goes to false and only in the case + * of lettring (Not in case of balance equal to zero)*/ + /* if ( (view.lettered.isEnabled() != editModel.isLettred() || view.noLettered.isEnabled() != editModel.isUnLettred()) + && (view.lettered.isEnabled() || view.noLettered.isEnabled()) + && (!view.getSoldeTextField().getText().equals("0.00") && !view.getSoldeTextField().getText().equals("0"))){ + if (log.isInfoEnabled()) { + log.info("Changing state"); + } + updateAllEntries(); + }else{*/ + view.creditTextField.setText(editModel.getCredit().toString()); + view.debitTexttField.setText(editModel.getDebit().toString()); + view.soldeTextField.setText(editModel.getSolde().toString()); + //} view.lettered.setEnabled(editModel.isLettred()); view.noLettered.setEnabled(editModel.isUnLettred()); - if (log.isInfoEnabled()) { - log.info("updateBalanceAndLetteringButton"); - } + //FIXME Allon-11/07/2012 : probleme de rafraichissement de la table, lors //de la delegation de modele ('LetteringSelectionModele') view.getTable().repaint(); @@ -261,14 +273,6 @@ } } - /*public void setBeginDate(Date date) { - view.getTableModel().setSelectedBeginDate(date); - }*/ - - /*public void setEndDate(Date date) { - view.getTableModel().setSelectedEndDate(date); - }*/ - /**Add a group of three letters to n entries*/ public void addLetter() { String newLetters = financialTransactionService.getNextLetters(); 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-12 10:27:43 UTC (rev 3519) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LettringAndUnlettringSelectionModel.java 2012-07-12 15:26:15 UTC (rev 3520) @@ -59,12 +59,20 @@ if (!letteringNotExist(row)) { delegate = letteringSelectionModel; + //to reinitialize model attribute when delegation change + unlettringSelectionModel.resetAttribute(); } else { delegate = unlettringSelectionModel; + letteringSelectionModel.resetAttribute(); } editModel.resetDebitCreditBalance(); + if (log.isInfoEnabled()) { + log.info("debit : " + editModel.getDebit() + "\n" + + "credit : " + editModel.getCredit() + "\n" + + "solde : " + editModel.getSolde()); + } 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-12 10:27:43 UTC (rev 3519) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/UnlettringSelectionModel.java 2012-07-12 15:26:15 UTC (rev 3520) @@ -49,13 +49,30 @@ @Override public void setSelectionInterval(int row, int column){ + if (log.isInfoEnabled()) { + if (selectedRows.isEmpty()){ + log.info("Liste de lignes vide"); + }else{ + log.info("Liste de lignes pleines"); + } + if (searchRowSelected(row)){ + log.info("Ligne dans la liste"); + } + } + //Case where line is selected a second time (So, must deselect it on second click) if (selectedRows.isEmpty() || !searchRowSelected(row)){ selectedRows.add(row); super.addSelectionInterval(row, column); + if (log.isInfoEnabled()) { + log.info("New row selected"); + } }else { deleteLine(row); super.removeSelectionInterval(row, column); + if (log.isInfoEnabled()) { + log.info("Old row : deleting..."); + } } updateBalanceAndLetteringButton(true); } @@ -118,6 +135,13 @@ } } + //to reinitialize model attribute + public void resetAttribute(){ + for (int i = 0; i < selectedRows.size(); i ++){ + selectedRows.remove(i); + } + } + @Override public int getSelectionMode() { return MULTIPLE_INTERVAL_SELECTION;