Author: mallon Date: 2012-07-17 17:15:23 +0200 (Tue, 17 Jul 2012) New Revision: 3533 Url: http://chorem.org/repositories/revision/lima/3533 Log: fixes #701 Correction des mod?\195?\168les et de l'utilisation des filtres, r?\195?\168glant le probl?\195?\168me de s?\195?\169lection des lignes du tableau, apr?\195?\168s utilisation des filtres; combinaison 'ctrl+a' (S?\195?\169lection de toutes les lignes) d?\195?\169sactiv?\195?\169e. 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/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-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-17 13:35:19 UTC (rev 3532) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringSelectionModel.java 2012-07-17 15:15:23 UTC (rev 3533) @@ -41,7 +41,7 @@ protected LetteringTableModel letteringTableModel; protected LetteringEditModel editModel; protected int lineSelected; - protected List<Integer> selectedRows = new ArrayList<Integer>(); + protected List<Entry> selectedRows = new ArrayList<Entry>(); //Modele de selection du tableau lors de la selection d une entree lettree @@ -52,16 +52,26 @@ //@Override public void addSelectionInterval(int row, int column){ + if (log.isInfoEnabled()) { + log.info("addSelectionInterval"); + } setSelectionInterval(row, column); } //@Override public void removeSelectionInterval(int row, int column){ + if (log.isInfoEnabled()) { + log.info("removeSelectionInterval"); + } //setSelectionInterval(row, column); } @Override public void setSelectionInterval(int row, int column){ + if (log.isInfoEnabled()) { + log.info("setSelectionInterval"); + } + if ( selectedRows.isEmpty() || !searchRowSelected(row)){ if (log.isInfoEnabled()) { @@ -80,8 +90,8 @@ for(Entry entry : getEntries()){ if (StringUtils.isNotBlank(entry.getLettering())){ if (entry.getLettering().equals(currentLettring)){ + selectedRows.add(entry); int entryToSelect = letteringTableModel.getIndexOfEntry(entry); - selectedRows.add(entryToSelect); super.addSelectionInterval(entryToSelect, entryToSelect); } } @@ -100,11 +110,9 @@ public void updateBalanceAndLetteringButton(boolean lettering){ editModel.resetDebitCreditBalance(); - for (int row : selectedRows){ - Entry entryAt = letteringTableModel.getEntryAt(row); - + for (Entry entry : selectedRows){ //Set values for calculation (By LetteringEditModel) of balance - editModel.balanceCalculation(entryAt.getAmount(), entryAt.getDebit()); + editModel.balanceCalculation(entry.getAmount(), entry.getDebit()); } //For U.I. buttons (Lettering and unlettering) @@ -125,8 +133,8 @@ * @return true if line find * */ public boolean searchRowSelected(int row){ - for (Integer rowSearching : selectedRows){ - if (rowSearching == row){ + for (Entry entrySearching : selectedRows){ + if (entrySearching == letteringTableModel.getEntryAt(row)){ return true; } } 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-17 13:35:19 UTC (rev 3532) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringTable.java 2012-07-17 15:15:23 UTC (rev 3533) @@ -34,6 +34,9 @@ import org.chorem.lima.ui.celleditor.EntryBookTableCellEditor; import org.jdesktop.swingx.JXTable; +import javax.swing.*; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; import java.math.BigDecimal; import java.util.Date; @@ -49,12 +52,14 @@ private static final long serialVersionUID = 3133690382049594727L; protected LetteringViewHandler handler; - protected boolean controlTouchPressed; public LetteringTable(LetteringTableModel letteringTableModel) { super(letteringTableModel); - controlTouchPressed = false; + //To block reaction of the dual touch 'ctrl+a' (Selection of all lines) + InputMap im = getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); + im.put(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK), "none"); + //Get new date editor setDefaultEditor(Date.class, new DateTableCellEditor()); //Get new entry book editor 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-17 13:35:19 UTC (rev 3532) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringViewHandler.java 2012-07-17 15:15:23 UTC (rev 3533) @@ -98,6 +98,7 @@ @Override public void propertyChange(PropertyChangeEvent evt) { editModel.resetDebitCreditBalance(); + view.getLettringAndUnlettringSelectionModel().resetAttribute(); updateAllEntries(); } }); @@ -109,6 +110,7 @@ @Override public void propertyChange(PropertyChangeEvent evt) { editModel.resetDebitCreditBalance(); + view.getLettringAndUnlettringSelectionModel().resetAttribute(); updateAllEntries(); } }); @@ -213,6 +215,7 @@ if (row > 0) { comboBox.setSelectedIndex(row - 1); } + view.getLettringAndUnlettringSelectionModel().resetAttribute(); } /** @@ -227,6 +230,7 @@ if (row < size - 1) { comboBox.setSelectedIndex(row + 1); } + view.getLettringAndUnlettringSelectionModel().resetAttribute(); } /**Add a group of three letters to n entries*/ 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-17 13:35:19 UTC (rev 3532) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LettringAndUnlettringSelectionModel.java 2012-07-17 15:15:23 UTC (rev 3533) @@ -67,7 +67,6 @@ letteringSelectionModel.resetAttribute(); } - //editModel.resetDebitCreditBalance(); delegate.setSelectionInterval(row, column); } @@ -82,6 +81,11 @@ return emptyOrNull; } + public void resetAttribute(){ + letteringSelectionModel.resetAttribute(); + unlettringSelectionModel.resetAttribute(); + } + @Override public void addSelectionInterval(int index0, int index1) { delegate.addSelectionInterval(index0, index1); 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-17 13:35:19 UTC (rev 3532) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/UnlettringSelectionModel.java 2012-07-17 15:15:23 UTC (rev 3533) @@ -35,14 +35,14 @@ private static final Log log = LogFactory.getLog(UnlettringSelectionModel.class); protected LetteringTableModel letteringTableModel; - protected List<Integer> selectedRows; + protected List<Entry> selectedRows; protected LetteringEditModel editModel; //Modele de selection du tableau lors de la selection d une entree non lettree public UnlettringSelectionModel(LetteringTableModel letteringTableModel, LetteringEditModel editModel) { this.letteringTableModel = letteringTableModel; this.editModel = editModel; - selectedRows = new ArrayList<Integer>(); + selectedRows = new ArrayList<Entry>(); editModel.resetDebitCreditBalance(); } @@ -73,7 +73,7 @@ //Case where line is selected a second time (So, must deselect it on second click) if (selectedRows.isEmpty() || !searchRowSelected(row)){ - selectedRows.add(row); + selectedRows.add(letteringTableModel.getEntryAt(row)); super.addSelectionInterval(row, column); if (log.isInfoEnabled()) { log.info("New row selected"); @@ -90,9 +90,9 @@ * @param row line to delete * */ public void deleteLine(int row, int column){ - for (Integer rowSearching : selectedRows){ - if (rowSearching == row){ - selectedRows.remove(rowSearching); + for (Entry entrySearching : selectedRows){ + if (entrySearching == letteringTableModel.getEntryAt(row)){ + selectedRows.remove(entrySearching); break; } } @@ -109,8 +109,11 @@ * @return true if line find * */ public boolean searchRowSelected(int row){ - for (Integer rowSearching : selectedRows){ - if (rowSearching == row){ + if (log.isInfoEnabled()) { + log.info("Ligne recherchee : " + row); + } + for (Entry entrySearching : selectedRows){ + if (entrySearching == letteringTableModel.getEntryAt(row)){ return true; } } @@ -129,17 +132,14 @@ //treatment unuseful if no rows are selected if (selectedRows.size() != 0){ - for (int row : selectedRows){ - Entry entryAt = letteringTableModel.getEntryAt(row); - + for (Entry entry : selectedRows){ //Set values for calculation (By LetteringEditModel) of balance - editModel.balanceCalculation(entryAt.getAmount(), entryAt.getDebit()); + editModel.balanceCalculation(entry.getAmount(), entry.getDebit()); } //For U.I. buttons (Lettering and unlettering) editModel.setUnLettred(!lettering); editModel.setLettred(lettering); }else{ - editModel.setLettred(!lettering); if (log.isInfoEnabled()) { log.info("size of selectedRows : " + selectedRows.size()); @@ -149,6 +149,9 @@ //to reinitialize model attribute public void resetAttribute(){ + if (log.isInfoEnabled()) { + log.info("Contenu de la liste supprimé"); + } for (int i = 0; i < selectedRows.size(); i ++){ selectedRows.remove(i); }
participants (1)
-
mallon@users.chorem.org