Author: vsalaun Date: 2011-06-17 16:59:28 +0200 (Fri, 17 Jun 2011) New Revision: 3182 Url: http://chorem.org/repositories/revision/lima/3182 Log: correct the selection on the right row while updating datas (FinancialTransaction) Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialTransactionServiceImpl.java trunk/lima-business/src/main/java/org/chorem/lima/business/ejbinterface/FinancialTransactionService.java trunk/lima-business/src/main/java/org/chorem/lima/business/ejbinterface/FinancialTransactionServiceLocal.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionTable.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionTableModel.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionViewHandler.java Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialTransactionServiceImpl.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialTransactionServiceImpl.java 2011-06-17 12:41:53 UTC (rev 3181) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/ejb/FinancialTransactionServiceImpl.java 2011-06-17 14:59:28 UTC (rev 3182) @@ -118,9 +118,10 @@ } @Override - public void createFinancialTransactionWithTransaction( + public FinancialTransaction createFinancialTransactionWithTransaction( FinancialTransaction financialtransaction, TopiaContext topiaContext) throws LimaException { + FinancialTransaction fTransaction = null; try { //check if the financial period is blocked accountingRules.checkFinancialPeriodBlockedWithFinancialTransaction( @@ -129,13 +130,16 @@ FinancialTransactionDAO financialtransactionDAO = LimaCallaoDAOHelper.getFinancialTransactionDAO(topiaContext); - financialtransactionDAO.create(financialtransaction); + fTransaction = (FinancialTransaction) + financialtransactionDAO.create(financialtransaction); commitTransaction(topiaContext); + } catch (TopiaException ex) { doCatch(topiaContext, ex, log); - } + } + return fTransaction; } /** @@ -143,13 +147,13 @@ * */ @Override - public void createFinancialTransaction(FinancialTransaction financialtransaction) throws LimaException { + public FinancialTransaction createFinancialTransaction(FinancialTransaction financialtransaction) throws LimaException { TopiaContext topiaContext = null; try { topiaContext = beginTransaction(); - createFinancialTransactionWithTransaction(financialtransaction, topiaContext); + return createFinancialTransactionWithTransaction(financialtransaction, topiaContext); } catch (TopiaException ex) { doCatch(topiaContext, ex, log); @@ -157,6 +161,7 @@ finally { doFinally(topiaContext, log); } + return null; } /** @@ -451,9 +456,9 @@ @Override - public void createEntryWithTransaction(Entry entry, + public Entry createEntryWithTransaction(Entry entry, TopiaContext topiaContext) throws LimaException { - + Entry newEntry = null; try { //check if the financial period is blocked @@ -462,7 +467,7 @@ EntryDAO entryDAO = LimaCallaoDAOHelper.getEntryDAO(topiaContext); - entryDAO.create(entry); + newEntry = entryDAO.create(entry); //get new entry amounts BigDecimal entryAmount = entry.getAmount(); @@ -502,7 +507,8 @@ } catch (TopiaException ex) { doCatch(topiaContext, ex, log); - } + } + return newEntry; } /** @@ -513,20 +519,21 @@ */ @Override - public void createEntry(Entry entry) throws LimaException { + public Entry createEntry(Entry entry) throws LimaException { TopiaContext topiaContext = null; try { topiaContext = beginTransaction(); - createEntryWithTransaction(entry, topiaContext); + return createEntryWithTransaction(entry, topiaContext); } catch (TopiaException ex) { doCatch(topiaContext, ex, log); } finally { doFinally(topiaContext, log); - } + } + return null; } Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejbinterface/FinancialTransactionService.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/ejbinterface/FinancialTransactionService.java 2011-06-17 12:41:53 UTC (rev 3181) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/ejbinterface/FinancialTransactionService.java 2011-06-17 14:59:28 UTC (rev 3182) @@ -60,7 +60,7 @@ * @throws LimaException */ - void createFinancialTransaction(FinancialTransaction financialtransaction) throws LimaException; + FinancialTransaction createFinancialTransaction(FinancialTransaction financialtransaction) throws LimaException; void updateFinancialTransaction(FinancialTransaction financialtransaction) throws LimaException; @@ -87,7 +87,7 @@ * @throws LimaException */ - void createEntry(Entry entry) throws LimaException; + Entry createEntry(Entry entry) throws LimaException; void updateEntry(Entry entry) throws LimaException; Modified: trunk/lima-business/src/main/java/org/chorem/lima/business/ejbinterface/FinancialTransactionServiceLocal.java =================================================================== --- trunk/lima-business/src/main/java/org/chorem/lima/business/ejbinterface/FinancialTransactionServiceLocal.java 2011-06-17 12:41:53 UTC (rev 3181) +++ trunk/lima-business/src/main/java/org/chorem/lima/business/ejbinterface/FinancialTransactionServiceLocal.java 2011-06-17 14:59:28 UTC (rev 3182) @@ -44,10 +44,10 @@ @Local public interface FinancialTransactionServiceLocal extends FinancialTransactionService { - void createFinancialTransactionWithTransaction(FinancialTransaction financialtransaction, TopiaContext topiaContext) throws LimaException; + FinancialTransaction createFinancialTransactionWithTransaction(FinancialTransaction financialtransaction, TopiaContext topiaContext) throws LimaException; void updateFinancialTransactionWithTransaction(FinancialTransaction financialtransaction, TopiaContext topiaContext) throws LimaException; - void createEntryWithTransaction(Entry entry, TopiaContext topiaContext) throws LimaException; + Entry createEntryWithTransaction(Entry entry, TopiaContext topiaContext) throws LimaException; } Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionTable.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionTable.java 2011-06-17 12:41:53 UTC (rev 3181) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionTable.java 2011-06-17 14:59:28 UTC (rev 3182) @@ -185,22 +185,22 @@ && e.getModifiers() == KeyEvent.CTRL_MASK)) { handler.addEmptyEntry(); } + + // copy : ctrl + c - // add financial transaction with the key combination : ctrl + tab + // add financial transaction with the key combination : ctrl + c if (e.getKeyCode() == KeyEvent.VK_C && e.getModifiers() == KeyEvent.CTRL_MASK) { handler.copyRow(); } - // copy : ctrl + c + // paste : ctrl + v - // add financial transaction with the key combination : ctrl + tab + // add financial transaction with the key combination : ctrl + v if (e.getKeyCode() == KeyEvent.VK_V && e.getModifiers() == KeyEvent.CTRL_MASK) { handler.pasteRow(); } - - // paste : ctrl + v // add financial transaction with the key combination : ctrl + tab if (e.getKeyCode() == KeyEvent.VK_TAB @@ -230,6 +230,9 @@ y_tab = this.getSelectedRow(); Boolean end = true; + System.out.println("x_tab : " + x_tab); + System.out.println("y_tab : " + y_tab); + if (x_tab < max_x - 1){ x_tab++; } @@ -238,8 +241,14 @@ x_tab=0; y_tab++; } + + System.out.println("x_tab : " + x_tab); + System.out.println("max_x : " + max_x); + System.out.println("y_tab : " + y_tab); + System.out.println("max_y : " + max_y); + //skip all cell while not editable or if end of table add entry or transaction or end of table - while (!isCellEditable(y_tab, x_tab) && end ){ + while (!isCellEditable(y_tab, x_tab) && end ){ //if end of row if (x_tab == max_x-1) { Object object = this.handler.tableModel.getElementAt(y_tab); Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionTableModel.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionTableModel.java 2011-06-17 12:41:53 UTC (rev 3181) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionTableModel.java 2011-06-17 14:59:28 UTC (rev 3182) @@ -355,9 +355,10 @@ /** - * @throws LimaException + * @return int: indexOf new FianancialTransaction + * @throws LimaException */ - public void addFinancialTransaction() throws LimaException{ + public int addFinancialTransaction() throws LimaException{ /* Calling transaction service */ FinancialTransaction financialTransaction = new FinancialTransactionImpl(); financialTransaction.setAmountDebit(BigDecimal.ZERO); @@ -391,12 +392,14 @@ // set date to the financial transaction financialTransaction.setTransactionDate(transactionDate); // create it - financialTransactionService.createFinancialTransaction(financialTransaction); + FinancialTransaction fTransaction = + financialTransactionService.createFinancialTransaction(financialTransaction); //on recharge la liste cacheDataList = getDataList(); - int row = getDataList().indexOf(financialTransaction); + int row = cacheDataList.indexOf(fTransaction); fireTableRowsInserted(row, row); + return row; //fireTableDataChanged(); } else { @@ -407,9 +410,14 @@ /** - * @throws LimaException + * + * @param value + * @param description + * @param row + * @return int: indexOf new FianancialTransaction + * @throws LimaException */ - public void addEmptyEntry(Object value, String description, int row) throws LimaException { + public int addEmptyEntry(Object value, String description, int row) throws LimaException { FinancialTransaction currentTransaction = null; Object currentRow = cacheDataList.get(row); Entry entry = new EntryImpl(); @@ -428,14 +436,24 @@ } //create it entry.setFinancialTransaction(currentTransaction); - financialTransactionService.createEntry(entry); + Entry newEntry = financialTransactionService.createEntry(entry); //on recharge la liste cacheDataList = getDataList(); - fireTableDataChanged(); + int newrow = cacheDataList.indexOf(newEntry); + fireTableRowsInserted(newrow, newrow); + return newrow; } - public void addEntry(Object value, Entry entry, int row) throws LimaException { + /** + * + * @param value + * @param entry + * @param row + * @return int: indexOf new FianancialTransaction + * @throws LimaException + */ + public int addEntry(Object value, Entry entry, int row) throws LimaException { FinancialTransaction currentTransaction = null; int financialTransactionRow = 0; Object currentRow = cacheDataList.get(row); @@ -457,12 +475,14 @@ } //create it entry.setFinancialTransaction(currentTransaction); - financialTransactionService.createEntry(entry); + Entry newEntry = financialTransactionService.createEntry(entry); fireTableRowsUpdated(financialTransactionRow, getRowCount()-1); //on recharge la liste cacheDataList = getDataList(); - fireTableDataChanged(); + int newrow = cacheDataList.indexOf(newEntry); + fireTableRowsInserted(newrow, newrow); + return newrow; } /** Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionViewHandler.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionViewHandler.java 2011-06-17 12:41:53 UTC (rev 3181) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/financialtransaction/FinancialTransactionViewHandler.java 2011-06-17 14:59:28 UTC (rev 3182) @@ -91,14 +91,14 @@ Object selectedValue = tableModel.getElementAt(indexSelectedRow); if (clipBoard instanceof Entry) { try { - tableModel.addEntry(selectedValue, (Entry) clipBoard, indexSelectedRow); + int index = tableModel.addEntry(selectedValue, (Entry) clipBoard, indexSelectedRow); //select the new line ListSelectionModel selectionModel = table.getSelectionModel(); selectionModel.setSelectionInterval( indexSelectedRow+1, indexSelectedRow+1); //focus on second column - table.changeSelection(indexSelectedRow+1, 1, false, false); + table.changeSelection(index, 1, false, false); table.requestFocusInWindow(); } catch (LimaException eee){ if (log.isErrorEnabled()) { @@ -118,14 +118,14 @@ tableModel = view.getFinancialTransactionTableModel(); try { - tableModel.addFinancialTransaction(); + int index = tableModel.addFinancialTransaction(); //select the new line int numberRow = table.getRowCount(); ListSelectionModel selectionModel = table.getSelectionModel(); selectionModel.setSelectionInterval(numberRow-1, numberRow-1); //focus on first column - table.changeSelection(numberRow-1, 0, false, false); + table.changeSelection(index, 0, false, false); table.requestFocusInWindow(); } catch (LimaException eee) { if (log.isErrorEnabled()) { @@ -148,14 +148,14 @@ try { //copy + paste the description String description = (String) tableModel.getValueAt(indexSelectedRow, 4); - tableModel.addEmptyEntry(selectedValue, description, indexSelectedRow); + int index = tableModel.addEmptyEntry(selectedValue, description, indexSelectedRow); //select the new line ListSelectionModel selectionModel = table.getSelectionModel(); selectionModel.setSelectionInterval( indexSelectedRow+1, indexSelectedRow+1); //focus on second column - table.changeSelection(indexSelectedRow+1, 1, false, false); + table.changeSelection(index, 1, false, false); table.requestFocusInWindow(); } catch (LimaException eee){ if (log.isErrorEnabled()) {