Author: chatellier Date: 2010-10-25 09:28:13 +0000 (Mon, 25 Oct 2010) New Revision: 95 Log: Begin selection saving Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionView.jaxx trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpecyListCheckBoxRenderer.java trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/YearComboBoxModel.java Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-10-25 09:27:33 UTC (rev 94) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-10-25 09:28:13 UTC (rev 95) @@ -274,6 +274,41 @@ } /** + * Save project selection. + * + * @param project project to save selection + * @throws CoserBusinessException + */ + public void saveProjectSelection(Project project, String selectionName) throws CoserBusinessException { + + // tout ce qui suit doit exister à ce stade + File projectsDirectory = config.getProjectsDirectory(); + String projectName = project.getName(); + File projectDirectory = new File(projectsDirectory, projectName); + + // creation du dossier de selections (peut deja exister) + File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY); + + // creation du dossier de la selection courante + File selectionDirectory = new File(selectionsDirectory, selectionName); + selectionDirectory.mkdirs(); + + for (Category category : Category.values()) { + if (category.isDataCategory()) { + File controlFile = new File(selectionDirectory, + category.getStorageFileName() + + CoserConstants.STORAGE_SELECTION_SUFFIX + + CoserConstants.STORAGE_CSV_EXTENSION); + if (log.isDebugEnabled()) { + log.debug("Saving selection file : " + controlFile); + } + importService.storeData(project, category, controlFile); + } + } + + } + + /** * Get zones name in project with data in [{@code beginYear}-{@code endYear}]. * * @param project project @@ -330,7 +365,7 @@ // can't happen after control // data must be all ok if (log.isWarnEnabled()) { - log.warn("Can't convert year to integer, but data must be correct after control :("); + log.warn("Can't convert year '" + year + "' to integer, but data must be correct after control :("); } } } @@ -371,7 +406,7 @@ } catch (NumberFormatException ex) { if (log.isWarnEnabled()) { - log.warn("Can't parse year " + annee + " as int, can't happen with controled data"); + log.warn("Can't parse year '" + annee + "' as int, can't happen with controled data"); } } } Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-10-25 09:27:33 UTC (rev 94) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-10-25 09:28:13 UTC (rev 95) @@ -37,8 +37,6 @@ import javax.swing.event.ListSelectionEvent; import jaxx.runtime.JAXXUtil; -import jaxx.runtime.context.DefaultJAXXContext; -import jaxx.runtime.context.JAXXInitialContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -159,10 +157,37 @@ } } + /** + * Sauvegarde (ou creer) la sélection. + * + * @param view parent view + */ public void saveSelection(SelectionDetailsView view) { + String selectionName = view.getSelectionDetailsSelecionNameField().getText().trim(); + // TODO test de nom valid ? + + Project project = view.getContextValue(Project.class); + ProjectService service = view.getContextValue(ProjectService.class); + + try { + service.saveProjectSelection(project, selectionName); + } + catch (CoserBusinessException ex) { + throw new CoserException("Can't save selection", ex); + } + + // enable tabs + SelectionView selectionView = view.getParentContainer(SelectionView.class); + selectionView.setEnabledAt(1, true); // selection lists + selectionView.setEnabledAt(2, true); // rsufi } - + + /** + * Sauvegarde des listes des selectino d'especes. + * + * @param view view + */ public void saveSelectionLists(SelectionListsView view) { } Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionView.jaxx =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionView.jaxx 2010-10-25 09:27:33 UTC (rev 94) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionView.jaxx 2010-10-25 09:28:13 UTC (rev 95) @@ -37,10 +37,10 @@ <tab title="coser.ui.selection.tab.details"> <SelectionDetailsView id="selectionDetailsTab" constructorParams="this" handler="{getHandler()}" /> </tab> - <tab title="coser.ui.selection.tab.lists"> + <tab title="coser.ui.selection.tab.lists" enabled="false"> <SelectionListsView id="selectionListsView" constructorParams="this" handler="{getHandler()}" /> </tab> - <tab title="coser.ui.selection.tab.result"> + <tab title="coser.ui.selection.tab.result" enabled="false"> <SelectionResultView id="selectionResultView" constructorParams="this" handler="{getHandler()}" /> </tab> </JTabbedPane> Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpecyListCheckBoxRenderer.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpecyListCheckBoxRenderer.java 2010-10-25 09:27:33 UTC (rev 94) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpecyListCheckBoxRenderer.java 2010-10-25 09:28:13 UTC (rev 95) @@ -27,10 +27,7 @@ import java.awt.Component; -import javax.swing.DefaultListSelectionModel; -import javax.swing.JCheckBox; import javax.swing.JList; -import javax.swing.ListCellRenderer; import org.jdesktop.swingx.renderer.DefaultListRenderer; Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/YearComboBoxModel.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/YearComboBoxModel.java 2010-10-25 09:27:33 UTC (rev 94) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/YearComboBoxModel.java 2010-10-25 09:28:13 UTC (rev 95) @@ -29,11 +29,8 @@ import javax.swing.AbstractListModel; import javax.swing.ComboBoxModel; -import javax.swing.JList; -import javax.swing.event.ListSelectionEvent; import fr.ifremer.coser.bean.Project; -import fr.ifremer.coser.bean.Specy; import fr.ifremer.coser.services.ProjectService; /**