Author: vsalaun Date: 2011-05-27 12:19:10 +0200 (Fri, 27 May 2011) New Revision: 3147 Url: http://chorem.org/repositories/revision/lima/3147 Log: #400 empeche la reorganisation automatique des exercices Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodTableModel.java trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodView.jaxx trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodViewHandler.java Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodTableModel.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodTableModel.java 2011-05-26 12:49:51 UTC (rev 3146) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodTableModel.java 2011-05-27 10:19:10 UTC (rev 3147) @@ -27,6 +27,8 @@ import static org.nuiton.i18n.I18n._; import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; @@ -40,9 +42,11 @@ import org.chorem.lima.business.ImportServiceMonitorable; import org.chorem.lima.business.LimaException; import org.chorem.lima.business.ServiceListener; +import org.chorem.lima.business.utils.FiscalPeriodComparator; import org.chorem.lima.entity.FinancialTransaction; import org.chorem.lima.entity.FiscalPeriod; import org.chorem.lima.service.LimaServiceFactory; +import org.chorem.lima.util.ErrorHelper; import org.nuiton.util.Resource; /** @@ -64,6 +68,9 @@ protected FiscalPeriodServiceMonitorable fiscalPeriodService; protected FinancialTransactionServiceMonitorable financialTransactionService; + + /** data cache */ + protected List<Object> cacheDataList; public FiscalPeriodTableModel() { fiscalPeriodService = @@ -76,20 +83,39 @@ LimaServiceFactory.getInstance().getService( FinancialTransactionServiceMonitorable.class); financialTransactionService.addListener(this); + cacheDataList = null; } + + protected List<Object> getDataList() { + List<Object> results = new ArrayList<Object>(); + try { + List<FiscalPeriod> fiscalPeriod = + fiscalPeriodService.getAllFiscalPeriods(); + Collections.sort(fiscalPeriod, new FiscalPeriodComparator()); + results.addAll(fiscalPeriod); + } + catch (LimaException eee) { + if (log.isErrorEnabled()) { + log.debug("Can't update model", eee); + } + ErrorHelper.showErrorDialog("Can't get fiscal periods list", eee); + } + return results; + } + public void refresh(){ + cacheDataList = getDataList(); + fireTableDataChanged(); + } + @Override public int getRowCount() { + int result = 0; - int result = 0; - try { - result = fiscalPeriodService.getAllFiscalPeriods().size(); + if (cacheDataList != null) { + result = cacheDataList.size(); } - catch (LimaException eee) { - if(log.isDebugEnabled()){ - log.debug("Can't get row count",eee); - } - } + return result; } @@ -101,14 +127,12 @@ public Object getElementAt(int row){ - Object currentRow=null; - try { - currentRow = fiscalPeriodService.getAllFiscalPeriods().get(row); - } catch (LimaException eee) { - if(log.isDebugEnabled()){ - log.debug("Can't get elenment at table",eee); - } + Object currentRow = null; + + if (cacheDataList != null) { + currentRow = cacheDataList.get(row); } + return currentRow; } @@ -146,38 +170,29 @@ Object result = "n/a"; - List<FiscalPeriod> periods; - try { - periods = fiscalPeriodService.getAllFiscalPeriods(); - FiscalPeriod fiscalPeriod = periods.get(rowIndex); - - if (fiscalPeriod != null){ - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd MMM yyyy"); + List<Object> periods; + periods = cacheDataList; + FiscalPeriod fiscalPeriod = (FiscalPeriod)periods.get(rowIndex); + + if (fiscalPeriod != null){ + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd MMM yyyy"); - switch (columnIndex) { - case 0: - result = simpleDateFormat. - format(fiscalPeriod.getBeginDate()) - + " - " + simpleDateFormat. - format(fiscalPeriod.getEndDate()); - break; - case 1: - if(fiscalPeriod.getLocked()){ - result = _("lima.common.closed"); - } - else{ - result = _("lima.common.open"); - } - break; + switch (columnIndex) { + case 0: + result = simpleDateFormat. + format(fiscalPeriod.getBeginDate()) + + " - " + simpleDateFormat. + format(fiscalPeriod.getEndDate()); + break; + case 1: + if(fiscalPeriod.getLocked()){ + result = _("lima.common.closed"); } + else{ + result = _("lima.common.open"); + } + break; } - - - - } catch (LimaException eee) { - if(log.isDebugEnabled()){ - log.debug("Can't update table",eee); - } } return result; @@ -185,7 +200,7 @@ public FiscalPeriod getFiscalPeriodAtRow(int row) throws LimaException { FiscalPeriod fiscalPeriod = null; - fiscalPeriod = fiscalPeriodService.getAllFiscalPeriods().get(row); + fiscalPeriod = (FiscalPeriod) cacheDataList.get(row); return fiscalPeriod; } @@ -193,12 +208,21 @@ * @param period */ public void addFiscalPeriod(FiscalPeriod period) throws LimaException { - - int currentRowCount = getRowCount(); - // Calling fiscal period service - fiscalPeriodService.createFiscalPeriod(period); - fireTableRowsInserted(currentRowCount, currentRowCount); + try { + // Calling fiscal period service + fiscalPeriodService.createFiscalPeriod(period); + //on recharge la liste + cacheDataList = getDataList(); + int row = getDataList().indexOf(period); + fireTableRowsInserted(row, row); + } + catch (LimaException eee) { + if (log.isErrorEnabled()) { + log.debug("Can't create FiscalPeriod", eee); + } + ErrorHelper.showErrorDialog("Can't create fiscal periods ", eee); + } } public void blockFiscalPeriod(FiscalPeriod fiscalPeriod) throws LimaException { @@ -215,7 +239,7 @@ f.dispose(); } else { fiscalPeriodService.blockFiscalPeriod(fiscalPeriod); - fireTableDataChanged(); + refresh(); } } @@ -223,7 +247,7 @@ public void notifyMethod(String serviceName, String methodeName) { //refresh on import datas if (methodeName.contains("importAll")){ - fireTableDataChanged(); + refresh(); } } } Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodView.jaxx =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodView.jaxx 2011-05-26 12:49:51 UTC (rev 3146) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodView.jaxx 2011-05-27 10:19:10 UTC (rev 3147) @@ -27,18 +27,25 @@ <FiscalPeriodViewHandler id="handler" javaBean="new FiscalPeriodViewHandler(this)" /> <Boolean id="selectedPeriod" javaBean="false" /> - <org.chorem.lima.ui.fiscalperiod.FiscalPeriodTableModel id="modelFiscalPeriodTable"/> <script> <![CDATA[ + import org.chorem.lima.entity.FiscalPeriod; + import org.chorem.lima.entity.FinancialPeriod; + + void $afterCompleteSetup() { + getHandler().refresh(); + } ]]> </script> <row> <cell fill="both" weightx="1" weighty="1" rows="4"> <JScrollPane> + <org.chorem.lima.ui.fiscalperiod.FiscalPeriodTableModel + id="modelFiscalPeriodTable"/> <org.chorem.lima.ui.fiscalperiod.FiscalPeriodTable - id="fiscalPeriodTable" rowHeight="24" + id="fiscalPeriodTable" sortable="false" rowHeight="24" constructorParams="getHandler()" model="{getModelFiscalPeriodTable()}" selectionMode="{ListSelectionModel.SINGLE_INTERVAL_SELECTION}" columnControlVisible="true" /> Modified: trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodViewHandler.java =================================================================== --- trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodViewHandler.java 2011-05-26 12:49:51 UTC (rev 3146) +++ trunk/lima-swing/src/main/java/org/chorem/lima/ui/fiscalperiod/FiscalPeriodViewHandler.java 2011-05-27 10:19:10 UTC (rev 3147) @@ -53,6 +53,10 @@ private FiscalPeriodView view; + protected FiscalPeriodTable table; + + protected FiscalPeriodTableModel tableModel; + protected FiscalPeriodViewHandler(FiscalPeriodView view) { this.view=view; } @@ -120,9 +124,14 @@ } DialogHelper.showMessageDialog(eee.getMessage()); } - } + } public FiscalPeriodView getView() { return view; } + + public void refresh(){ + tableModel = (FiscalPeriodTableModel)getView().getFiscalPeriodTable().getModel(); + tableModel.refresh(); + } }
participants (1)
-
vsalaun@users.chorem.org