Author: chatellier
Date: 2010-11-25 14:31:31 +0000 (Thu, 25 Nov 2010)
New Revision: 275
Log:
Save occurrence and density filter.
Ass occurrence and density configuration
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.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/java/fr/ifremer/coser/services/ValidationService.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/selection/SelectionHandler.java
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-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java 2010-11-25 13:38:11 UTC (rev 274)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/CoserBusinessConfig.java 2010-11-25 14:31:31 UTC (rev 275)
@@ -82,16 +82,26 @@
return result;
}
- public double getObervationNobsmin() {
- double result = getOptionAsDouble(CoserBusinessOption.OBSERVATION_NOBSMIN.key);
+ public double getControlNobsmin() {
+ double result = getOptionAsDouble(CoserBusinessOption.CONTROL_NOBSMIN.key);
return result;
}
public double getControlDiffCatchLength() {
- double result = getOptionAsDouble(CoserBusinessOption.CONTROL_DIFF_CACTH_LENGTH.key);
+ double result = getOptionAsDouble(CoserBusinessOption.CONTROL_DIFF_CATCH_LENGTH.key);
return result;
}
+ public double getSelectionOccurrenceFilter() {
+ double result = getOptionAsDouble(CoserBusinessOption.SELECTION_FILTER_OCCURRENCE.key);
+ return result;
+ }
+
+ public double getSelectionDensityFilter() {
+ double result = getOptionAsDouble(CoserBusinessOption.SELECTION_FILTER_DENSITY.key);
+ return result;
+ }
+
public static enum CoserBusinessOption implements OptionDef {
DATABASE_DIRECTORY("coser.database.directory", _("coser.config.database.directory.description"), "${user.home}" + File.separator + "coser", String.class, false, false),
@@ -101,8 +111,10 @@
REFERENCE_SPECIES("coser.reference.species", _("coser.config.reference.species.description"), "", String.class, false, false),
REFERENCE_TYPE_ESPECES("coser.reference.typeEspeces", _("coser.config.reference.typeEspeces.description"), "", String.class, false, false),
- OBSERVATION_NOBSMIN("coser.observation.nobsmin", _("coser.config.observation.nobsmin.description"), "1.0", Double.class, false, false),
- CONTROL_DIFF_CACTH_LENGTH("coser.control.diffcatchlength", _("coser.config.control.diffcatchlength.description"), "5.0", Double.class, false, false);
+ CONTROL_NOBSMIN("coser.control.nobsmin", _("coser.config.control.nobsmin.description"), "1.0", Double.class, false, false),
+ CONTROL_DIFF_CATCH_LENGTH("coser.control.diffcatchlength", _("coser.config.control.diffcatchlength.description"), "5.0", Double.class, false, false),
+ SELECTION_FILTER_OCCURRENCE("coser.selection.occurrenceFilter", _("coser.config.selection.occurrenceFilter.description"), "5.0", Double.class, false, false),
+ SELECTION_FILTER_DENSITY("coser.selection.densityFilter", _("coser.config.selection.densityFilter.description"), "5.0", Double.class, false, false);
protected String key;
protected String description;
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-25 13:38:11 UTC (rev 274)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Selection.java 2010-11-25 14:31:31 UTC (rev 275)
@@ -31,6 +31,9 @@
import org.apache.commons.lang.StringUtils;
+import fr.ifremer.coser.CoserBusinessConfig;
+import fr.ifremer.coser.CoserConstants;
+
/**
* Project selection.
*
@@ -61,6 +64,10 @@
protected String comment;
+ protected double occurrenceFilter;
+
+ protected double densityFilter;
+
/** L1 : liste des especes. */
protected List<String> selectedSpecies;
@@ -143,6 +150,26 @@
getPropertyChangeSupport().firePropertyChange("comment", oldValue, comment);
}
+ public double getOccurrenceFilter() {
+ return occurrenceFilter;
+ }
+
+ public void setOccurrenceFilter(double occurrenceFilter) {
+ double oldValue = this.occurrenceFilter;
+ this.occurrenceFilter = occurrenceFilter;
+ getPropertyChangeSupport().firePropertyChange("occurrenceFilter", oldValue, occurrenceFilter);
+ }
+
+ public double getDensityFilter() {
+ return densityFilter;
+ }
+
+ public void setDensityFilter(double densityFilter) {
+ double oldValue = this.densityFilter;
+ this.densityFilter = densityFilter;
+ getPropertyChangeSupport().firePropertyChange("densityFilter", oldValue, densityFilter);
+ }
+
public List<String> getSelectedSpecies() {
return selectedSpecies;
}
@@ -255,6 +282,8 @@
if (comment != null) {
props.setProperty("selection.comment", comment);
}
+ props.setProperty("selection.occurrenceFilter", String.valueOf(occurrenceFilter));
+ props.setProperty("selection.densityFilter", String.valueOf(densityFilter));
if (getSelectedSpecies() != null) {
props.setProperty("selection.selectedSpecies", StringUtils.join(getSelectedSpecies(),','));
}
@@ -300,6 +329,12 @@
if (props.containsKey("selection.comment")) {
setComment(props.getProperty("selection.comment"));
}
+ if (props.containsKey("selection.occurrenceFilter")) {
+ setOccurrenceFilter(Double.parseDouble(props.getProperty("selection.occurrenceFilter")));
+ }
+ if (props.containsKey("selection.densityFilter")) {
+ setDensityFilter(Double.parseDouble(props.getProperty("selection.densityFilter")));
+ }
if (props.containsKey("selection.selectedSpecies")) {
setSelectedSpecies(splitAsList(props.getProperty("selection.selectedSpecies")));
}
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-25 13:38:11 UTC (rev 274)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-11-25 14:31:31 UTC (rev 275)
@@ -686,6 +686,10 @@
selection.setHistoryCommand(new ArrayList<Command>());
selection.setRsufiResults(new ArrayList<RSufiResult>());
+
+ // init filter values with configuration
+ selection.setDensityFilter(config.getSelectionDensityFilter());
+ selection.setOccurrenceFilter(config.getSelectionOccurrenceFilter());
return selection;
}
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/ValidationService.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/services/ValidationService.java 2010-11-25 13:38:11 UTC (rev 274)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ValidationService.java 2010-11-25 14:31:31 UTC (rev 275)
@@ -525,7 +525,7 @@
for (Map.Entry<String, Double> sumObservation : nombreForKey.entrySet()) {
String key = sumObservation.getKey();
Double value = sumObservation.getValue();
- if (value < config.getObervationNobsmin()) {
+ if (value < config.getControlNobsmin()) {
String lineNumber = firstLineForKey.get(key);
@@ -745,7 +745,7 @@
for (Map.Entry<String, Double> sumObservation : nombreForKey.entrySet()) {
String key = sumObservation.getKey();
Double value = sumObservation.getValue();
- if (value < config.getObervationNobsmin()) {
+ if (value < config.getControlNobsmin()) {
String lineNumber = firstLineForKey.get(key);
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-25 13:38:11 UTC (rev 274)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2010-11-25 14:31:31 UTC (rev 275)
@@ -56,11 +56,13 @@
coser.business.result.rsufiResultAlreadyExists=
coser.business.selection.notValidatedControl=
coser.config.control.diffcatchlength.description=
+coser.config.control.nobsmin.description=
coser.config.database.directory.description=
-coser.config.observation.nobsmin.description=
coser.config.projects.directory.description=
coser.config.reference.species.description=
coser.config.reference.typeEspeces.description=
+coser.config.selection.densityFilter.description=
+coser.config.selection.occurrenceFilter.description=
coser.config.validator.directory.description=
depth\ attribute\ is\ not\ a\ valid\ double=
lat\ attribute\ is\ not\ a\ valid\ double=
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-25 13:38:11 UTC (rev 274)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2010-11-25 14:31:31 UTC (rev 275)
@@ -56,11 +56,13 @@
coser.business.result.rsufiResultAlreadyExists=Le r\u00E9sultat %D existe d\u00E9j\u00E0 \!
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 (en pourcent, par exemple pour 5% mettre 5.0)
+coser.config.control.nobsmin.description=Nombre minimal d'observation
coser.config.database.directory.description=Emplacement du dossier de toutes les donn\u00E9es relatives \u00E0 Coser
-coser.config.observation.nobsmin.description=Nombre minimal d'observation
coser.config.projects.directory.description=Emplacement du dossier de sauvegarde des projets
coser.config.reference.species.description=Emplacement du fichier de r\u00E9f\u00E9rence des esp\u00E8ces (Reftax)
coser.config.reference.typeEspeces.description=Emplacement du fichier de code type des esp\u00E8ces
+coser.config.selection.densityFilter.description=Filtre par d\u00E9faut sur la moyenne des densit\u00E9s
+coser.config.selection.occurrenceFilter.description=Filtre par d\u00E9faut sur la moyenne des occurrences
coser.config.validator.directory.description=Emplacement des fichiers de validations
depth\ attribute\ is\ not\ a\ valid\ double=L'attribut ProfMoy n'est pas un r\u00E9el valide
lat\ attribute\ is\ not\ a\ valid\ double=L'attribut Lat n'est pas un r\u00E9el valide
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-25 13:38:11 UTC (rev 274)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2010-11-25 14:31:31 UTC (rev 275)
@@ -150,18 +150,20 @@
ConfigUIHelper modelBuilder = new ConfigUIHelper(config);
// category main
- modelBuilder.addCategory(_("coser.config.category.main"), _("coser.config.category.main.description"));
+ modelBuilder.addCategory(_("coser.config.category.path"), _("coser.config.category.path.description"));
modelBuilder.addOption(CoserBusinessConfig.CoserBusinessOption.DATABASE_DIRECTORY);
modelBuilder.addOption(CoserBusinessConfig.CoserBusinessOption.PROJECTS_DIRECTORY);
-
- // category control
- modelBuilder.addCategory(_("coser.config.category.control"), _("coser.config.category.control.description"));
modelBuilder.addOption(CoserBusinessConfig.CoserBusinessOption.REFERENCE_SPECIES);
modelBuilder.addOption(CoserBusinessConfig.CoserBusinessOption.REFERENCE_TYPE_ESPECES);
- modelBuilder.addOption(CoserBusinessConfig.CoserBusinessOption.OBSERVATION_NOBSMIN);
- modelBuilder.addOption(CoserBusinessConfig.CoserBusinessOption.CONTROL_DIFF_CACTH_LENGTH);
- ConfigUI configUI = modelBuilder.buildUI(view, _("coser.config.category.main"));
+ // category control
+ modelBuilder.addCategory(_("coser.config.category.configuration"), _("coser.config.category.configuration.description"));
+ modelBuilder.addOption(CoserBusinessConfig.CoserBusinessOption.CONTROL_NOBSMIN);
+ modelBuilder.addOption(CoserBusinessConfig.CoserBusinessOption.CONTROL_DIFF_CATCH_LENGTH);
+ modelBuilder.addOption(CoserBusinessConfig.CoserBusinessOption.SELECTION_FILTER_OCCURRENCE);
+ modelBuilder.addOption(CoserBusinessConfig.CoserBusinessOption.SELECTION_FILTER_DENSITY);
+
+ ConfigUI configUI = modelBuilder.buildUI(view, _("coser.config.category.path"));
JDialog dialogUI = new JDialog(view, _("coser.ui.config.title"));
dialogUI.add(configUI);
dialogUI.pack();
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-25 13:38:11 UTC (rev 274)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-11-25 14:31:31 UTC (rev 275)
@@ -426,6 +426,9 @@
* @param view selection list view
*/
public void updateOccurrenceDensityFilter(SelectionListsView view) {
+
+ Selection selection = view.getContextValue(Selection.class);
+
String stringOccurrence = view.getSelectionFilterOccurrenceField().getText().trim();
String stringDensity = view.getSelectionFilterDensityField().getText().trim();
@@ -433,6 +436,9 @@
double occurrence = Double.valueOf(stringOccurrence);
double density = Double.valueOf(stringDensity);
+ selection.setOccurrenceFilter(occurrence);
+ selection.setDensityFilter(density);
+
// construction de la liste de selection des especes
OccurrenceDensitySpecyListModel model = view.getSelectionOccurrenceDensityListModel();
int speciesCount = model.getSize();
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-25 13:38:11 UTC (rev 274)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2010-11-25 14:31:31 UTC (rev 275)
@@ -77,10 +77,17 @@
<cell fill="horizontal" insets="0" columns="2" anchor="west">
<JPanel>
<JLabel text="coser.ui.selection.filter.occurrence" />
- <JTextField id="selectionFilterOccurrenceField" columns="3" text="5" />
+ <JTextField id="selectionFilterOccurrenceField" columns="3" text="{String.valueOf(getSelection().getOccurrenceFilter())}" />
+ <javax.swing.text.Document javaBean="selectionFilterOccurrenceField.getDocument()"
+ onInsertUpdate='applyOccDensFilter.setEnabled(true)'
+ onRemoveUpdate='applyOccDensFilter.setEnabled(true)' />
<JLabel text="coser.ui.selection.filter.density" />
- <JTextField id="selectionFilterDensityField" columns="3" text="5" />
- <JButton text="coser.ui.selection.filter.filter" onActionPerformed="getHandler().updateOccurrenceDensityFilter(this)" />
+ <JTextField id="selectionFilterDensityField" columns="3" text="{String.valueOf(getSelection().getDensityFilter())}" />
+ <javax.swing.text.Document javaBean="selectionFilterDensityField.getDocument()"
+ onInsertUpdate='applyOccDensFilter.setEnabled(true)'
+ onRemoveUpdate='applyOccDensFilter.setEnabled(true)' />
+ <JButton id="applyOccDensFilter" text="coser.ui.selection.filter.filter" enabled="false"
+ onActionPerformed="getHandler().updateOccurrenceDensityFilter(this);applyOccDensFilter.setEnabled(false)" />
</JPanel>
</cell>
<cell columns="2">
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-25 13:38:11 UTC (rev 274)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2010-11-25 14:31:31 UTC (rev 275)
@@ -1,8 +1,8 @@
coser.config.application.version.description=Application's version
-coser.config.category.control=Control
-coser.config.category.control.description=Control
-coser.config.category.main=Coser
-coser.config.category.main.description=Main configuration
+coser.config.category.configuration=
+coser.config.category.configuration.description=
+coser.config.category.path=
+coser.config.category.path.description=
coser.config.config.file.description=Coser configuration file
coser.config.locale.description=Application's locale
coser.config.lookandfeel.description=Application's swing theme
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-25 13:38:11 UTC (rev 274)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2010-11-25 14:31:31 UTC (rev 275)
@@ -1,8 +1,8 @@
coser.config.application.version.description=Version de l'application
-coser.config.category.control=Contr\u00F4le
-coser.config.category.control.description=Contr\u00F4le
-coser.config.category.main=Coser
-coser.config.category.main.description=Configuration principale
+coser.config.category.configuration=Configuration
+coser.config.category.configuration.description=Configuration (donn\u00E9es num\u00E9riques)
+coser.config.category.path=Chemins
+coser.config.category.path.description=Configuration des fichiers et r\u00E9pertoires
coser.config.config.file.description=Fichier de configuration de Coser
coser.config.locale.description=Langue de l'application
coser.config.lookandfeel.description=Themes graphique Swing de l'application