From: <de...@us...> - 2014-01-10 23:00:42
|
Revision: 8566 http://sourceforge.net/p/fudaa/svn/8566 Author: deniger Date: 2014-01-10 23:00:37 +0000 (Fri, 10 Jan 2014) Log Message: ----------- CRUE-619 Modified Paths: -------------- trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/EMHProjetController.java trunk/soft/fudaa-crue/crue-project/src/test/resources/remover/Etu3-0_1.1.2.zip trunk/soft/fudaa-crue/pom.xml trunk/soft/fudaa-crue/ui-modelling/pom.xml trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/action/ModellingOpenListeCLimMsAction.java trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/ModellingListCLimMsProgressRunnable.java trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/ModellingListCLimMsTopExportImportPopupBuilder.java trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/importer/CLimMsImporter.java trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/actions/AbstractOpenProjectAction.java trunk/soft/fudaa-crue/ui-study/src/main/resources/org/fudaa/fudaa/crue/study/actions/Bundle.properties trunk/soft/fudaa-crue/ui-wrapper/pom.xml Added Paths: ----------- trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/ScenarioRunCleaner.java trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/projet/ScenarioRunCleanerTest.java Removed Paths: ------------- trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/RunRemover.java trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/projet/RunRemoverTest.java Modified: trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/EMHProjetController.java =================================================================== --- trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/EMHProjetController.java 2014-01-10 21:56:47 UTC (rev 8565) +++ trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/EMHProjetController.java 2014-01-10 23:00:37 UTC (rev 8566) @@ -332,17 +332,8 @@ return new CrueOperationResult<EMHRun>(run, errors); } - public CtuluLogGroup removeAllRun(File etuFile) { - final RunRemover remover = new RunRemover(projet); - final CtuluLogGroup errors = new CtuluLogGroup(BusinessMessages.RESOURCE_BUNDLE); + - remover.remove(); - - this.saveProjet(etuFile, errors); - - return errors; - } - public static CrueOperationResult<EMHProjet> readProjet(File fichier, CoeurConfigContrat config) { return readProjet(fichier, config, true); } Deleted: trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/RunRemover.java =================================================================== --- trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/RunRemover.java 2014-01-10 21:56:47 UTC (rev 8565) +++ trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/RunRemover.java 2014-01-10 23:00:37 UTC (rev 8566) @@ -1,60 +0,0 @@ -/** - * License GPL v2 - */ -package org.fudaa.dodico.crue.projet; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; -import org.fudaa.ctulu.CtuluLibFile; -import org.fudaa.ctulu.CtuluLog; -import org.fudaa.dodico.crue.common.BusinessMessages; -import org.fudaa.dodico.crue.metier.etude.EMHProjet; -import org.fudaa.dodico.crue.metier.etude.EMHRun; -import org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario; - -/** - * @author CANEL Christophe (Genesis) - * - */ -public class RunRemover { - private final EMHProjet projet; - - public RunRemover(EMHProjet projet) { - super(); - this.projet = projet; - } - - public CtuluLog remove() - { - final List<ManagerEMHScenario> scenarios = this.projet.getListeScenarios(); - final CtuluLog log = new CtuluLog(BusinessMessages.RESOURCE_BUNDLE); - - for (ManagerEMHScenario scenario : scenarios) - { - scenario.setRunCourant(null); - - final List<EMHRun> runs = scenario.getListeRuns(); - - if (runs != null) - { - for (EMHRun run : runs) - { - File runDir = this.projet.getDirForRun(scenario, run); - - if (runDir.isDirectory()) - { - if (!CtuluLibFile.deleteDir(runDir)) - { - log.addSevereError("run.runRemover.cannotDeleteFile", runDir.getName()); - } - } - } - } - - scenario.setListeRuns(new ArrayList<EMHRun>()); - } - - return log; - } -} Added: trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/ScenarioRunCleaner.java =================================================================== --- trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/ScenarioRunCleaner.java (rev 0) +++ trunk/soft/fudaa-crue/crue-project/src/main/java/org/fudaa/dodico/crue/projet/ScenarioRunCleaner.java 2014-01-10 23:00:37 UTC (rev 8566) @@ -0,0 +1,89 @@ +/* + GPL 2 + */ +package org.fudaa.dodico.crue.projet; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.fudaa.ctulu.CtuluLibFile; +import org.fudaa.ctulu.FileDeleteResult; +import org.fudaa.dodico.crue.metier.etude.EMHProjet; +import org.fudaa.dodico.crue.metier.etude.EMHRun; +import org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario; + +/** + * + * @author Frederic Deniger + */ +public class ScenarioRunCleaner { + + private final EMHProjet projet; + + public ScenarioRunCleaner(EMHProjet projet) { + this.projet = projet; + } + + public FileDeleteResult deleteUnusedDir() { + List<File> dirToDelete = getDirToDelete(); + FileDeleteResult result = new FileDeleteResult(); + for (File file : dirToDelete) { + CtuluLibFile.deleteDir(file, result); + } + return result; + } + + public List<File> getDirToDelete() { + List<File> toDelete = new ArrayList<File>(); + Set<String> expectedScenarioDir = new HashSet<String>(); + Set<String> expectedRunDir = new HashSet<String>(); + try { + fillWithExpectedDir(expectedScenarioDir, expectedRunDir); + } catch (IOException ex) { + Logger.getLogger(ScenarioRunCleaner.class.getName()).log(Level.SEVERE, null, ex); + return toDelete; + } + File dirOfRuns = projet.getInfos().getDirOfRuns(); + File[] listFilesScenarios = dirOfRuns.listFiles(); + for (File scenarioFile : listFilesScenarios) { + if (scenarioFile.isDirectory()) { + if (expectedScenarioDir.contains(scenarioFile.getAbsolutePath())) { + File[] listFilesRuns = scenarioFile.listFiles(); + for (File dirRun : listFilesRuns) { + if (dirRun.isDirectory()) { + if (!expectedRunDir.contains(dirRun.getAbsolutePath())) { + toDelete.add(dirRun); + } + } + } + } else { + toDelete.add(scenarioFile); + } + + } + } + + return toDelete; + + } + + private void fillWithExpectedDir(Set<String> expectedScenarioDir, Set<String> expectedRunDir) throws IOException { + List<ManagerEMHScenario> listeScenarios = projet.getListeScenarios(); + for (ManagerEMHScenario managerEMHScenario : listeScenarios) { + if (managerEMHScenario.hasRun()) { + expectedScenarioDir.add(projet.getMainDirOfRuns(managerEMHScenario).getCanonicalPath()); + List<EMHRun> listeRuns = managerEMHScenario.getListeRuns(); + for (EMHRun eMHRun : listeRuns) { + expectedRunDir.add(projet.getDirForRun(managerEMHScenario, eMHRun).getCanonicalPath()); + + } + } + } + } + +} Deleted: trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/projet/RunRemoverTest.java =================================================================== --- trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/projet/RunRemoverTest.java 2014-01-10 21:56:47 UTC (rev 8565) +++ trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/projet/RunRemoverTest.java 2014-01-10 23:00:37 UTC (rev 8566) @@ -1,43 +0,0 @@ -/** - * License GPL v2 - */ -package org.fudaa.dodico.crue.projet; - -import java.io.File; -import org.fudaa.ctulu.CtuluLog; -import org.fudaa.dodico.crue.config.coeur.TestCoeurConfig; -import org.fudaa.dodico.crue.io.etu.CrueETUFileTest; -import org.fudaa.dodico.crue.metier.etude.EMHProjet; -import org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario; -import org.fudaa.dodico.crue.test.AbstractTestCase; - -/** - * @author CANEL Christophe (Genesis) - * - */ -public class RunRemoverTest extends AbstractTestCase { - public void testRunRemover() - { - File exportZipInTempDir = exportZipInTempDir("/remover/Etu3-0_1.1.2.zip"); - File etuFile = getEtuFileUpdated("etu3-0", exportZipInTempDir); - assertNotNull(etuFile); - assertTrue(etuFile.exists()); - - EMHProjet projet = CrueETUFileTest.readData(etuFile, TestCoeurConfig.INSTANCE); - assertNotNull(projet); - - RunRemover remover = new RunRemover(projet); - final CtuluLog log = remover.remove(); - - assertFalse(log.containsSevereError()); - - assertEquals(0, new File(exportZipInTempDir, "Sc_M3_c9").list().length); - assertEquals(0, new File(exportZipInTempDir, "Sc_M3-0_c10").list().length); - - for (ManagerEMHScenario scenario : projet.getListeScenarios()) - { - assertNull(scenario.getRunCourant()); - assertEquals(0, scenario.getListeRuns().size()); - } - } -} Copied: trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/projet/ScenarioRunCleanerTest.java (from rev 8404, trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/projet/RunRemoverTest.java) =================================================================== --- trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/projet/ScenarioRunCleanerTest.java (rev 0) +++ trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/projet/ScenarioRunCleanerTest.java 2014-01-10 23:00:37 UTC (rev 8566) @@ -0,0 +1,43 @@ +/** + * License GPL v2 + */ +package org.fudaa.dodico.crue.projet; + +import java.io.File; +import java.io.IOException; +import java.util.List; +import org.fudaa.ctulu.FileDeleteResult; +import org.fudaa.dodico.crue.config.coeur.TestCoeurConfig; +import org.fudaa.dodico.crue.io.etu.CrueETUFileTest; +import org.fudaa.dodico.crue.metier.etude.EMHProjet; +import org.fudaa.dodico.crue.test.AbstractTestCase; + +/** + * @author CANEL Christophe (Genesis) + * + */ +public class ScenarioRunCleanerTest extends AbstractTestCase { + + public void testRunRemover() throws IOException { + File exportZipInTempDir = exportZipInTempDir("/remover/Etu3-0_1.1.2.zip"); + File etuFile = getEtuFileUpdated("etu3-0", exportZipInTempDir); + assertNotNull(etuFile); + assertTrue(etuFile.exists()); + + EMHProjet projet = CrueETUFileTest.readData(etuFile, TestCoeurConfig.INSTANCE); + assertNotNull(projet); + + ScenarioRunCleaner remover = new ScenarioRunCleaner(projet); + List<File> dirToDelete = remover.getDirToDelete(); + assertEquals(2, dirToDelete.size()); + File d1 = new File(exportZipInTempDir, "To_DeleteScenario").getCanonicalFile(); + File d2 = new File(new File(exportZipInTempDir, "Sc_M3-0_c10"), "To_DeleteRun").getCanonicalFile(); + assertTrue(dirToDelete.contains(d1)); + assertTrue(dirToDelete.contains(d2)); + // + FileDeleteResult deleteUnusedDir = remover.deleteUnusedDir(); + assertTrue(deleteUnusedDir.isEmpty()); + assertFalse(d1.exists()); + assertFalse(d2.exists()); + } +} Modified: trunk/soft/fudaa-crue/crue-project/src/test/resources/remover/Etu3-0_1.1.2.zip =================================================================== (Binary files differ) Modified: trunk/soft/fudaa-crue/pom.xml =================================================================== --- trunk/soft/fudaa-crue/pom.xml 2014-01-10 21:56:47 UTC (rev 8565) +++ trunk/soft/fudaa-crue/pom.xml 2014-01-10 23:00:37 UTC (rev 8566) @@ -98,12 +98,8 @@ <artifactId>utils</artifactId> <version>1.07.00</version> </dependency> + <dependency> - <groupId>org.apache.poi</groupId> - <artifactId>poi-ooxml</artifactId> - <version>3.9</version> - </dependency> - <dependency> <groupId>org.fudaa.soft.fudaa-crue</groupId> <artifactId>crue-io</artifactId> <version>${project.version}</version> Modified: trunk/soft/fudaa-crue/ui-modelling/pom.xml =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/pom.xml 2014-01-10 21:56:47 UTC (rev 8565) +++ trunk/soft/fudaa-crue/ui-modelling/pom.xml 2014-01-10 23:00:37 UTC (rev 8566) @@ -50,6 +50,11 @@ <artifactId>ctulu-common</artifactId> <scope>provided</scope> </dependency> + <dependency> + <groupId>org.apache.poi</groupId> + <artifactId>poi-ooxml</artifactId> + <scope>provided</scope> + </dependency> <dependency> <groupId>org.fudaa.soft.fudaa-crue</groupId> <artifactId>crue-io</artifactId> Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/action/ModellingOpenListeCLimMsAction.java =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/action/ModellingOpenListeCLimMsAction.java 2014-01-10 21:56:47 UTC (rev 8565) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/action/ModellingOpenListeCLimMsAction.java 2014-01-10 23:00:37 UTC (rev 8566) @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package org.fudaa.fudaa.crue.modelling.action; import javax.swing.Action; Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/ModellingListCLimMsProgressRunnable.java =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/ModellingListCLimMsProgressRunnable.java 2014-01-10 21:56:47 UTC (rev 8565) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/ModellingListCLimMsProgressRunnable.java 2014-01-10 23:00:37 UTC (rev 8566) @@ -8,6 +8,17 @@ import java.io.File; import java.io.FileReader; import java.io.Reader; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.apache.commons.lang.StringUtils; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.DateUtil; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; import org.fudaa.ctulu.CtuluLibFile; import org.fudaa.fudaa.crue.modelling.calcul.importer.CLimMsImporter; import org.netbeans.api.progress.ProgressHandle; @@ -45,14 +56,7 @@ } values = CSVParser.parse(initValues, sep); } else if (file != null) { - try { - reader = new FileReader(file); - values = new CSVParser(new BufferedReader(reader), ';').getAllValues(); - } catch (Exception ex) { - Exceptions.printStackTrace(ex); - } finally { - CtuluLibFile.close(reader); - } + values = readFile(values); } if (values == null) { return null; @@ -62,4 +66,64 @@ importer.importData(); return null; } + + protected String getValue(Cell cell) { + switch (cell.getCellType()) { + case Cell.CELL_TYPE_NUMERIC: + return Double.toString(cell.getNumericCellValue()); + case Cell.CELL_TYPE_STRING: + return cell.getStringCellValue(); + default: + try { + return Double.toString(cell.getNumericCellValue()); + } catch (Exception ex) { + Logger.getLogger(ModellingListCLimMsProgressRunnable.class.getName()).log(Level.INFO, "message {0}", ex); + try { + return cell.getStringCellValue(); + } catch (Exception ex1) { + Logger.getLogger(ModellingListCLimMsProgressRunnable.class.getName()).log(Level.INFO, "message {0}", ex1); + + } + } + } + return StringUtils.EMPTY; + } + + protected String[][] readFile(String[][] values) { + final String nameToLowerCase = file.getName().toLowerCase(); + if (nameToLowerCase.endsWith("xlsx") || nameToLowerCase.endsWith("xls")) { + List<String[]> rows = new ArrayList<String[]>(); + try { + Workbook wb = WorkbookFactory.create(file); + Sheet sheetAt = wb.getSheetAt(0); + for (Row row : sheetAt) { + List<String> cols = new ArrayList<String>(); + for (Cell cell : row) { + cols.add(getValue(cell)); + } + rows.add(cols.toArray(new String[cols.size()])); + } + } catch (Exception ex) { + Exceptions.printStackTrace(ex); + } + final String[][] toArray = rows.toArray(new String[rows.size()][]); + return toArray; + + } else { + return readCsv(values); + } + } + + protected String[][] readCsv(String[][] values) { + Reader reader = null; + try { + reader = new FileReader(file); + values = new CSVParser(new BufferedReader(reader), ';').getAllValues(); + } catch (Exception ex) { + Exceptions.printStackTrace(ex); + } finally { + CtuluLibFile.close(reader); + } + return values; + } } Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/ModellingListCLimMsTopExportImportPopupBuilder.java =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/ModellingListCLimMsTopExportImportPopupBuilder.java 2014-01-10 21:56:47 UTC (rev 8565) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/ModellingListCLimMsTopExportImportPopupBuilder.java 2014-01-10 23:00:37 UTC (rev 8566) @@ -52,11 +52,17 @@ if (!tc.isEditable()) { return; } - final BuFileFilter ftCsv = new BuFileFilter(new String[]{"txt", "csv"}, CtuluResource.CTULU.getString("Texte CSV")); + final BuFileFilter ftCsv = new BuFileFilter(new String[]{"csv", "txt"}, CtuluResource.CTULU.getString("Texte CSV")); + final BuFileFilter ftXsl = new BuFileFilter(new String[]{"xls"}, CtuluResource.CTULU.getString("Fichier Excel 97-2003")); + final BuFileFilter ftXslx = new BuFileFilter(new String[]{"xlsx"}, CtuluResource.CTULU.getString("Fichier Excel")); ftCsv.setExtensionListInDescription(true); + ftXsl.setExtensionListInDescription(true); + ftXslx.setExtensionListInDescription(true); CtuluFileChooser fileChooser = new CtuluFileChooser(true); fileChooser.addChoosableFileFilter(ftCsv); - fileChooser.setFileFilter(ftCsv); + fileChooser.addChoosableFileFilter(ftXsl); + fileChooser.addChoosableFileFilter(ftXslx); + fileChooser.setFileFilter(ftXslx); fileChooser.setAcceptAllFileFilterUsed(false); fileChooser.setMultiSelectionEnabled(false); fileChooser.setDialogType(JFileChooser.SAVE_DIALOG); Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/importer/CLimMsImporter.java =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/importer/CLimMsImporter.java 2014-01-10 21:56:47 UTC (rev 8565) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/importer/CLimMsImporter.java 2014-01-10 23:00:37 UTC (rev 8566) @@ -40,7 +40,7 @@ public static final String PROP_VALUE = "value"; private final String[][] values; private final CrueConfigMetier ccm; - private DonLoiHYConteneur loiConteneur; + private final DonLoiHYConteneur loiConteneur; public CLimMsImporter(CrueConfigMetier ccm, DonLoiHYConteneur loiConteneur, String[][] values) { this.values = values; Modified: trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/actions/AbstractOpenProjectAction.java =================================================================== --- trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/actions/AbstractOpenProjectAction.java 2014-01-10 21:56:47 UTC (rev 8565) +++ trunk/soft/fudaa-crue/ui-study/src/main/java/org/fudaa/fudaa/crue/study/actions/AbstractOpenProjectAction.java 2014-01-10 23:00:37 UTC (rev 8566) @@ -5,12 +5,20 @@ package org.fudaa.fudaa.crue.study.actions; import java.awt.event.ActionEvent; +import java.io.File; +import java.util.List; import java.util.MissingResourceException; +import org.apache.commons.collections.CollectionUtils; +import org.fudaa.ctulu.CtuluLog; +import org.fudaa.ctulu.CtuluLogGroup; +import org.fudaa.ctulu.FileDeleteResult; import org.fudaa.dodico.crue.metier.etude.EMHProjet; import org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario; +import org.fudaa.dodico.crue.projet.ScenarioRunCleaner; import org.fudaa.fudaa.crue.common.PerspectiveEnum; import org.fudaa.fudaa.crue.common.action.AbstractPerspectiveAwareAction; import org.fudaa.fudaa.crue.common.helper.DialogHelper; +import org.fudaa.fudaa.crue.common.log.LogsDisplayer; import org.fudaa.fudaa.crue.common.services.ModellingScenarioService; import org.fudaa.fudaa.crue.common.services.PerspectiveState; import org.fudaa.fudaa.crue.options.services.ConfigurationManagerService; @@ -18,6 +26,7 @@ import org.fudaa.fudaa.crue.study.services.CrueService; import org.fudaa.fudaa.crue.study.services.EMHProjetServiceImpl; import org.openide.util.Lookup; +import org.openide.util.NbBundle; public abstract class AbstractOpenProjectAction extends AbstractPerspectiveAwareAction { @@ -29,27 +38,77 @@ private final boolean readOnly; public AbstractOpenProjectAction(boolean readOnly) { - super(PerspectiveEnum.STUDY,false); - this.readOnly=readOnly; + super(PerspectiveEnum.STUDY, false); + this.readOnly = readOnly; } @Override public void actionPerformed(ActionEvent e) { perspectiveServiceStudy.setState(PerspectiveState.MODE_READ); - //TODO verification ici ? crueService.closeAll(); if (configurationManagerService.isConfigValidShowMessage()) { service.load(readOnly); EMHProjet selectedProject = service.getSelectedProject(); + cleanUnusedRunDir(selectedProject); openCurrentScenario(modellingScenarioService, selectedProject); } } + protected void cleanUnusedRunDir(EMHProjet selectedProject) { + if (selectedProject != null && !readOnly) { + ScenarioRunCleaner cleaner = new ScenarioRunCleaner(selectedProject); + List<File> dirToDelete = cleaner.getDirToDelete(); + if (CollectionUtils.isNotEmpty(dirToDelete)) { + String filesAsString = getFilesAsString(dirToDelete); + String question = NbBundle.getMessage(AbstractOpenProjectAction.class, "unusedDirFound.deleteAction", filesAsString); + boolean showQuestion = DialogHelper.showQuestion(question); + if (showQuestion) { + FileDeleteResult deleteUnusedDir = cleaner.deleteUnusedDir(); + if (deleteUnusedDir.isNotEmpty()) { + CtuluLogGroup gr = new CtuluLogGroup(null); + gr.setDescription(NbBundle.getMessage(AbstractOpenProjectAction.class, "deleteNotComplete.Title")); + if (!deleteUnusedDir.getFilesNotDeleted().isEmpty()) { + CtuluLog log = gr.createLog(); + log.setDesc(NbBundle.getMessage(AbstractOpenProjectAction.class, "deleteFileNotComplete.Title")); + for (File file : deleteUnusedDir.getFilesNotDeleted()) { + log.addWarn(file.getAbsolutePath()); + } + } + if (!deleteUnusedDir.getDirNotDeleted().isEmpty()) { + CtuluLog log = gr.createLog(); + log.setDesc(NbBundle.getMessage(AbstractOpenProjectAction.class, "deleteDirNotComplete.Title")); + for (File file : deleteUnusedDir.getDirNotDeleted()) { + log.addWarn(file.getAbsolutePath()); + } + } + LogsDisplayer.displayError(gr, gr.getDescription()); + } + } + } + } + } + + protected String getFilesAsString(List<File> dirToDelete) { + int max = Math.min(10, dirToDelete.size()); + StringBuilder builder = new StringBuilder(); + builder.append("<ul>"); + for (int i = 0; i < max; i++) { + builder.append("<li>").append(dirToDelete.get(i).getAbsolutePath()).append("</li>"); + } + if (max < dirToDelete.size()) { + builder.append("<li>...</li>"); + } + builder.append("</ul>"); + String filesAsString = builder.toString(); + return filesAsString; + } + public static void openCurrentScenario(ModellingScenarioService modellingScenarioService, EMHProjet selectedProject) throws MissingResourceException { if (selectedProject != null) { ManagerEMHScenario scenarioCourant = selectedProject.getScenarioCourant(); if (scenarioCourant != null) { - boolean accepted = DialogHelper.showQuestion(org.openide.util.NbBundle.getMessage(AbstractOpenProjectAction.class, "OpenScenarioCourantAtStartup", scenarioCourant.getNom())); + boolean accepted = DialogHelper.showQuestion(org.openide.util.NbBundle.getMessage(AbstractOpenProjectAction.class, + "OpenScenarioCourantAtStartup", scenarioCourant.getNom())); if (accepted) { modellingScenarioService.loadScenario(selectedProject, scenarioCourant); } @@ -59,5 +118,4 @@ } } - } Modified: trunk/soft/fudaa-crue/ui-study/src/main/resources/org/fudaa/fudaa/crue/study/actions/Bundle.properties =================================================================== --- trunk/soft/fudaa-crue/ui-study/src/main/resources/org/fudaa/fudaa/crue/study/actions/Bundle.properties 2014-01-10 21:56:47 UTC (rev 8565) +++ trunk/soft/fudaa-crue/ui-study/src/main/resources/org/fudaa/fudaa/crue/study/actions/Bundle.properties 2014-01-10 23:00:37 UTC (rev 8566) @@ -152,3 +152,7 @@ penFichier.EditorFileIsNotConfigured=L'ex\u00e9cutable vers l'\u00e9diteur externe n'est pas configur\u00e9 CTL_StudyHelpAction=Aide sur la perspective \u00c9tude CompareTwoScenario.LoadingScenario=Chargement des sc\u00e9narios/runs +unusedDirFound.deleteAction=<html><body>Des dossiers de runs sont pr\u00e9sents dans l''arborescence mais ne correspondent plus \u00e0 des runs. <b>Voulez-vous les supprimer ?</b> :<br>{0}</body></html> +deleteNotComplete.Title=Suppression des dossiers non termin\u00e9e +deleteDirNotComplete.Title=Des dossiers n'ont pas pu \u00eatre supprim\u00e9s +deleteFileNotComplete.Title=Des fichiers n'ont pas pu \u00eatre supprim\u00e9s (en cours d'utilisation ?) Modified: trunk/soft/fudaa-crue/ui-wrapper/pom.xml =================================================================== --- trunk/soft/fudaa-crue/ui-wrapper/pom.xml 2014-01-10 21:56:47 UTC (rev 8565) +++ trunk/soft/fudaa-crue/ui-wrapper/pom.xml 2014-01-10 23:00:37 UTC (rev 8566) @@ -46,10 +46,6 @@ <groupId>org.swinglabs.swingx</groupId> <artifactId>swingx-all</artifactId> </dependency> - <dependency> - <groupId>org.apache.poi</groupId> - <artifactId>poi-ooxml</artifactId> - </dependency> </dependencies> <build> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |