r228 - in trunk: . tutti-service tutti-service/src/main/java/fr/ifremer/tutti/service tutti-service/src/test/java/fr/ifremer/tutti tutti-service/src/test/java/fr/ifremer/tutti/service tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation tutti-ui-swing/src/main/java/fr/ifremer/tutti/
Author: tchemit Date: 2013-01-19 02:59:45 +0100 (Sat, 19 Jan 2013) New Revision: 228 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/228 Log: - improve action api - import/ export protocol - normalize i18n + add missing stuff (license headers, svn properties, serialVersionUID,...) - add some cancel actions Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiProtocolImportExportService.java trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/TuttiProtocolImportExportServiceTest.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java Modified: trunk/pom.xml trunk/tutti-service/pom.xml trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/pom.xml 2013-01-19 01:59:45 UTC (rev 228) @@ -393,6 +393,12 @@ <version>${jdbc.hsqldb.version}</version> </dependency> + <dependency> + <groupId>com.esotericsoftware.yamlbeans</groupId> + <artifactId>yamlbeans</artifactId> + <version>1.06</version> + </dependency> + </dependencies> </dependencyManagement> Modified: trunk/tutti-service/pom.xml =================================================================== --- trunk/tutti-service/pom.xml 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-service/pom.xml 2013-01-19 01:59:45 UTC (rev 228) @@ -86,6 +86,11 @@ <artifactId>commons-logging</artifactId> </dependency> + <dependency> + <groupId>com.esotericsoftware.yamlbeans</groupId> + <artifactId>yamlbeans</artifactId> + </dependency> + <!-- Logging --> <dependency> @@ -94,6 +99,11 @@ <scope>provided</scope> </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + </dependencies> <build> Added: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiProtocolImportExportService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiProtocolImportExportService.java (rev 0) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiProtocolImportExportService.java 2013-01-19 01:59:45 UTC (rev 228) @@ -0,0 +1,111 @@ +package fr.ifremer.tutti.service; + +/* + * #%L + * Tutti :: Service + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.esotericsoftware.yamlbeans.YamlConfig; +import com.esotericsoftware.yamlbeans.YamlException; +import com.esotericsoftware.yamlbeans.YamlReader; +import com.esotericsoftware.yamlbeans.YamlWriter; +import com.google.common.base.Charsets; +import com.google.common.io.Closeables; +import com.google.common.io.Files; +import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum; +import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.IOException; +import java.io.Reader; + +/** + * To import / export {@link TuttiProtocol} to {@code Yaml} file formats. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class TuttiProtocolImportExportService extends AbstractTuttiService { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(TuttiProtocolImportExportService.class); + + public void exportProtocol(TuttiProtocol protocol, File file) throws IOException { + + YamlConfig config = createConfig(); + + String id = protocol.getId(); + + if (log.isInfoEnabled()) { + log.info("Will export protocol: " + id + " to file: " + file); + } + + BufferedWriter fileWriter = Files.newWriter(file, Charsets.UTF_8); + try { + YamlWriter writer = new YamlWriter(fileWriter, config); + writer.write(protocol); + writer.close(); + fileWriter.close(); + } catch (YamlException e) { + throw new IOException("Could not export protocol " + id, e); + } finally { + Closeables.closeQuietly(fileWriter); + } + } + + protected YamlConfig createConfig() { + YamlConfig config = new YamlConfig(); + config.setPropertyElementType(TuttiProtocol.class, + "sampleCategoryOrder", + SampleCategoryEnum.class); + config.setClassTag(SpeciesProtocol.class.getSimpleName(), + SpeciesProtocol.class); + config.writeConfig.setAlwaysWriteClassname(false); + config.writeConfig.setWriteRootTags(false); + return config; + } + + public TuttiProtocol importProtocol(File file) throws IOException { + if (log.isInfoEnabled()) { + log.info("Will import protocol from file: " + file); + } + + YamlConfig config = createConfig(); + + Reader fileReader = Files.newReader(file, Charsets.UTF_8); + try { + YamlReader reader = new YamlReader(fileReader, config); + TuttiProtocol result = reader.read(TuttiProtocol.class); + fileReader.close(); + return result; + } catch (YamlException e) { + throw new IOException("Could not import protocol from file " + file, e); + } finally { + Closeables.closeQuietly(fileReader); + } + } +} Property changes on: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiProtocolImportExportService.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/TuttiProtocolImportExportServiceTest.java =================================================================== --- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/TuttiProtocolImportExportServiceTest.java (rev 0) +++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/TuttiProtocolImportExportServiceTest.java 2013-01-19 01:59:45 UTC (rev 228) @@ -0,0 +1,229 @@ +package fr.ifremer.tutti.service; + +/* + * #%L + * Tutti :: Service + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import com.google.common.base.Charsets; +import com.google.common.collect.Lists; +import com.google.common.io.Files; +import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum; +import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.SystemUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TestName; + +import java.io.File; + +/** + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class TuttiProtocolImportExportServiceTest { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(TuttiProtocolImportExportServiceTest.class); + + public static final long TIMESTAMP = System.nanoTime(); + + @Rule + public final TestName name = new TestName(); + + protected File datadirectory; + + protected TuttiProtocolImportExportService service; + + public static final String PROTOCOL_FILE_CONTENT = + "id: 1\n" + + "name: protocolName\n" + + "comment: Commentaire\n" + + "environmentPmfmId: \n" + + "- 114\n" + + "- 228\n" + + "- 821\n" + + "gearPmfmId: \n" + + "- 21\n" + + "- 22\n" + + "hydrologyPmfmId: []\n" + + "sampleCategoryOrder: \n" + + "- age\n" + + "species: \n" + + "- !SpeciesProtocol\n" + + " calcifySampleEnabled: true\n" + + " lengthStepPmfmId: 1394\n" + + " maturityEnabled: true\n" + + " sexEnabled: true\n" + + " speciesId: 11242\n" + + " weightEnabled: true\n" + + "- !SpeciesProtocol\n" + + " ageEnabled: true\n" + + " calcifySampleEnabled: true\n" + + " countIfNoFrequencyEnabled: true\n" + + " lengthStepPmfmId: 323\n" + + " maturityEnabled: true\n" + + " sexEnabled: true\n" + + " sizeEnabled: true\n" + + " speciesId: 3835\n" + + " weightEnabled: true"; + + @Before + public void setUp() throws Exception { + datadirectory = getTestSpecificDirectory(getClass(), + name.getMethodName(), + null); + + service = new TuttiProtocolImportExportService(); + } + + @Test + public void testExportProtocol() throws Exception { + + File exportFile = new File(datadirectory, "exportProtocol.yaml"); + + Files.createParentDirs(exportFile); + + Assert.assertFalse(exportFile.exists()); + TuttiProtocol protocol = new TuttiProtocol(); + protocol.setId("1"); + protocol.setName("protocolName"); + protocol.setComment("Commentaire"); + protocol.setSampleCategoryOrder(Lists.newArrayList(SampleCategoryEnum.age)); + protocol.setEnvironmentPmfmId(Lists.newArrayList("114", "228", "821")); + protocol.setGearPmfmId(Lists.newArrayList("21", "22")); + protocol.setHydrologyPmfmId(Lists.<String>newArrayList()); + + protocol.setSpecies(Lists.<SpeciesProtocol>newArrayList()); + SpeciesProtocol sp1 = new SpeciesProtocol(); + sp1.setSpeciesId("11242"); + sp1.setLengthStepPmfmId("1394"); + sp1.setCalcifySampleEnabled(true); + sp1.setMaturityEnabled(true); + sp1.setSexEnabled(true); + sp1.setWeightEnabled(true); + protocol.addSpecies(sp1); + + SpeciesProtocol sp2 = new SpeciesProtocol(); + sp2.setSpeciesId("3835"); + sp2.setLengthStepPmfmId("323"); + sp2.setAgeEnabled(true); + sp2.setCalcifySampleEnabled(true); + sp2.setCountIfNoFrequencyEnabled(true); + sp2.setMaturityEnabled(true); + sp2.setSexEnabled(true); + sp2.setSizeEnabled(true); + sp2.setWeightEnabled(true); + protocol.addSpecies(sp2); + + service.exportProtocol(protocol, exportFile); + Assert.assertTrue(exportFile.exists()); + + String exportFileToString = Files.toString(exportFile, Charsets.UTF_8).trim(); + Assert.assertEquals(PROTOCOL_FILE_CONTENT, exportFileToString); + } + + @Test + public void testImportProtocol() throws Exception { + + File importfile = new File(datadirectory, "importProtocol.yaml"); + + Files.createParentDirs(importfile); + + Files.write(PROTOCOL_FILE_CONTENT, importfile, Charsets.UTF_8); + + TuttiProtocol protocol = service.importProtocol(importfile); + + Assert.assertNotNull(protocol); + Assert.assertEquals("1", protocol.getId()); + Assert.assertEquals("protocolName", protocol.getName()); + Assert.assertEquals("Commentaire", protocol.getComment()); + Assert.assertNotNull(protocol.getSampleCategoryOrder()); + Assert.assertEquals(1, protocol.getSampleCategoryOrder().size()); + Assert.assertEquals(SampleCategoryEnum.age, protocol.getSampleCategoryOrder().get(0)); + Assert.assertEquals(Lists.newArrayList("114", "228", "821"), protocol.getEnvironmentPmfmId()); + Assert.assertEquals(Lists.newArrayList("21", "22"), protocol.getGearPmfmId()); + Assert.assertEquals(Lists.<String>newArrayList(), protocol.getHydrologyPmfmId()); + Assert.assertNotNull(protocol.getSpecies()); + Assert.assertEquals(2, protocol.getSpecies().size()); + SpeciesProtocol sp1 = protocol.getSpecies().get(0); + Assert.assertNotNull(sp1); + Assert.assertEquals("11242", sp1.getSpeciesId()); + Assert.assertEquals("1394", sp1.getLengthStepPmfmId()); + Assert.assertFalse(sp1.isAgeEnabled()); + Assert.assertTrue(sp1.isCalcifySampleEnabled()); + Assert.assertFalse(sp1.isCountIfNoFrequencyEnabled()); + Assert.assertTrue(sp1.isMaturityEnabled()); + Assert.assertTrue(sp1.isSexEnabled()); + Assert.assertFalse(sp1.isSizeEnabled()); + Assert.assertTrue(sp1.isWeightEnabled()); + + SpeciesProtocol sp2 = protocol.getSpecies().get(1); + Assert.assertNotNull(sp2); + Assert.assertEquals("3835", sp2.getSpeciesId()); + Assert.assertEquals("323", sp2.getLengthStepPmfmId()); + Assert.assertTrue(sp2.isAgeEnabled()); + Assert.assertTrue(sp2.isCalcifySampleEnabled()); + Assert.assertTrue(sp2.isCountIfNoFrequencyEnabled()); + Assert.assertTrue(sp2.isMaturityEnabled()); + Assert.assertTrue(sp2.isSexEnabled()); + Assert.assertTrue(sp2.isSizeEnabled()); + Assert.assertTrue(sp2.isWeightEnabled()); + + + } + + public static File getTestSpecificDirectory(Class<?> testClassName, + String methodName, + String classifier) { + // Trying to look for the temporary folder to store data for the test + String tempDirPath = System.getProperty("java.io.tmpdir"); + if (tempDirPath == null) { + // can this really occur ? + tempDirPath = ""; + if (log.isWarnEnabled()) { + log.warn("'\"java.io.tmpdir\" not defined"); + } + } + File tempDirFile = SystemUtils.getJavaIoTmpDir(); + + // create the directory to store database data + String dataBasePath = testClassName.getName() + + File.separator // a directory with the test class name + + methodName; // a sub-directory with the method name + + if (StringUtils.isNotBlank(classifier)) { + dataBasePath += classifier; + } + dataBasePath += '_' + + TIMESTAMP; // and a timestamp + File databaseFile = new File(tempDirFile, dataBasePath); + return databaseFile; + } +} Property changes on: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/TuttiProtocolImportExportServiceTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -31,6 +31,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.beans.AbstractBean; +import org.nuiton.util.decorator.Decorator; import javax.swing.AbstractAction; import javax.swing.JDialog; @@ -47,7 +48,6 @@ import java.util.concurrent.Executors; import static org.nuiton.i18n.I18n._; -import org.nuiton.util.decorator.Decorator; /** * TODO @@ -71,7 +71,7 @@ private final boolean hideBody; - protected abstract void doAction(ActionEvent event); + protected abstract void doAction(ActionEvent event) throws Exception; protected AbstractTuttiAction(H handler, String name, @@ -89,9 +89,24 @@ } protected String getActionName() { - return (String) getValue(NAME); + return (String) getValue("actionName"); } + protected String getActionDescription() { + return (String) getValue("actionDescription"); + } + + protected boolean prepareAction(ActionEvent event) { + putValue("actionName", getValue(NAME)); + putValue("actionDescription", getValue(SHORT_DESCRIPTION)); + return true; + } + + protected void releaseAction(ActionEvent event) { + putValue("actionName", null); + putValue("actionDescription", null); + } + @Override public final void actionPerformed(final ActionEvent event) { @@ -99,27 +114,33 @@ log.info("Will starts action: " + this); } - executorService.submit(new Runnable() { - @Override - public void run() { + boolean doAction = prepareAction(event); - TimerTask timer = new ActionTimerTask(); + if (doAction) { + executorService.submit(new Runnable() { + @Override + public void run() { - t.schedule(timer, 500); - try { + TimerTask timer = new ActionTimerTask(getActionName(), getActionDescription()); - doAction(event); - } catch (Exception e) { - ErrorDialogUI.showError(e); - timer.cancel(); - } finally { - if (log.isInfoEnabled()) { - log.info("After action: " + this); + t.schedule(timer, 500); + try { + + doAction(event); + } catch (Exception e) { + ErrorDialogUI.showError(e); + timer.cancel(); + } finally { + if (log.isInfoEnabled()) { + log.info("After action: " + this); + } + timer.cancel(); + + releaseAction(event); } - timer.cancel(); } - } - }); + }); + } } public TuttiUIContext getContext() { @@ -139,8 +160,18 @@ } protected class ActionTimerTask extends TimerTask { - JDialog d; + private final String actionName; + + private final String actionDescription; + + private JDialog d; + + public ActionTimerTask(String actionName, String actionDescription) { + this.actionName = actionName; + this.actionDescription = actionDescription; + } + @Override public void run() { @@ -158,7 +189,7 @@ JLabel label = new JLabel(); EmptyBorder border = new EmptyBorder(5, 5, 5, 5); label.setBorder(border); - label.setText(_("tutti.message.action.running", getActionName())); + label.setText(_("tutti.message.action.running", actionName)); panel.add(label, BorderLayout.CENTER); JProgressBar progressBar = new JProgressBar(); progressBar.setBorder(border); @@ -203,7 +234,11 @@ } } } - + + protected void sendMessage(String message) { + getContext().showInformationMessage(message); + } + protected <O> Decorator<O> getDecorator(Class<O> type, String name) { DecoratorService decoratorService = getContext().getService(DecoratorService.class); @@ -222,6 +257,6 @@ } protected String decorate(Object object) { - return getDecorator(object.getClass(), null).toString(object); + return handler.getDecorator(object.getClass(), null).toString(object); } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -49,8 +49,8 @@ super(handler, "editCruise", "edit", - _("tutti.action.editCruise"), - _("tutti.action.editCruise.tip"), + _("tutti.action.editSelectedCruise"), + _("tutti.action.editSelectedCruise.tip"), true ); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -49,8 +49,8 @@ super(handler, "editProgram", "edit", - _("tutti.action.editProgram"), - _("tutti.action.editProgram.tip"), + _("tutti.action.editSelectedProgram"), + _("tutti.action.editSelectedProgram.tip"), true ); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -49,8 +49,8 @@ super(handler, "editProtocol", "edit", - _("tutti.action.editProtocol"), - _("tutti.action.editProtocol.tip"), + _("tutti.action.editSelectedProtocol"), + _("tutti.action.editSelectedProtocol.tip"), true ); setMnemonic('P'); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUIHandler.java 2013-01-19 01:59:45 UTC (rev 228) @@ -369,6 +369,11 @@ } } catch (Exception e) { + ErrorDialogUI.showError(e); + if (log.isErrorEnabled()) { + log.error("Could not change to screen " + screen, e); + } + // go back to home context.setScreen(TuttiScreen.SELECT_CRUISE); } Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -0,0 +1,36 @@ +package fr.ifremer.tutti.ui.swing.content.cruise; + +import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.TuttiScreen; + +import java.awt.event.ActionEvent; + +import static org.nuiton.i18n.I18n._; + +/** + * TODO + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class CancelEditCruiseAction extends AbstractTuttiAction<EditCruiseUIModel, EditCruiseUIHandler> { + + private static final long serialVersionUID = 1L; + + public CancelEditCruiseAction(EditCruiseUIHandler handler) { + super(handler, + "cancelEditCruise", + "cancel", + _("tutti.action.cancel.editcruise"), + _("tutti.action.cancel.editCruise.tip"), + true + ); + } + + @Override + protected void doAction(ActionEvent event) { + + getContext().setScreen(TuttiScreen.SELECT_CRUISE); + } + +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/CancelEditCruiseAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-19 01:59:45 UTC (rev 228) @@ -137,7 +137,6 @@ text: "tutti.label.filterVesselType"; } - #filterVesselAllButton { text: "tutti.label.filterVesselType.all"; toolTipText: "tutti.label.filterVesselType.all.tip"; @@ -191,8 +190,7 @@ } #cancelButton { - actionIcon: cancel; - text: "tutti.action.cancel"; + action: {cancelEditCruiseAction}; } #generateNameButton { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-01-19 01:59:45 UTC (rev 228) @@ -73,6 +73,7 @@ initializer='getContextValue(EditCruiseUIModel.class)'/> <SaveCruiseAction id='saveCruiseAction' constructorParams='handler'/> + <CancelEditCruiseAction id='cancelEditCruiseAction' constructorParams='handler'/> <SwingValidatorMessageTableModel id='errorTableModel'/> @@ -212,7 +213,7 @@ <row> <cell columns='6'> <JPanel layout='{new GridLayout(1, 0)}'> - <JButton id='cancelButton' onActionPerformed='handler.cancel()'/> + <JButton id='cancelButton'/> <JButton id='saveButton'/> </JPanel> </cell> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-01-19 01:59:45 UTC (rev 228) @@ -25,7 +25,6 @@ */ import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.referential.Gear; @@ -34,7 +33,6 @@ import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler; import fr.ifremer.tutti.ui.swing.MainUI; -import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.TuttiUI; import jaxx.runtime.JAXXUtil; import jaxx.runtime.context.JAXXContextEntryDef; @@ -271,11 +269,6 @@ return ui.getModel(); } - public void cancel() { - - context.setScreen(TuttiScreen.SELECT_CRUISE); - } - public static final String cruiseNameFormat = "%1$s_%2$s"; public void generateCampaignName() { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -1,28 +1,54 @@ - package fr.ifremer.tutti.ui.swing.content.cruise; +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.TuttiUIContext; + import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n._; /** - * * @author kmorin <kmorin@codelutin.com> + * @since 1.0 */ public class SaveCruiseAction extends AbstractTuttiAction<EditCruiseUIModel, EditCruiseUIHandler> { + private static final long serialVersionUID = 1L; + public SaveCruiseAction(EditCruiseUIHandler handler) { super(handler, - "saveCruise", - "save", - _("tutti.action.save.cruise"), - _("tutti.action.save.cruise.tip"), + "saveCruise", + "save", + _("tutti.action.saveCruise"), + _("tutti.action.saveCruise.tip"), true ); } @@ -31,7 +57,8 @@ protected void doAction(ActionEvent event) { TuttiUIContext context = getContext(); EditCruiseUIModel model = getModel(); - PersistenceService persistenceService = context.getService(PersistenceService.class); + PersistenceService persistenceService = + context.getService(PersistenceService.class); Cruise bean = model.toBean(); @@ -48,5 +75,5 @@ context.setScreen(TuttiScreen.SELECT_CRUISE); } - + } Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/SaveCruiseAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/CloneProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -52,8 +52,8 @@ super(handler, "cloneProtocol", "copy", - _("tutti.action.clone"), - _("tutti.action.clone.protocol.tip"), + _("tutti.action.cloneProtocol"), + _("tutti.action.cloneProtocol.tip"), true ); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditCruiseAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -24,7 +24,7 @@ * #L% */ -import com.ezware.oxbow.swingbits.util.Preconditions; +import com.google.common.base.Preconditions; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.TuttiScreen; @@ -47,7 +47,7 @@ super(handler, "editCruise", "edit", - _("tutti.action.edit"), + _("tutti.action.editCruise"), _("tutti.action.editCruise.tip"), true ); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProgramAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -24,7 +24,7 @@ * #L% */ -import com.ezware.oxbow.swingbits.util.Preconditions; +import com.google.common.base.Preconditions; import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.TuttiScreen; @@ -47,7 +47,7 @@ super(handler, "editProgram", "edit", - _("tutti.action.edit"), + _("tutti.action.editProgram"), _("tutti.action.editProgram.tip"), true ); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/EditProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -24,7 +24,7 @@ * #L% */ -import com.ezware.oxbow.swingbits.util.Preconditions; +import com.google.common.base.Preconditions; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; import fr.ifremer.tutti.ui.swing.TuttiScreen; @@ -52,8 +52,8 @@ super(handler, "editProtocol", "edit", - _("tutti.action.edit"), - _("tutti.action.edit.protocol.tip"), + _("tutti.action.editProtocol"), + _("tutti.action.editProtocol.tip"), true ); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -26,11 +26,14 @@ import com.ezware.oxbow.swingbits.util.Preconditions; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.service.TuttiProtocolImportExportService; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.awt.event.ActionEvent; +import java.io.File; import static org.nuiton.i18n.I18n._; @@ -48,23 +51,66 @@ private static final Log log = LogFactory.getLog(ExportProtocolAction.class); + protected File file; + public ExportProtocolAction(SelectCruiseUIHandler handler) { super(handler, "exportProtocol", "export", - _("tutti.action.export"), - _("tutti.action.export.protocol.tip"), + _("tutti.action.exportProtocol"), + _("tutti.action.exportProtocol.tip"), true ); } @Override - protected void doAction(ActionEvent e) { + protected boolean prepareAction(ActionEvent event) { + // choose file to import + + file = TuttiUIUtil.chooseFile( + getContext().getMainUI(), + _("tutti.title.choose.protocolExportFile"), + _("tutti.action.chooseProtocolFile"), + null, + "^.*\\*.tuttiProtocol$", _("tutti.file.protocol") + ); + + boolean doAction = file != null; + if (doAction) { + super.prepareAction(event); + } + return doAction; + } + + @Override + protected void releaseAction(ActionEvent event) { + super.releaseAction(event); + file = null; + } + + @Override + protected void doAction(ActionEvent e) throws Exception { TuttiProtocol protocol = getModel().getProtocol(); Preconditions.checkNotNull(protocol); if (log.isInfoEnabled()) { log.info("Export protocol: " + protocol.getId()); } + + if (log.isInfoEnabled()) { + log.info("Will save protocol " + protocol.getId() + + " to file: " + file); + } + + if (file.getName().endsWith(".tuttiProtocol")) { + file = new File(file.getParentFile(), file.getName() + ".tuttiProtocol"); + } + // export protocol + TuttiProtocolImportExportService service = + getContext().getService(TuttiProtocolImportExportService.class); + service.exportProtocol(protocol, file); + + sendMessage("Protocole [" + protocol.getName() + + "] exporté dans le fichier " + file.getName() + "."); } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -24,11 +24,17 @@ * #L% */ +import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.TuttiProtocolImportExportService; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.TuttiScreen; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.awt.event.ActionEvent; +import java.io.File; import static org.nuiton.i18n.I18n._; @@ -46,20 +52,73 @@ private static final Log log = LogFactory.getLog(ImportProtocolAction.class); + private File file; + public ImportProtocolAction(SelectCruiseUIHandler handler) { super(handler, "importProtocol", "import", - _("tutti.action.import"), - _("tutti.action.import.protocol.tip"), + _("tutti.action.importProtocol"), + _("tutti.action.importProtocol.tip"), true ); } @Override - protected void doAction(ActionEvent e) { + protected boolean prepareAction(ActionEvent event) { + + // choose file to import + file = TuttiUIUtil.chooseFile( + getContext().getMainUI(), + _("tutti.title.choose.protocolImportFile"), + _("tutti.action.chooseProtocolFile"), + null, + "^.*\\.tuttiProtocol$", _("tutti.file.protocol") + ); + boolean doAction = file != null; + if (doAction) { + super.prepareAction(event); + } + return doAction; + } + + @Override + protected void releaseAction(ActionEvent event) { + super.releaseAction(event); + file = null; + } + + @Override + protected void doAction(ActionEvent e) throws Exception { if (log.isInfoEnabled()) { log.info("TODO Import protocol!"); } + + if (log.isInfoEnabled()) { + log.info("Will import protocol file: " + file); + } + + // import protocol + TuttiProtocolImportExportService service = + getContext().getService(TuttiProtocolImportExportService.class); + TuttiProtocol protocol = service.importProtocol(file); + + sendMessage("Protocole [" + protocol.getName() + "] lu depuis le fichier."); + + // remove id + protocol.setId(null); + + // persist protocol + PersistenceService persistenceService = + getContext().getService(PersistenceService.class); + + TuttiProtocol savedProtocol = + persistenceService.createProtocol(protocol); + + if (log.isInfoEnabled()) { + log.info("Edit saved protocol: " + savedProtocol.getId()); + } + getContext().setProtocolId(savedProtocol.getId()); + getContext().setScreen(TuttiScreen.EDIT_PROTOCOL); } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewCruiseAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -45,7 +45,7 @@ super(handler, "newCruise", "add", - _("tutti.action.new"), + _("tutti.action.newCruise"), _("tutti.action.newCruise.tip"), true ); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProgramAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -45,7 +45,7 @@ super(handler, "newProgram", "add", - _("tutti.action.new"), + _("tutti.action.newProgram"), _("tutti.action.newProgram.tip"), true ); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/NewProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -50,8 +50,8 @@ super(handler, "newProtocol", "add", - _("tutti.action.new"), - _("tutti.action.new.protocol.tip"), + _("tutti.action.newProtocol"), + _("tutti.action.newProtocol.tip"), true ); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2013-01-19 01:59:45 UTC (rev 228) @@ -42,14 +42,10 @@ #editProgramButton { enabled: {model.isProgramFound()}; action: {editProgramAction}; - /*text: "tutti.action.edit"; - actionIcon: edit;*/ } #newProgramButton { action: {newProgramAction}; - /*text: "tutti.action.new"; - actionIcon: add;*/ } #cruiseLabel { @@ -66,15 +62,11 @@ #editCruiseButton { enabled: {model.isProgramFound() && model.isCruiseFound()}; action: {editCruiseAction} - /*text: "tutti.action.edit"; - actionIcon: edit;*/ } #newCruiseButton { enabled: {model.isProgramFound()}; action: {newCruiseAction}; - /*actionIcon: add; - text: "tutti.action.new";*/ } #protocolLabel { @@ -101,13 +93,9 @@ #editCatchesButton { action: {editCatchesAction}; enabled: {uiContext.isCruiseFilled()}; - /*text: "tutti.action.fillCatches";*/ - actionIcon: edit; } #validateCatchesButton { action: {validateCatchesAction}; enabled: {uiContext.isCruiseFilled()}; - /*text: "tutti.action.validateCatches";*/ - actionIcon: validate; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -1,18 +1,41 @@ package fr.ifremer.tutti.ui.swing.content.operation; +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; -import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUIHandler; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; -import java.awt.event.ActionEvent; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import java.awt.event.ActionEvent; + import static org.nuiton.i18n.I18n._; /** - * * @author kmorin <kmorin@codelutin.com> * @since 1.0 */ @@ -27,19 +50,19 @@ super(handler, "saveFishingOperation", "save", - _("tutti.action.save.fishingOperation"), - _("tutti.action.save.fishingOperation.tip"), + _("tutti.action.saveFishingOperation"), + _("tutti.action.saveFishingOperation.tip"), false ); } - + @Override protected void doAction(ActionEvent event) { - + EditFishingOperationUIHandler handler = getHandler(); - + TuttiBeanMonitor<EditFishingOperationUIModel> monitor = handler.getFishingOperationMonitor(); - + // previous fishingOperation was modified, let's save it EditFishingOperationUIModel beanToSave = monitor.getBean(); @@ -56,7 +79,7 @@ // save modified fishing operation FishingOperation toSave = beanToSave.toBean(); - + handler.showInformationMessage( "[ Trait - Caractéristiques générales ] " + "Sauvegarde des modifications de " + decorate(toSave) + Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -0,0 +1,36 @@ +package fr.ifremer.tutti.ui.swing.content.program; + +import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.TuttiScreen; + +import java.awt.event.ActionEvent; + +import static org.nuiton.i18n.I18n._; + +/** + * TODO + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class CancelEditProgramAction extends AbstractTuttiAction<EditProgramUIModel, EditProgramUIHandler> { + + private static final long serialVersionUID = 1L; + + public CancelEditProgramAction(EditProgramUIHandler handler) { + super(handler, + "cancelEditProgram", + "cancel", + _("tutti.action.cancel.editProgram"), + _("tutti.action.cancel.editProgram.tip"), + true + ); + } + + @Override + protected void doAction(ActionEvent event) { + + getContext().setScreen(TuttiScreen.SELECT_CRUISE); + } + +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/CancelEditProgramAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.css 2013-01-19 01:59:45 UTC (rev 228) @@ -65,6 +65,5 @@ } #cancelButton { - text: "tutti.action.cancel"; - actionIcon: cancel; + action: {cancelEditProgramAction}; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUI.jaxx 2013-01-19 01:59:45 UTC (rev 228) @@ -62,7 +62,9 @@ initializer='getContextValue(EditProgramUIModel.class)'/> <SaveProgramAction id='saveProgramAction' constructorParams='handler'/> - + <CancelEditProgramAction id='cancelEditProgramAction' + constructorParams='handler'/> + <SwingValidatorMessageTableModel id='errorTableModel'/> <BeanValidator id='validator' bean='model' errorTableModel='errorTableModel' @@ -111,7 +113,7 @@ <row anchor='south'> <cell columns='2'> <JPanel layout='{new GridLayout(1, 0)}'> - <JButton id='cancelButton' onActionPerformed='handler.cancel()'/> + <JButton id='cancelButton'/> <JButton id='saveButton'/> </JPanel> </cell> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/EditProgramUIHandler.java 2013-01-19 01:59:45 UTC (rev 228) @@ -24,17 +24,12 @@ * #L% */ -import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler; import fr.ifremer.tutti.ui.swing.MainUI; -import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.TuttiUI; -import fr.ifremer.tutti.ui.swing.TuttiUIContext; import jaxx.runtime.validator.swing.SwingValidator; -import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer; -import jaxx.runtime.validator.swing.SwingValidatorUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -107,7 +102,7 @@ SwingValidator validator = ui.getValidator(); listenValidatorValid(validator, model); - + MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName()); main.clearValidators(); main.registerValidator(validator); @@ -130,8 +125,4 @@ return ui.getModel(); } - public void cancel() { - context.setScreen(TuttiScreen.SELECT_CRUISE); - } - } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -1,6 +1,30 @@ package fr.ifremer.tutti.ui.swing.content.program; +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.service.PersistenceService; @@ -29,8 +53,8 @@ super(handler, "saveProgram", "save", - _("tutti.action.save.program"), - _("tutti.action.save.program.tip"), + _("tutti.action.saveProgram"), + _("tutti.action.saveProgram.tip"), true ); } Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/program/SaveProgramAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -0,0 +1,36 @@ +package fr.ifremer.tutti.ui.swing.content.protocol; + +import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.TuttiScreen; + +import java.awt.event.ActionEvent; + +import static org.nuiton.i18n.I18n._; + +/** + * TODO + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class CancelEditProtocolAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUIHandler> { + + private static final long serialVersionUID = 1L; + + public CancelEditProtocolAction(EditProtocolUIHandler handler) { + super(handler, + "cancelEditProtocol", + "cancel", + _("tutti.action.cancel.editProtocol"), + _("tutti.action.cancel.editProtocol.tip"), + true + ); + } + + @Override + protected void doAction(ActionEvent event) { + + getContext().setScreen(TuttiScreen.SELECT_CRUISE); + } + +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/CancelEditProtocolAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-01-19 01:59:45 UTC (rev 228) @@ -57,8 +57,7 @@ } #cancelButton { - text: "tutti.action.cancel"; - actionIcon: cancel; + action: {cancelEditProtocolAction}; } #speciesComboBox { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-01-19 01:59:45 UTC (rev 228) @@ -68,6 +68,7 @@ <EditProtocolUIModel id='model' initializer='getContextValue(EditProtocolUIModel.class)'/> + <CancelEditProtocolAction id='cancelEditProtocolAction' constructorParams='handler'/> <SaveProtocolAction id='saveProtocolAction' constructorParams='handler'/> <SwingValidatorMessageTableModel id='errorTableModel'/> @@ -169,7 +170,7 @@ </JTabbedPane> <JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'> - <JButton id='cancelButton' onActionPerformed='handler.cancel()'/> + <JButton id='cancelButton'/> <JButton id='saveButton'/> </JPanel> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-19 01:59:45 UTC (rev 228) @@ -29,7 +29,6 @@ import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryEnum; @@ -39,7 +38,6 @@ import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.ui.swing.MainUI; import fr.ifremer.tutti.ui.swing.MainUIHandler; -import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.TuttiUI; import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; @@ -57,8 +55,6 @@ import javax.swing.event.ListSelectionEvent; import javax.swing.event.TableColumnModelEvent; import javax.swing.event.TableColumnModelListener; -import javax.swing.table.TableColumn; -import javax.swing.table.TableColumnModel; import java.util.Collection; import java.util.List; import java.util.Map; @@ -387,25 +383,13 @@ //-- Public methods --// //------------------------------------------------------------------------// - public void cancel() { - - context.setScreen(TuttiScreen.SELECT_CRUISE); - } - public void addRow() { - log.info("addRow 1"); Species species = (Species) ui.getSpeciesComboBox().getSelectedItem(); - log.info("addRow 2"); EditProtocolSpeciesRowModel protocol = getTableModel().createNewRow(); - log.info("addRow 3"); protocol.setSpecies(species); - log.info("addRow 4"); getTableModel().addNewRow(protocol); - log.info("addRow 5"); ui.getSpeciesComboBox().removeItem(species); - log.info("addRow 6"); selectFirstInCombo(ui.getSpeciesComboBox()); - log.info("addRow 7"); // getModel().setModify(true); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-01-19 01:59:45 UTC (rev 228) @@ -1,6 +1,30 @@ package fr.ifremer.tutti.ui.swing.content.protocol; +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + import com.google.common.collect.BiMap; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -33,13 +57,15 @@ /** Logger. */ private static final Log log = LogFactory.getLog(SaveProtocolAction.class); - + + private static final long serialVersionUID = 1L; + public SaveProtocolAction(EditProtocolUIHandler handler) { super(handler, "saveProtocol", "save", - _("tutti.action.save.protocol"), - _("tutti.action.save.protocol.tip"), + _("tutti.action.saveProtocol"), + _("tutti.action.saveProtocol.tip"), true ); } Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-18 18:07:24 UTC (rev 227) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-19 01:59:45 UTC (rev 228) @@ -3,37 +3,49 @@ tutti.action.about=À propos tutti.action.about.tip=À Propos tutti.action.cancel=Annuler +tutti.action.cancel.editCruise.tip=Annuler l'édition (ou la création) de la campagne +tutti.action.cancel.editProgram=Annuler +tutti.action.cancel.editProgram.tip=Annuler l'édition (ou la création) de la série de campagne +tutti.action.cancel.editProtocol=Annuler +tutti.action.cancel.editProtocol.tip=Annuler l'édition (ou la création) du protocole +tutti.action.cancel.editcruise= tutti.action.casino-import=Import Casino -tutti.action.clone=Cloner -tutti.action.clone.protocol.tip=Dupliquer le protocole sélectionné +tutti.action.chooseProtocolFile=Choisir le fichier de protocole +tutti.action.cloneProtocol=Cloner +tutti.action.cloneProtocol.tip=Dupliquer le protocole sélectionné tutti.action.close=Fermer tutti.action.configuration=Configuration tutti.action.configuration.tip=Configurer Tutti tutti.action.createSpeciesBatch=Créer un lot pour une espèce -tutti.action.edit=Editer -tutti.action.edit.protocol.tip=Éditer le protocole sélectionné tutti.action.editCatches=Saisir les captures tutti.action.editCatches.tip=Saisir des captures -tutti.action.editCruise=Éditer la campagne +tutti.action.editCruise=Éditer tutti.action.editCruise.tip=Éditer la campagne sélectionnée tutti.action.editProgram=Programme tutti.action.editProgram.tip=Éditer le programme sélectionné tutti.action.editProtocol=Protocole -tutti.action.editProtocol.tip= +tutti.action.editProtocol.tip=Éditer le protocol sélectionné +tutti.action.editSelectedCruise=Campagne +tutti.action.editSelectedCruise.tip=Éditer la campagne sélectionnée +tutti.action.editSelectedProgram=Série de campagne +tutti.action.editSelectedProgram.tip=Éditer la série de campagne sélectionnée +tutti.action.editSelectedProtocol=Protocole +tutti.action.editSelectedProtocol.tip=Éditer le protocole sélectionnée tutti.action.exit=Quitter tutti.action.exit.tip=Quitter l'application -tutti.action.export=Exporter -tutti.action.export.protocol.tip=Exporter le protocole sélectionné +tutti.action.exportProtocol=Exporter +tutti.action.exportProtocol.tip=Exporter le protocole sélectionné tutti.action.generate=Générer tutti.action.generateCampaignName=Générer le nom -tutti.action.import=Importer -tutti.action.import.protocol.tip=Importer un protocole -tutti.action.manageProtocol=Protocole -tutti.action.manageProtocol.tip=Gérer les protocoles +tutti.action.importProtocol=Importer +tutti.action.importProtocol.tip=Importer un protocole tutti.action.new=Nouveau -tutti.action.new.protocol.tip=Créer un nouve protocole +tutti.action.newCruise=Nouveau tutti.action.newCruise.tip=Créer une nouvelle campagne +tutti.action.newProgram=Nouveau tutti.action.newProgram.tip=Créer une nouvelle série de campagne +tutti.action.newProtocol=Nouveau +tutti.action.newProtocol.tip=Créer un nouveau protocole tutti.action.pupitri-import=Import PUPITRI tutti.action.reload.actions=Recharger les actions tutti.action.reload.application=Recharger l'application @@ -46,14 +58,14 @@ tutti.action.removeSpeciesSubBatch.tip=Supprimer tous les lots fils du lot sélectionné tutti.action.reset.fishingOperationValidState=Réinitialiser tutti.action.save=Enregistrer -tutti.action.save.cruise=Enregistrer -tutti.action.save.cruise.tip=Enregistrer la campagne -tutti.action.save.fishingOperation=Enregistrer -tutti.action.save.fishingOperation.tip=Enregistrer le trait -tutti.action.save.program=Enregistrer -tutti.action.save.program.tip=Enregistrer la série de campagne -tutti.action.save.protocol=Enregistrer -tutti.action.save.protocol.tip=Enregistrer le protocol +tutti.action.saveCruise=Enregistrer +tutti.action.saveCruise.tip=Enregistrer la campagne +tutti.action.saveFishingOperation=Enregistrer +tutti.action.saveFishingOperation.tip=Enregistrer le trait +tutti.action.saveProgram=Enregistrer +tutti.action.saveProgram.tip=Enregistrer la série de campagne +tutti.action.saveProtocol=Enregistrer +tutti.action.saveProtocol.tip=Enregistrer le protocol tutti.action.selectCruise=Sélectionner une campagne tutti.action.selectCruise.tip=Sélectionner la campagne à utiliser tutti.action.site=Site @@ -81,8 +93,8 @@ tutti.config.ui.shortcut.closePopup=Fermer une popup tutti.config.ui.showNumberEditorButton=Afficher le pavé numérique de saisie tutti.config.ui.useSexagecimalEditor=Utiliser l'éditeur sexagécimal pour entrer des coordonnées -tutti.duration.format=dj Hh m'm' tutti.errorTable.title=Table d'erreurs +tutti.file.protocol=Extension d'un fichier de protocole Tutti tutti.label.attachmentEditor.file=Fichier tutti.label.attachmentEditor.fileComment=Commentaire tutti.label.attachmentEditor.fileName=Nom @@ -132,8 +144,6 @@ tutti.label.filterVesselType.fishing.tip=Uniquement les navires pro tutti.label.filterVesselType.scientific=Scientifique tutti.label.filterVesselType.scientific.tip=Uniquement les navires scientifiques -tutti.label.fishingOperation.date=Date -tutti.label.fishingOperation.distanceChalutee=Distance chalutée tutti.label.fishingOperation.duration=Durée tutti.label.fishingOperation.fishingOperationInvalid=Trait invalide tutti.label.fishingOperation.fishingOperationNumber=Numéro de Trait @@ -143,8 +153,6 @@ tutti.label.fishingOperation.gearDate=Date tutti.label.fishingOperation.gearLatitude=Latitude tutti.label.fishingOperation.gearLongitude=Longitude -tutti.label.fishingOperation.gearShootingCoordinatesDD=DD -tutti.label.fishingOperation.gearShootingCoordinatesDMS=DMS tutti.label.fishingOperation.gearShootingEnd=Fin de traine tutti.label.fishingOperation.gearShootingStart=Début de traine tutti.label.fishingOperation.gearTime=Heure @@ -185,7 +193,6 @@ tutti.label.tab.accidentel=Captures accidentelles tutti.label.tab.benthos=Benthos tutti.label.tab.catches=Captures -tutti.label.tab.catchesCaracteristics=Caractéristiques générales tutti.label.tab.fishingOperation=Trait tutti.label.tab.fishingOperation.environment=Environnement tutti.label.tab.fishingOperation.gearShooting=Mise en oeuvre de l'engin @@ -206,7 +213,6 @@ tutti.legend.catch.macroWaste=Macro déchets tutti.legend.catch.species=Espèces tutti.legend.catch.total=Capture -tutti.legend.filterSpeciesBatchMode=Filtrer les lots tutti.legend.frequencyConfiguration=Configuration tutti.legend.splitSpeciesBatchConfiguration=Configuration tutti.menu.actions=Actions @@ -223,13 +229,12 @@ tutti.menu.synchronisationImport.tip=Effectuer des imports tutti.menu.synchronisations=Synchronisation tutti.menu.synchronisations.tip=Import/Export -tutti.message.action.running=<html>Action <strong>%s</strong> en cours d'execution...<br/><hr/>Merci de bien vouloir patienter.</html> +tutti.message.action.running=<html>Action <strong>%s</strong> en cours d'execution...<hr/></html> tutti.sampleCategoryType.age=Age tutti.sampleCategoryType.maturity=Maturité tutti.sampleCategoryType.sex=Sexe tutti.sampleCategoryType.size=Class Tri. tutti.sampleCategoryType.sortedUnsorted=V/HV -tutti.sampleCategoryType.species=Espèce tutti.table.accidental.batch.header.comment=Commentaire tutti.table.accidental.batch.header.file=Pièces-jointes tutti.table.accidental.batch.header.speciesByCode=Espèce @@ -294,6 +299,8 @@ tutti.table.species.sampleCategory.header.weight=Poids tutti.timeeditor.H=H tutti.title.about=À propos de Tutti +tutti.title.choose.protocolExportFile=Choisir le fichier où exporter le protocole +tutti.title.choose.protocolImportFile=Choisir le fichier du protocole à importer tutti.title.create.cruise=Créer une nouvelle campagne tutti.title.create.program=Créer une nouvelle série de campagne tutti.title.create.protocol=Créer un nouveau protocol de saisie @@ -313,7 +320,6 @@ tutti.title.selectedProtocol=Protocol %s tutti.title.splitBatch=Catégoriser un lot tutti.title.validate.operations=Validation des opérations de pêches (%s) -tutti.title.waitingBar=Action en cours... tutti.to.be.done=< A FAIRE > tutti.tooltip.attachment.none=Pas de pièce-jointes tutti.tooltip.comment.none=Pas de commentaire
participants (1)
-
tchemit@users.forge.codelutin.com