r480 - in trunk: coser-business/src/main/java/fr/ifremer/coser coser-business/src/main/java/fr/ifremer/coser/bean coser-business/src/main/java/fr/ifremer/coser/services coser-business/src/test/java/fr/ifremer/coser/services coser-business/src/test/resources/projects/projectctrvalidated/selections/testselection1/results/testresult1 coser-ui/src/main/java/fr/ifremer/coser/ui/result coser-ui/src/main/java/fr/ifremer/coser/ui/selection coser-ui/src/main/resources/fr/ifremer/coser/bean coser-ui/s
Author: chatellier Date: 2011-01-06 15:47:26 +0000 (Thu, 06 Jan 2011) New Revision: 480 Log: Ajout du support des cartes sur les r?\195?\169sulats. Ajout d'un champ "publication" pour le resultats Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/CoserConstants.java trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java trunk/coser-business/src/test/resources/projects/projectctrvalidated/selections/testselection1/results/testresult1/result.properties trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/RSufiResult-error-validation.xml trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/CoserConstants.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/CoserConstants.java 2011-01-06 15:30:02 UTC (rev 479) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/CoserConstants.java 2011-01-06 15:47:26 UTC (rev 480) @@ -62,7 +62,7 @@ /** Nom du dossier des resultats RSufi. */ public static final String STORAGE_RESULTS_DIRECTORY = "results"; - /** Nom du dossier de stockage des maps. */ + /** Nom du dossier de stockage des maps (project AND results). */ public static final String STORAGE_MAPS_DIRECTORY = "maps"; /** Suffix des nom de fichiers data apres control. */ Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java 2011-01-06 15:30:02 UTC (rev 479) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java 2011-01-06 15:47:26 UTC (rev 480) @@ -42,7 +42,7 @@ private static final long serialVersionUID = -1337710082675120199L; protected String name; - + protected String rsufiVersion; protected String zone; @@ -54,9 +54,15 @@ protected String estPopIndPath; protected String estComIndName; - + protected String estPopIndName; + /** Utilisé seulement pour la validation (sinon, non valorisé). */ + protected String mapsPath; + + /** Result selected for web publication. */ + protected boolean publishResult; + public String getName() { return name; } @@ -127,6 +133,26 @@ getPropertyChangeSupport().firePropertyChange("estPopIndName", oldValue, estPopIndName); } + public void setMapsPath(String mapsPath) { + String oldValue = this.mapsPath; + this.mapsPath = mapsPath; + getPropertyChangeSupport().firePropertyChange("mapsPath", oldValue, mapsPath); + } + + public String getMapsPath() { + return mapsPath; + } + + public void setPublishResult(boolean publishResult) { + boolean oldValue = this.publishResult; + this.publishResult = publishResult; + getPropertyChangeSupport().firePropertyChange("publishResult", oldValue, publishResult); + } + + public boolean isPublishResult() { + return publishResult; + } + public Properties toProperties() { Properties props = new Properties(); if (getRsufiVersion() != null) { @@ -141,6 +167,7 @@ if (getEstPopIndName() != null) { props.setProperty("result.estPopIndName", getEstPopIndName()); } + props.setProperty("result.publishResult", String.valueOf(isPublishResult())); return props; } @@ -157,5 +184,8 @@ if (props.containsKey("result.estPopIndName")) { setEstPopIndName(props.getProperty("result.estPopIndName")); } + if (props.containsKey("result.publishResult")) { + setPublishResult(Boolean.parseBoolean(props.getProperty("result.publishResult"))); + } } } Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java 2011-01-06 15:30:02 UTC (rev 479) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ControlService.java 2011-01-06 15:47:26 UTC (rev 480) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric + * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as 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 2011-01-06 15:30:02 UTC (rev 479) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2011-01-06 15:47:26 UTC (rev 480) @@ -1057,10 +1057,13 @@ // sauvegarde des 2 fichiers obligatoires File estComIndFile = new File(rsufiResult.getEstComIndPath()); File estPopIndFile = new File(rsufiResult.getEstPopIndPath()); + File mapsDirectory = new File(rsufiResult.getMapsPath()); rsufiResult.setEstComIndName(estComIndFile.getName()); rsufiResult.setEstPopIndName(estPopIndFile.getName()); FileUtils.copyFileToDirectory(estComIndFile, rsufiResultDirectory); FileUtils.copyFileToDirectory(estPopIndFile, rsufiResultDirectory); + File resultMapsDirectory = new File(rsufiResultDirectory, CoserConstants.STORAGE_MAPS_DIRECTORY); + FileUtils.copyDirectory(mapsDirectory, resultMapsDirectory); // sauvegarde des fichiers autre File otherFilesDirectory = new File(rsufiResultDirectory, "others"); @@ -2953,8 +2956,8 @@ MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); // password param - //StringBody passwordBody = new StringBody(config.getWebUploadPassword(), Charset.forName("UTF-8")); - //reqEntity.addPart("password", passwordBody); + StringBody passwordBody = new StringBody("toto", Charset.forName("UTF-8")); + reqEntity.addPart("password", passwordBody); // file param ProgressStream stream = new ProgressStream(new FileInputStream(prepareZip), progress); Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-01-06 15:30:02 UTC (rev 479) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-01-06 15:47:26 UTC (rev 480) @@ -55,7 +55,7 @@ * * Ce service, contrairement au autre a un état, les indicateurs et zones * chargées persistent apres chargement, car elle ne peuvent pas changer - * tant que l'application est a cours d'utilisation. + * tant que l'application est en cours d'utilisation. * * @author chatellier * @version $Revision$ @@ -73,7 +73,7 @@ protected ProjectService projectService; - /** Indicator map (fr, en) (etat du service). */ + /** Indicator map (id, locale > translation) (etat du service). */ protected MultiKeyMap indicatorMap; public WebService(CoserBusinessConfig config) { @@ -438,7 +438,7 @@ MultiKeyMap defaultIndicators = getDefaultIndicators(); Map<String, String> result = new HashMap<String, String>(); - + // on peu lours mais reconstruit le path jusqu'au fichier estcomind File projectsDirectory = config.getWebProjectsDirectory(); File projectDirectory = new File(projectsDirectory, project.getName()); @@ -449,7 +449,7 @@ // le fichier estcomind File estPopIndFile = new File(resultDirectory, rsufiResult.getEstPopIndName()); - + // Campagne Indicateur Liste Espece Strate Annee Estimation EcartType CV DataStorage dataStorage = importService.loadCSVFile(estPopIndFile, CoserConstants.CSV_RESULT_SEPARATOR_CHAR); Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java =================================================================== --- trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java 2011-01-06 15:30:02 UTC (rev 479) +++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java 2011-01-06 15:47:26 UTC (rev 480) @@ -127,6 +127,7 @@ RSufiResult rSufiResult = selection.getRsufiResults().get(0); Assert.assertEquals("testresult1", rSufiResult.getName()); Assert.assertEquals("myzone", rSufiResult.getZone()); + Assert.assertTrue(rSufiResult.isPublishResult()); // non validé Project projectNotValidated = openTestProject(projectService, "project2"); Modified: trunk/coser-business/src/test/resources/projects/projectctrvalidated/selections/testselection1/results/testresult1/result.properties =================================================================== --- trunk/coser-business/src/test/resources/projects/projectctrvalidated/selections/testselection1/results/testresult1/result.properties 2011-01-06 15:30:02 UTC (rev 479) +++ trunk/coser-business/src/test/resources/projects/projectctrvalidated/selections/testselection1/results/testresult1/result.properties 2011-01-06 15:47:26 UTC (rev 480) @@ -3,3 +3,4 @@ result.zone=myzone result.estPopIndName=EstPopInd_test.txt result.estComIndName=EstComInd_test.txt +result.publishResult=true \ No newline at end of file Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx 2011-01-06 15:30:02 UTC (rev 479) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx 2011-01-06 15:47:26 UTC (rev 480) @@ -36,6 +36,7 @@ <field name="rsufiVersion" component="resultRsufiVersion" /> <field name="estComIndPath" component="estComIndFileTextField" /> <field name="estPopIndPath" component="estPopIndFileTextField" /> + <field name="mapsPath" component="mapsDirectoryTextField" /> </BeanValidator> <row> @@ -102,6 +103,29 @@ </cell> </row> <row> + <cell anchor="west"> + <JLabel text="coser.ui.result.mapsDirectory" /> + </cell> + <cell fill="horizontal"> + <JTextField id="mapsDirectoryTextField" /> + <javax.swing.text.Document javaBean="mapsDirectoryTextField.getDocument()" + onInsertUpdate='getRsufiResult().setMapsPath(mapsDirectoryTextField.getText())' + onRemoveUpdate='getRsufiResult().setMapsPath(mapsDirectoryTextField.getText())' /> + </cell> + <cell fill="horizontal"> + <JButton text="coser.ui.common.selectFile" + onActionPerformed="getHandler().selectMapsDirectory(this, mapsDirectoryTextField)" /> + </cell> + </row> + <row> + <cell anchor="west"> + <JLabel text="coser.ui.result.publishResult" /> + </cell> + <cell fill="horizontal" columns="2"> + <JCheckBox id="publishResultCheckBox" /> + </cell> + </row> + <row> <cell anchor="west" columns="3"> <JLabel text="coser.ui.result.otherDataFile" /> </cell> 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 2011-01-06 15:30:02 UTC (rev 479) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2011-01-06 15:47:26 UTC (rev 480) @@ -1164,7 +1164,6 @@ protected JFileChooser getResultFileChooser() { if (resultFileChooser == null) { resultFileChooser = new JFileChooser(); - resultFileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); } return resultFileChooser; } @@ -1173,7 +1172,7 @@ * Select result file (file only). * * @param view view - * @param textComponent text component to set selected directory + * @param textComponent text component to set selected file */ public void selectResultFile(SelectionAddResultDialog view, JTextField textComponent) { JFileChooser selectFileChooser = getResultFileChooser(); @@ -1185,12 +1184,29 @@ textComponent.setText(selectedFile.getAbsolutePath()); } } + + /** + * Select maps directory (directory only). + * + * @param view view + * @param textComponent text component to set selected directory + */ + public void selectMapsDirectory(SelectionAddResultDialog view, JTextField textComponent) { + JFileChooser selectFileChooser = getResultFileChooser(); + selectFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + + int result = selectFileChooser.showOpenDialog(view); + if (result == JFileChooser.APPROVE_OPTION) { + File selectedFile = selectFileChooser.getSelectedFile(); + textComponent.setText(selectedFile.getAbsolutePath()); + } + } /** - * Select result file (file only). + * Select other files (file or directory). * * @param view view - * @param listComponent list component to set selected directory + * @param listComponent list component to set selected file */ public void selectResultFileOrDirectory(SelectionAddResultDialog view, JList listComponent) { JFileChooser selectFileChooser = getResultFileChooser(); Modified: trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/RSufiResult-error-validation.xml =================================================================== --- trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/RSufiResult-error-validation.xml 2011-01-06 15:30:02 UTC (rev 479) +++ trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/RSufiResult-error-validation.xml 2011-01-06 15:47:26 UTC (rev 480) @@ -51,4 +51,10 @@ <message>coser.ui.result.requiredestPopIndPath</message> </field-validator> </field> + <field name="mapsPath"> + <field-validator type="requiredstring"> + <param name="trim">true</param> + <message>coser.ui.result.requiredmapsPath</message> + </field-validator> + </field> </validators> Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties =================================================================== --- trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2011-01-06 15:30:02 UTC (rev 479) +++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2011-01-06 15:47:26 UTC (rev 480) @@ -135,10 +135,13 @@ coser.ui.result.extractDataButton=Extract as Rsufi format coser.ui.result.extractDataLabel=Extraction directory \: coser.ui.result.extractDataTitle=Extract RSufi data +coser.ui.result.mapsDirectory=Maps directory \: coser.ui.result.newResult=New Result coser.ui.result.otherDataFile=Other files \: +coser.ui.result.publishResult=Publish \: coser.ui.result.requiredestComIndPath=ESTCOMind file is required coser.ui.result.requiredestPopIndPath=ESTPOPind file is required +coser.ui.result.requiredmapsPath=Maps directory is required coser.ui.result.requiredname=Result name is required coser.ui.result.requiredrsufiVersion=Rsufi version is required coser.ui.result.resultName=Result name \: Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties =================================================================== --- trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2011-01-06 15:30:02 UTC (rev 479) +++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2011-01-06 15:47:26 UTC (rev 480) @@ -135,10 +135,13 @@ coser.ui.result.extractDataButton=Extraire au format RSufi coser.ui.result.extractDataLabel=Dossier d'extraction \: coser.ui.result.extractDataTitle=Extraction des donn\u00E9es RSufi +coser.ui.result.mapsDirectory=R\u00E9pertoire des cartes \: coser.ui.result.newResult=Nouveau r\u00E9sultat coser.ui.result.otherDataFile=Autre fichiers \: +coser.ui.result.publishResult=Publication \: coser.ui.result.requiredestComIndPath=Le fichier ESTCOMind est requis coser.ui.result.requiredestPopIndPath=Le fichier ESTPOPind est requis +coser.ui.result.requiredmapsPath=Le dossier des cartes est requis coser.ui.result.requiredname=Le nom du r\u00E9sultat est requis coser.ui.result.requiredrsufiVersion=Le champ 'rsufiVersion' est requis coser.ui.result.resultName=Nom du r\u00E9sultat \:
participants (1)
-
chatellier@users.labs.libre-entreprise.org