Author: mallon Date: 2012-07-18 14:32:38 +0200 (Wed, 18 Jul 2012) New Revision: 3537 Url: http://chorem.org/repositories/revision/lima/3537 Log: Apr?\195?\168s la revue de code : Suppression de la liste inutile dans les deux sous mod?\195?\168les d?\195?\169l?\195?\169gu?\195?\169s du lettrage. 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/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-18 11:36:40 UTC (rev 3536) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/LetteringSelectionModel.java 2012-07-18 12:32:38 UTC (rev 3537) @@ -27,7 +27,6 @@ import org.chorem.lima.entity.Entry; import javax.swing.DefaultListSelectionModel; -import java.util.ArrayList; import java.util.List; /** @@ -38,8 +37,9 @@ protected LetteringTableModel letteringTableModel; protected LetteringEditModel editModel; protected int lineSelected; - protected List<Entry> selectedRows = new ArrayList<Entry>(); + //protected List<Entry> selectedRows = new ArrayList<Entry>(); + /**Table selection model when entry selected is lettered * @param letteringTableModel model of the table * @param editModel model managing update of debit / credit / balance @@ -61,9 +61,8 @@ @Override public void setSelectionInterval(int row, int column){ - if ( selectedRows.isEmpty() || !searchRowSelected(row)){ + if ( isSelectionEmpty() || !isSelectedIndex(row)){ - resetAttribute(); super.clearSelection(); lineSelected = row; @@ -76,8 +75,8 @@ for(Entry entry : getEntries()){ if (StringUtils.isNotBlank(entry.getLettering())){ if (entry.getLettering().equals(currentLettring)){ - selectedRows.add(entry); int entryToSelect = letteringTableModel.getIndexOfEntry(entry); + System.out.println("there : " + entryToSelect); super.addSelectionInterval(entryToSelect, entryToSelect); } } @@ -87,7 +86,6 @@ } updateBalanceAndLetteringButton(false); } - resetAttribute(); } /**PropertyChange on editModel in the handler, and, there, @@ -97,9 +95,14 @@ public void updateBalanceAndLetteringButton(boolean lettering){ editModel.resetDebitCreditBalance(); - for (Entry entry : selectedRows){ - //Set values for calculation (By LetteringEditModel) of balance - editModel.balanceCalculation(entry.getAmount(), entry.getDebit()); + + Entry selectedEntry; + for (int i = 0; i < letteringTableModel.getRowCount(); i ++){ + if (isSelectedIndex(i)){ + selectedEntry = letteringTableModel.getEntryAt(i); + //Set values for calculation (By LetteringEditModel) of balance + editModel.balanceCalculation(selectedEntry.getAmount(), selectedEntry.getDebit()); + } } //For U.I. buttons (Lettering and unlettering) @@ -109,23 +112,9 @@ //to reinitialize model attribute public void resetAttribute(){ - selectedRows.clear(); + clearSelection(); } - /**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 (Entry entrySearching : selectedRows){ - if (entrySearching == letteringTableModel.getEntryAt(row)){ - return true; - } - } - return false; - } - public List<Entry> getEntries(){ return letteringTableModel.getEntries(); } 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-18 11:36:40 UTC (rev 3536) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/lettering/UnlettringSelectionModel.java 2012-07-18 12:32:38 UTC (rev 3537) @@ -26,13 +26,10 @@ import org.chorem.lima.entity.Entry; import javax.swing.DefaultListSelectionModel; -import java.util.ArrayList; -import java.util.List; public class UnlettringSelectionModel extends DefaultListSelectionModel { protected LetteringTableModel letteringTableModel; - protected List<Entry> selectedRows; protected LetteringEditModel editModel; /**Table selection model when entry selected is no lettered @@ -42,7 +39,6 @@ public UnlettringSelectionModel(LetteringTableModel letteringTableModel, LetteringEditModel editModel) { this.letteringTableModel = letteringTableModel; this.editModel = editModel; - selectedRows = new ArrayList<Entry>(); editModel.resetDebitCreditBalance(); } @@ -53,7 +49,7 @@ @Override public void removeSelectionInterval(int row, int column){ - deleteLine(row, column); + super.removeSelectionInterval(row, column); updateBalanceAndLetteringButton(true); } @@ -61,45 +57,14 @@ public void setSelectionInterval(int row, int column){ //Case where line is selected a second time (So, must deselect it on second click) - if (selectedRows.isEmpty() || !searchRowSelected(row)){ - selectedRows.add(letteringTableModel.getEntryAt(row)); + if (isSelectionEmpty() || !isSelectedIndex(row)){ super.addSelectionInterval(row, column); }else { - deleteLine(row, column); + super.removeSelectionInterval(row, column); } updateBalanceAndLetteringButton(true); } - /** - * search the line in a list of selected rows - * and delete it - * @param row index of the line to delete - * @param column index of the column to delete - * */ - public void deleteLine(int row, int column){ - for (Entry entrySearching : selectedRows){ - if (entrySearching == letteringTableModel.getEntryAt(row)){ - selectedRows.remove(entrySearching); - break; - } - } - super.removeSelectionInterval(row, column); - } - - /**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 (Entry entrySearching : selectedRows){ - if (entrySearching == letteringTableModel.getEntryAt(row)){ - return true; - } - } - return false; - } - /**PropertyChange on editModel in the handler, and, there, * set values it. * @param lettering state of attributes lettered and unlettered in editModel @@ -108,10 +73,14 @@ editModel.resetDebitCreditBalance(); //treatment unuseful if no rows are selected - if (selectedRows.size() != 0){ - for (Entry entry : selectedRows){ - //Set values for calculation (By LetteringEditModel) of balance - editModel.balanceCalculation(entry.getAmount(), entry.getDebit()); + if (!isSelectionEmpty()){ + Entry selectedEntry; + for (int i = 0; i < letteringTableModel.getRowCount(); i ++){ + if (isSelectedIndex(i)){ + selectedEntry = letteringTableModel.getEntryAt(i); + //Set values for calculation (By LetteringEditModel) of balance + editModel.balanceCalculation(selectedEntry.getAmount(), selectedEntry.getDebit()); + } } //For U.I. buttons (Lettering and unlettering) editModel.setUnLettred(!lettering); @@ -123,7 +92,7 @@ /**to reinitialize model attribute*/ public void resetAttribute(){ - selectedRows.clear(); + clearSelection(); } @Override
participants (1)
-
mallon@users.chorem.org