This is an automated email from the git hooks/post-receive script. New commit to branch feature/wloLikeFrequencyScreen#5128 in repository tutti. See http://git.codelutin.com/tutti.git commit a20be7aa60d9db46f8e12412479069a196433216 Author: Kevin Morin <morin@codelutin.com> Date: Wed Oct 22 19:21:15 2014 +0200 refs #5128 [BIGFIN] Idée d'amélioration : graphique dans l'écran mensuration et liste enregistrement : s'imprégner de l'application android WLO --- .../SpeciesFrequencyLogCellComponent.java | 172 +++++++++++++++++++++ .../frequency/SpeciesFrequencyLogRowModel.java | 7 +- .../frequency/SpeciesFrequencyLogsTableModel.java | 3 +- .../species/frequency/SpeciesFrequencyUI.css | 10 ++ .../species/frequency/SpeciesFrequencyUI.jaxx | 23 +-- .../frequency/SpeciesFrequencyUIHandler.java | 122 ++++++++++----- .../ui/swing/util/ThreeColumnsSplitPaneModel.java | 34 ---- .../resources/i18n/tutti-ui-swing_en_GB.properties | 2 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 3 +- 9 files changed, 292 insertions(+), 84 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyLogCellComponent.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyLogCellComponent.java new file mode 100644 index 0000000..8128f2b --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyLogCellComponent.java @@ -0,0 +1,172 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency; + +/* + * #%L + * Tutti :: UI + * %% + * Copyright (C) 2012 - 2014 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 jaxx.runtime.swing.JAXXWidgetUtil; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import sun.swing.DefaultLookup; + +import javax.swing.*; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.Serializable; + +import static org.nuiton.i18n.I18n.t; + +/** + * Component to render and edit frequency stuff from batch table. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.2 + */ +public class SpeciesFrequencyLogCellComponent extends JPanel implements Serializable { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = LogFactory.getLog(SpeciesFrequencyLogCellComponent.class); + + private JLabel label = new JLabel(); + + private JButton deleteButton = new JButton(); + + private SpeciesFrequencyLogRowModel row; + + public SpeciesFrequencyLogCellComponent() { + setLayout(new BorderLayout()); + + Font defaultFont = UIManager.getFont("Table.font"); + label.setFont(defaultFont); + label.setOpaque(false); + add(label, BorderLayout.CENTER); + + deleteButton.setIcon(JAXXWidgetUtil.createActionIcon("delete")); + deleteButton.setBorderPainted(false); + deleteButton.setBorder(null); + deleteButton.setBackground(null); + label.setOpaque(false); + add(deleteButton, BorderLayout.EAST); + } + + public SpeciesFrequencyLogCellComponent(final SpeciesFrequencyUIHandler speciesFrequencyUIHandler) { + this(); + deleteButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if (row != null) { + int i = JOptionPane.showConfirmDialog( + speciesFrequencyUIHandler.getTopestUI(), + t("tutti.editSpeciesFrequencies.logTable.removeRow.confirm.message", row.getLabel()), + t("tutti.editSpeciesFrequencies.logTable.removeRow.confirm.title"), + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE); + + if (i == JOptionPane.YES_OPTION) { + speciesFrequencyUIHandler.decrementLengthStep(row); + } + } + } + }); + } + + public void setData(String data) { + label.setText(data); + } + + public void setRow(SpeciesFrequencyLogRowModel row) { + this.row = row; + } + + public static TableCellRenderer newRender() { + return new FrequencyLogCellRenderer(); + } + + public static TableCellEditor newEditor(SpeciesFrequencyUIHandler speciesFrequencyUIHandler) { + return new FrequencyLogCellEditor(speciesFrequencyUIHandler); + } + + public static class FrequencyLogCellEditor extends AbstractCellEditor implements TableCellEditor { + + private static final long serialVersionUID = 1L; + + protected final SpeciesFrequencyLogCellComponent component; + + public FrequencyLogCellEditor(SpeciesFrequencyUIHandler speciesFrequencyUIHandler) { + component = new SpeciesFrequencyLogCellComponent(speciesFrequencyUIHandler); + } + + @Override + public Component getTableCellEditorComponent(JTable table, + Object value, + boolean isSelected, + int row, + int column) { + + SpeciesFrequencyLogsTableModel tableModel = (SpeciesFrequencyLogsTableModel) table.getModel(); + SpeciesFrequencyLogRowModel editRow = tableModel.getEntry(row); + component.setRow(editRow); + + String data = (String) value; + component.setData(data); + + return component; + } + + @Override + public Object getCellEditorValue() { + return null; + } + + } + + public static class FrequencyLogCellRenderer implements TableCellRenderer { + + protected final SpeciesFrequencyLogCellComponent component; + + public FrequencyLogCellRenderer() { + component = new SpeciesFrequencyLogCellComponent(); + } + + @Override + public Component getTableCellRendererComponent(JTable table, + Object value, + boolean isSelected, + boolean hasFocus, + int row, + int column) { + String data = (String) value; + component.setData(data); + + component.setBackground(Color.WHITE); + + return component; + } + + } + +} diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyLogRowModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyLogRowModel.java index d6ea6a2..f620239 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyLogRowModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyLogRowModel.java @@ -2,6 +2,7 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency; import org.apache.commons.lang3.time.DateFormatUtils; import org.jdesktop.beans.AbstractBean; +import org.jdesktop.beans.AbstractSerializableBean; import java.io.Serializable; import java.util.Date; @@ -10,7 +11,7 @@ import java.util.Date; * @author Kevin Morin (Code Lutin) * @since 3.8 */ -public class SpeciesFrequencyLogRowModel extends AbstractBean implements Serializable { +public class SpeciesFrequencyLogRowModel extends AbstractSerializableBean { public static final String PROPERTY_LABEL = "label"; @@ -37,4 +38,8 @@ public class SpeciesFrequencyLogRowModel extends AbstractBean implements Seriali String formattedTime = DateFormatUtils.format(date, "HH:mm:ss"); return formattedTime + " : " + lengthStep.toString(); } + + public void setLabel(String label) { + //do nothing, used by the editor + } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyLogsTableModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyLogsTableModel.java index 83750f1..7736918 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyLogsTableModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyLogsTableModel.java @@ -53,7 +53,7 @@ public class SpeciesFrequencyLogsTableModel extends AbstractApplicationTableMode public SpeciesFrequencyLogsTableModel(TableColumnModelExt columnModel) { super(columnModel, true, false); - setNoneEditableCols(LABEL); + setNoneEditableCols(); } @Override @@ -61,4 +61,5 @@ public class SpeciesFrequencyLogsTableModel extends AbstractApplicationTableMode SpeciesFrequencyLogRowModel result = new SpeciesFrequencyLogRowModel(); return result; } + } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css index 5300876..395a20e 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css @@ -192,6 +192,16 @@ ComputableDataEditor { layout: {dataFieldLayout}; } +#firstSplitPane { + oneTouchExpandable: true; + resizeWeight: 0.6; +} + +#secondSplitPane { + oneTouchExpandable: true; + resizeWeight: 0.1; +} + #logsTable { selectionMode: {ListSelectionModel.SINGLE_SELECTION}; selectionBackground: {null}; diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx index 7fa2c0a..b0ffb8a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx @@ -28,7 +28,6 @@ fr.ifremer.tutti.ui.swing.TuttiHelpBroker fr.ifremer.tutti.ui.swing.content.operation.catches.FrequencyConfigurationMode - fr.ifremer.tutti.ui.swing.util.ThreeColumnsSplitPaneModel fr.ifremer.tutti.ui.swing.util.TuttiUI fr.ifremer.tutti.ui.swing.util.TuttiUIUtil fr.ifremer.tutti.ui.swing.util.computable.ComputableDataEditor @@ -195,18 +194,20 @@ public SpeciesFrequencyUI(TuttiUI parentUI) { </JPanel> <JPanel id='dataFieldPanel' constraints='BorderLayout.CENTER'> - <JXMultiSplitPane constraints='"lengthCaracteristicPmfm"' model="{new ThreeColumnsSplitPaneModel()}"> - <JScrollPane id='logsScrollPane' constraints="ThreeColumnsSplitPaneModel.LEFT"> - <JXTable id='logsTable'/> - </JScrollPane> - <JScrollPane id='tableScrollPane' constraints="ThreeColumnsSplitPaneModel.CENTER"> - <JXTable id='table'/> - </JScrollPane> - <JPanel constraints="ThreeColumnsSplitPaneModel.RIGHT" - id="histogramPanel" + <JSplitPane constraints='"lengthCaracteristicPmfm"' + id="firstSplitPane"> + <JSplitPane id="secondSplitPane"> + <JScrollPane id='logsScrollPane' > + <JXTable id='logsTable'/> + </JScrollPane> + <JScrollPane id='tableScrollPane' > + <JXTable id='table'/> + </JScrollPane> + </JSplitPane> + <JPanel id="histogramPanel" layout="{new BorderLayout()}"> </JPanel> - </JXMultiSplitPane> + </JSplitPane> <Table constraints='"noLengthCaracteristicPmfm"' fill='horizontal'> <row> diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java index ab34892..96aceed 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java @@ -51,19 +51,13 @@ import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.jdesktop.swingx.JXMultiSplitPane; import org.jdesktop.swingx.JXTable; -import org.jdesktop.swingx.JXTitledPanel; -import org.jdesktop.swingx.MultiSplitLayout; +import org.jdesktop.swingx.decorator.HighlightPredicate; +import org.jdesktop.swingx.decorator.Highlighter; import org.jdesktop.swingx.table.DefaultTableColumnModelExt; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; -import org.jfree.data.statistics.HistogramDataset; -import org.jfree.data.statistics.HistogramType; -import org.jfree.data.xy.DefaultIntervalXYDataset; -import org.jfree.data.xy.IntervalXYDataset; -import org.jfree.data.xy.XYIntervalSeries; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; import org.nuiton.jaxx.application.ApplicationBusinessException; @@ -71,9 +65,6 @@ import org.nuiton.jaxx.application.swing.util.Cancelable; import javax.swing.*; import java.awt.*; -import java.awt.event.ComponentAdapter; -import java.awt.event.ComponentEvent; -import java.awt.event.ComponentListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.beans.PropertyChangeEvent; @@ -365,6 +356,20 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci if (componentToFocus != null) { componentToFocus.grabFocus(); } + + boolean rafaleMode = newValue == FrequencyConfigurationMode.RAFALE; + SpeciesFrequencyUI ui = getUI(); + JSplitPane firstSplitPane = ui.getFirstSplitPane(); + JSplitPane secondSplitPane = ui.getSecondSplitPane(); + + int lastDividerLocation = secondSplitPane.getLastDividerLocation(); + if (lastDividerLocation == 0) { + lastDividerLocation = 200; + } + secondSplitPane.setDividerLocation(rafaleMode ? lastDividerLocation : 0); + secondSplitPane.setDividerSize(rafaleMode ? firstSplitPane.getDividerSize() : 0); + + ui.getLogsScrollPane().setVisible(rafaleMode); } } ); @@ -372,26 +377,7 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci }); // init histogram - final XYSeries series = new XYSeries("", true, false); - dataset = new XYSeriesCollection(series); - dataset.setIntervalPositionFactor(0); - dataset.setIntervalWidth(step); - - JFreeChart chart = ChartFactory.createXYBarChart(null, - t("tutti.editSpeciesFrequencies.table.header.lengthStep"), - false, - t("tutti.editSpeciesFrequencies.table.header.number"), - dataset); - chart.clearSubtitles(); - chart.getXYPlot().getRenderer().setSeriesPaint(0, getConfig().getColorComputedWeights()); - - final ChartPanel chartPanel = new ChartPanel(chart); - chartPanel.setDomainZoomable(false); - chartPanel.setMouseZoomable(false); - chartPanel.setPopupMenu(null); - - JPanel histogramPanel = ui.getHistogramPanel(); - histogramPanel.add(chartPanel, BorderLayout.CENTER); + final XYSeries series = initHistogram(ui, step); // init data table @@ -456,15 +442,47 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci installTableKeyListener(columnModel, table); - // init log table + initLogTable(ui); + listenValidatorValid(this.ui.getValidator(), model); + + } + + private XYSeries initHistogram(SpeciesFrequencyUI ui, float step) { + final XYSeries series = new XYSeries("", true, false); + dataset = new XYSeriesCollection(series); + dataset.setIntervalPositionFactor(0); + dataset.setIntervalWidth(step); + + JFreeChart chart = ChartFactory.createXYBarChart(null, + t("tutti.editSpeciesFrequencies.table.header.lengthStep"), + false, + t("tutti.editSpeciesFrequencies.table.header.number"), + dataset); + chart.clearSubtitles(); + chart.getXYPlot().getRenderer().setSeriesPaint(0, getConfig().getColorComputedWeights()); + + final ChartPanel chartPanel = new ChartPanel(chart); + chartPanel.setDomainZoomable(false); + chartPanel.setMouseZoomable(false); + chartPanel.setPopupMenu(null); + + JPanel histogramPanel = ui.getHistogramPanel(); + histogramPanel.add(chartPanel, BorderLayout.CENTER); + return series; + } + + private void initLogTable(SpeciesFrequencyUI ui) { JXTable logTable = ui.getLogsTable(); // create log table column model DefaultTableColumnModelExt logColumnModel = new DefaultTableColumnModelExt(); { // Date - addColumnToModel(logColumnModel, SpeciesFrequencyLogsTableModel.LABEL); + addColumnToModel(logColumnModel, + SpeciesFrequencyLogCellComponent.newEditor(this), + SpeciesFrequencyLogCellComponent.newRender(), + SpeciesFrequencyLogsTableModel.LABEL); } // create log table model @@ -476,9 +494,11 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci // by default do not authorize to change column orders logTable.getTableHeader().setReorderingAllowed(false); - - listenValidatorValid(this.ui.getValidator(), model); - + Highlighter evenHighlighter = TuttiUIUtil.newBackgroundColorHighlighter( + HighlightPredicate.ODD, +// Color.RED); + getConfig().getColorAlternateRow()); + logTable.addHighlighter(evenHighlighter); } @Override @@ -828,12 +848,20 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci // keep batch (will be used to push back editing entry) model.setBatch(speciesBatch); + + //remove log rows + SpeciesFrequencyLogsTableModel logsTableModel = (SpeciesFrequencyLogsTableModel) getUI().getLogsTable().getModel(); + logsTableModel.setRows(new ArrayList<SpeciesFrequencyLogRowModel>()); } public void reset() { // remove all frequencies getModel().setRows(Lists.<SpeciesFrequencyRowModel>newArrayList()); + + //remove log rows + SpeciesFrequencyLogsTableModel logsTableModel = (SpeciesFrequencyLogsTableModel) getUI().getLogsTable().getModel(); + logsTableModel.setRows(new ArrayList<SpeciesFrequencyLogRowModel>()); } public void saveAndClose() { @@ -1019,4 +1047,26 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci } return precision; } + + /** + * Decrement the frequency of the lengthstep of the row + * @param logRow + */ + public void decrementLengthStep(SpeciesFrequencyLogRowModel logRow) { + if (logRow != null) { + SpeciesFrequencyTableModel tableModel = getTableModel(); + SpeciesFrequencyRowModel speciesFrequencyRowModel = tableModel.getRowCache().get(logRow.getLengthStep()); + if (speciesFrequencyRowModel != null) { + Integer number = speciesFrequencyRowModel.getNumber(); + if (number != null && number > 0) { + speciesFrequencyRowModel.setNumber(number - 1); + tableModel.fireTableDataChanged(); + } + } + + SpeciesFrequencyLogsTableModel logsTableModel = (SpeciesFrequencyLogsTableModel) getUI().getLogsTable().getModel(); + int index = logsTableModel.getRowIndex(logRow); + logsTableModel.removeRow(index); + } + } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/ThreeColumnsSplitPaneModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/ThreeColumnsSplitPaneModel.java deleted file mode 100644 index 679af5c..0000000 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/ThreeColumnsSplitPaneModel.java +++ /dev/null @@ -1,34 +0,0 @@ -package fr.ifremer.tutti.ui.swing.util; - -import org.jdesktop.swingx.MultiSplitLayout; - -/** - * @author Kevin Morin (Code Lutin) - * @since x.x - */ -public class ThreeColumnsSplitPaneModel extends MultiSplitLayout.Split { - public static final String LEFT = "left"; - public static final String CENTER = "center"; - public static final String RIGHT = "right"; - - /** Creates a new instance of ThreeColumnsSplitPaneLayout */ - public ThreeColumnsSplitPaneModel() { - MultiSplitLayout.Split row = new MultiSplitLayout.Split(); - MultiSplitLayout.Leaf leftLeaf = new MultiSplitLayout.Leaf(LEFT); - leftLeaf.setWeight(0.1); - MultiSplitLayout.Leaf centerLeaf = new MultiSplitLayout.Leaf(CENTER); - centerLeaf.setWeight(0.5); - MultiSplitLayout.Leaf rightLeaf = new MultiSplitLayout.Leaf(RIGHT); - rightLeaf.setWeight(0.4); - - MultiSplitLayout.Divider divider1 = new MultiSplitLayout.Divider(); - divider1.setVisible(true); - - MultiSplitLayout.Divider divider2 = new MultiSplitLayout.Divider(); - divider2.setVisible(true); - - setChildren(leftLeaf, divider1, - centerLeaf, divider2, - rightLeaf); - } -} diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index 1410ca0..04c3fcc 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -1159,6 +1159,8 @@ tutti.editSpeciesFrequencies.label.no.configuration= tutti.editSpeciesFrequencies.logTable.header.date= tutti.editSpeciesFrequencies.logTable.header.label= tutti.editSpeciesFrequencies.logTable.header.lengthStep= +tutti.editSpeciesFrequencies.logTable.removeRow.confirm.message= +tutti.editSpeciesFrequencies.logTable.removeRow.confirm.title= tutti.editSpeciesFrequencies.simpleCountingAndFrequencies= tutti.editSpeciesFrequencies.table.header.lengthStep= tutti.editSpeciesFrequencies.table.header.number= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index 55e2323..8b61979 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -1,6 +1,5 @@ application.action.create.error= application.error.ui.business.warning= -gtrph= swing.error.cannot.open.file=Aucun programme n'est défini pour ouvrir ce type de fichier. Enregistrez le fichier et ouvrez le en dehors de l'application tutti.about.bottomText=Copyright %s - %s - version %s tutti.about.message=<h3>Tutti</h3><p><strong>Outil de saisie de données d'opérations et de captures au cours des campagnes halieutiques.</strong></p><br/><p>Ce logiciel permettra la saisie en mer des données d'opération de pêche (positions, environnement, engin, etc) et des captures associées (composition de la capture en espèces scientifiques avec poids, nombres, tailles etc) pour l'ensemble des campagnes halieutiques réalisées par l'Ifremer.</p><p>Ce projet a été initiée en 2012 par l' [...] @@ -1133,6 +1132,8 @@ tutti.editSpeciesFrequencies.field.totalWeight=Poids total tutti.editSpeciesFrequencies.field.totalWeight.tip=Poids total des lignes valides tutti.editSpeciesFrequencies.label.no.configuration=< Pas de configuration > tutti.editSpeciesFrequencies.logTable.header.label=Logs +tutti.editSpeciesFrequencies.logTable.removeRow.confirm.message=Êtes-vous sûr de vouloir supprimer la mesure %s ? +tutti.editSpeciesFrequencies.logTable.removeRow.confirm.title=Suppression d'une mesure tutti.editSpeciesFrequencies.simpleCountingAndFrequencies=Des mensurations ont été saisies dans le tableau. Saisir un simple dénombrement les effacera. tutti.editSpeciesFrequencies.table.header.lengthStep=Classe de taille tutti.editSpeciesFrequencies.table.header.number=Nombre -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.