Coser-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
November 2010
- 2 participants
- 175 discussions
r254 - in trunk/coser-ui/src/main: java/fr/ifremer/coser/ui/selection resources/i18n
by chatellier@users.labs.libre-entreprise.org 23 Nov '10
by chatellier@users.labs.libre-entreprise.org 23 Nov '10
23 Nov '10
Author: chatellier
Date: 2010-11-23 13:09:58 +0000 (Tue, 23 Nov 2010)
New Revision: 254
Log:
Add comment label in top of comment field
Modified:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx
trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2010-11-23 11:28:01 UTC (rev 253)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2010-11-23 13:09:58 UTC (rev 254)
@@ -157,23 +157,37 @@
</row>
<row>
<cell fill="horizontal" columns="2">
+ <JLabel text="coser.ui.selection.comment" />
+ </cell>
+ <cell fill="horizontal" columns="2">
+ <JLabel text="coser.ui.selection.comment" />
+ </cell>
+ <cell fill="horizontal" columns="2">
+ <JLabel text="coser.ui.selection.comment" />
+ </cell>
+ <cell fill="horizontal" columns="2">
+ <JLabel text="coser.ui.selection.comment" />
+ </cell>
+ </row>
+ <row>
+ <cell fill="horizontal" columns="2">
<JScrollPane>
- <JXTextArea constructorParams='_("coser.ui.common.comment")' rows="3" />
+ <JTextArea id="allSpeciesCommentField" rows="3" />
</JScrollPane>
</cell>
<cell fill="horizontal" columns="2">
<JScrollPane>
- <JXTextArea constructorParams='_("coser.ui.common.comment")' rows="3" />
+ <JTextArea id="occurrenceDensityCommentField" rows="3" />
</JScrollPane>
</cell>
<cell fill="horizontal" columns="2">
<JScrollPane>
- <JXTextArea constructorParams='_("coser.ui.common.comment")' rows="3" />
+ <JTextArea id="sizeAllYearCommentField" rows="3" />
</JScrollPane>
</cell>
<cell fill="horizontal" columns="2">
<JScrollPane>
- <JXTextArea constructorParams='_("coser.ui.common.comment")' rows="3" />
+ <JTextArea id="maturityCommentField" rows="3" />
</JScrollPane>
</cell>
</row>
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2010-11-23 11:28:01 UTC (rev 253)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2010-11-23 13:09:58 UTC (rev 254)
@@ -111,6 +111,7 @@
coser.ui.result.table.rsufiVersion=
coser.ui.result.validNewResult=
coser.ui.selection.allSpecies=L1 \: All species
+coser.ui.selection.comment=
coser.ui.selection.createError=Creation error
coser.ui.selection.details.beginDate=Begin date \:
coser.ui.selection.details.comment=Comments
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2010-11-23 11:28:01 UTC (rev 253)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2010-11-23 13:09:58 UTC (rev 254)
@@ -110,6 +110,7 @@
coser.ui.result.table.rsufiVersion=Version de RSufi
coser.ui.result.validNewResult=Ajouter le r\u00E9sultat
coser.ui.selection.allSpecies=L1 \: Toutes les esp\u00E8ces
+coser.ui.selection.comment=Commentaire \:
coser.ui.selection.createError=Erreur de cr\u00E9action
coser.ui.selection.details.comment=Commentaire \:
coser.ui.selection.details.dates=Ann\u00E9es \:
1
0
r253 - in trunk/coser-ui/src/main/java/fr/ifremer/coser/ui: selection util
by chatellier@users.labs.libre-entreprise.org 23 Nov '10
by chatellier@users.labs.libre-entreprise.org 23 Nov '10
23 Nov '10
Author: chatellier
Date: 2010-11-23 11:28:01 +0000 (Tue, 23 Nov 2010)
New Revision: 253
Log:
Fix species lists sorting
Modified:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/util/CoserListSelectionModel.java
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-11-23 11:19:55 UTC (rev 252)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-11-23 11:28:01 UTC (rev 253)
@@ -33,6 +33,7 @@
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -533,6 +534,7 @@
}
List<String> speciesList = new ArrayList<String>(selectedSpecies);
+ Collections.sort(speciesList);
selection.setSelectedSpecies(speciesList);
view.getSelectedSpecyListModel().setSpecies(speciesList);
}
@@ -540,17 +542,18 @@
/**
* Retire les especes selectionnées de la liste des esepeces sélectionnées.
*
- * @param view
+ * @param view view
*/
public void removeSelectedSpecies(SelectionDetailsView view) {
Selection selection = view.getContextValue(Selection.class);
- List<String> selectedSpecies = view.getSelectedSpecyListModel().getSpecies();
+ List<String> selectedSpecies = new ArrayList<String>(view.getSelectedSpecyListModel().getSpecies());
Object[] selectedSelectedSpecies = view.getSelectedSpecyList().getSelectedValues();
for (Object selectedSelectedSpecy : selectedSelectedSpecies) {
selectedSpecies.remove(selectedSelectedSpecy);
}
+ Collections.sort(selectedSpecies);
selection.setSelectedSpecies(selectedSpecies);
view.getSelectedSpecyListModel().setSpecies(selectedSpecies);
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/util/CoserListSelectionModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/util/CoserListSelectionModel.java 2010-11-23 11:19:55 UTC (rev 252)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/util/CoserListSelectionModel.java 2010-11-23 11:28:01 UTC (rev 253)
@@ -45,6 +45,10 @@
* des données reste la même au niveau des objets (sinon, les indices
* ne correspondent pas au données précédent le changement.
*
+ * ATTENTION : {@link #selectedObjects} ne refelte pas la selection
+ * de la liste. Certains de ces élements peuvent être mémorisé selectionné,
+ * mais non présente dans le modele de la liste, donc hors selection.
+ *
* @author chatellier
* @version $Revision$
*
1
0
r252 - in trunk: coser-business/src/main/java/fr/ifremer/coser/services coser-ui/src/main/java/fr/ifremer/coser/ui/selection coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model
by chatellier@users.labs.libre-entreprise.org 23 Nov '10
by chatellier@users.labs.libre-entreprise.org 23 Nov '10
23 Nov '10
Author: chatellier
Date: 2010-11-23 11:19:55 +0000 (Tue, 23 Nov 2010)
New Revision: 252
Log:
Add maturity species filter for L4
Added:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/MaturitySpecyListModel.java
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SizeAllYearSpecyListModel.java
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-11-23 11:19:18 UTC (rev 251)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-11-23 11:19:55 UTC (rev 252)
@@ -1402,7 +1402,34 @@
return completeSpecies;
}
+
+ /**
+ * Recherche les especes qui ont au moins une maturité sur l'ensemble des
+ * données.
+ *
+ * @param selection selection to search into
+ * @return year list
+ */
+ public Collection<String> getSpeciesWithMaturity(Selection selection) {
+ Set<String> speciesWithMaturity = new HashSet<String>();
+
+ // get all species with years
+ Iterator<String[]> itLength = selection.getLength().iterator();
+ itLength.next(); // skip header
+ while (itLength.hasNext()) {
+ String[] tupleLength = itLength.next();
+ String species = tupleLength[Length.INDEX_SPECIES];
+ String maturity = tupleLength[Length.INDEX_MATURITY];
+
+ if ("m".equalsIgnoreCase(maturity)) {
+ speciesWithMaturity.add(species);
+ }
+ }
+
+ return speciesWithMaturity;
+ }
+
/**
* Get species name in project.
*
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-11-23 11:19:18 UTC (rev 251)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-11-23 11:19:55 UTC (rev 252)
@@ -112,6 +112,7 @@
MatrixND occurrence = projectService.getOccurrence(project, selection);
MatrixND density = projectService.getDensity(project, selection);
Collection<String> speciesAllYear = projectService.getSpeciesWithSizeAllYears(selection);
+ Collection<String> speciesWithMaturity = projectService.getSpeciesWithMaturity(selection);
//MatrixND samplingEffort = projectService.getSamplingEffort(project, selection);
// set matrix on list model
@@ -120,11 +121,12 @@
// fill all specy data (at final)
selectionListsView.getSelectionAllSpeciesListModel().setSpecies(selectionSpecyList);
-
+
// select all list (not to do for reload)
// init allSize and maturity before (select all with updateOccurrenceDensityFilter)
((CoserListSelectionModel)selectionListsView.getSelectionAllSpeciesList().getSelectionModel()).fillSelection();
selectionListsView.getSelectionSizeAllYearListModel().setSizeAllYearSpecies(speciesAllYear);
+ selectionListsView.getSelectionMaturityListModel().setMaturitySpecies(speciesWithMaturity);
updateOccurrenceDensityFilter(selectionListsView);
}
}
@@ -432,7 +434,7 @@
List<String> filteredSpecies = new ArrayList<String>();
for (int speciesIndex = 0 ; speciesIndex < speciesCount ; speciesIndex++) {
String specy = (String)model.getElementAt(speciesIndex);
- if (model.getDensity(specy) > density && model.getOccurrence(specy) > occurrence) {
+ if (model.getDensity(specy) >= density && model.getOccurrence(specy) >= occurrence) {
filteredSpecies.add(specy);
}
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2010-11-23 11:19:18 UTC (rev 251)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2010-11-23 11:19:55 UTC (rev 252)
@@ -115,7 +115,7 @@
</cell>
<cell weightx="1" fill="both" columns="2">
<JScrollPane>
- <SpecyListModel id="selectionMaturityListModel" />
+ <MaturitySpecyListModel id="selectionMaturityListModel" />
<JList id="selectionMaturityList" model="{selectionMaturityListModel}"
selectionModel="{new CoserListSelectionModel(selectionMaturityList.getSelectionModel(), selectionMaturityListModel)}"/>
</JScrollPane>
Added: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/MaturitySpecyListModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/MaturitySpecyListModel.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/MaturitySpecyListModel.java 2010-11-23 11:19:55 UTC (rev 252)
@@ -0,0 +1,119 @@
+/*
+ * #%L
+ * Coser :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric
+ * %%
+ * 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%
+ */
+
+package fr.ifremer.coser.ui.selection.model;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.swing.AbstractListModel;
+import javax.swing.JList;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+
+import fr.ifremer.coser.ui.util.CoserListModel;
+
+/**
+ * Specy list model with size all year.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class MaturitySpecyListModel extends AbstractListModel implements ListSelectionListener, CoserListModel {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4769109927915812519L;
+
+ protected List<String> species = new ArrayList<String>();
+
+ protected Collection<String> maturitySpecies;
+
+ public List<String> getSpecies() {
+ return species;
+ }
+
+ public void setSpecies(List<String> species) {
+ this.species = new ArrayList<String>(species);
+ this.species.retainAll(maturitySpecies);
+ fireContentsChanged(this, 0, this.species.size());
+ }
+
+ public void setMaturitySpecies(Collection<String> maturitySpecies) {
+ this.maturitySpecies = maturitySpecies;
+ }
+
+ /*
+ * @see javax.swing.ListModel#getSize()
+ */
+ @Override
+ public int getSize() {
+ int result = 0;
+ if (species != null) {
+ result = species.size();
+ }
+ return result;
+ }
+
+ /*
+ * @see javax.swing.ListModel#getElementAt(int)
+ */
+ @Override
+ public Object getElementAt(int index) {
+ return species.get(index);
+ }
+
+
+ /*
+ * @see fr.ifremer.coser.ui.util.CoserListModel#indexOf(java.lang.Object)
+ */
+ @Override
+ public int indexOf(Object o) {
+ return species.indexOf(o);
+ }
+
+ /*
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)
+ */
+ @Override
+ public void valueChanged(ListSelectionEvent event) {
+
+ if (!event.getValueIsAdjusting()) {
+ JList source = (JList)event.getSource();
+ Object[] selectedValues = source.getSelectedValues();
+ species.clear();
+ for (Object selectedValue : selectedValues) {
+ String specy = (String)selectedValue;
+ if (maturitySpecies.contains(specy)) {
+ species.add(specy);
+ }
+ }
+ fireContentsChanged(this, 0, species.size() - 1);
+ }
+ }
+}
Property changes on: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/MaturitySpecyListModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SizeAllYearSpecyListModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SizeAllYearSpecyListModel.java 2010-11-23 11:19:18 UTC (rev 251)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SizeAllYearSpecyListModel.java 2010-11-23 11:19:55 UTC (rev 252)
@@ -34,8 +34,6 @@
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
-import org.apache.commons.collections.CollectionUtils;
-
import fr.ifremer.coser.ui.util.CoserListModel;
/**
1
0
Author: chatellier
Date: 2010-11-23 11:19:18 +0000 (Tue, 23 Nov 2010)
New Revision: 251
Log:
Use 2.0 snapshot
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-11-22 20:02:32 UTC (rev 250)
+++ trunk/pom.xml 2010-11-23 11:19:18 UTC (rev 251)
@@ -221,7 +221,7 @@
<!-- Versions -->
<jaxx.version>2.2.4-SNAPSHOT</jaxx.version>
- <i18n.version>2.0-SNAPSHOT</i18n.version>
+ <i18n.version>2.0</i18n.version>
</properties>
<scm>
1
0
r250 - in trunk: coser-business/src/main/java/fr/ifremer/coser/services coser-ui/src/main/java/fr/ifremer/coser/ui/selection coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model
by chatellier@users.labs.libre-entreprise.org 22 Nov '10
by chatellier@users.labs.libre-entreprise.org 22 Nov '10
22 Nov '10
Author: chatellier
Date: 2010-11-22 20:02:32 +0000 (Mon, 22 Nov 2010)
New Revision: 250
Log:
Add species with size all year list model
Added:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SizeAllYearSpecyListModel.java
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-11-22 20:01:51 UTC (rev 249)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-11-22 20:02:32 UTC (rev 250)
@@ -1355,7 +1355,54 @@
List<String> result = new ArrayList<String>(years);
return result;
}
+
+ /**
+ * Touve toutes les especes qui ont des tailles pour toutes les années.
+ *
+ * @param selection selection to search into
+ * @return year list
+ */
+ public Collection<String> getSpeciesWithSizeAllYears(Selection selection) {
+ // get all years as set
+ SortedSet<String> years = new TreeSet<String>();
+ Iterator<String[]> itTuple = selection.getHaul().iterator();
+ itTuple.next(); // header
+ while (itTuple.hasNext()) {
+ String[] tuple = itTuple.next();
+ String year = tuple[Haul.INDEX_YEAR];
+ years.add(year);
+ }
+
+ // get all species with years
+ Map<String, Set<String>> yearsForSpecies = new HashMap<String, Set<String>>();
+ Iterator<String[]> itLength = selection.getLength().iterator();
+ itLength.next(); // skip header
+ while (itLength.hasNext()) {
+ String[] tupleLength = itLength.next();
+ String species = tupleLength[Length.INDEX_SPECIES];
+ String annee = tupleLength[Length.INDEX_YEAR];
+
+ Set<String> speciesYears = yearsForSpecies.get(species);
+ if (speciesYears == null) {
+ speciesYears = new HashSet<String>();
+ yearsForSpecies.put(species, speciesYears);
+ }
+ speciesYears.add(annee);
+ }
+
+ // on retire toutes les especes qui n'ont pas des années
+ // completes
+ List<String> completeSpecies = new ArrayList<String>();
+ for (Map.Entry<String, Set<String>> yearForSpeciesEntry : yearsForSpecies.entrySet()) {
+ if (yearForSpeciesEntry.getValue().equals(years)) {
+ completeSpecies.add(yearForSpeciesEntry.getKey());
+ }
+ }
+
+ return completeSpecies;
+ }
+
/**
* Get species name in project.
*
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-11-22 20:01:51 UTC (rev 249)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-11-22 20:02:32 UTC (rev 250)
@@ -111,6 +111,7 @@
ProjectService projectService = view.getContextValue(ProjectService.class);
MatrixND occurrence = projectService.getOccurrence(project, selection);
MatrixND density = projectService.getDensity(project, selection);
+ Collection<String> speciesAllYear = projectService.getSpeciesWithSizeAllYears(selection);
//MatrixND samplingEffort = projectService.getSamplingEffort(project, selection);
// set matrix on list model
@@ -121,10 +122,10 @@
selectionListsView.getSelectionAllSpeciesListModel().setSpecies(selectionSpecyList);
// select all list (not to do for reload)
+ // init allSize and maturity before (select all with updateOccurrenceDensityFilter)
((CoserListSelectionModel)selectionListsView.getSelectionAllSpeciesList().getSelectionModel()).fillSelection();
+ selectionListsView.getSelectionSizeAllYearListModel().setSizeAllYearSpecies(speciesAllYear);
updateOccurrenceDensityFilter(selectionListsView);
- ((CoserListSelectionModel)selectionListsView.getSelectionSizeAllYearList().getSelectionModel()).fillSelection();
- ((CoserListSelectionModel)selectionListsView.getSelectionMaturityList().getSelectionModel()).fillSelection();
}
}
}
@@ -438,6 +439,10 @@
// application de la nouvelle selection
((CoserListSelectionModel)view.getSelectionOccurrenceDensityList().getSelectionModel()).setSelectedObjects(filteredSpecies);
+
+ // selectionne automatiquement les listes L3 & L4
+ ((CoserListSelectionModel)view.getSelectionSizeAllYearList().getSelectionModel()).fillSelection();
+ ((CoserListSelectionModel)view.getSelectionMaturityList().getSelectionModel()).fillSelection();
}
catch (NumberFormatException ex) {
if (log.isWarnEnabled()) {
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2010-11-22 20:01:51 UTC (rev 249)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2010-11-22 20:02:32 UTC (rev 250)
@@ -108,7 +108,7 @@
</cell>
<cell weightx="1" fill="both" columns="2">
<JScrollPane>
- <SpecyListModel id="selectionSizeAllYearListModel" />
+ <SizeAllYearSpecyListModel id="selectionSizeAllYearListModel" />
<JList id="selectionSizeAllYearList" model="{selectionSizeAllYearListModel}"
selectionModel="{new CoserListSelectionModel(selectionSizeAllYearList.getSelectionModel(), selectionSizeAllYearListModel)}"/>
</JScrollPane>
Added: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SizeAllYearSpecyListModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SizeAllYearSpecyListModel.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SizeAllYearSpecyListModel.java 2010-11-22 20:02:32 UTC (rev 250)
@@ -0,0 +1,121 @@
+/*
+ * #%L
+ * Coser :: UI
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric
+ * %%
+ * 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%
+ */
+
+package fr.ifremer.coser.ui.selection.model;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.swing.AbstractListModel;
+import javax.swing.JList;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+
+import org.apache.commons.collections.CollectionUtils;
+
+import fr.ifremer.coser.ui.util.CoserListModel;
+
+/**
+ * Specy list model with size all year.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class SizeAllYearSpecyListModel extends AbstractListModel implements ListSelectionListener, CoserListModel {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4769109927915812519L;
+
+ protected List<String> species = new ArrayList<String>();
+
+ protected Collection<String> sizeAllYearSpecies;
+
+ public List<String> getSpecies() {
+ return species;
+ }
+
+ public void setSpecies(List<String> species) {
+ this.species = new ArrayList<String>(species);
+ this.species.retainAll(sizeAllYearSpecies);
+ fireContentsChanged(this, 0, this.species.size());
+ }
+
+ public void setSizeAllYearSpecies(Collection<String> sizeAllYearSpecies) {
+ this.sizeAllYearSpecies = sizeAllYearSpecies;
+ }
+
+ /*
+ * @see javax.swing.ListModel#getSize()
+ */
+ @Override
+ public int getSize() {
+ int result = 0;
+ if (species != null) {
+ result = species.size();
+ }
+ return result;
+ }
+
+ /*
+ * @see javax.swing.ListModel#getElementAt(int)
+ */
+ @Override
+ public Object getElementAt(int index) {
+ return species.get(index);
+ }
+
+
+ /*
+ * @see fr.ifremer.coser.ui.util.CoserListModel#indexOf(java.lang.Object)
+ */
+ @Override
+ public int indexOf(Object o) {
+ return species.indexOf(o);
+ }
+
+ /*
+ * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)
+ */
+ @Override
+ public void valueChanged(ListSelectionEvent event) {
+
+ if (!event.getValueIsAdjusting()) {
+ JList source = (JList)event.getSource();
+ Object[] selectedValues = source.getSelectedValues();
+ species.clear();
+ for (Object selectedValue : selectedValues) {
+ String specy = (String)selectedValue;
+ if (sizeAllYearSpecies.contains(specy)) {
+ species.add(specy);
+ }
+ }
+ fireContentsChanged(this, 0, species.size() - 1);
+ }
+ }
+}
Property changes on: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SizeAllYearSpecyListModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
1
0
r249 - in trunk: coser-business/src/license coser-ui/src/license
by chatellier@users.labs.libre-entreprise.org 22 Nov '10
by chatellier@users.labs.libre-entreprise.org 22 Nov '10
22 Nov '10
Author: chatellier
Date: 2010-11-22 20:01:51 +0000 (Mon, 22 Nov 2010)
New Revision: 249
Log:
Fix third party
Modified:
trunk/coser-business/src/license/THIRD-PARTY.properties
trunk/coser-ui/src/license/THIRD-PARTY.properties
Modified: trunk/coser-business/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/coser-business/src/license/THIRD-PARTY.properties 2010-11-22 18:04:53 UTC (rev 248)
+++ trunk/coser-business/src/license/THIRD-PARTY.properties 2010-11-22 20:01:51 UTC (rev 249)
@@ -1,27 +1,3 @@
-###
-# #%L
-# Coser :: Business
-#
-# $Id$
-# $HeadURL$
-# %%
-# Copyright (C) 2010 Ifremer, Codelutin
-# %%
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser 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 Lesser Public License for more details.
-#
-# You should have received a copy of the GNU General Lesser Public
-# License along with this program. If not, see
-# <http://www.gnu.org/licenses/lgpl-3.0.html>.
-# #L%
-###
# Generated by org.nuiton.license.plugin.AddThirdPartyMojo
#-------------------------------------------------------------------------------
# Already used licenses in project :
@@ -30,13 +6,16 @@
# - BSD License
# - Common Public License Version 1.0
# - GNU Lesser General Public Licence
+# - GNU Lesser General Public License
+# - Lesser General Public License (LGPL)
# - Lesser General Public License (LGPL) v 3.0
# - The Apache Software License, Version 2.0
+# - The OpenSymphony Software License 1.1
#-------------------------------------------------------------------------------
# Please fill the missing licenses for dependencies :
#
#
-#Tue Nov 02 14:24:23 CET 2010
-commons-primitives--commons-primitives--1.0=Apache Software License, Version 2.0
-javassist--javassist--3.8.0.GA=GNU Lesser General Public License
-ognl--ognl--3.0=The OpenSymphony Software License 1.1
+#Mon Nov 22 19:10:59 CET 2010
+commons-primitives--commons-primitives--1.0--jar=Apache Software License, Version 2.0
+javassist--javassist--3.8.0.GA--jar=GNU Lesser General Public License
+ognl--ognl--3.0--jar=The OpenSymphony Software License 1.1
Modified: trunk/coser-ui/src/license/THIRD-PARTY.properties
===================================================================
--- trunk/coser-ui/src/license/THIRD-PARTY.properties 2010-11-22 18:04:53 UTC (rev 248)
+++ trunk/coser-ui/src/license/THIRD-PARTY.properties 2010-11-22 20:01:51 UTC (rev 249)
@@ -1,27 +1,3 @@
-###
-# #%L
-# Coser :: UI
-#
-# $Id$
-# $HeadURL$
-# %%
-# Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric
-# %%
-# 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%
-###
# Generated by org.nuiton.license.plugin.AddThirdPartyMojo
#-------------------------------------------------------------------------------
# Already used licenses in project :
@@ -43,12 +19,12 @@
# Please fill the missing licenses for dependencies :
#
#
-#Tue Nov 02 15:19:05 CET 2010
-commons-jxpath--commons-jxpath--1.3=Apache Software License, Version 2.0
-commons-primitives--commons-primitives--1.0=Apache Software License, Version 2.0
-javassist--javassist--3.8.0.GA=GNU Lesser General Public License
-javax.help--javahelp--2.0.02=GNU General Public License - Version 2
-javax.mail--mail--1.4.1=License Agreement for JavaMail(TM) API
-ognl--ognl--3.0=The OpenSymphony Software License 1.1
-opensymphony--ognl--2.6.11=The OpenSymphony Software License 1.1
-org.apache.commons--commons-email--1.2=Apache Software License, Version 2.0
+#Mon Nov 22 19:24:26 CET 2010
+commons-jxpath--commons-jxpath--1.3--jar=Apache Software License, Version 2.0
+commons-primitives--commons-primitives--1.0--jar=Apache Software License, Version 2.0
+javassist--javassist--3.8.0.GA--jar=GNU Lesser General Public License
+javax.help--javahelp--2.0.02--jar=GNU General Public License - Version 2
+javax.mail--mail--1.4.1--jar=License Agreement for JavaMail(TM) API
+ognl--ognl--3.0--jar=The OpenSymphony Software License 1.1
+opensymphony--ognl--2.6.11--jar=The OpenSymphony Software License 1.1
+org.apache.commons--commons-email--1.2--jar=Apache Software License, Version 2.0
1
0
r248 - trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project
by chatellier@users.labs.libre-entreprise.org 22 Nov '10
by chatellier@users.labs.libre-entreprise.org 22 Nov '10
22 Nov '10
Author: chatellier
Date: 2010-11-22 18:04:53 +0000 (Mon, 22 Nov 2010)
New Revision: 248
Log:
Fix separator char
Modified:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectCreationView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectCreationView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectCreationView.jaxx 2010-11-22 18:03:02 UTC (rev 247)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectCreationView.jaxx 2010-11-22 18:04:53 UTC (rev 248)
@@ -60,7 +60,7 @@
<JLabel text="coser.ui.project.projectname" />
</cell>
<cell>
- <JLabel text='{getContextValue(fr.ifremer.coser.CoserConfig.class).getProjectsDirectory().getAbsolutePath() + "/"}' />
+ <JLabel text='{getContextValue(fr.ifremer.coser.CoserConfig.class).getProjectsDirectory().getAbsolutePath() + File.separator}' />
</cell>
<cell anchor="west" weightx="1" fill="horizontal">
<JTextField id="projectProjectName" text="{project.getName()}" />
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx 2010-11-22 18:03:02 UTC (rev 247)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx 2010-11-22 18:04:53 UTC (rev 248)
@@ -33,7 +33,7 @@
<JLabel text="coser.ui.project.project" />
</cell>
<cell>
- <JLabel text='{getContextValue(fr.ifremer.coser.CoserConfig.class).getProjectsDirectory().getAbsolutePath() + "/"}' />
+ <JLabel text='{getContextValue(fr.ifremer.coser.CoserConfig.class).getProjectsDirectory().getAbsolutePath() + File.separator}' />
</cell>
<cell anchor="west" weightx="1">
<JComboBox id="projectsComboBox" model="{new fr.ifremer.coser.ui.project.ProjectNamesListModel(this)}" />
1
0
r247 - trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project
by chatellier@users.labs.libre-entreprise.org 22 Nov '10
by chatellier@users.labs.libre-entreprise.org 22 Nov '10
22 Nov '10
Author: chatellier
Date: 2010-11-22 18:03:02 +0000 (Mon, 22 Nov 2010)
New Revision: 247
Log:
Add configuration project begin path
Modified:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx 2010-11-22 17:57:48 UTC (rev 246)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx 2010-11-22 18:03:02 UTC (rev 247)
@@ -32,12 +32,15 @@
<cell anchor="west">
<JLabel text="coser.ui.project.project" />
</cell>
+ <cell>
+ <JLabel text='{getContextValue(fr.ifremer.coser.CoserConfig.class).getProjectsDirectory().getAbsolutePath() + "/"}' />
+ </cell>
<cell anchor="west" weightx="1">
<JComboBox id="projectsComboBox" model="{new fr.ifremer.coser.ui.project.ProjectNamesListModel(this)}" />
</cell>
</row>
<row>
- <cell weightx="1" anchor="east" columns="2">
+ <cell weightx="1" anchor="east" columns="3">
<JButton text="coser.ui.project.openProject"
enabled="{projectsComboBox.getSelectedItem() != null}"
onActionPerformed="getHandler().loadProject(this)" />
1
0
r246 - in trunk/coser-ui/src/main: java/fr/ifremer/coser/ui/control resources/i18n
by chatellier@users.labs.libre-entreprise.org 22 Nov '10
by chatellier@users.labs.libre-entreprise.org 22 Nov '10
22 Nov '10
Author: chatellier
Date: 2010-11-22 17:57:48 +0000 (Mon, 22 Nov 2010)
New Revision: 246
Log:
Rename key
Modified:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlView.jaxx
trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlView.jaxx 2010-11-22 17:53:03 UTC (rev 245)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlView.jaxx 2010-11-22 17:57:48 UTC (rev 246)
@@ -50,7 +50,7 @@
renderer="{new fr.ifremer.coser.ui.control.ControlCategoryListRenderer()}"
onActionPerformed="getHandler().categoryChanged(this, event)"/>
<JToolBar.Separator />
- <JButton icon="spellcheck.png" text="coser.ui.validation.checkData"
+ <JButton icon="spellcheck.png" text="coser.ui.control.checkData"
onActionPerformed="getHandler().checkData(this)" />
<JToolBar.Separator />
<JButton icon="chart_curve.png" text="coser.ui.graph.compareNumberCatchSize"
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2010-11-22 17:53:03 UTC (rev 245)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2010-11-22 17:57:48 UTC (rev 246)
@@ -17,6 +17,7 @@
coser.ui.common.valid=Valid
coser.ui.config.title=Configuration
coser.ui.control.categorylabel=
+coser.ui.control.checkData=Check data
coser.ui.control.comment=
coser.ui.control.confirmDeletionMessage=Are you sure you want to delete this data ?
coser.ui.control.confirmDeletionTitle=Confirm delete
@@ -149,7 +150,6 @@
coser.ui.selection.tab.details=Selection details
coser.ui.selection.tab.lists=Species lists
coser.ui.selection.tab.rsufi=RSufi
-coser.ui.validation.checkData=Check data
coser.ui.validators.cancel=Cancel
coser.ui.validators.deleteValidator=Supprimer
coser.ui.validators.description=Application must be restarted after validators modification.
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2010-11-22 17:53:03 UTC (rev 245)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2010-11-22 17:57:48 UTC (rev 246)
@@ -17,6 +17,7 @@
coser.ui.common.valid=Valider
coser.ui.config.title=Configuration
coser.ui.control.categorylabel=Donn\u00E9es affich\u00E9es \:
+coser.ui.control.checkData=V\u00E9rifier les donn\u00E9es
coser.ui.control.comment=Commentaire \:
coser.ui.control.confirmDeletionMessage=\u00CAtes vous s\u00FBr de vouloir supprimer cette donn\u00E9e ?
coser.ui.control.confirmDeletionTitle=Confirmation de suppression
@@ -146,7 +147,6 @@
coser.ui.selection.tab.details=D\u00E9tails de la s\u00E9lection
coser.ui.selection.tab.lists=Listes des esp\u00E8ces
coser.ui.selection.tab.rsufi=RSufi
-coser.ui.validation.checkData=V\u00E9rifier les donn\u00E9es
coser.ui.validators.cancel=Annuler
coser.ui.validators.deleteValidator=Supprimer
coser.ui.validators.description=L'application doit \u00EAtre red\u00E9marr\u00E9e apr\u00E8s la modification des validateurs.
1
0
r245 - in trunk: . coser-business/src/main/java/fr/ifremer/coser coser-business/src/main/java/fr/ifremer/coser/bean coser-business/src/main/java/fr/ifremer/coser/services coser-business/src/main/resources/i18n coser-ui/src/main/java/fr/ifremer/coser/ui coser-ui/src/main/java/fr/ifremer/coser/ui/result coser-ui/src/main/java/fr/ifremer/coser/ui/selection coser-ui/src/main/java/fr/ifremer/coser/ui/util coser-ui/src/main/resources/fr/ifremer/coser/bean coser-ui/src/main/resources/i18n
by chatellier@users.labs.libre-entreprise.org 22 Nov '10
by chatellier@users.labs.libre-entreprise.org 22 Nov '10
22 Nov '10
Author: chatellier
Date: 2010-11-22 17:53:03 +0000 (Mon, 22 Nov 2010)
New Revision: 245
Log:
Implementation de la sauvegarde des resultats.
Ajout de la validation de la selection.
Added:
trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx
trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/RSufiResult-error-validation.xml
Removed:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionResultView.jaxx
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/CoserConstants.java
trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Selection.java
trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties
trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultTableModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionDetailsView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/util/CoserListSelectionModel.java
trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
trunk/pom.xml
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/CoserConstants.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/CoserConstants.java 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/CoserConstants.java 2010-11-22 17:53:03 UTC (rev 245)
@@ -56,6 +56,9 @@
/** Nom du dossier de sauvegarde des selections. */
public static final String STORAGE_SELECTION_DIRECTORY = "selections";
+ /** Nom du dossier des resultats RSufi. */
+ public static final String STORAGE_RESULTS_DIRECTORY = "results";
+
/** Suffix des nom de fichiers data apres control. */
public static final String STORAGE_CONTROL_SUFFIX = "_co";
@@ -67,16 +70,7 @@
/** Extension des fichiers CSV. */
public static final String STORAGE_CSV_EXTENSION = ".csv";
-
- /** Nom du fichier des historiques de modification */
- public static final String STORAGE_HISTORY_FILENAME = "history";
- /** Extension du fichier d'historique pour le control. */
- public static final String STORAGE_HISTORY_CONTROL_EXTENSION = ".chc";
-
- /** Extension du fichier d'historique pour la selection. */
- public static final String STORAGE_HISTORY_SELECTION_EXTENSION = ".chs";
-
/** Categories des données manipulées. */
public static enum Category {
CATCH(n_("coser.business.category.catch"), "catch"),
Added: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java (rev 0)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java 2010-11-22 17:53:03 UTC (rev 245)
@@ -0,0 +1,81 @@
+/*
+ * #%L
+ *
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 Codelutin, Chatellier Eric
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * 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 Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+
+package fr.ifremer.coser.bean;
+
+import java.util.Properties;
+
+/**
+ * RSufi result.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class RSufiResult extends AbstractEntity {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -1337710082675120199L;
+
+ protected String name;
+
+ protected String rsufiVersion;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ String oldValue = this.name;
+ this.name = name;
+ getPropertyChangeSupport().firePropertyChange("name", oldValue, name);
+ }
+
+ public String getRsufiVersion() {
+ return rsufiVersion;
+ }
+
+ public void setRsufiVersion(String rsufiVersion) {
+ String oldValue = this.rsufiVersion;
+ this.rsufiVersion = rsufiVersion;
+ getPropertyChangeSupport().firePropertyChange("name", oldValue, name);
+ }
+
+ public Properties toProperties() {
+ Properties props = new Properties();
+ if (getRsufiVersion() != null) {
+ props.setProperty("result.rsufiversion", getRsufiVersion());
+ }
+ return props;
+ }
+
+ public void fromProperties(Properties props) {
+ if (props.containsKey("result.rsufiversion")) {
+ setRsufiVersion(props.getProperty("result.rsufiversion"));
+ }
+ }
+}
Property changes on: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/RSufiResult.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Selection.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Selection.java 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Selection.java 2010-11-22 17:53:03 UTC (rev 245)
@@ -45,6 +45,10 @@
/** serialVersionUID. */
private static final long serialVersionUID = -1484104459960459854L;
+ public static final String PROPERTY_VALIDATED = "validated";
+
+ public static final String PROPERTY_RSUFI_RESULTS = "rsufiResults";
+
protected String name;
protected String description;
@@ -69,6 +73,10 @@
protected String comment;
+ protected boolean validated;
+
+ protected List<RSufiResult> rsufiResults;
+
public String getName() {
return name;
}
@@ -153,14 +161,33 @@
this.comment = comment;
getPropertyChangeSupport().firePropertyChange("comment", oldValue, comment);
}
-
+
+ public boolean isValidated() {
+ return validated;
+ }
+
+ public void setValidated(boolean validated) {
+ boolean oldValue = this.validated;
+ this.validated = validated;
+ getPropertyChangeSupport().firePropertyChange(PROPERTY_VALIDATED, oldValue, validated);
+ }
+
+ public List<RSufiResult> getRsufiResults() {
+ return rsufiResults;
+ }
+
+ public void setRsufiResults(List<RSufiResult> rsufiResults) {
+ this.rsufiResults = rsufiResults;
+ getPropertyChangeSupport().firePropertyChange(PROPERTY_RSUFI_RESULTS, null, rsufiResults);
+ }
+
public Properties toProperties() {
Properties props = new Properties();
if (getAllYears() != null) {
props.setProperty("selection.allYears", StringUtils.join(getAllYears(),','));
}
if (getSelectedYears() != null) {
- props.setProperty("selection.selectedYears", StringUtils.join(getAllYears(),','));
+ props.setProperty("selection.selectedYears", StringUtils.join(getSelectedYears(),','));
}
if (getSelectedStrata() != null) {
props.setProperty("selection.selectedStrata", StringUtils.join(getSelectedStrata(),','));
@@ -180,6 +207,7 @@
if (description != null) {
props.setProperty("selection.description", description);
}
+ props.setProperty("selection.validated", String.valueOf(isValidated()));
if (comment != null) {
props.setProperty("selection.comment", comment);
}
@@ -214,6 +242,9 @@
if (props.containsKey("selection.comment")) {
setComment(props.getProperty("selection.comment"));
}
+ if (props.containsKey("selection.validated")) {
+ setValidated(Boolean.parseBoolean(props.getProperty("selection.validated")));
+ }
}
protected List<String> splitAsList(String str) {
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-11-22 17:53:03 UTC (rev 245)
@@ -67,6 +67,7 @@
import fr.ifremer.coser.bean.AbstractDataContainer;
import fr.ifremer.coser.bean.Control;
import fr.ifremer.coser.bean.Project;
+import fr.ifremer.coser.bean.RSufiResult;
import fr.ifremer.coser.bean.Selection;
import fr.ifremer.coser.command.Command;
import fr.ifremer.coser.command.DeleteLineCommand;
@@ -329,6 +330,9 @@
finally {
IOUtils.closeQuietly(inputStream);
}
+
+ List<RSufiResult> rsufiResults = loadRSufiResults(selectionDirectory);
+ selection.setRsufiResults(rsufiResults);
selections.put(selectionDirectory.getName(), selection);
}
@@ -359,6 +363,51 @@
}
/**
+ * Load rsufi result in specified directory.
+ *
+ * @param selectionDirectory selection directory
+ * @return rsufi results list
+ * @throws CoserBusinessException
+ */
+ protected List<RSufiResult> loadRSufiResults(File selectionDirectory) throws CoserBusinessException {
+
+ List<RSufiResult> results = new ArrayList<RSufiResult>();
+ File resultsDirectory = new File(selectionDirectory, CoserConstants.STORAGE_RESULTS_DIRECTORY);
+ File[] resultsDirectories = resultsDirectory.listFiles();
+
+ if (resultsDirectories != null) {
+ for (File resultDirectory : resultsDirectories) {
+ if (resultDirectory.isDirectory()) {
+ RSufiResult rsufiResult = new RSufiResult();
+ rsufiResult.setName(resultDirectory.getName());
+ results.add(rsufiResult);
+
+ // relecture des informations du resultat (properties)
+ File resultPropertiesFile = new File(resultDirectory, "result.properties");
+ InputStream inputStream = null;
+ try {
+ Properties props = new Properties();
+ inputStream = new FileInputStream(resultPropertiesFile);
+ props.load(inputStream);
+ rsufiResult.fromProperties(props);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Read result properties file : " + resultPropertiesFile);
+ }
+ } catch (IOException ex) {
+ throw new CoserBusinessException("Can't read result properties file", ex);
+ }
+ finally {
+ IOUtils.closeQuietly(inputStream);
+ }
+ }
+ }
+ }
+
+ return results;
+ }
+
+ /**
* Load control data in an initialized project.
*
* @param project project
@@ -607,45 +656,35 @@
* @throws CoserBusinessException
*/
public Selection initProjectSelection(Project project) throws CoserBusinessException {
-
- // tout ce qui suit doit exister à ce stade
- File projectsDirectory = config.getProjectsDirectory();
- String projectName = project.getName();
- File projectDirectory = new File(projectsDirectory, projectName);
- File controlDirectory = new File(projectDirectory, CoserConstants.STORAGE_CONTROL_DIRECTORY);
- File catchControlFile = new File(controlDirectory, Category.CATCH.getStorageFileName() +
- CoserConstants.STORAGE_CONTROL_SUFFIX + CoserConstants.STORAGE_CSV_EXTENSION);
- // petit test pour savoir si la validation a été validée
- // et sauvée, empechant dans le cas contraire, la création d'une selection
- if (!catchControlFile.exists()) {
- throw new CoserBusinessException(_("coser.business.selection.noControlForSelection"));
+ // le control doit être validé
+ if (!project.getControl().isValidated()) {
+ throw new CoserBusinessException(_("coser.business.selection.notValidatedControl"));
}
- // TODO echatellier 20101027 voir si on force que les
- // fichier de validation existe ici ou pas
-
Project localProject = project;
if (localProject.getControl() == null || !localProject.getControl().isDataLoaded()) {
localProject = loadControlData(localProject);
}
-
+
// create new selection
Control control = localProject.getControl();
DataStorage dataCatch = control.getCatch();
DataStorage dataHaul = control.getHaul();
DataStorage dataLength = control.getLength();
DataStorage dataStrata = control.getStrata();
-
+
project.clearData();
-
+
Selection selection = new Selection();
selection.setCatch(dataCatch);
selection.setHaul(dataHaul);
selection.setLength(dataLength);
selection.setStrata(dataStrata);
selection.setHistoryCommand(new ArrayList<Command>());
-
+
+ selection.setRsufiResults(new ArrayList<RSufiResult>());
+
return selection;
}
@@ -660,8 +699,7 @@
// tout ce qui suit doit exister à ce stade
File projectsDirectory = config.getProjectsDirectory();
- String projectName = project.getName();
- File projectDirectory = new File(projectsDirectory, projectName);
+ File projectDirectory = new File(projectsDirectory, project.getName());
// creation du dossier de selections (peut deja exister)
File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY);
@@ -690,8 +728,7 @@
// tout ce qui suit doit exister à ce stade
File projectsDirectory = config.getProjectsDirectory();
- String projectName = project.getName();
- File projectDirectory = new File(projectsDirectory, projectName);
+ File projectDirectory = new File(projectsDirectory, project.getName());
// creation du dossier de selections (peut deja exister)
File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY);
@@ -738,6 +775,59 @@
}
/**
+ * Save Rsufi result list in directory strucuture.
+ *
+ * RSufiResult is added to selection result list by this method.
+ *
+ * @param project project
+ * @param selection selection
+ * @param rsufiResult new result to save
+ * @throws CoserBusinessException
+ */
+ public void saveRsufiResults(Project project, Selection selection,
+ RSufiResult rsufiResult) throws CoserBusinessException {
+
+ File projectsDirectory = config.getProjectsDirectory();
+ File projectDirectory = new File(projectsDirectory, project.getName());
+ File selectionsDirectory = new File(projectDirectory, CoserConstants.STORAGE_SELECTION_DIRECTORY);
+ File selectionDirectory = new File(selectionsDirectory, selection.getName());
+ File resultsDirectory = new File(selectionDirectory, CoserConstants.STORAGE_RESULTS_DIRECTORY);
+ File rsufiResultDirectory = new File(resultsDirectory, rsufiResult.getName());
+
+ // save it
+ if (rsufiResultDirectory.exists()) {
+ throw new CoserBusinessException(_("coser.business.result.rsufiResultAlreadyExists", rsufiResult.getName()));
+ }
+ else {
+ rsufiResultDirectory.mkdirs();
+
+ // sauvegarde des informations du resultat (properties)
+ File propertiesFile = new File(rsufiResultDirectory, "result.properties");
+ Properties props = rsufiResult.toProperties();
+ OutputStream outputStream = null;
+ try {
+ outputStream = new FileOutputStream(propertiesFile);
+ props.store(outputStream, null);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Saving result properties file : " + propertiesFile);
+ }
+ } catch (IOException ex) {
+ throw new CoserBusinessException("Can't save result properties file", ex);
+ }
+ finally {
+ IOUtils.closeQuietly(outputStream);
+ }
+
+ List<RSufiResult> results = selection.getRsufiResults();
+ results.add(rsufiResult);
+ // this way to fire change event (do not remove)
+ selection.setRsufiResults(results);
+ }
+
+ }
+
+ /**
* Sauve une liste ordonnées de commande dans le fichier specifié.
*
* @param props proparties to add command to
@@ -1154,7 +1244,7 @@
* @return zones
*/
public List<String> filterDataYearsAndGetStrata(Selection selection, Collection<String> years) {
-
+
List<String> result = new ArrayList<String>();
// manage haul
@@ -1175,6 +1265,10 @@
}
}
+ if (log.isDebugEnabled()) {
+ log.debug("Haul data filtered by " + years);
+ }
+
// manage catch
Iterator<String[]> itCatch = selection.getCatch().iterator();
itCatch.next(); // skip header
@@ -1187,6 +1281,10 @@
}
}
+ if (log.isDebugEnabled()) {
+ log.debug("Catch data filtered by " + years);
+ }
+
// manage length
Iterator<String[]> itLength = selection.getLength().iterator();
itLength.next(); // skip header
@@ -1198,6 +1296,10 @@
itLength.remove();
}
}
+
+ if (log.isDebugEnabled()) {
+ log.debug("Length data filtered by " + years);
+ }
return result;
}
Modified: trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties
===================================================================
--- trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2010-11-22 17:53:03 UTC (rev 245)
@@ -53,7 +53,9 @@
coser.business.control.step.observation=
coser.business.control.step.xworks=
coser.business.line=Line
+coser.business.result.rsufiResultAlreadyExists=
coser.business.selection.noControlForSelection=
+coser.business.selection.notValidatedControl=
coser.config.control.diffcatchlength.description=
coser.config.database.directory.description=
coser.config.observation.nobsmin.description=
Modified: trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties
===================================================================
--- trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2010-11-22 17:53:03 UTC (rev 245)
@@ -53,7 +53,9 @@
coser.business.control.step.observation=V\u00E9rification du nombre d'observation (%d%%)
coser.business.control.step.xworks=Validation par lignes (%d%%)
coser.business.line=Ligne
+coser.business.result.rsufiResultAlreadyExists=Le r\u00E9sultat %D existe d\u00E9j\u00E0 \!
coser.business.selection.noControlForSelection=Impossible de creer une s\u00E9lection sans donn\u00E9es control\u00E9es.
+coser.business.selection.notValidatedControl=Contr\u00F4le non valid\u00E9 \!
coser.config.control.diffcatchlength.description=Pourcentage d'\u00E9cart tol\u00E9r\u00E9 entre les captures et les tailles
coser.config.database.directory.description=Emplacement de la base de campagnes de coser
coser.config.observation.nobsmin.description=Nombre minimal d'observation
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2010-11-22 17:53:03 UTC (rev 245)
@@ -374,11 +374,7 @@
view.setContextValue(selection);
SelectionView selectionView = new SelectionView(view);
- selectionView.setCreationState(true);
selectionView.setSelection(selection);
- // disable tabs
- selectionView.setEnabledAt(1, false); // selection lists
- selectionView.setEnabledAt(2, false); // rsufi
// fix, binding not working ?
selectionView.getSelectionDetailsTab().getValidatorSelection().setBean(selection);
@@ -435,8 +431,6 @@
setMainComponent(selectionView);
} catch (CoserBusinessException ex) {
throw new CoserException("Can't reload selection data", ex);
- } catch(Exception ex){
- throw new CoserException("Can't init map", ex);
}
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultTableModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultTableModel.java 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/ResultTableModel.java 2010-11-22 17:53:03 UTC (rev 245)
@@ -23,41 +23,37 @@
package fr.ifremer.coser.ui.result;
-import java.util.ArrayList;
-import java.util.List;
+import static org.nuiton.i18n.I18n._;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
import javax.swing.table.AbstractTableModel;
+import fr.ifremer.coser.bean.RSufiResult;
+import fr.ifremer.coser.bean.Selection;
+import fr.ifremer.coser.ui.selection.SelectionRsufiView;
+
/**
+ * Modele de la table des résultats RSufi.
*
- *
* @author chatellier
* @version $Revision$
*
* Last update : $Date$
* By : $Author$
*/
-public class ResultTableModel extends AbstractTableModel {
+public class ResultTableModel extends AbstractTableModel implements PropertyChangeListener {
/** serialVersionUID. */
private static final long serialVersionUID = -1192463259386773117L;
- protected List<String> data;
- protected List<String> header;
+ protected Selection selection;
- public ResultTableModel() {
-
- header = new ArrayList<String>();
- header.add("Nom du r\u00E9sultat :");
- header.add("Version RSufi");
- header.add("Fichier données 1");
- header.add("Fichier données 2");
+ public ResultTableModel(SelectionRsufiView view) {
+ selection = view.getContextValue(Selection.class);
- data = new ArrayList<String>();
- data.add("R\u00E9sultat de test");
- data.add("1.0.0");
- data.add("EstComInd_IBTS.txt");
- data.add("EstPopInd_IBTS.txt");
+ selection.addPropertyChangeListener(Selection.PROPERTY_RSUFI_RESULTS, this);
}
/*
@@ -65,7 +61,7 @@
*/
@Override
public int getRowCount() {
- return 4;
+ return selection.getRsufiResults().size();
}
/*
@@ -73,14 +69,28 @@
*/
@Override
public int getColumnCount() {
- return header.size();
+ return 4;
}
@Override
public String getColumnName(int column) {
String name = null;
- name = header.get(column);
+
+ switch (column) {
+ case 0:
+ name = _("coser.ui.result.table.resultName");
+ break;
+ case 1:
+ name = _("coser.ui.result.table.rsufiVersion");
+ break;
+ case 2:
+ name = _("coser.ui.result.table.dataFile1");
+ break;
+ case 3:
+ name = _("coser.ui.result.table.dataFile2");
+ break;
+ }
return name;
}
@@ -91,9 +101,27 @@
public Object getValueAt(int rowIndex, int columnIndex) {
Object result = null;
+ RSufiResult rsufiResult = selection.getRsufiResults().get(rowIndex);
+ switch (columnIndex) {
+ case 0:
+ result = rsufiResult.getName();
+ break;
+ case 1:
+ result = rsufiResult.getRsufiVersion();
+ break;
+ default:
+ result = "N/A";
+ break;
+ }
- result = data.get(columnIndex);
-
return result;
}
+
+ /*
+ * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
+ */
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ fireTableDataChanged();
+ }
}
Added: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/result/SelectionAddResultDialog.jaxx 2010-11-22 17:53:03 UTC (rev 245)
@@ -0,0 +1,115 @@
+<!--
+ #%L
+ Coser :: UI
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric
+ %%
+ 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%
+ -->
+<JDialog title="coser.ui.result.newResult" modal="true">
+ <Table>
+ <fr.ifremer.coser.ui.selection.SelectionHandler id="handler" javaBean="null" />
+
+ <fr.ifremer.coser.bean.RSufiResult id="rsufiResult" javaBean="null" />
+ <jaxx.runtime.validator.swing.SwingValidatorMessageTableModel id='errorsTableModel'
+ onTableChanged='saveResultButton.setEnabled(errorsTableModel.getRowCount()==0)'/>
+ <BeanValidator id='validatorRSufiResult' bean='rsufiResult'
+ uiClass="jaxx.runtime.validator.swing.ui.ImageValidationUI"
+ errorTableModel="errorsTableModel">
+ <field name="name" component="resultNameField" />
+ <field name="rsufiVersion" component="resultRsufiVersion" />
+ </BeanValidator>
+
+ <row>
+ <cell anchor="west">
+ <JLabel text="coser.ui.result.resultName" />
+ </cell>
+ <cell fill="horizontal" columns="2">
+ <JTextField id="resultNameField" />
+ <javax.swing.text.Document javaBean="resultNameField.getDocument()"
+ onInsertUpdate='getRsufiResult().setName(resultNameField.getText())'
+ onRemoveUpdate='getRsufiResult().setName(resultNameField.getText())' />
+ </cell>
+ </row>
+ <row>
+ <cell anchor="west">
+ <JLabel text="coser.ui.result.rsufiVersion" />
+ </cell>
+ <cell fill="horizontal" columns="2">
+ <JTextField id="resultRsufiVersion" />
+ <javax.swing.text.Document javaBean="resultRsufiVersion.getDocument()"
+ onInsertUpdate='getRsufiResult().setRsufiVersion(resultRsufiVersion.getText())'
+ onRemoveUpdate='getRsufiResult().setRsufiVersion(resultRsufiVersion.getText())' />
+ </cell>
+ </row>
+ <row>
+ <cell anchor="west">
+ <JLabel text="coser.ui.result.dataFile1" />
+ </cell>
+ <cell weightx="1" fill="horizontal">
+ <JTextField />
+ </cell>
+ <cell fill="horizontal">
+ <JButton text="coser.ui.common.selectFile" />
+ </cell>
+ </row>
+ <row>
+ <cell anchor="west">
+ <JLabel text="coser.ui.result.dataFile2" />
+ </cell>
+ <cell fill="horizontal">
+ <JTextField />
+ </cell>
+ <cell fill="horizontal">
+ <JButton text="coser.ui.common.selectFile" />
+ </cell>
+ </row>
+ <row>
+ <cell anchor="west" columns="3">
+ <JLabel text="coser.ui.result.otherDataFile" />
+ </cell>
+ </row>
+ <row>
+ <cell columns="3" weighty="1" fill="both">
+ <JScrollPane>
+ <JList />
+ </JScrollPane>
+ </cell>
+ </row>
+ <row>
+ <cell columns="3" fill="horizontal">
+ <Table>
+ <row>
+ <cell>
+ <JButton text="coser.ui.result.addOtherDataFile" />
+ </cell>
+ <cell weightx="1" anchor="east">
+ <JButton text="coser.ui.result.cancel"
+ onActionPerformed="dispose()"/>
+ </cell>
+ <cell>
+ <JButton id="saveResultButton" text="coser.ui.result.validNewResult"
+ onActionPerformed="getHandler().performAddResult(this)"/>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ </row>
+ </Table>
+</JDialog>
\ No newline at end of file
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionDetailsView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionDetailsView.jaxx 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionDetailsView.jaxx 2010-11-22 17:53:03 UTC (rev 245)
@@ -49,6 +49,14 @@
</BeanValidator>
<row>
+ <cell weightx="1" fill="horizontal" columns="2">
+ <JToolBar floatable="false">
+ <JButton id="saveSelectionButton" text="coser.ui.selection.details.saveSelection"
+ onActionPerformed="getHandler().saveSelection(this)" />
+ </JToolBar>
+ </cell>
+ </row>
+ <row>
<cell weightx="1" weighty="1" fill="both">
<Table>
<row>
@@ -218,12 +226,6 @@
</JScrollPane>
</cell>
</row>
- <row>
- <cell fill="horizontal" columns="1">
- <JButton id="saveSelectionButton" text="coser.ui.selection.details.saveSelection"
- onActionPerformed="getHandler().saveSelection(this)" />
- </cell>
- </row>
</Table>
</cell>
<cell weightx="3" weighty="1" fill="both">
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-11-22 17:53:03 UTC (rev 245)
@@ -56,9 +56,11 @@
import fr.ifremer.coser.CoserBusinessException;
import fr.ifremer.coser.CoserException;
import fr.ifremer.coser.bean.Project;
+import fr.ifremer.coser.bean.RSufiResult;
import fr.ifremer.coser.bean.Selection;
import fr.ifremer.coser.services.ChartService;
import fr.ifremer.coser.services.ProjectService;
+import fr.ifremer.coser.ui.result.SelectionAddResultDialog;
import fr.ifremer.coser.ui.selection.model.OccurrenceDensitySpecyListModel;
import fr.ifremer.coser.ui.util.CoserListSelectionModel;
@@ -141,9 +143,16 @@
// c'est normalement la seule initialisation a faire
SelectionDetailsView detailView = view.getSelectionDetailsTab();
List<String> allYears = projectService.getProjectYears(selection);
+ selection.setAllYears(allYears);
detailView.getDatesListModel().setYears(allYears);
// tout est selectionné par defaut
((CoserListSelectionModel)detailView.getDatesList().getSelectionModel()).setSelectedObjects(allYears);
+
+ view.setCreationState(true);
+
+ // disable tabs
+ view.setEnabledAt(1, false); // selection lists
+ view.setEnabledAt(2, false); // rsufi
}
/**
@@ -165,19 +174,31 @@
// fill details view
SelectionDetailsView detailView = view.getSelectionDetailsTab();
detailView.getDatesListModel().setYears(selection.getAllYears());
- ((CoserListSelectionModel)detailView.getDatesList().getSelectionModel()).setSelectedObjects(selection.getSelectedYears());
+ List<String> selectedYears = selection.getSelectedYears();
+ if (selectedYears != null) {
+ ((CoserListSelectionModel)detailView.getDatesList().getSelectionModel()).setSelectedObjects(selectedYears);
+ }
// fill strata data and selection
updateSelectionDateData(detailView);
- ((CoserListSelectionModel)detailView.getStrataList().getSelectionModel()).setSelectedObjects(selection.getSelectedStrata());
+ List<String> selectedStrata = selection.getSelectedStrata();
+ if (selectedStrata != null) {
+ ((CoserListSelectionModel)detailView.getStrataList().getSelectionModel()).setSelectedObjects(selectedStrata);
+ }
// fill specy list and selection
strataListChanged(detailView);
- detailView.getSelectedSpecyListModel().setSpecies(selection.getSelectedSpecies());
+ List<String> selectedSpecies = selection.getSelectedSpecies();
+ if (selectedSpecies != null) {
+ detailView.getSelectedSpecyListModel().setSpecies(selectedSpecies);
+ }
if (log.isDebugEnabled()) {
log.debug("Selection reloaded.");
}
+
+ // disable tabs
+ view.setEnabledAt(2, selection.isValidated()); // rsufi
}
/**
@@ -198,10 +219,13 @@
selection.setSelectedYears(years);
if (log.isDebugEnabled()) {
- log.debug("Refreshing zones list");
+ log.debug("Refreshing strata list");
}
List<String> strata = projectService.filterDataYearsAndGetStrata(selection, years);
view.getStrataListModel().setStrata(strata);
+ if (log.isDebugEnabled()) {
+ log.debug("Strata list refreshed");
+ }
}
/**
@@ -348,10 +372,44 @@
// enable tabs
selectionView.setEnabledAt(1, true); // selection lists
- selectionView.setEnabledAt(2, true); // rsufi
}
/**
+ * Sauvegarde la sélection.
+ *
+ * @param view parent view
+ */
+ public void saveSelection(SelectionListsView view) {
+
+ Project project = view.getContextValue(Project.class);
+ Selection selection = view.getContextValue(Selection.class);
+ ProjectService service = view.getContextValue(ProjectService.class);
+ SelectionView selectionView = view.getParentContainer(SelectionView.class);
+
+ try {
+ service.saveProjectSelection(project, selection);
+ }
+ catch (CoserBusinessException ex) {
+ JOptionPane.showMessageDialog(view, ex.getMessage(), _("coser.ui.selection.saveError"), JOptionPane.ERROR_MESSAGE);
+ throw new CoserException("Can't save selection", ex);
+ }
+
+ // enable tabs
+ selectionView.setEnabledAt(2, selection.isValidated()); // selection lists
+ }
+
+ /**
+ * Marque la selection comme validée.
+ *
+ * @param view view
+ */
+ public void validSelection(SelectionListsView view) {
+ Selection selection = view.getContextValue(Selection.class);
+ selection.setValidated(true);
+ saveSelection(view);
+ }
+
+ /**
* Mise à jour du filtre d'ocurrence et densité.
*
* Selectionne dans la liste seulement les especes ayant une densité
@@ -389,15 +447,6 @@
}
/**
- * Sauvegarde des listes des selectino d'especes.
- *
- * @param view view
- */
- public void saveSelectionLists(SelectionListsView view) {
-
- }
-
- /**
* Check que les paramêtres sont correct (nouveau nom existant)
* et applique la fusion d'espece. Rafraichit la view
* parente ensuite.
@@ -412,7 +461,7 @@
String newSpecyName = view.getNewSpeciesNameField().getText();
String comment = view.getCommentField().getText();
Project project = view.getContextValue(Project.class);
- Selection seletion = view.getContextValue(Selection.class);
+ Selection selection = view.getContextValue(Selection.class);
ProjectService projectService = view.getContextValue(ProjectService.class);
boolean newSpecyExist = projectService.isSpecyNameExist(project, newSpecyName);
@@ -431,7 +480,7 @@
}
try {
- projectService.mergeSpecies(project, seletion, newSpecyName, comment, specyNames);
+ projectService.mergeSpecies(project, selection, newSpecyName, comment, specyNames);
}
catch (CoserBusinessException ex) {
throw new CoserException("Can't merge species", ex);
@@ -557,4 +606,42 @@
}
selection.setSelectedSpecies(species);
}*/
+
+ /**
+ * Display rsufi new result dialog.
+ *
+ * @param view view
+ */
+ public void showAddResultDialog(SelectionRsufiView view) {
+ SelectionAddResultDialog addResultView = new SelectionAddResultDialog(view);
+ addResultView.setRsufiResult(new RSufiResult());
+ addResultView.getValidatorRSufiResult().setBean(addResultView.getRsufiResult());
+ addResultView.setHandler(this);
+ addResultView.pack();
+ addResultView.setLocationRelativeTo(view);
+ addResultView.setVisible(true);
+ }
+
+ /**
+ * Save new result after clicking "ok" button on SelectionAddResultDialog
+ * opened by {@link #showAddResultDialog(SelectionRsufiView)}.
+ *
+ * @param view view
+ */
+ public void performAddResult(SelectionAddResultDialog view) {
+
+ Project project = view.getContextValue(Project.class);
+ Selection selection = view.getContextValue(Selection.class);
+ ProjectService projectService = view.getContextValue(ProjectService.class);
+
+ RSufiResult newResult = view.getRsufiResult();
+ try {
+ projectService.saveRsufiResults(project, selection, newResult);
+ }
+ catch (CoserBusinessException ex) {
+ JOptionPane.showMessageDialog(view, ex.getMessage(), _("coser.ui.result.saveError"), JOptionPane.ERROR_MESSAGE);
+ throw new CoserException("Can't save result", ex);
+ }
+ view.dispose();
+ }
}
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2010-11-22 17:53:03 UTC (rev 245)
@@ -47,6 +47,16 @@
]]></script>
<row>
+ <cell columns="8" weightx="1" fill="horizontal">
+ <JToolBar floatable="false">
+ <JButton id="saveSelectionButton" text="coser.ui.selection.details.saveSelection"
+ onActionPerformed="getHandler().saveSelection(this)" />
+ <JButton id="validSelectionButton" text="coser.ui.selection.details.validSelection"
+ onActionPerformed="getHandler().validSelection(this)" />
+ </JToolBar>
+ </cell>
+ </row>
+ <row>
<cell fill="horizontal" columns="2">
<JXTitledSeparator title="coser.ui.selection.allSpecies" />
</cell>
@@ -167,9 +177,4 @@
</JScrollPane>
</cell>
</row>
- <row>
- <cell anchor="east" columns="8">
- <JButton text="coser.ui.common.valid" onActionPerformed="getHandler().saveSelectionLists(this)" />
- </cell>
- </row>
</Table>
Deleted: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionResultView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionResultView.jaxx 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionResultView.jaxx 2010-11-22 17:53:03 UTC (rev 245)
@@ -1,126 +0,0 @@
-<!--
- #%L
- Coser :: UI
-
- $Id$
- $HeadURL$
- %%
- Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric
- %%
- 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%
- -->
-<Table>
- <SelectionHandler id="handler" javaBean="null" />
- <row>
- <cell weightx="1" fill="horizontal">
- <Table border='{BorderFactory.createTitledBorder(_("coser.ui.result.extractDataTitle"))}'>
- <row>
- <cell>
- <JLabel text="coser.ui.result.extractDataLabel" />
- </cell>
- <cell weightx="1" fill="horizontal">
- <JTextField id="resultExtractDataField" />
- </cell>
- <cell>
- <JButton text="coser.ui.common.selectFile" />
- </cell>
- </row>
- <row>
- <cell columns="3">
- <JButton text="coser.ui.result.extractDataButton" />
- </cell>
- </row>
- </Table>
- </cell>
- </row>
- <row>
- <cell weightx="1" weighty="2" fill="both">
- <Table border='{BorderFactory.createTitledBorder(_("coser.ui.result.availableDataTitle"))}'>
- <row>
- <cell weightx="1" weighty="1" fill="both">
- <JScrollPane>
- <JTable model="{new fr.ifremer.coser.ui.result.ResultTableModel()}"/>
- </JScrollPane>
- </cell>
- </row>
- <row>
- <cell weighty="1" fill="both">
- <Table border='{BorderFactory.createTitledBorder(_("coser.ui.result.newDataTitle"))}'>
- <row>
- <cell anchor="west">
- <JLabel text="coser.ui.result.resultName" />
- </cell>
- <cell fill="horizontal" columns="2">
- <JTextField />
- </cell>
- </row>
- <row>
- <cell anchor="west">
- <JLabel text="coser.ui.result.rsufiVersion" />
- </cell>
- <cell fill="horizontal" columns="2">
- <JTextField />
- </cell>
- </row>
- <row>
- <cell anchor="west">
- <JLabel text="coser.ui.result.dataFile1" />
- </cell>
- <cell weightx="1" fill="horizontal">
- <JTextField />
- </cell>
- <cell fill="horizontal">
- <JButton text="coser.ui.common.selectFile" />
- </cell>
- </row>
- <row>
- <cell anchor="west">
- <JLabel text="coser.ui.result.dataFile2" />
- </cell>
- <cell fill="horizontal">
- <JTextField />
- </cell>
- <cell fill="horizontal">
- <JButton text="coser.ui.common.selectFile" />
- </cell>
- </row>
- <row>
- <cell anchor="west" columns="3">
- <JLabel text="coser.ui.result.otherDataFile" />
- </cell>
- </row>
- <row>
- <cell columns="3" weighty="1" fill="both">
- <JScrollPane>
- <JList />
- </JScrollPane>
- </cell>
- </row>
- <row>
- <cell weightx="1" columns="2" anchor="east">
- <JButton text="coser.ui.result.addOtherDataFile" />
- </cell>
- <cell anchor="east">
- <JButton text="coser.ui.result.addNewResult" />
- </cell>
- </row>
- </Table>
- </cell>
- </row>
- </Table>
- </cell>
- </row>
-</Table>
Copied: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx (from rev 207, trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionResultView.jaxx)
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx 2010-11-22 17:53:03 UTC (rev 245)
@@ -0,0 +1,68 @@
+<!--
+ #%L
+ Coser :: UI
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric
+ %%
+ 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%
+ -->
+<Table>
+ <SelectionHandler id="handler" javaBean="null" />
+ <row>
+ <cell weightx="1" fill="horizontal">
+ <Table border='{BorderFactory.createTitledBorder(_("coser.ui.result.extractDataTitle"))}'>
+ <row>
+ <cell>
+ <JLabel text="coser.ui.result.extractDataLabel" />
+ </cell>
+ <cell weightx="1" fill="horizontal">
+ <JTextField id="resultExtractDataField" />
+ </cell>
+ <cell>
+ <JButton text="coser.ui.common.selectFile" />
+ </cell>
+ </row>
+ <row>
+ <cell columns="3">
+ <JButton text="coser.ui.result.extractDataButton" />
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ </row>
+ <row>
+ <cell weightx="1" weighty="2" fill="both">
+ <Table border='{BorderFactory.createTitledBorder(_("coser.ui.result.availableDataTitle"))}'>
+ <row>
+ <cell weightx="1" weighty="1" fill="both">
+ <JScrollPane>
+ <JTable model="{new fr.ifremer.coser.ui.result.ResultTableModel(this)}"/>
+ </JScrollPane>
+ </cell>
+ </row>
+ <row>
+ <cell anchor="east">
+ <JButton text="coser.ui.result.addNewResult"
+ onActionPerformed="getHandler().showAddResultDialog(this)" />
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ </row>
+</Table>
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionView.jaxx 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionView.jaxx 2010-11-22 17:53:03 UTC (rev 245)
@@ -48,7 +48,7 @@
handler="{getHandler()}" />
</tab>
<tab title="coser.ui.selection.tab.rsufi">
- <SelectionResultView id="selectionResultView" constructorParams="this"
+ <SelectionRsufiView id="selectionResultView" constructorParams="this"
handler="{getHandler()}" />
</tab>
</JTabbedPane>
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/util/CoserListSelectionModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/util/CoserListSelectionModel.java 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/util/CoserListSelectionModel.java 2010-11-22 17:53:03 UTC (rev 245)
@@ -144,6 +144,7 @@
}
protected void registerSelection(int index0, int index1) {
+
for (int i = index0 ; i <= index1 ; ++i) {
Object o = coserListModel.getElementAt(i);
if (isSelectedIndex(i)) {
Added: trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/RSufiResult-error-validation.xml
===================================================================
--- trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/RSufiResult-error-validation.xml (rev 0)
+++ trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/RSufiResult-error-validation.xml 2010-11-22 17:53:03 UTC (rev 245)
@@ -0,0 +1,41 @@
+<!--
+ #%L
+ Coser :: UI
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric
+ %%
+ 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%
+ -->
+<!DOCTYPE validators PUBLIC
+ "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
+ "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+<validators>
+ <field name="name">
+ <field-validator type="requiredstring">
+ <param name="trim">true</param>
+ <message>coser.ui.result.requiredname</message>
+ </field-validator>
+ </field>
+ <field name="rsufiVersion">
+ <field-validator type="requiredstring">
+ <param name="trim">true</param>
+ <message>coser.ui.result.requiredrsufiVersion</message>
+ </field-validator>
+ </field>
+</validators>
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2010-11-22 17:53:03 UTC (rev 245)
@@ -89,15 +89,26 @@
coser.ui.result.addNewResult=Save result
coser.ui.result.addOtherDataFile=Add file
coser.ui.result.availableDataTitle=Available results \:
+coser.ui.result.cancel=
coser.ui.result.dataFile1=Data file 1 \:
coser.ui.result.dataFile2=Data file 2 \:
coser.ui.result.extractDataButton=Extract
coser.ui.result.extractDataLabel=Extraction directory
coser.ui.result.extractDataTitle=Extract RSufi data
coser.ui.result.newDataTitle=New result
+coser.ui.result.newResult=
coser.ui.result.otherDataFile=Other files \:
+coser.ui.result.requiredauthor=
+coser.ui.result.requiredname=
+coser.ui.result.requiredrsufiVersion=
coser.ui.result.resultName=Result name \:
coser.ui.result.rsufiVersion=RSufi version
+coser.ui.result.saveError=
+coser.ui.result.table.dataFile1=
+coser.ui.result.table.dataFile2=
+coser.ui.result.table.resultName=
+coser.ui.result.table.rsufiVersion=
+coser.ui.result.validNewResult=
coser.ui.selection.allSpecies=L1 \: All species
coser.ui.selection.createError=Creation error
coser.ui.selection.details.beginDate=Begin date \:
@@ -116,6 +127,7 @@
coser.ui.selection.details.type=
coser.ui.selection.details.validDates=
coser.ui.selection.details.validFilter=
+coser.ui.selection.details.validSelection=
coser.ui.selection.details.validStrata=
coser.ui.selection.filter.density=Density \:
coser.ui.selection.filter.filter=Filter
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2010-11-22 17:53:03 UTC (rev 245)
@@ -33,11 +33,11 @@
coser.ui.control.globalErrorMenuSelectAll=S\u00E9lectionner toutes les lignes
coser.ui.control.graph.specy=Esp\u00E8ces \:
coser.ui.control.graphtitle=Graphique
-coser.ui.control.project.requiredauthor=Le champs 'auteur' est requis
+coser.ui.control.project.requiredauthor=Le champ 'auteur' est requis
coser.ui.control.project.requiredcatchFile=Le fichier 'capture' est requis
coser.ui.control.project.requiredhaulFile=Le fichier 'traits' est requis
coser.ui.control.project.requiredlengthFile=Le fichier 'taille' est requis
-coser.ui.control.project.requiredname=Le champs 'nom' est requis
+coser.ui.control.project.requiredname=Le champ 'nom' est requis
coser.ui.control.project.requiredstrataFile=Le fichier 'strates' est requis
coser.ui.control.replace.find=Chercher \:
coser.ui.control.replace.inField=Dans le champ \:
@@ -86,18 +86,28 @@
coser.ui.project.traitsFile=Fichiers des traits \:
coser.ui.project.useCustomReferenceSpeciesFile=Utiliser un autre fichier de r\u00E9f\u00E9rence
coser.ui.project.usedReferenceSpeciesFile=Fichier de r\u00E9f\u00E9rence utilis\u00E9 (Reftax) \:
-coser.ui.result.addNewResult=Enregistrer le r\u00E9sultat
+coser.ui.result.addNewResult=Ajouter un r\u00E9sultat
coser.ui.result.addOtherDataFile=Ajouter un fichier
-coser.ui.result.availableDataTitle=R\u00E9sultats disponibles \:
+coser.ui.result.availableDataTitle=R\u00E9sultats disponibles
+coser.ui.result.cancel=Annuler
coser.ui.result.dataFile1=Fichier r\u00E9sultat 1 \:
coser.ui.result.dataFile2=Fichier r\u00E9sultat 2 \:
coser.ui.result.extractDataButton=Extraire
coser.ui.result.extractDataLabel=Dossier d'extraction \:
coser.ui.result.extractDataTitle=Extraction des donn\u00E9es d'entr\u00E9e de RSufi
coser.ui.result.newDataTitle=Nouveau r\u00E9sultat
+coser.ui.result.newResult=Nouveau r\u00E9sultat
coser.ui.result.otherDataFile=Autre fichiers \:
+coser.ui.result.requiredname=Le champ 'name' est requis
+coser.ui.result.requiredrsufiVersion=Le champ 'rsufiVersion' est requis
coser.ui.result.resultName=Nom du r\u00E9sultat \:
coser.ui.result.rsufiVersion=Version de RSufi \:
+coser.ui.result.saveError=Erreur de sauvegarde
+coser.ui.result.table.dataFile1=Fichier de donn\u00E9es 1
+coser.ui.result.table.dataFile2=Fichier de donn\u00E9es 2
+coser.ui.result.table.resultName=Nom du r\u00E9sultat
+coser.ui.result.table.rsufiVersion=Version de RSufi
+coser.ui.result.validNewResult=Ajouter le r\u00E9sultat
coser.ui.selection.allSpecies=L1 \: Toutes les esp\u00E8ces
coser.ui.selection.createError=Erreur de cr\u00E9action
coser.ui.selection.details.comment=Commentaire \:
@@ -105,7 +115,7 @@
coser.ui.selection.details.description=Description \:
coser.ui.selection.details.filteredSpecies=Esp\u00E8ces filtr\u00E9es \:
coser.ui.selection.details.name=Nom de la s\u00E9lection \:
-coser.ui.selection.details.saveSelection=Sauvegarder la s\u00E9lection \:
+coser.ui.selection.details.saveSelection=Sauvegarder la s\u00E9lection
coser.ui.selection.details.selectedSpecies=Esp\u00E8ces s\u00E9lectionn\u00E9es \:
coser.ui.selection.details.showMapTip=Afficher la carte des zones
coser.ui.selection.details.showSpreciesTip=Afficher la table des esp\u00E8ces
@@ -114,6 +124,7 @@
coser.ui.selection.details.type=Filtrer par type \:
coser.ui.selection.details.validDates=Valider les ann\u00E9es
coser.ui.selection.details.validFilter=Valider les filtres
+coser.ui.selection.details.validSelection=Valider la s\u00E9lection
coser.ui.selection.details.validStrata=Valider les strates
coser.ui.selection.filter.density=Densit\u00E9 \:
coser.ui.selection.filter.filter=Filtrer
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-11-22 14:02:49 UTC (rev 244)
+++ trunk/pom.xml 2010-11-22 17:53:03 UTC (rev 245)
@@ -221,7 +221,7 @@
<!-- Versions -->
<jaxx.version>2.2.4-SNAPSHOT</jaxx.version>
- <i18n.version>2.0</i18n.version>
+ <i18n.version>2.0-SNAPSHOT</i18n.version>
</properties>
<scm>
1
0