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
December 2010
- 2 participants
- 139 discussions
r413 - trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
15 Dec '10
Author: chatellier
Date: 2010-12-15 10:48:51 +0000 (Wed, 15 Dec 2010)
New Revision: 413
Log:
Clear selection after merge
Modified:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.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-12-15 10:41:16 UTC (rev 412)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-12-15 10:48:51 UTC (rev 413)
@@ -833,6 +833,8 @@
}
updateSelectionSpecies(parent);
+ // supprime la selection apres fusion (demande client)
+ parent.getFilteredSpeciesList().clearSelection();
view.dispose();
JOptionPane.showMessageDialog(view, _("coser.ui.selection.speciesMerged"),
_("coser.ui.selection.selectionTitle"), JOptionPane.INFORMATION_MESSAGE);
1
0
r412 - trunk/coser-ui/src/main/resources/i18n
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
15 Dec '10
Author: chatellier
Date: 2010-12-15 10:41:16 +0000 (Wed, 15 Dec 2010)
New Revision: 412
Log:
Check que les fichiers de reference sont bien des fichiers.
Affiche la cause de l'erreur avec la trace.
Modified:
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/resources/i18n/coser-ui_en_GB.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2010-12-15 10:40:57 UTC (rev 411)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2010-12-15 10:41:16 UTC (rev 412)
@@ -96,7 +96,6 @@
coser.ui.project.createProject=Create project
coser.ui.project.createProjectMissingCodeTypeSpecies=File 'CodeTypeSpecies' is not valid \!\n(check configuration \: coser.reference.typeSpecies)
coser.ui.project.createProjectMissingReftax=File 'Reftax' is not valid \!\n(check configuration \: coser.reference.species)
-coser.ui.project.creationError=Creation error
coser.ui.project.customReferenceSpeciesFile=New reference file \:
coser.ui.project.editProject=Edit project
coser.ui.project.haulFile=Haul file \:
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-12-15 10:40:57 UTC (rev 411)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2010-12-15 10:41:16 UTC (rev 412)
@@ -96,7 +96,6 @@
coser.ui.project.createProject=Cr\u00E9er le projet
coser.ui.project.createProjectMissingCodeTypeSpecies=Le fichier 'CodeTypeEspeces' n'est pas valide \!\n(v\u00E9rifiez la configuration \: coser.reference.typeSpecies)
coser.ui.project.createProjectMissingReftax=Le fichier 'Reftax' n'est pas valide \!\n(v\u00E9rifiez la configuration \: coser.reference.species)
-coser.ui.project.creationError=Erreur de cr\u00E9ation
coser.ui.project.customReferenceSpeciesFile=Nouveau fichier de r\u00E9f\u00E9rence \:
coser.ui.project.editProject=Modifier le projet
coser.ui.project.haulFile=Fichier des traits \:
1
0
r411 - trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
15 Dec '10
Author: chatellier
Date: 2010-12-15 10:40:57 +0000 (Wed, 15 Dec 2010)
New Revision: 411
Log:
Autorisation du tiret dans les noms
Modified:
trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/Project-error-validation.xml
trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/RSufiResult-error-validation.xml
trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/Selection-error-validation.xml
Modified: trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/Project-error-validation.xml
===================================================================
--- trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/Project-error-validation.xml 2010-12-15 10:40:42 UTC (rev 410)
+++ trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/Project-error-validation.xml 2010-12-15 10:40:57 UTC (rev 411)
@@ -28,7 +28,7 @@
<validators>
<field name="name">
<field-validator type="regex">
- <param name="expression">\w+</param>
+ <param name="expression">[\w-]+</param>
<param name="trim">false</param>
<message>coser.ui.control.project.requiredname</message>
</field-validator>
Modified: trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/RSufiResult-error-validation.xml
===================================================================
--- trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/RSufiResult-error-validation.xml 2010-12-15 10:40:42 UTC (rev 410)
+++ trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/RSufiResult-error-validation.xml 2010-12-15 10:40:57 UTC (rev 411)
@@ -28,7 +28,7 @@
<validators>
<field name="name">
<field-validator type="regex">
- <param name="expression">\w+</param>
+ <param name="expression">[\w-]+</param>
<param name="trim">false</param>
<message>coser.ui.result.requiredname</message>
</field-validator>
Modified: trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/Selection-error-validation.xml
===================================================================
--- trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/Selection-error-validation.xml 2010-12-15 10:40:42 UTC (rev 410)
+++ trunk/coser-ui/src/main/resources/fr/ifremer/coser/bean/Selection-error-validation.xml 2010-12-15 10:40:57 UTC (rev 411)
@@ -28,7 +28,7 @@
<validators>
<field name="name">
<field-validator type="regex">
- <param name="expression">\w+</param>
+ <param name="expression">[\w-]+</param>
<param name="trim">false</param>
<message>coser.ui.selection.selection.requiredName</message>
</field-validator>
1
0
r410 - in trunk/coser-business/src: main/resources/fr/ifremer/coser/data main/resources/i18n test/java/fr/ifremer/coser/services
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
15 Dec '10
Author: chatellier
Date: 2010-12-15 10:40:42 +0000 (Wed, 15 Dec 2010)
New Revision: 410
Log:
Ajustements sur les controles
Modified:
trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Catch-error-validation.xml
trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Haul-error-validation.xml
trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Haul-fatal-validation.xml
trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Length-error-validation.xml
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-business/src/test/java/fr/ifremer/coser/services/ControlServiceTest.java
Modified: trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Catch-error-validation.xml
===================================================================
--- trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Catch-error-validation.xml 2010-12-15 10:35:25 UTC (rev 409)
+++ trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Catch-error-validation.xml 2010-12-15 10:40:42 UTC (rev 410)
@@ -34,14 +34,15 @@
</field>
<field name="year">
<field-validator type="regex">
- <param name="expression">[0-9]{4}</param>
- <message>year is not valid (4 digits)</message>
+ <param name="expression">[0-9]{4}(\.[0-9]{1,2})?</param>
+ <message>year is not valid (4 digits.2 digits)</message>
</field-validator>
</field>
<field name="haul">
- <field-validator type="requiredstring">
- <param name="trim">true</param>
- <message>Missing haul name</message>
+ <field-validator type="regex">
+ <param name="expression">[0-9a-z]+</param>
+ <param name="caseSensitive">false</param>
+ <message>haul name is not valid</message>
</field-validator>
</field>
<field name="species">
Modified: trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Haul-error-validation.xml
===================================================================
--- trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Haul-error-validation.xml 2010-12-15 10:35:25 UTC (rev 409)
+++ trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Haul-error-validation.xml 2010-12-15 10:40:42 UTC (rev 410)
@@ -33,13 +33,15 @@
</field>
<field name="year">
<field-validator type="regex">
- <param name="expression">[0-9]{4}</param>
- <message>year is not valid (4 digits)</message>
+ <param name="expression">[0-9]{4}(\.[0-9]{1,2})?</param>
+ <message>year is not valid (4 digits.2 digits)</message>
</field-validator>
</field>
<field name="haul">
- <field-validator type="requiredstring">
- <message>Missing haul name</message>
+ <field-validator type="regex">
+ <param name="expression">[0-9a-z]+</param>
+ <param name="caseSensitive">false</param>
+ <message>haul name is not valid</message>
</field-validator>
</field>
<field name="month">
@@ -54,6 +56,11 @@
</field-validator>
</field>
<field name="sweptSurfaceAsString">
+ <field-validator type="requiredstring">
+ <message>Missing sweptSurface attribute</message>
+ </field-validator>
+ </field>
+ <field name="sweptSurfaceAsString">
<field-validator type="checkDouble">
<param name="notAvailable">NA</param>
<message>sweptSurface attribute is not a valid double</message>
Modified: trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Haul-fatal-validation.xml
===================================================================
--- trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Haul-fatal-validation.xml 2010-12-15 10:35:25 UTC (rev 409)
+++ trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Haul-fatal-validation.xml 2010-12-15 10:40:42 UTC (rev 410)
@@ -34,14 +34,14 @@
</field>
<field name="lat">
<field-validator type="regex">
- <param name="expression">\-?[0-9]+\.[0-9]{5,}</param>
- <message>lat must contain at least 5 decimals</message>
+ <param name="expression">\-?[0-9]+\.[0-9]{4,}</param>
+ <message>lat must contain at least 4 decimals</message>
</field-validator>
</field>
<field name="long">
<field-validator type="regex">
- <param name="expression">\-?[0-9]+\.[0-9]{5,}</param>
- <message>long must contain at least 5 decimals</message>
+ <param name="expression">\-?[0-9]+\.[0-9]{4,}</param>
+ <message>long must contain at least 4 decimals</message>
</field-validator>
</field>
</validators>
\ No newline at end of file
Modified: trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Length-error-validation.xml
===================================================================
--- trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Length-error-validation.xml 2010-12-15 10:35:25 UTC (rev 409)
+++ trunk/coser-business/src/main/resources/fr/ifremer/coser/data/Length-error-validation.xml 2010-12-15 10:40:42 UTC (rev 410)
@@ -34,14 +34,15 @@
</field>
<field name="year">
<field-validator type="regex">
- <param name="expression">[0-9]{4}</param>
- <message>year is not valid (4 digits)</message>
+ <param name="expression">[0-9]{4}(\.[0-9]{1,2})?</param>
+ <message>year is not valid (4 digits.2 digits)</message>
</field-validator>
</field>
<field name="haul">
- <field-validator type="requiredstring">
- <param name="trim">true</param>
- <message>Missing haul name</message>
+ <field-validator type="regex">
+ <param name="expression">[0-9a-z]+</param>
+ <param name="caseSensitive">false</param>
+ <message>haul name is not valid</message>
</field-validator>
</field>
<field name="species">
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-12-15 10:35:25 UTC (rev 409)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_en_GB.properties 2010-12-15 10:40:42 UTC (rev 410)
@@ -6,12 +6,12 @@
Can't\ replace\ data\ value.\ Expected\ %s\ but\ was\ %s=
Creating\ matrix\ \:\ %d*%d*%d*%d=
Missing\ file\ %s=
-Missing\ haul\ name=
Missing\ maturity\ attribute=
Missing\ sex\ attribute=
Missing\ species\ name=
Missing\ stratum\ name=
Missing\ survey\ name=
+Missing\ sweptSurface\ attribute=
Project\ %s\ already\ exist=
Project\ %s\ doesn't\ exists\ \!=
Selection\ %s\ already\ exists=
@@ -89,15 +89,16 @@
coser.config.selection.occurrenceFilter.description=Default occurrence filter value
coser.config.validator.directory.description=Validation files directory location
depth\ attribute\ is\ not\ a\ valid\ double=
+haul\ name\ is\ not\ valid=
lat\ attribute\ is\ not\ a\ valid\ double=
-lat\ must\ contain\ at\ least\ 5\ decimals=
+lat\ must\ contain\ at\ least\ 4\ decimals=
length\ attribute\ is\ not\ a\ valid\ double=
long\ attribute\ is\ not\ a\ valid\ double=
-long\ must\ contain\ at\ least\ 5\ decimals=
+long\ must\ contain\ at\ least\ 4\ decimals=
month\ is\ not\ valid\ (2\ digits)=
number\ attribute\ is\ not\ a\ valid\ double=
surface\ attribute\ is\ not\ a\ valid\ double=
sweptSurface\ attribute\ is\ not\ a\ valid\ double=
sweptSurface\ must\ contain\ at\ least\ 3\ decimals=
weight\ attribute\ is\ not\ a\ valid\ double=
-year\ is\ not\ valid\ (4\ digits)=
+year\ is\ not\ valid\ (4\ digits.2\ digits)=
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-12-15 10:35:25 UTC (rev 409)
+++ trunk/coser-business/src/main/resources/i18n/coser-business_fr_FR.properties 2010-12-15 10:40:42 UTC (rev 410)
@@ -6,12 +6,12 @@
Can't\ replace\ data\ value.\ Expected\ %s\ but\ was\ %s=
Creating\ matrix\ \:\ %d*%d*%d*%d=
Missing\ file\ %s=Fichier manquant \: %s
-Missing\ haul\ name=Nom de trait manquant
Missing\ maturity\ attribute=Attribut maturit\u00E9 manquant
Missing\ sex\ attribute=Attribut sex manquant
Missing\ species\ name=Nom d'esp\u00E8ce manquant
Missing\ stratum\ name=Nom de strate manquant
Missing\ survey\ name=Nom de campagne manquant
+Missing\ sweptSurface\ attribute=SurfaceBalayee manquante
Project\ %s\ already\ exist=Le projet %s existe d\u00E9j\u00E0 \!
Project\ %s\ doesn't\ exists\ \!=Le projet %s n'existe pas \!
Selection\ %s\ already\ exists=La s\u00E9lection %s existe d\u00E9j\u00E0 \!
@@ -89,15 +89,16 @@
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
+haul\ name\ is\ not\ valid=L'attribut Trait n'est pas valide
lat\ attribute\ is\ not\ a\ valid\ double=L'attribut Lat n'est pas un r\u00E9el valide
-lat\ must\ contain\ at\ least\ 5\ decimals=L'attribut Lat doit contenir au moins 5 decimales
+lat\ must\ contain\ at\ least\ 4\ decimals=L'attribut Lat doit contenir au moins 4 decimales
length\ attribute\ is\ not\ a\ valid\ double=L'attribut Longueur n'est pas un r\u00E9el valide
long\ attribute\ is\ not\ a\ valid\ double=L'attribut Long n'est pas un r\u00E9el valide
-long\ must\ contain\ at\ least\ 5\ decimals=L'attribut Long doit contenir au moins 5 decimales
+long\ must\ contain\ at\ least\ 4\ decimals=L'attribut Long doit contenir au moins 4 decimales
month\ is\ not\ valid\ (2\ digits)=L'attribut Mois n'est pas valide (2 chiffres)
number\ attribute\ is\ not\ a\ valid\ double=L'attribut Nombre n'est pas un r\u00E9el valide
surface\ attribute\ is\ not\ a\ valid\ double=L'attribut Surface n'est pas un r\u00E9el valide
sweptSurface\ attribute\ is\ not\ a\ valid\ double=L'attribut SurfaceBalayee n'est pas un r\u00E9el valide
sweptSurface\ must\ contain\ at\ least\ 3\ decimals=L'attribut SurfaceBalayee doit contenir au moins 3 decimales
weight\ attribute\ is\ not\ a\ valid\ double=L'attribut Poids n'est pas un r\u00E9el valide
-year\ is\ not\ valid\ (4\ digits)=L'attribut Ann\u00E9e n'est pas valide (4 chiffres)
+year\ is\ not\ valid\ (4\ digits.2\ digits)=L'attribut Ann\u00E9e n'est pas valide (4 chiffres.2 chiffres)
Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/ControlServiceTest.java
===================================================================
--- trunk/coser-business/src/test/java/fr/ifremer/coser/services/ControlServiceTest.java 2010-12-15 10:35:25 UTC (rev 409)
+++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/ControlServiceTest.java 2010-12-15 10:40:42 UTC (rev 410)
@@ -81,7 +81,7 @@
@Test
public void testDoubleValidation() {
Catch myCatch = new Catch();
- myCatch.setData(new String[]{"1", "Test survey","1999","Test trait","Test sp","NA","12"});
+ myCatch.setData(new String[]{"1", "Test survey","1999","Testtrait","Test sp","NA","12"});
List<ControlError> errors = controlService.validate(myCatch, Category.CATCH);
log.warn(errors);
Assert.assertTrue(errors.isEmpty());
@@ -94,7 +94,7 @@
public void testLengthStep() {
Length myLength = new Length();
// "Survey","Year","Haul","Species","Sex","Maturity","Length","Number","Weight","Age"
- myLength.setData(new String[]{"1", "Test survey","1999","Test trait","Test sp","i","m","23.25", "3.00", "44.99", "12"});
+ myLength.setData(new String[]{"1", "Test survey","1999","Testtrait","Test sp","i","m","23.25", "3.00", "44.99", "12"});
List<ControlError> errors = controlService.validate(myLength, Category.LENGTH);
log.warn(errors);
// TODO test a refaire (croisement de fichier)
@@ -124,7 +124,7 @@
Control control = new Control();
DataStorage dataCatch = new MemoryDataStorage();
dataCatch.add(new String[]{"Line", "Campagne","Annee","Trait","Espece","Nombre","Poids"});
- dataCatch.add(new String[]{"1", "Test survey","1999","Test trait","Test sp","0","12"});
+ dataCatch.add(new String[]{"1", "Test survey","1999","Testtrait","Test sp","0","12"});
control.setCatch(dataCatch);
List<ControlError> errors = controlService.validateCategory(control, Category.CATCH, null);
if (log.isDebugEnabled()) {
1
0
r409 - trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
15 Dec '10
Author: chatellier
Date: 2010-12-15 10:35:25 +0000 (Wed, 15 Dec 2010)
New Revision: 409
Log:
Import
Modified:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java 2010-12-15 10:28:33 UTC (rev 408)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java 2010-12-15 10:35:25 UTC (rev 409)
@@ -51,7 +51,6 @@
import fr.ifremer.coser.services.ProjectService;
import fr.ifremer.coser.ui.CoserFrame;
import fr.ifremer.coser.ui.common.CommonHandler;
-import fr.ifremer.coser.ui.util.ErrorHelper;
/**
* Handler for project related ui.
1
0
r408 - trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
15 Dec '10
Author: chatellier
Date: 2010-12-15 10:28:33 +0000 (Wed, 15 Dec 2010)
New Revision: 408
Log:
Check que les fichiers de reference sont bien des fichiers.
Affiche la cause de l'erreur avec la trace.
Modified:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java 2010-12-15 09:35:55 UTC (rev 407)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java 2010-12-15 10:28:33 UTC (rev 408)
@@ -51,6 +51,7 @@
import fr.ifremer.coser.services.ProjectService;
import fr.ifremer.coser.ui.CoserFrame;
import fr.ifremer.coser.ui.common.CommonHandler;
+import fr.ifremer.coser.ui.util.ErrorHelper;
/**
* Handler for project related ui.
@@ -219,12 +220,12 @@
final List<File> newMaps = projectView.getProjectMapsModel().getMaps();
// check some files existences
- if (!reftaxSpeciesFile.canRead()) {
+ if (!reftaxSpeciesFile.isFile()) {
JOptionPane.showMessageDialog(projectView, _("coser.ui.project.createProjectMissingReftax"),
_("coser.ui.project.missingFile"), JOptionPane.ERROR_MESSAGE);
return;
}
- if (!codeTypeEspeceFile.canRead()) {
+ if (!codeTypeEspeceFile.isFile()) {
JOptionPane.showMessageDialog(projectView, _("coser.ui.project.createProjectMissingCodeTypeSpecies"),
_("coser.ui.project.missingFile"), JOptionPane.ERROR_MESSAGE);
return;
@@ -256,9 +257,10 @@
if (log.isErrorEnabled()) {
log.error("Can't create project", ex);
}
- JOptionPane.showMessageDialog(projectView, ex.getMessage(), _("coser.ui.project.creationError"),
- JOptionPane.ERROR_MESSAGE);
projectView.getCreateProjectButton().setEnabled(true);
+ // let it go, too many potential cause
+ // conserve le meme mesage que la cause
+ throw new CoserException(ex.getMessage(), ex);
}
return resultProject;
}
1
0
r407 - in trunk/coser-ui/src/main: java/fr/ifremer/coser/ui/selection resources/i18n
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
15 Dec '10
Author: chatellier
Date: 2010-12-15 09:35:55 +0000 (Wed, 15 Dec 2010)
New Revision: 407
Log:
Ajout des unit?\195?\169s (occurrence/densit?\195?\169)
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-12-15 09:35:26 UTC (rev 406)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2010-12-15 09:35:55 UTC (rev 407)
@@ -81,11 +81,13 @@
<javax.swing.text.Document javaBean="selectionFilterOccurrenceField.getDocument()"
onInsertUpdate='applyOccDensFilter.setEnabled(true)'
onRemoveUpdate='applyOccDensFilter.setEnabled(true)' />
+ <JLabel text="coser.ui.selection.filter.occurrenceunit" />
<JLabel text="coser.ui.selection.filter.density" />
<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)' />
+ <JLabel text="coser.ui.selection.filter.densityunit" />
<JButton id="applyOccDensFilter" text="coser.ui.selection.filter.filter" enabled="false"
onActionPerformed="getHandler().updateOccurrenceDensityFilter(this);applyOccDensFilter.setEnabled(false)" />
</JPanel>
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-12-15 09:35:26 UTC (rev 406)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2010-12-15 09:35:55 UTC (rev 407)
@@ -174,8 +174,10 @@
coser.ui.selection.details.validYears=Valid years
coser.ui.selection.details.years=Years \:
coser.ui.selection.filter.density=Density \:
+coser.ui.selection.filter.densityunit=ind. ct/km2
coser.ui.selection.filter.filter=Filter
coser.ui.selection.filter.occurrence=Occurrence \:
+coser.ui.selection.filter.occurrenceunit=%
coser.ui.selection.fusion.comment=Comment \:
coser.ui.selection.fusion.description=Species merge. Fill new species name with name existing in referential.
coser.ui.selection.fusion.name=New name \:
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2010-12-15 09:35:26 UTC (rev 406)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2010-12-15 09:35:55 UTC (rev 407)
@@ -174,8 +174,10 @@
coser.ui.selection.details.validYears=Valider les ann\u00E9es
coser.ui.selection.details.years=Ann\u00E9es \:
coser.ui.selection.filter.density=Densit\u00E9 \:
+coser.ui.selection.filter.densityunit=nb ind./km2
coser.ui.selection.filter.filter=Filtrer
coser.ui.selection.filter.occurrence=Occurence \:
+coser.ui.selection.filter.occurrenceunit=%
coser.ui.selection.fusion.comment=Commentaire \:
coser.ui.selection.fusion.description=Fusion d'esp\u00E8ces. Veuillez renseigner un nouveau nom pr\u00E9sent dans le r\u00E9f\u00E9rentiel.
coser.ui.selection.fusion.name=Nouveau nom \:
1
0
r406 - trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
by chatellier@users.labs.libre-entreprise.org 15 Dec '10
15 Dec '10
Author: chatellier
Date: 2010-12-15 09:35:26 +0000 (Wed, 15 Dec 2010)
New Revision: 406
Log:
Separation visuelle des 2 etapes extraction/resultats
Modified:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx 2010-12-14 17:40:06 UTC (rev 405)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx 2010-12-15 09:35:26 UTC (rev 406)
@@ -49,7 +49,10 @@
</cell>
</row>
<row>
- <cell insets="30"></cell>
+ <!-- separation visuelle des 2 etapes -->
+ <cell insets="30">
+ <JPanel />
+ </cell>
</row>
<row>
<cell weightx="1" weighty="2" fill="both">
1
0
r405 - in trunk: coser-business/src/main/java/fr/ifremer/coser coser-business/src/main/java/fr/ifremer/coser/bean coser-business/src/main/java/fr/ifremer/coser/services coser-business/src/test/java/fr/ifremer/coser/services coser-ui/src/main/java/fr/ifremer/coser/ui coser-ui/src/main/java/fr/ifremer/coser/ui/maps coser-ui/src/main/java/fr/ifremer/coser/ui/project coser-ui/src/main/java/fr/ifremer/coser/ui/selection coser-ui/src/main/resources/i18n
by chatellier@users.labs.libre-entreprise.org 14 Dec '10
by chatellier@users.labs.libre-entreprise.org 14 Dec '10
14 Dec '10
Author: chatellier
Date: 2010-12-14 17:40:06 +0000 (Tue, 14 Dec 2010)
New Revision: 405
Log:
Ajout du support des cartes personnalisables par projets
Added:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectMapsListModel.java
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/CoserConstants.java
trunk/coser-business/src/main/java/fr/ifremer/coser/CoserUtils.java
trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Project.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/test/java/fr/ifremer/coser/services/CoserTestAbstract.java
trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/maps/CoserMap.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectCreationView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectEditView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectSummaryView.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/SelectionRsufiView.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/CoserConstants.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/CoserConstants.java 2010-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/CoserConstants.java 2010-12-14 17:40:06 UTC (rev 405)
@@ -59,6 +59,9 @@
/** Nom du dossier des resultats RSufi. */
public static final String STORAGE_RESULTS_DIRECTORY = "results";
+ /** Nom du dossier de stockage des maps. */
+ public static final String STORAGE_MAPS_DIRECTORY = "maps";
+
/** Suffix des nom de fichiers data apres control. */
public static final String STORAGE_CONTROL_SUFFIX = "_co";
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/CoserUtils.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/CoserUtils.java 2010-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/CoserUtils.java 2010-12-14 17:40:06 UTC (rev 405)
@@ -26,6 +26,7 @@
package fr.ifremer.coser;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
@@ -115,4 +116,16 @@
}
return result;
}
+
+ /**
+ * Split string as string list using "," separator.
+ *
+ * @param str string to split
+ * @return string list
+ */
+ public static List<String> splitAsList(String str) {
+ String[] strArray = str.split(",");
+ List<String> strList = Arrays.asList(strArray);
+ return strList;
+ }
}
Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Project.java
===================================================================
--- trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Project.java 2010-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Project.java 2010-12-14 17:40:06 UTC (rev 405)
@@ -25,9 +25,16 @@
package fr.ifremer.coser.bean;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Properties;
+import org.apache.commons.collections.CollectionUtils;
+
+import fr.ifremer.coser.CoserUtils;
import fr.ifremer.coser.storage.DataStorage;
/**
@@ -87,6 +94,9 @@
/** Nom original du fichier de strates. */
protected String strataFileName;
+ /** File des cartes (plus facile a gerer en tant que file dans l'ui, mais seul le filename est sauvegardé). */
+ protected List<File> maps;
+
/** Commentaire du projet. */
protected String comment;
@@ -192,6 +202,14 @@
this.strataFileName = strataFileName;
}
+ public void setMaps(List<File> maps) {
+ this.maps = maps;
+ }
+
+ public List<File> getMaps() {
+ return maps;
+ }
+
public String getComment() {
return comment;
}
@@ -273,13 +291,24 @@
if (strataFileName != null) {
props.setProperty("project.strataFileName", strataFileName);
}
+ if (CollectionUtils.isNotEmpty(maps)) {
+ StringBuilder mapsAsString = new StringBuilder();
+ Iterator<File> itMaps = maps.iterator();
+ while (itMaps.hasNext()) {
+ mapsAsString.append(itMaps.next().getName());
+ if (itMaps.hasNext()) {
+ mapsAsString.append(',');
+ }
+ }
+ props.setProperty("project.maps", mapsAsString.toString());
+ }
if (comment != null) {
props.setProperty("project.comment", comment);
}
return props;
}
- public void fromProperties(Properties props) {
+ public void fromProperties(Properties props, File mapDirectory) {
if (props.containsKey("project.author")) {
setAuthor(props.getProperty("project.author"));
}
@@ -295,6 +324,15 @@
if (props.containsKey("project.strataFileName")) {
setStrataFileName(props.getProperty("project.strataFileName"));
}
+ if (props.containsKey("project.maps")) {
+ List<String> mapsAsString = CoserUtils.splitAsList(props.getProperty("project.maps"));
+ List<File> maps = new ArrayList<File>();
+ for (String mapAsString : mapsAsString) {
+ File mapFile = new File(mapDirectory, mapAsString);
+ maps.add(mapFile);
+ }
+ setMaps(maps);
+ }
if (props.containsKey("project.comment")) {
setComment(props.getProperty("project.comment"));
}
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-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/bean/Selection.java 2010-12-14 17:40:06 UTC (rev 405)
@@ -25,13 +25,14 @@
package fr.ifremer.coser.bean;
-import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Properties;
import org.apache.commons.lang.StringUtils;
+import fr.ifremer.coser.CoserUtils;
+
/**
* Project selection.
*
@@ -329,13 +330,13 @@
setDescription(props.getProperty("selection.description"));
}
if (props.containsKey("selection.allYears")) {
- setAllYears(splitAsList(props.getProperty("selection.allYears")));
+ setAllYears(CoserUtils.splitAsList(props.getProperty("selection.allYears")));
}
if (props.containsKey("selection.selectedYears")) {
- setSelectedYears(splitAsList(props.getProperty("selection.allYears")));
+ setSelectedYears(CoserUtils.splitAsList(props.getProperty("selection.allYears")));
}
if (props.containsKey("selection.selectedStrata")) {
- setSelectedStrata(splitAsList(props.getProperty("selection.selectedStrata")));
+ setSelectedStrata(CoserUtils.splitAsList(props.getProperty("selection.selectedStrata")));
}
if (props.containsKey("selection.comment")) {
setComment(props.getProperty("selection.comment"));
@@ -347,16 +348,16 @@
setDensityFilter(Double.parseDouble(props.getProperty("selection.densityFilter")));
}
if (props.containsKey("selection.selectedSpecies")) {
- setSelectedSpecies(splitAsList(props.getProperty("selection.selectedSpecies")));
+ setSelectedSpecies(CoserUtils.splitAsList(props.getProperty("selection.selectedSpecies")));
}
if (props.containsKey("selection.selectedSpeciesOccDens")) {
- setSelectedSpeciesOccDens(splitAsList(props.getProperty("selection.selectedSpeciesOccDens")));
+ setSelectedSpeciesOccDens(CoserUtils.splitAsList(props.getProperty("selection.selectedSpeciesOccDens")));
}
if (props.containsKey("selection.selectedSpeciesSizeAllYear")) {
- setSelectedSpeciesSizeAllYear(splitAsList(props.getProperty("selection.selectedSpeciesSizeAllYear")));
+ setSelectedSpeciesSizeAllYear(CoserUtils.splitAsList(props.getProperty("selection.selectedSpeciesSizeAllYear")));
}
if (props.containsKey("selection.selectedSpeciesMaturity")) {
- setSelectedSpeciesMaturity(splitAsList(props.getProperty("selection.selectedSpeciesMaturity")));
+ setSelectedSpeciesMaturity(CoserUtils.splitAsList(props.getProperty("selection.selectedSpeciesMaturity")));
}
if (props.containsKey("selection.selectedSpeciesComment")) {
setSelectedSpeciesComment(props.getProperty("selection.selectedSpeciesComment"));
@@ -374,10 +375,4 @@
setValidated(Boolean.parseBoolean(props.getProperty("selection.validated")));
}
}
-
- protected List<String> splitAsList(String str) {
- String[] strArray = str.split(",");
- List<String> strList = Arrays.asList(strArray);
- return strList;
- }
}
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-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-12-14 17:40:06 UTC (rev 405)
@@ -140,11 +140,12 @@
*
* @param project project to create
* @param categoriesAndFiles additional files to load
+ * @param maps maps file
* @param progress progress monitor (can be null)
* @return project with filled data
* @throws CoserBusinessException if project can't be created
*/
- public Project createProject(Project project, Map<Category, File> categoriesAndFiles, ProgressMonitor progress) throws CoserBusinessException {
+ public Project createProject(Project project, Map<Category, File> categoriesAndFiles, List<File> maps, ProgressMonitor progress) throws CoserBusinessException {
File projectsDirectory = config.getProjectsDirectory();
if (!projectsDirectory.isDirectory()) {
projectsDirectory.mkdirs();
@@ -231,7 +232,7 @@
}
}
- saveProject(project);
+ saveProject(project, maps);
// init additional structures (load empty control)
project.setSelections(new HashMap<String, Selection>());
@@ -242,19 +243,25 @@
}
/**
- * Sauve seulement les informations concernant le projet.
+ * Sauve seulement les informations concernant le projet et les cartes
+ * si elle ont été modifiée par rapport à la liste des cartes actuellement
+ * dans le projet.
*
- * @param project
+ * @param project project
+ * @param maps maps
* @throws CoserBusinessException
*/
- public void saveProject(Project project) throws CoserBusinessException {
+ public void saveProject(Project project, List<File> maps) throws CoserBusinessException {
File projectsDirectory = config.getProjectsDirectory();
String projectName = project.getName();
File projectDirectory = new File(projectsDirectory, projectName);
+ // manage maps BEFORE saving properties
+ Project localProject = updateProjectMaps(project, projectDirectory, maps);
+
// save project properties file
File propertiesFile = new File(projectDirectory, "project.properties");
- Properties props = project.toProperties();
+ Properties props = localProject.toProperties();
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(propertiesFile);
@@ -272,6 +279,63 @@
}
/**
+ * Update project maps with new maps.
+ *
+ * Thériquement, si les deux listes sont identiques, cette methode ne fait rien.
+ *
+ * @param project project to update maps
+ * @param projectDirectory project directory
+ * @param newMaps new maps to set
+ * @throws CoserBusinessException
+ */
+ protected Project updateProjectMaps(Project project, File projectDirectory, List<File> newMaps) throws CoserBusinessException {
+
+ File mapsDirectory = new File(projectDirectory, CoserConstants.STORAGE_MAPS_DIRECTORY);
+
+ List<File> currentMaps = project.getMaps();
+ if (currentMaps == null) {
+ currentMaps = new ArrayList<File>();
+ }
+
+ // bien faire attention aux instances de liste utilisées
+ // le code n'est pas evident
+ List<File> mapsList = new ArrayList<File>(currentMaps);
+
+ try {
+ // check delete maps from current list (not in new "newMaps")
+ Collection<File> removedMaps = CollectionUtils.subtract(currentMaps, newMaps);
+ for (File removedMap : removedMaps) {
+ // not a problem if can't be delete really
+ removedMap.delete();
+ if (log.isDebugEnabled()) {
+ log.debug("Deleting map : " + removedMap);
+ }
+ mapsList.remove(removedMap);
+ }
+
+ // add new map
+ Collection<File> addedMaps = CollectionUtils.subtract(newMaps, currentMaps);
+ if (!addedMaps.isEmpty()) {
+ mapsDirectory.mkdirs();
+ }
+ for (File addedMap : addedMaps) {
+ File storageMap = new File(mapsDirectory, addedMap.getName());
+ FileUtils.copyFile(addedMap, storageMap);
+ mapsList.add(storageMap);
+ if (log.isDebugEnabled()) {
+ log.debug("Adding map : " + storageMap);
+ }
+ }
+
+ project.setMaps(mapsList);
+ } catch (IOException ex) {
+ throw new CoserBusinessException("Can't copy maps", ex);
+ }
+
+ return project;
+ }
+
+ /**
* Retourne le nom de stockage d'un fichier de données suivant la categories
* de fichier demandé. Les fichiers sont stockés avec leurs noms originaux
* (sauf les fichiers de réference) donc il n'est pas fixe.
@@ -410,12 +474,13 @@
// relecture des informations du projet (properties)
File projectPropertiesFile = new File(projectDirectory, "project.properties");
+ File mapsDirectory = new File(projectDirectory, CoserConstants.STORAGE_MAPS_DIRECTORY);
InputStream inputStream = null;
try {
Properties props = new Properties();
inputStream = new FileInputStream(projectPropertiesFile);
props.load(inputStream);
- project.fromProperties(props);
+ project.fromProperties(props, mapsDirectory);
if (log.isDebugEnabled()) {
log.debug("Read project properties file : " + projectPropertiesFile);
Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/CoserTestAbstract.java
===================================================================
--- trunk/coser-business/src/test/java/fr/ifremer/coser/services/CoserTestAbstract.java 2010-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/CoserTestAbstract.java 2010-12-14 17:40:06 UTC (rev 405)
@@ -28,6 +28,7 @@
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
@@ -128,7 +129,7 @@
project.setHaulFileName(testHaul.getName());
project.setStrataFileName(testStrata.getName());
- project = projectService.createProject(project, categoriesAndFile, null);
+ project = projectService.createProject(project, categoriesAndFile, new ArrayList<File>(), null);
project = projectService.loadControlData(project);
// sans la sauvegarde des données de control, on ne pas creer de
Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java
===================================================================
--- trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java 2010-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java 2010-12-14 17:40:06 UTC (rev 405)
@@ -78,7 +78,7 @@
public void testDuplicatedProject() throws CoserBusinessException {
Project p = new Project();
p.setName("project2"); // il existe deja dans src/test/resources
- projectService.createProject(p, new HashMap<CoserConstants.Category, File>(), null);
+ projectService.createProject(p, new HashMap<CoserConstants.Category, File>(), new ArrayList<File>(), null);
}
/**
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-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2010-12-14 17:40:06 UTC (rev 405)
@@ -27,22 +27,17 @@
import java.awt.BorderLayout;
import java.awt.Component;
-import java.awt.Cursor;
import java.awt.Desktop;
import java.beans.PropertyChangeEvent;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URL;
-import java.util.HashMap;
import java.util.Locale;
-import java.util.Map;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
-import javax.swing.JTextField;
-import javax.swing.SwingWorker;
import javax.swing.filechooser.FileFilter;
import jaxx.runtime.swing.editor.config.ConfigUI;
@@ -55,16 +50,17 @@
import fr.ifremer.coser.CoserBusinessConfig;
import fr.ifremer.coser.CoserBusinessException;
import fr.ifremer.coser.CoserConfig;
-import fr.ifremer.coser.CoserConstants.Category;
import fr.ifremer.coser.CoserException;
import fr.ifremer.coser.bean.Project;
import fr.ifremer.coser.bean.Selection;
import fr.ifremer.coser.data.Catch;
import fr.ifremer.coser.services.ProjectService;
+import fr.ifremer.coser.ui.common.CommonHandler;
import fr.ifremer.coser.ui.control.ControlHandler;
import fr.ifremer.coser.ui.control.ControlView;
import fr.ifremer.coser.ui.project.ProjectCreationView;
import fr.ifremer.coser.ui.project.ProjectEditView;
+import fr.ifremer.coser.ui.project.ProjectHandler;
import fr.ifremer.coser.ui.project.ProjectOpenView;
import fr.ifremer.coser.ui.project.ProjectSummaryView;
import fr.ifremer.coser.ui.selection.SelectionHandler;
@@ -80,33 +76,17 @@
* Last update : $Date$
* By : $Author$
*/
-public class CoserFrameHandler {
+public class CoserFrameHandler extends CommonHandler {
private static final Log log = LogFactory.getLog(CoserFrameHandler.class);
protected CoserFrame view;
- protected JFileChooser fileChooser;
-
public CoserFrameHandler(CoserFrame view) {
this.view = view;
}
/**
- * Install le curseur sablier.
- */
- public void setWaitCursor() {
- view.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
- }
-
- /**
- * Repositionne le curseur a sa valeur par defaut.
- */
- public void setDefaultCursor() {
- view.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
- }
-
- /**
* Switch application locale.
*
* @param frame frame
@@ -125,7 +105,7 @@
*/
public void showProjectCreationView() {
ProjectCreationView projectCreationView = new ProjectCreationView(view);
- projectCreationView.setHandler(this);
+ projectCreationView.setHandler(new ProjectHandler());
setMainComponent(projectCreationView);
}
@@ -134,7 +114,7 @@
*/
public void showProjectOpenView() {
ProjectOpenView projectOpenView = new ProjectOpenView(view);
- projectOpenView.setHandler(this);
+ projectOpenView.setHandler(new ProjectHandler());
setMainComponent(projectOpenView);
}
@@ -144,7 +124,7 @@
public void showProjectEditView() {
Project project = view.getProject();
ProjectEditView projectEditView = new ProjectEditView(view);
- projectEditView.setHandler(this);
+ projectEditView.setHandler(new ProjectHandler());
projectEditView.setProject(project);
setMainComponent(projectEditView);
}
@@ -235,183 +215,6 @@
}
/**
- * Retourne une unique instance du file chooser pour conserver
- * le répertoire de sélection d'un appel sur l'autre.
- *
- * @return l'unique instance de file chooser
- */
- protected JFileChooser getFileChooser() {
- if (fileChooser == null) {
- fileChooser = new JFileChooser();
- }
- return fileChooser;
- }
-
- /**
- * Display user file selection dialog and fill given text component
- * with given file.
- *
- * @param projectView project view
- * @param textComponent text component to fill
- */
- public void selectInputFile(ProjectCreationView projectView, JTextField textComponent) {
- JFileChooser selectFileChooser = getFileChooser();
-
- int result = selectFileChooser.showOpenDialog(projectView);
- if (result == JFileChooser.APPROVE_OPTION) {
- File selectedFile = selectFileChooser.getSelectedFile();
- textComponent.setText(selectedFile.getAbsolutePath());
- }
- }
-
- /**
- * Create project.
- *
- * @param projectView project view
- */
- public void createProject(final ProjectCreationView projectView) {
- CoserConfig config = projectView.getContextValue(CoserConfig.class);
- final Project project = projectView.getProject();
-
- // get correct reftax to use depending on project configuration
- String reftaxSpeciesPath = null;
- if (projectView.getCustomReferenceCheckBox().isSelected()) {
- reftaxSpeciesPath = projectView.getCustomReferenceSpeciesFileTextField().getText().trim();
- }
- else {
- reftaxSpeciesPath = config.getReferenceSpeciesPath();
- }
-
- // get correct codeTypeEspece file to use
- String codeTypeEspecePath = config.getReferenceTypeEspecesPath();
-
- // convert to file
- File capturesFile = new File(project.getCatchFile());
- File stratesFile = new File(project.getStrataFile());
- File traitsFile = new File(project.getHaulFile());
- File taillesFile = new File(project.getLengthFile());
- File reftaxSpeciesFile = new File(reftaxSpeciesPath);
- File codeTypeEspeceFile = new File(codeTypeEspecePath);
-
- // remember original file names
- project.setCatchFileName(capturesFile.getName());
- project.setLengthFileName(taillesFile.getName());
- project.setHaulFileName(traitsFile.getName());
- project.setStrataFileName(stratesFile.getName());
-
- // check some files existences
- if (!reftaxSpeciesFile.canRead()) {
- JOptionPane.showMessageDialog(projectView, _("coser.ui.project.createProjectMissingReftax"),
- _("coser.ui.project.missingFile"), JOptionPane.ERROR_MESSAGE);
- return;
- }
- if (!codeTypeEspeceFile.canRead()) {
- JOptionPane.showMessageDialog(projectView, _("coser.ui.project.createProjectMissingCodeTypeSpecies"),
- _("coser.ui.project.missingFile"), JOptionPane.ERROR_MESSAGE);
- return;
- }
-
- // package in map
- final Map<Category, File> fileToLoad = new HashMap<Category, File>();
- fileToLoad.put(Category.CATCH, capturesFile);
- fileToLoad.put(Category.HAUL, traitsFile);
- fileToLoad.put(Category.LENGTH, taillesFile);
- fileToLoad.put(Category.STRATA, stratesFile);
- fileToLoad.put(Category.REFTAX_SPECIES, reftaxSpeciesFile);
- fileToLoad.put(Category.TYPE_ESPECES, codeTypeEspeceFile);
-
- // disable create button
- projectView.getCreateProjectButton().setEnabled(false);
-
- setWaitCursor();
- SwingWorker<Project, Void> task = new SwingWorker<Project, Void>() {
- long before = System.currentTimeMillis();
-
- @Override
- protected Project doInBackground() {
- ProjectService projectService = projectView.getContextValue(ProjectService.class);
- Project resultProject = null;
- try {
- resultProject = projectService.createProject(project, fileToLoad, projectView.getLoadProgressBar());
- } catch (CoserBusinessException ex) {
- if (log.isErrorEnabled()) {
- log.error("Can't create project", ex);
- }
- JOptionPane.showMessageDialog(projectView, ex.getMessage(), _("coser.ui.project.creationError"),
- JOptionPane.ERROR_MESSAGE);
- projectView.getCreateProjectButton().setEnabled(true);
- }
- return resultProject;
- }
-
- @Override
- protected void done() {
- if (log.isInfoEnabled()) {
- long after = System.currentTimeMillis();
- log.info("4 import take " + (after-before) + "ms");
- }
- try {
- Project resultProject = get();
- if (resultProject != null) {
- projectLoaded(resultProject);
- showControlView(false);
- }
- } catch (Exception ex) {
- throw new CoserException("Can't create project", ex);
- }
- setDefaultCursor();
- }
- };
- task.execute();
- }
-
- /**
- * Sauve le projet apres edition.
- *
- * @param view view
- */
- public void saveProject(ProjectEditView view) {
- Project project = view.getProject();
- ProjectService projectService = view.getContextValue(ProjectService.class);
- setWaitCursor();
- try {
- projectService.saveProject(project);
- showSummaryView();
- }
- catch (CoserBusinessException ex) {
- throw new CoserException("Can't save project", ex);
- }
- finally {
- setDefaultCursor();
- }
- }
-
- /**
- * Reload project (name selected in ui).
- *
- * @param projectView view
- */
- public void loadProject(final ProjectOpenView projectView) {
-
- final String projectName = (String)projectView.getProjectsComboBox().getSelectedItem();
- ProjectService projectService = projectView.getContextValue(ProjectService.class);
-
- setWaitCursor();
- try {
- Project project = projectService.openProject(projectName);
- projectLoaded(project);
- showSummaryView();
- } catch (CoserBusinessException ex) {
- if (log.isErrorEnabled()) {
- log.error("Can't open project", ex);
- }
- JOptionPane.showMessageDialog(projectView, ex.getMessage(), _("coser.ui.project.openError"),
- JOptionPane.ERROR_MESSAGE);
- }
- setDefaultCursor();
- }
-
- /**
* Ferme le projet.
*/
public void closeProject() {
@@ -422,11 +225,12 @@
/**
* Do some operation when a new project is loaded into application.
+ *
+ * @param project loaded project
*/
- protected void projectLoaded(Project project) {
+ public void projectLoaded(Project project) {
view.setProject(project);
view.setContextValue(project);
-
view.setTitle(_("coser.ui.mainview.titleproject", project.getName()));
}
@@ -437,7 +241,7 @@
Project project = view.getContextValue(Project.class);
ProjectSummaryView projectSummaryView = new ProjectSummaryView(view);
- projectSummaryView.setHandler(this);
+ projectSummaryView.setHandler(new ProjectHandler());
projectSummaryView.setProject(project);
int selectionCount = 0;
@@ -470,7 +274,7 @@
ProjectService projectService = view.getContextValue(ProjectService.class);
Project project = view.getContextValue(Project.class);
- setWaitCursor();
+ setWaitCursor(view);
try {
if (reloadData) {
@@ -490,7 +294,7 @@
throw new CoserException("Can't load control data", ex);
}
finally {
- setDefaultCursor();
+ setDefaultCursor(view);
}
}
@@ -503,7 +307,7 @@
ProjectService projectService = view.getContextValue(ProjectService.class);
Project project = view.getContextValue(Project.class);
- setWaitCursor();
+ setWaitCursor(view);
try {
Selection selection = projectService.initProjectSelection(project);
view.setContextValue(selection);
@@ -515,7 +319,7 @@
SelectionHandler handler = new SelectionHandler();
selectionView.setHandler(handler);
- handler.initMapToolBar(selectionView.getSelectionDetailsTab());
+ handler.initMap(selectionView.getSelectionDetailsTab());
handler.initSelection(selectionView);
// restore session size
@@ -529,7 +333,7 @@
throw new CoserException("Can't create new selection", ex);
}
finally {
- setDefaultCursor();
+ setDefaultCursor(view);
}
}
@@ -544,7 +348,7 @@
Project project = view.getContextValue(Project.class);
Selection selection = project.getSelections().get(selectionName);
- setWaitCursor();
+ setWaitCursor(view);
try {
project = projectService.loadSelectionData(project, selection);
view.setContextValue(selection);
@@ -557,7 +361,7 @@
SelectionHandler handler = new SelectionHandler();
selectionView.setHandler(handler);
- handler.initMapToolBar(selectionView.getSelectionDetailsTab());
+ handler.initMap(selectionView.getSelectionDetailsTab());
handler.reloadSelection(selectionView);
// restore session size
@@ -569,7 +373,7 @@
throw new CoserException("Can't reload selection data", ex);
}
finally {
- setDefaultCursor();
+ setDefaultCursor(view);
}
}
@@ -623,7 +427,7 @@
SelectionHandler handler = new SelectionHandler();
selectionView.setHandler(handler);
- handler.initMapToolBar(selectionView.getSelectionDetailsTab());
+ handler.initMap(selectionView.getSelectionDetailsTab());
// FIXME chatellier 20101126 il faut faire un mix de init && reload
handler.initSelection(selectionView);
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/maps/CoserMap.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/maps/CoserMap.java 2010-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/maps/CoserMap.java 2010-12-14 17:40:06 UTC (rev 405)
@@ -23,6 +23,7 @@
package fr.ifremer.coser.ui.maps;
+import java.io.File;
import java.util.Properties;
import org.apache.commons.logging.Log;
@@ -39,6 +40,8 @@
import com.bbn.openmap.omGraphics.DrawingAttributes;
import com.bbn.openmap.plugin.esri.EsriLayer;
+import fr.ifremer.coser.bean.Project;
+
/**
* Coser map based open openmap.
*
@@ -69,8 +72,7 @@
md.setDefaultMouseModes();
setActiveMouseMode(new NavMouseMode());
layerHandler.addLayerListener(this);
- initMap();
-
+ //initMap();
}
public void setActiveMouseMode(MapMouseMode mode) {
@@ -82,18 +84,24 @@
}*/
}
- protected void initMap() {
+ public void initMap(Project project) {
- addGraticuleLayer();
-
// centrée sur la france
setCenter(50f, 0f);
setScale(16000000f);
+ // graticule layer
+ addGraticuleLayer();
+
+ // world layer
addLayer("maps/vmap_area_thin.shp", "maps/vmap_area_thin.shp", "ff000000", "ffbdde83");
-
- // addLayer("maps/ibts/pol_ibts.shp", "maps/ibts/pol_ibts.shp", "ff000000", "ffE55B3C");
+ // project layer
+ if (project.getMaps() != null) {
+ for (File map : project.getMaps()) {
+ addLayer(map.getAbsolutePath(), map.getAbsolutePath(), "ff000000", "ffE55B3C");
+ }
+ }
}
protected void addGraticuleLayer() {
@@ -185,35 +193,4 @@
return shapeLayer;
}
-
- /**
- * Manage shp layer display.
- *
- * @param layerId layer id
- * @param mapFile absolute map fail path
- * @param lineColor line color
- * @param fillColor fill color
- *
- * @return shape layer
- * @see ShapeLayer
- */
- protected Layer getEsriLayer(String layerId, String mapFile, String lineColor,
- String fillColor) {
-
- if (log.isDebugEnabled()) {
- log.debug("Get ShapeLayer with filename : " + mapFile);
- }
-
- EsriLayer layer = new EsriLayer();
- Properties p = new Properties();
- p.setProperty(layerId + "." + EsriLayer.PARAM_DBF, "maps/ibts/pol_ibts.dbf");
- p.setProperty(layerId + "." + EsriLayer.PARAM_SHP, "maps/ibts/pol_ibts.shp");
- p.setProperty(layerId + "." + EsriLayer.PARAM_SHX, "maps/ibts/pol_ibts.shx");
- p.setProperty(layerId + "." + DrawingAttributes.linePaintProperty, lineColor);
- p.setProperty(layerId + "." + DrawingAttributes.fillPaintProperty, fillColor);
- layer.setProperties(layerId, p);
- layer.setName(layerId);
-
- return layer;
- }
}
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-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectCreationView.jaxx 2010-12-14 17:40:06 UTC (rev 405)
@@ -23,7 +23,7 @@
#L%
-->
<Table>
- <fr.ifremer.coser.ui.CoserFrameHandler id="handler" javaBean="null" />
+ <ProjectHandler id="handler" javaBean="null" />
<!-- Validation -->
<fr.ifremer.coser.bean.Project id="project" />
@@ -143,6 +143,26 @@
</cell>
</row>
<row>
+ <cell anchor="northwest" rows="2">
+ <JLabel text="coser.ui.project.maps" />
+ </cell>
+ <cell fill="horizontal" columns="2" rows="2">
+ <JScrollPane>
+ <ProjectMapsListModel id="projectMapsModel" />
+ <JList id="projectMaps" model="{projectMapsModel}" />
+ </JScrollPane>
+ </cell>
+ <cell fill="horizontal">
+ <JButton text="coser.ui.project.addMaps" onActionPerformed="getHandler().selectMapFiles(this)" />
+ </cell>
+ </row>
+ <row>
+ <cell anchor="north" fill="horizontal">
+ <JButton text="coser.ui.project.removeMaps" enabled="{getProjectMaps().getSelectedIndices().length != 0}"
+ onActionPerformed="getHandler().removeSelectedMapFiles(this)" />
+ </cell>
+ </row>
+ <row>
<cell>
<JLabel id="referenceSpeciesDescriptionLabel" text="coser.ui.project.usedReferenceSpeciesFile"
enabled="{!customReferenceCheckBox.isSelected()}" />
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectEditView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectEditView.jaxx 2010-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectEditView.jaxx 2010-12-14 17:40:06 UTC (rev 405)
@@ -23,7 +23,7 @@
#L%
-->
<Table>
- <fr.ifremer.coser.ui.CoserFrameHandler id="handler" javaBean="null" />
+ <ProjectHandler id="handler" javaBean="null" />
<!-- Validation -->
<fr.ifremer.coser.bean.Project id="project" javaBean="null" />
@@ -63,6 +63,26 @@
</cell>
</row>
<row>
+ <cell anchor="northwest" rows="2">
+ <JLabel text="coser.ui.project.maps" />
+ </cell>
+ <cell fill="horizontal" columns="2" rows="2">
+ <JScrollPane>
+ <ProjectMapsListModel id="projectMapsModel" maps="{getProject().getMaps()}" />
+ <JList id="projectMaps" model="{projectMapsModel}" />
+ </JScrollPane>
+ </cell>
+ <cell fill="horizontal">
+ <JButton text="coser.ui.project.addMaps" onActionPerformed="getHandler().selectMapFiles(this)" />
+ </cell>
+ </row>
+ <row>
+ <cell anchor="north" fill="horizontal">
+ <JButton text="coser.ui.project.removeMaps" enabled="{getProjectMaps().getSelectedIndices().length != 0}"
+ onActionPerformed="getHandler().removeSelectedMapFiles(this)" />
+ </cell>
+ </row>
+ <row>
<cell anchor="northwest">
<JLabel text="coser.ui.project.projectcomment" />
</cell>
Added: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java 2010-12-14 17:40:06 UTC (rev 405)
@@ -0,0 +1,339 @@
+/*
+ * #%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.ui.project;
+
+import static org.nuiton.i18n.I18n._;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.JFileChooser;
+import javax.swing.JOptionPane;
+import javax.swing.JTextField;
+import javax.swing.SwingWorker;
+import javax.swing.filechooser.FileFilter;
+
+import jaxx.runtime.JAXXUtil;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import fr.ifremer.coser.CoserBusinessException;
+import fr.ifremer.coser.CoserConfig;
+import fr.ifremer.coser.CoserConstants.Category;
+import fr.ifremer.coser.CoserException;
+import fr.ifremer.coser.bean.Project;
+import fr.ifremer.coser.services.ProjectService;
+import fr.ifremer.coser.ui.CoserFrame;
+import fr.ifremer.coser.ui.common.CommonHandler;
+
+/**
+ * Handler for project related ui.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class ProjectHandler extends CommonHandler {
+
+ private static final Log log = LogFactory.getLog(ProjectHandler.class);
+
+ protected JFileChooser fileChooser;
+
+ protected JFileChooser mapFileChooser;
+
+ /**
+ * Retourne une unique instance du file chooser pour conserver
+ * le répertoire de sélection d'un appel sur l'autre.
+ *
+ * @return l'unique instance de file chooser
+ */
+ protected JFileChooser getFileChooser() {
+ if (fileChooser == null) {
+ fileChooser = new JFileChooser();
+ }
+ return fileChooser;
+ }
+
+ /**
+ * Retourne une unique instance du file chooser pour conserver
+ * le répertoire de sélection d'un appel sur l'autre.
+ *
+ * @return l'unique instance de file chooser
+ */
+ protected JFileChooser getMapFileChooser() {
+ if (mapFileChooser == null) {
+ mapFileChooser = new JFileChooser();
+ mapFileChooser.addChoosableFileFilter(new FileFilter() {
+ @Override
+ public boolean accept(File f) {
+ return f.isDirectory() || f.getName().matches(".*\\.shp");
+ }
+
+ @Override
+ public String getDescription() {
+ return "ESRI Shapefiles (*.shp)";
+ }
+ });
+ }
+ return mapFileChooser;
+ }
+
+ /**
+ * Display user file selection dialog and fill given text component
+ * with given file.
+ *
+ * @param projectView project view
+ * @param textComponent text component to fill
+ */
+ public void selectInputFile(ProjectCreationView projectView, JTextField textComponent) {
+ JFileChooser selectFileChooser = getFileChooser();
+
+ int result = selectFileChooser.showOpenDialog(projectView);
+ if (result == JFileChooser.APPROVE_OPTION) {
+ File selectedFile = selectFileChooser.getSelectedFile();
+ textComponent.setText(selectedFile.getAbsolutePath());
+ }
+ }
+
+ /**
+ * Display user file selection dialog and fill maps list.
+ *
+ * @param projectView project view
+ */
+ public void selectMapFiles(ProjectCreationView projectView) {
+ JFileChooser selectFileChooser = getMapFileChooser();
+
+ int result = selectFileChooser.showOpenDialog(projectView);
+ if (result == JFileChooser.APPROVE_OPTION) {
+ File selectedFile = selectFileChooser.getSelectedFile();
+ projectView.getProjectMapsModel().addMap(selectedFile);
+ }
+ }
+
+ /**
+ * Display user file selection dialog and fill given text component
+ * with given file.
+ *
+ * @param projectView project view
+ */
+ public void removeSelectedMapFiles(ProjectCreationView projectView) {
+ Object[] values = projectView.getProjectMaps().getSelectedValues();
+ for (Object value : values) {
+ projectView.getProjectMapsModel().removeMap(value);
+ }
+ }
+
+ /**
+ * Display user file selection dialog and fill maps list.
+ *
+ * @param projectView project view
+ */
+ public void selectMapFiles(ProjectEditView projectView) {
+ JFileChooser selectFileChooser = getMapFileChooser();
+
+ int result = selectFileChooser.showOpenDialog(projectView);
+ if (result == JFileChooser.APPROVE_OPTION) {
+ File selectedFile = selectFileChooser.getSelectedFile();
+ projectView.getProjectMapsModel().addMap(selectedFile);
+ }
+ }
+
+ /**
+ * Display user file selection dialog and fill given text component
+ * with given file.
+ *
+ * @param projectView project view
+ */
+ public void removeSelectedMapFiles(ProjectEditView projectView) {
+ Object[] values = projectView.getProjectMaps().getSelectedValues();
+ for (Object value : values) {
+ projectView.getProjectMapsModel().removeMap(value);
+ }
+ }
+
+ /**
+ * Create project.
+ *
+ * @param projectView project view
+ */
+ public void createProject(final ProjectCreationView projectView) {
+ final CoserFrame parent = projectView.getContextValue(CoserFrame.class, JAXXUtil.PARENT);
+ CoserConfig config = projectView.getContextValue(CoserConfig.class);
+ final Project project = projectView.getProject();
+
+ // get correct reftax to use depending on project configuration
+ String reftaxSpeciesPath = null;
+ if (projectView.getCustomReferenceCheckBox().isSelected()) {
+ reftaxSpeciesPath = projectView.getCustomReferenceSpeciesFileTextField().getText().trim();
+ }
+ else {
+ reftaxSpeciesPath = config.getReferenceSpeciesPath();
+ }
+
+ // get correct codeTypeEspece file to use
+ String codeTypeEspecePath = config.getReferenceTypeEspecesPath();
+
+ // convert to file
+ File capturesFile = new File(project.getCatchFile());
+ File stratesFile = new File(project.getStrataFile());
+ File traitsFile = new File(project.getHaulFile());
+ File taillesFile = new File(project.getLengthFile());
+ File reftaxSpeciesFile = new File(reftaxSpeciesPath);
+ File codeTypeEspeceFile = new File(codeTypeEspecePath);
+
+ // remember original file names
+ project.setCatchFileName(capturesFile.getName());
+ project.setLengthFileName(taillesFile.getName());
+ project.setHaulFileName(traitsFile.getName());
+ project.setStrataFileName(stratesFile.getName());
+
+ // get map list
+ final List<File> newMaps = projectView.getProjectMapsModel().getMaps();
+
+ // check some files existences
+ if (!reftaxSpeciesFile.canRead()) {
+ JOptionPane.showMessageDialog(projectView, _("coser.ui.project.createProjectMissingReftax"),
+ _("coser.ui.project.missingFile"), JOptionPane.ERROR_MESSAGE);
+ return;
+ }
+ if (!codeTypeEspeceFile.canRead()) {
+ JOptionPane.showMessageDialog(projectView, _("coser.ui.project.createProjectMissingCodeTypeSpecies"),
+ _("coser.ui.project.missingFile"), JOptionPane.ERROR_MESSAGE);
+ return;
+ }
+
+ // package in map
+ final Map<Category, File> fileToLoad = new HashMap<Category, File>();
+ fileToLoad.put(Category.CATCH, capturesFile);
+ fileToLoad.put(Category.HAUL, traitsFile);
+ fileToLoad.put(Category.LENGTH, taillesFile);
+ fileToLoad.put(Category.STRATA, stratesFile);
+ fileToLoad.put(Category.REFTAX_SPECIES, reftaxSpeciesFile);
+ fileToLoad.put(Category.TYPE_ESPECES, codeTypeEspeceFile);
+
+ // disable create button
+ projectView.getCreateProjectButton().setEnabled(false);
+
+ setWaitCursor(projectView);
+ SwingWorker<Project, Void> task = new SwingWorker<Project, Void>() {
+ long before = System.currentTimeMillis();
+
+ @Override
+ protected Project doInBackground() {
+ ProjectService projectService = projectView.getContextValue(ProjectService.class);
+ Project resultProject = null;
+ try {
+ resultProject = projectService.createProject(project, fileToLoad, newMaps, projectView.getLoadProgressBar());
+ } catch (CoserBusinessException ex) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't create project", ex);
+ }
+ JOptionPane.showMessageDialog(projectView, ex.getMessage(), _("coser.ui.project.creationError"),
+ JOptionPane.ERROR_MESSAGE);
+ projectView.getCreateProjectButton().setEnabled(true);
+ }
+ return resultProject;
+ }
+
+ @Override
+ protected void done() {
+ if (log.isInfoEnabled()) {
+ long after = System.currentTimeMillis();
+ log.info("4 import take " + (after-before) + "ms");
+ }
+ try {
+ Project resultProject = get();
+ if (resultProject != null) {
+ parent.getHandler().projectLoaded(resultProject);
+ parent.getHandler().showControlView(false);
+ }
+ } catch (Exception ex) {
+ throw new CoserException("Can't create project", ex);
+ }
+ setDefaultCursor(projectView);
+ }
+ };
+ task.execute();
+ }
+
+ /**
+ * Sauve le projet apres edition.
+ *
+ * @param projectView project edit view
+ */
+ public void saveProject(ProjectEditView projectView) {
+ Project project = projectView.getProject();
+ ProjectService projectService = projectView.getContextValue(ProjectService.class);
+ CoserFrame parent = projectView.getContextValue(CoserFrame.class, JAXXUtil.PARENT);
+
+ setWaitCursor(projectView);
+ try {
+
+ // get map list
+ List<File> newMaps = projectView.getProjectMapsModel().getMaps();
+
+ projectService.saveProject(project, newMaps);
+ parent.getHandler().showSummaryView();
+ }
+ catch (CoserBusinessException ex) {
+ throw new CoserException("Can't save project", ex);
+ }
+ finally {
+ setDefaultCursor(projectView);
+ }
+ }
+
+ /**
+ * Reload project (name selected in ui).
+ *
+ * @param projectView view
+ */
+ public void loadProject(final ProjectOpenView projectView) {
+
+ final String projectName = (String)projectView.getProjectsComboBox().getSelectedItem();
+ ProjectService projectService = projectView.getContextValue(ProjectService.class);
+ CoserFrame parent = projectView.getContextValue(CoserFrame.class, JAXXUtil.PARENT);
+
+ setWaitCursor(projectView);
+ try {
+ Project project = projectService.openProject(projectName);
+ parent.getHandler().projectLoaded(project);
+ parent.getHandler().showSummaryView();
+ } catch (CoserBusinessException ex) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't open project", ex);
+ }
+ JOptionPane.showMessageDialog(projectView, ex.getMessage(), _("coser.ui.project.openError"),
+ JOptionPane.ERROR_MESSAGE);
+ }
+ setDefaultCursor(projectView);
+ }
+}
Property changes on: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectHandler.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectMapsListModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectMapsListModel.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectMapsListModel.java 2010-12-14 17:40:06 UTC (rev 405)
@@ -0,0 +1,93 @@
+/*
+ * #%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.project;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.DefaultListModel;
+
+/**
+ * Project maps files list model.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class ProjectMapsListModel extends DefaultListModel {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 7354496943155548103L;
+
+ protected List<File> maps;
+
+ public ProjectMapsListModel() {
+ maps = new ArrayList<File>();
+ }
+
+ public void setMaps(List<File> maps) {
+ if (maps != null) {
+ this.maps = new ArrayList<File>(maps);
+ }
+ else {
+ this.maps = new ArrayList<File>();
+ }
+ fireContentsChanged(this, 0, this.maps.size() - 1);
+ }
+
+ public List<File> getMaps() {
+ return maps;
+ }
+
+ public void addMap(File map) {
+ maps.add(map);
+ fireContentsChanged(this, 0, maps.size() - 1);
+ }
+
+ public void removeMap(Object map) {
+ maps.remove(map);
+ fireContentsChanged(this, 0, maps.size() - 1);
+ }
+
+ /*
+ * @see javax.swing.ListModel#getSize()
+ */
+ @Override
+ public int getSize() {
+ return maps.size();
+ }
+
+ /*
+ * @see javax.swing.ListModel#getElementAt(int)
+ */
+ @Override
+ public Object getElementAt(int index) {
+ return maps.get(index);
+ }
+}
Property changes on: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectMapsListModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
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-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectOpenView.jaxx 2010-12-14 17:40:06 UTC (rev 405)
@@ -23,7 +23,7 @@
#L%
-->
<Table>
- <fr.ifremer.coser.ui.CoserFrameHandler id="handler" javaBean="null" />
+ <ProjectHandler id="handler" javaBean="null" />
<row>
<cell weightx="1" fill="horizontal">
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectSummaryView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectSummaryView.jaxx 2010-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/project/ProjectSummaryView.jaxx 2010-12-14 17:40:06 UTC (rev 405)
@@ -23,7 +23,7 @@
#L%
-->
<Table>
- <fr.ifremer.coser.ui.CoserFrameHandler id="handler" javaBean="null" />
+ <ProjectHandler id="handler" javaBean="null" />
<fr.ifremer.coser.bean.Project id="project" javaBean="null" />
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-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-12-14 17:40:06 UTC (rev 405)
@@ -267,11 +267,17 @@
}
/**
- * Link map toolbar with map.
+ * Init openmap toolbar and openmap layers.
*
* @param view view
*/
- public void initMapToolBar(SelectionDetailsView view) {
+ public void initMap(SelectionDetailsView view) {
+
+ // add layers
+ Project project = view.getContextValue(Project.class);
+ view.getStrataMap().initMap(project);
+
+ // link toolbar with map
OMToolSet toolSet = new OMToolSet();
toolSet.setupListeners(view.getStrataMap());
view.getStrataMapToolBar().add((Tool)toolSet);
Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx 2010-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionRsufiView.jaxx 2010-12-14 17:40:06 UTC (rev 405)
@@ -25,7 +25,7 @@
<Table>
<SelectionHandler id="handler" javaBean="null" />
<row>
- <cell weightx="1" fill="horizontal">
+ <cell weightx="1" fill="horizontal" >
<Table border='{BorderFactory.createTitledBorder(_("coser.ui.result.extractDataTitle"))}'>
<row>
<cell>
@@ -49,6 +49,9 @@
</cell>
</row>
<row>
+ <cell insets="30"></cell>
+ </row>
+ <row>
<cell weightx="1" weighty="2" fill="both">
<Table border='{BorderFactory.createTitledBorder(_("coser.ui.result.availableDataTitle"))}'>
<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-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_en_GB.properties 2010-12-14 17:40:06 UTC (rev 405)
@@ -91,6 +91,7 @@
coser.ui.mainframe.menu.website=Online help
coser.ui.mainview.titleempty=Contr\u00F4le et S\u00E9lection RSufi
coser.ui.mainview.titleproject=Contr\u00F4le et S\u00E9lection RSufi (%s)
+coser.ui.project.addMaps=Add map\u2026
coser.ui.project.catchFile=Catch file \:
coser.ui.project.createProject=Create project
coser.ui.project.createProjectMissingCodeTypeSpecies=File 'CodeTypeSpecies' is not valid \!\n(check configuration \: coser.reference.typeSpecies)
@@ -100,6 +101,7 @@
coser.ui.project.editProject=Edit project
coser.ui.project.haulFile=Haul file \:
coser.ui.project.lengthFile=Length file \:
+coser.ui.project.maps=Maps \:
coser.ui.project.missingFile=Missing file
coser.ui.project.newProject=New project
coser.ui.project.openError=Open error
@@ -109,6 +111,7 @@
coser.ui.project.projectauthor=Author \:
coser.ui.project.projectcomment=Comment \:
coser.ui.project.projectname=Project name \:
+coser.ui.project.removeMaps=Remove map
coser.ui.project.saveProject=Save project
coser.ui.project.strataFile=Strata file \:
coser.ui.project.summary.catchFileName=Catch file name \:
Modified: trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties
===================================================================
--- trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2010-12-14 13:55:38 UTC (rev 404)
+++ trunk/coser-ui/src/main/resources/i18n/coser-ui_fr_FR.properties 2010-12-14 17:40:06 UTC (rev 405)
@@ -91,6 +91,7 @@
coser.ui.mainframe.menu.website=Aide en ligne
coser.ui.mainview.titleempty=Contr\u00F4le et S\u00E9lection RSufi
coser.ui.mainview.titleproject=Contr\u00F4le et S\u00E9lection RSufi (%s)
+coser.ui.project.addMaps=Ajouter\u2026
coser.ui.project.catchFile=Fichier de captures \:
coser.ui.project.createProject=Cr\u00E9er le projet
coser.ui.project.createProjectMissingCodeTypeSpecies=Le fichier 'CodeTypeEspeces' n'est pas valide \!\n(v\u00E9rifiez la configuration \: coser.reference.typeSpecies)
@@ -100,6 +101,7 @@
coser.ui.project.editProject=Modifier le projet
coser.ui.project.haulFile=Fichier des traits \:
coser.ui.project.lengthFile=Fichier des tailles \:
+coser.ui.project.maps=Cartes \:
coser.ui.project.missingFile=Fichier manquant
coser.ui.project.newProject=Nouveau projet
coser.ui.project.openError=Erreur d'ouverture
@@ -109,6 +111,7 @@
coser.ui.project.projectauthor=Auteur \:
coser.ui.project.projectcomment=Commentaire \:
coser.ui.project.projectname=Nom du projet \:
+coser.ui.project.removeMaps=Supprimer
coser.ui.project.saveProject=Sauver le projet
coser.ui.project.strataFile=Fichier des strates \:
coser.ui.project.summary.catchFileName=Nom du fichier captures \:
1
0
r404 - in trunk: coser-business/src/main/java/fr/ifremer/coser/services coser-business/src/test/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 14 Dec '10
by chatellier@users.labs.libre-entreprise.org 14 Dec '10
14 Dec '10
Author: chatellier
Date: 2010-12-14 13:55:38 +0000 (Tue, 14 Dec 2010)
New Revision: 404
Log:
Display species type comment un specy type renderer.
Refactoring (specy > species)
Added:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesListOccDensRenderer.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesTypesRenderer.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/MaturitySpeciesListModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/OccurrenceDensitySpeciesListModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SizeAllYearSpeciesListModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpeciesListModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpeciesTypesListModel.java
Removed:
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpecyListOccDensRenderer.java
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/OccurrenceDensitySpecyListModel.java
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/SpecyListModel.java
trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpecyTypesListModel.java
Modified:
trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java
trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.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
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-12-14 11:01:06 UTC (rev 403)
+++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/ProjectService.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -49,7 +49,9 @@
import java.util.Map;
import java.util.Properties;
import java.util.Set;
+import java.util.SortedMap;
import java.util.SortedSet;
+import java.util.TreeMap;
import java.util.TreeSet;
import java.util.regex.Pattern;
@@ -60,7 +62,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.math.util.MathUtils;
-import org.nuiton.math.matrix.DoubleVector;
import org.nuiton.math.matrix.MatrixFactory;
import org.nuiton.math.matrix.MatrixND;
@@ -1477,13 +1478,14 @@
}
/**
- * Retourne la liste des type d'especes definie dans le projet.
+ * Retourne la liste des type d'especes definie dans le projet sous forme
+ * de map avec leur commentaire.
*
* @param project project to search into
* @return project species type
*/
- public List<String> getProjectSpeciesTypes(Project project) {
- List<String> types = new ArrayList<String>();
+ public Map<String, String> getProjectSpeciesTypes(Project project) {
+ SortedMap<String, String> types = new TreeMap<String, String>();
// "Types","Commentaire","NumSys min","NumSys max"
@@ -1494,10 +1496,10 @@
String[] tuple = itTuples.next();
String type = tuple[0];
- types.add(type);
+ String comment = tuple[1];
+ types.put(type, comment);
}
- Collections.sort(types);
return types;
}
@@ -1752,10 +1754,10 @@
* Used in selection ui.
*
* @param project project (avec reftax)
- * @param newSpecyName specy code to test
+ * @param newSpeciesName species code to test
* @return {@code true} if specy name exist
*/
- public boolean isSpecyNameExist(Project project, String newSpecyName) {
+ public boolean isSpeciesNameExist(Project project, String newSpeciesName) {
boolean result = false;
@@ -1765,7 +1767,7 @@
String[] tuple = itTuple.next();
// "C_Perm","NumSys","NivSys","C_VALIDE","L_VALIDE","AA_VALIDE","C_TxP\u00E8re","Taxa"
String specyCode = tuple[3];
- if (specyCode.equals(newSpecyName)) {
+ if (specyCode.equals(newSpeciesName)) {
result = true;
}
}
@@ -1779,20 +1781,20 @@
*
* @param project project
* @param selection selection
- * @param newSpecyName new specy name (after merge)
+ * @param newSpeciesName new specy name (after merge)
* @param comment comment
* @param speciesNames species name to merge
* @return project
* @throws CoserBusinessException
*/
- public Project mergeSpecies(Project project, Selection selection, String newSpecyName, String comment, String... speciesNames) throws CoserBusinessException {
+ public Project mergeSpecies(Project project, Selection selection, String newSpeciesName, String comment, String... speciesNames) throws CoserBusinessException {
- if (!isSpecyNameExist(project, newSpecyName)) {
- throw new CoserBusinessException(_("Species %s doesn't exist in referential", newSpecyName));
+ if (!isSpeciesNameExist(project, newSpeciesName)) {
+ throw new CoserBusinessException(_("Species %s doesn't exist in referential", newSpeciesName));
}
MergeSpeciesCommand command = new MergeSpeciesCommand();
- command.setNewSpecyName(newSpecyName);
+ command.setNewSpecyName(newSpeciesName);
command.setSpeciesNames(speciesNames);
command.setComment(comment);
commandService.doAction(command, project, selection);
Modified: trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java
===================================================================
--- trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java 2010-12-14 11:01:06 UTC (rev 403)
+++ trunk/coser-business/src/test/java/fr/ifremer/coser/services/ProjectServiceTest.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -200,9 +200,9 @@
@Test
public void testSpeciesExistence() throws CoserBusinessException {
Project project = createTestProject(projectService, false);
- Assert.assertFalse(projectService.isSpecyNameExist(project, "Coser_invalid"));
- Assert.assertTrue(projectService.isSpecyNameExist(project, "COSER_SPECIES1"));
- Assert.assertTrue(projectService.isSpecyNameExist(project, "COSER_SPECIES2"));
+ Assert.assertFalse(projectService.isSpeciesNameExist(project, "Coser_invalid"));
+ Assert.assertTrue(projectService.isSpeciesNameExist(project, "COSER_SPECIES1"));
+ Assert.assertTrue(projectService.isSpeciesNameExist(project, "COSER_SPECIES2"));
}
/**
@@ -307,7 +307,7 @@
Selection selection = projectService.initProjectSelection(project);
selection.setName("test");
- Assert.assertTrue(projectService.isSpecyNameExist(project, "COSER_SPECIES_MERGE"));
+ Assert.assertTrue(projectService.isSpeciesNameExist(project, "COSER_SPECIES_MERGE"));
Assert.assertEquals(25, selection.getCatch().size());
Assert.assertEquals(30, selection.getLength().size());
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-12-14 11:01:06 UTC (rev 403)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionDetailsView.jaxx 2010-12-14 13:55:38 UTC (rev 404)
@@ -31,8 +31,8 @@
void $afterCompleteSetup() {
// modification (species -> selection model)
- filteredSpecyListModel.addListDataListener((CoserListSelectionModel)filteredSpecyList.getSelectionModel());
- selectedSpecyListModel.addListDataListener((CoserListSelectionModel)selectedSpecyList.getSelectionModel());
+ filteredSpeciesListModel.addListDataListener((CoserListSelectionModel)filteredSpeciesList.getSelectionModel());
+ selectedSpeciesListModel.addListDataListener((CoserListSelectionModel)selectedSpeciesList.getSelectionModel());
}
]]></script>
@@ -45,7 +45,7 @@
<!-- Validation -->
<fr.ifremer.coser.bean.Selection id="selection" javaBean="null" />
<jaxx.runtime.validator.swing.SwingValidatorMessageTableModel id='errorsTableModel'
- onTableChanged='saveSelectionButton.setEnabled(getErrorsTableModel().getRowCount() == 0 && getSelectedSpecyListModel().getSize() != 0)'/>
+ onTableChanged='saveSelectionButton.setEnabled(getErrorsTableModel().getRowCount() == 0 && getSelectedSpeciesListModel().getSize() != 0)'/>
<BeanValidator id='validatorSelection' bean='selection'
uiClass="jaxx.runtime.validator.swing.ui.ImageValidationUI"
errorTableModel="errorsTableModel">
@@ -175,18 +175,19 @@
<Table>
<row>
<cell fill="horizontal" columns="4">
- <JLabel id="typeSpecyLabel" text='{_("coser.ui.selection.details.type", typeSpecyList.getSelectedIndices().length, typeSpecyList.getModel().getSize())}' />
+ <JLabel id="typeSpeciesLabel" text='{_("coser.ui.selection.details.type", typeSpeciesList.getSelectedIndices().length, typeSpeciesList.getModel().getSize())}' />
</cell>
</row>
<row>
<cell fill="both" weightx="1" weighty="1" columns="2">
<JScrollPane>
- <SpecyTypesListModel id="typeSpecyModel" constructorParams="this"
- onContentsChanged='typeSpecyLabel.setText(_("coser.ui.selection.details.type", typeSpecyList.getSelectedIndices().length, typeSpecyList.getModel().getSize()))'/>
- <JList id="typeSpecyList" model="{typeSpecyModel}"
- selectionModel="{new CoserListSelectionModel(typeSpecyList.getSelectionModel(), typeSpecyModel)}"
+ <SpeciesTypesListModel id="typeSpeciesModel" constructorParams="this"
+ onContentsChanged='typeSpeciesLabel.setText(_("coser.ui.selection.details.type", typeSpeciesList.getSelectedIndices().length, typeSpeciesList.getModel().getSize()))'/>
+ <JList id="typeSpeciesList" model="{typeSpeciesModel}"
+ cellRenderer="{new SpeciesTypesRenderer()}"
+ selectionModel="{new CoserListSelectionModel(typeSpeciesList.getSelectionModel(), typeSpeciesModel)}"
enabled="{isYearsValidated() && isStrataValidated()}"
- onValueChanged='validFilterButton.setEnabled(true); typeSpecyLabel.setText(_("coser.ui.selection.details.type", typeSpecyList.getSelectedIndices().length, typeSpecyList.getModel().getSize()))' />
+ onValueChanged='validFilterButton.setEnabled(true); typeSpeciesLabel.setText(_("coser.ui.selection.details.type", typeSpeciesList.getSelectedIndices().length, typeSpeciesList.getModel().getSize()))' />
</JScrollPane>
</cell>
<cell anchor="south" columns="2">
@@ -200,23 +201,23 @@
<Table>
<row>
<cell fill="horizontal" columns="2">
- <JLabel id="filteredSpecyLabel" text='{_("coser.ui.selection.details.filteredSpecies", 0, 0)}' />
+ <JLabel id="filteredSpeciesLabel" text='{_("coser.ui.selection.details.filteredSpecies", 0, 0)}' />
</cell>
<cell fill="horizontal">
- <JLabel id="selectedSpecyLabel" text='{_("coser.ui.selection.details.selectedSpecies", 0, 0)}' />
+ <JLabel id="selectedSpeciesLabel" text='{_("coser.ui.selection.details.selectedSpecies", 0, 0)}' />
</cell>
</row>
<row>
<cell weightx="1" weighty="1" fill="both">
<JScrollPane>
- <SpecyListModel id="filteredSpecyListModel"
- onContentsChanged='filteredSpecyLabel.setText(_("coser.ui.selection.details.filteredSpecies", filteredSpecyList.getSelectedIndices().length, filteredSpecyList.getModel().getSize()))'/>
- <JList id="filteredSpecyList" model="{filteredSpecyListModel}"
+ <SpeciesListModel id="filteredSpeciesListModel"
+ onContentsChanged='filteredSpeciesLabel.setText(_("coser.ui.selection.details.filteredSpecies", filteredSpeciesList.getSelectedIndices().length, filteredSpeciesList.getModel().getSize()))'/>
+ <JList id="filteredSpeciesList" model="{filteredSpeciesListModel}"
onMouseClicked="getHandler().showFilteredSpeciesContextMenu(this, event)"
- selectionModel="{new CoserListSelectionModel(filteredSpecyList.getSelectionModel(), filteredSpecyListModel)}"
+ selectionModel="{new CoserListSelectionModel(filteredSpeciesList.getSelectionModel(), filteredSpeciesListModel)}"
enabled="{isYearsValidated() && isStrataValidated()}"
- onValueChanged='filteredSpecyLabel.setText(_("coser.ui.selection.details.filteredSpecies", filteredSpecyList.getSelectedIndices().length, filteredSpecyList.getModel().getSize()))' />
- <ListSelectionModel id="filteredSpecyListSelectionModel" javaBean="filteredSpecyList.getSelectionModel()" />
+ onValueChanged='filteredSpeciesLabel.setText(_("coser.ui.selection.details.filteredSpecies", filteredSpeciesList.getSelectedIndices().length, filteredSpeciesList.getModel().getSize()))' />
+ <ListSelectionModel id="filteredSpeciesListSelectionModel" javaBean="filteredSpeciesList.getSelectionModel()" />
</JScrollPane>
</cell>
<cell anchor="north">
@@ -226,7 +227,7 @@
<JButton icon="arrow_right.png"
toolTipText="coser.ui.selection.details.addToSelectedListTip"
onActionPerformed="getHandler().addSelectedFilteredSpecies(this)"
- enabled="{getFilteredSpecyList().getSelectedIndex() != -1 && isYearsValidated() && isStrataValidated()}"/>
+ enabled="{getFilteredSpeciesList().getSelectedIndex() != -1 && isYearsValidated() && isStrataValidated()}"/>
</cell>
</row>
<row>
@@ -234,21 +235,21 @@
<JButton icon="arrow_left.png"
toolTipText="coser.ui.selection.details.removeFromSelectedListTip"
onActionPerformed="getHandler().removeSelectedSpecies(this)"
- enabled="{getSelectedSpecyList().getSelectedIndex() != -1 && isYearsValidated() && isStrataValidated()}"/>
+ enabled="{getSelectedSpeciesList().getSelectedIndex() != -1 && isYearsValidated() && isStrataValidated()}"/>
</cell>
</row>
</Table>
</cell>
<cell weightx="1" weighty="1" fill="both">
<JScrollPane>
- <SpecyListModel id="selectedSpecyListModel"
- onContentsChanged='saveSelectionButton.setEnabled(getErrorsTableModel().getRowCount() == 0 && getSelectedSpecyListModel().getSize() != 0);selectedSpecyLabel.setText(_("coser.ui.selection.details.selectedSpecies", selectedSpecyList.getSelectedIndices().length, selectedSpecyList.getModel().getSize()))'/>
- <JList id="selectedSpecyList" model="{selectedSpecyListModel}"
+ <SpeciesListModel id="selectedSpeciesListModel"
+ onContentsChanged='saveSelectionButton.setEnabled(getErrorsTableModel().getRowCount() == 0 && getSelectedSpeciesListModel().getSize() != 0);selectedSpeciesLabel.setText(_("coser.ui.selection.details.selectedSpecies", selectedSpeciesList.getSelectedIndices().length, selectedSpeciesList.getModel().getSize()))'/>
+ <JList id="selectedSpeciesList" model="{selectedSpeciesListModel}"
onMouseClicked="getHandler().showSelectedSpeciesContextMenu(this, event)"
- selectionModel="{new CoserListSelectionModel(selectedSpecyList.getSelectionModel(), selectedSpecyListModel)}"
+ selectionModel="{new CoserListSelectionModel(selectedSpeciesList.getSelectionModel(), selectedSpeciesListModel)}"
enabled="{isYearsValidated() && isStrataValidated()}"
- onValueChanged='selectedSpecyLabel.setText(_("coser.ui.selection.details.selectedSpecies", selectedSpecyList.getSelectedIndices().length, selectedSpecyList.getModel().getSize()))'/>
- <ListSelectionModel id="selectedSpecyListSelectionModel" javaBean="selectedSpecyList.getSelectionModel()" />
+ onValueChanged='selectedSpeciesLabel.setText(_("coser.ui.selection.details.selectedSpecies", selectedSpeciesList.getSelectedIndices().length, selectedSpeciesList.getModel().getSize()))'/>
+ <ListSelectionModel id="selectedSpeciesListSelectionModel" javaBean="selectedSpeciesList.getSelectionModel()" />
</JScrollPane>
</cell>
</row>
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-12-14 11:01:06 UTC (rev 403)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -73,7 +73,7 @@
import fr.ifremer.coser.services.PublicationService;
import fr.ifremer.coser.ui.common.DataHandler;
import fr.ifremer.coser.ui.result.SelectionAddResultDialog;
-import fr.ifremer.coser.ui.selection.model.OccurrenceDensitySpecyListModel;
+import fr.ifremer.coser.ui.selection.model.OccurrenceDensitySpeciesListModel;
import fr.ifremer.coser.ui.util.CoserListSelectionModel;
/**
@@ -121,9 +121,9 @@
// on met à jour la liste de "Toutes les especes" (L1)
List<String> currentList = selectionListsView.getSelectionAllSpeciesListModel().getSpecies();
- List<String> selectionSpecyList = selection.getSelectedSpecies();
+ List<String> selectionSpeciesList = selection.getSelectedSpecies();
- if (!selectionSpecyList.equals(currentList)) {
+ if (!selectionSpeciesList.equals(currentList)) {
// on calcul également les matrices de d'occurence, densité
Project project = view.getContextValue(Project.class);
@@ -139,8 +139,8 @@
selectionListsView.getSelectionOccurrenceDensityListModel().setOccurrence(occurrence);
selectionListsView.getSelectionOccurrenceDensityListModel().setDensity(density);
- // fill all specy data (at final)
- selectionListsView.getSelectionAllSpeciesListModel().setSpecies(selectionSpecyList);
+ // fill all species data (at final)
+ selectionListsView.getSelectionAllSpeciesListModel().setSpecies(selectionSpeciesList);
((CoserListSelectionModel)selectionListsView.getSelectionAllSpeciesList().getSelectionModel()).fillSelection();
selectionListsView.getSelectionSizeAllYearListModel().setSizeAllYearSpecies(speciesAllYear);
selectionListsView.getSelectionMaturityListModel().setMaturitySpecies(speciesWithMaturity);
@@ -217,10 +217,10 @@
List<String> selectedStrata = selection.getSelectedStrata();
((CoserListSelectionModel)detailView.getStrataList().getSelectionModel()).setSelectedObjects(selectedStrata);
- // details view : fill specy list and selection
+ // details view : fill species list and selection
strataListChanged(detailView);
List<String> selectedSpecies = selection.getSelectedSpecies();
- detailView.getSelectedSpecyListModel().setSpecies(selectedSpecies);
+ detailView.getSelectedSpeciesListModel().setSpecies(selectedSpecies);
// disable tabs and other actions
detailView.setYearsValidated(!selectedYears.isEmpty());
@@ -322,20 +322,20 @@
// get selected zones as list
List<String> strata = selection.getSelectedStrata();
- // get selected specy types
- Object[] selectedSpecyTypes = view.getTypeSpecyList().getSelectedValues();
- List<String> specyTypes = new ArrayList<String>();
- for (Object selectedSpecyType : selectedSpecyTypes) {
- specyTypes.add((String)selectedSpecyType);
+ // get selected species types
+ Object[] selectedSpeciesTypes = view.getTypeSpeciesList().getSelectedValues();
+ List<String> speciesTypes = new ArrayList<String>();
+ for (Object selectedSpeciesType : selectedSpeciesTypes) {
+ speciesTypes.add((String)selectedSpeciesType);
}
- List<String> filteredSpecies = projectService.getProjectSpecies(project, selection, strata, specyTypes);
+ List<String> filteredSpecies = projectService.getProjectSpecies(project, selection, strata, speciesTypes);
// ne fait pas apparaitre les especes deja selectionnées
if (selection.getSelectedSpecies() != null) {
filteredSpecies.removeAll(selection.getSelectedSpecies());
}
- view.getFilteredSpecyListModel().setSpecies(filteredSpecies);
+ view.getFilteredSpeciesListModel().setSpecies(filteredSpecies);
}
/**
@@ -428,7 +428,7 @@
JPopupMenu popupMenu = new JPopupMenu();
// affiche le menu contextuel si au moins 2 especes selectionnées
- int[] selectedRows = view.getFilteredSpecyList().getSelectedIndices();
+ int[] selectedRows = view.getFilteredSpeciesList().getSelectedIndices();
if (selectedRows.length > 1) {
// merge menu
JMenuItem fusionMenu = new JMenuItem(_("coser.ui.selection.speciesMenuFusion"));
@@ -438,8 +438,8 @@
SpeciesFusionDialog speciesFusionDialog = new SpeciesFusionDialog(view);
speciesFusionDialog.setHandler(SelectionHandler.this);
- // pre fill new speci name with first selected specy name
- String firstSelected = (String)view.getFilteredSpecyList().getSelectedValue();
+ // pre fill new speci name with first selected species name
+ String firstSelected = (String)view.getFilteredSpeciesList().getSelectedValue();
speciesFusionDialog.getNewSpeciesNameField().setText(firstSelected);
speciesFusionDialog.setLocationRelativeTo(view);
@@ -455,7 +455,7 @@
graphMenu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- showSelectedSpeciesGraph(view, view.getFilteredSpecyList());
+ showSelectedSpeciesGraph(view, view.getFilteredSpeciesList());
}
});
popupMenu.add(graphMenu);
@@ -466,8 +466,8 @@
selectAllMenu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- int size = view.getFilteredSpecyList().getModel().getSize();
- view.getFilteredSpecyList().getSelectionModel().addSelectionInterval(0, size - 1);
+ int size = view.getFilteredSpeciesList().getModel().getSize();
+ view.getFilteredSpeciesList().getSelectionModel().addSelectionInterval(0, size - 1);
}
});
popupMenu.add(selectAllMenu);
@@ -479,12 +479,12 @@
unselectAllMenu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- view.getFilteredSpecyList().getSelectionModel().clearSelection();
+ view.getFilteredSpeciesList().getSelectionModel().clearSelection();
}
});
popupMenu.add(unselectAllMenu);
- popupMenu.show(view.getFilteredSpecyList(), event.getX(), event.getY());
+ popupMenu.show(view.getFilteredSpeciesList(), event.getX(), event.getY());
}
}
@@ -502,14 +502,14 @@
JPopupMenu popupMenu = new JPopupMenu();
- int[] selectedRows = view.getSelectedSpecyList().getSelectedIndices();
+ int[] selectedRows = view.getSelectedSpeciesList().getSelectedIndices();
if (selectedRows.length > 0) {
// graph
JMenuItem graphMenu = new JMenuItem(_("coser.ui.selection.details.displayDiffCatchLengthGraph"));
graphMenu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- showSelectedSpeciesGraph(view, view.getSelectedSpecyList());
+ showSelectedSpeciesGraph(view, view.getSelectedSpeciesList());
}
});
popupMenu.add(graphMenu);
@@ -520,8 +520,8 @@
selectAllMenu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- int size = view.getSelectedSpecyList().getModel().getSize();
- view.getSelectedSpecyList().getSelectionModel().addSelectionInterval(0, size - 1);
+ int size = view.getSelectedSpeciesList().getModel().getSize();
+ view.getSelectedSpeciesList().getSelectionModel().addSelectionInterval(0, size - 1);
}
});
popupMenu.add(selectAllMenu);
@@ -531,12 +531,12 @@
unselectAllMenu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- view.getSelectedSpecyList().getSelectionModel().clearSelection();
+ view.getSelectedSpeciesList().getSelectionModel().clearSelection();
}
});
popupMenu.add(unselectAllMenu);
- popupMenu.show(view.getSelectedSpecyList(), event.getX(), event.getY());
+ popupMenu.show(view.getSelectedSpeciesList(), event.getX(), event.getY());
}
}
@@ -774,13 +774,13 @@
*/
protected Set<String> getOccurenceDensityFilteredSpecies(SelectionListsView view, double occurrence, double density) {
// construction de la liste de selection des especes
- OccurrenceDensitySpecyListModel model = view.getSelectionOccurrenceDensityListModel();
+ OccurrenceDensitySpeciesListModel model = view.getSelectionOccurrenceDensityListModel();
int speciesCount = model.getSize();
Set<String> filteredSpecies = new HashSet<String>();
for (int speciesIndex = 0 ; speciesIndex < speciesCount ; speciesIndex++) {
- String specy = (String)model.getElementAt(speciesIndex);
- if (model.getDensity(specy) >= density && model.getOccurrence(specy) >= occurrence) {
- filteredSpecies.add(specy);
+ String species = (String)model.getElementAt(speciesIndex);
+ if (model.getDensity(species) >= density && model.getOccurrence(species) >= occurrence) {
+ filteredSpecies.add(species);
}
}
return filteredSpecies;
@@ -798,29 +798,29 @@
// TODO echatellier 20101021 attention a ce que la selection
// ne change pas (la fenetre est modale pour l'instant)
- String newSpecyName = view.getNewSpeciesNameField().getText();
+ String newSpeciesName = view.getNewSpeciesNameField().getText();
String comment = view.getCommentField().getText();
Project project = view.getContextValue(Project.class);
Selection selection = view.getContextValue(Selection.class);
ProjectService projectService = view.getContextValue(ProjectService.class);
- boolean newSpecyExist = projectService.isSpecyNameExist(project, newSpecyName);
- if (!newSpecyExist) {
+ boolean newSpeciesExist = projectService.isSpeciesNameExist(project, newSpeciesName);
+ if (!newSpeciesExist) {
JOptionPane.showMessageDialog(view, _("coser.ui.selection.invalidFusionName"),
_("coser.ui.selection.fusionError"), JOptionPane.ERROR_MESSAGE);
view.getNewSpeciesNameField().requestFocus();
}
else {
SelectionDetailsView parent = view.getContextValue(SelectionDetailsView.class, JAXXUtil.PARENT);
- Object[] selectedSpecies = parent.getFilteredSpecyList().getSelectedValues();
- String[] specyNames = new String[selectedSpecies.length];
+ Object[] selectedSpecies = parent.getFilteredSpeciesList().getSelectedValues();
+ String[] speciesNames = new String[selectedSpecies.length];
for (int i = 0 ; i < selectedSpecies.length ; ++i) {
- String selectedSpecy = (String)selectedSpecies[i];
- specyNames[i] = selectedSpecy;
+ String singleSelectedSpecies = (String)selectedSpecies[i];
+ speciesNames[i] = singleSelectedSpecies;
}
try {
- projectService.mergeSpecies(project, selection, newSpecyName, comment, specyNames);
+ projectService.mergeSpecies(project, selection, newSpeciesName, comment, speciesNames);
}
catch (CoserBusinessException ex) {
throw new CoserException("Can't merge species", ex);
@@ -872,26 +872,26 @@
Selection selection = view.getContextValue(Selection.class);
// get selected species
- Object[] selectedFilteredSpecies = view.getFilteredSpecyList().getSelectedValues();
+ Object[] selectedFilteredSpecies = view.getFilteredSpeciesList().getSelectedValues();
Set<String> selectedSpecies = new HashSet<String>();
- if (view.getSelectedSpecyListModel().getSpecies() != null) {
- selectedSpecies.addAll(view.getSelectedSpecyListModel().getSpecies());
+ if (view.getSelectedSpeciesListModel().getSpecies() != null) {
+ selectedSpecies.addAll(view.getSelectedSpeciesListModel().getSpecies());
}
- for (Object selectedFilteredSpecy : selectedFilteredSpecies) {
- selectedSpecies.add((String)selectedFilteredSpecy);
+ for (Object singleSelectedFilteredSpecies : selectedFilteredSpecies) {
+ selectedSpecies.add((String)singleSelectedFilteredSpecies);
}
// met a jour le liste des especes selectionnées
List<String> selectedSpeciesList = new ArrayList<String>(selectedSpecies);
Collections.sort(selectedSpeciesList);
selection.setSelectedSpecies(selectedSpeciesList);
- view.getSelectedSpecyListModel().setSpecies(selectedSpeciesList);
+ view.getSelectedSpeciesListModel().setSpecies(selectedSpeciesList);
// met a jour la liste filtrée (retrait des especes selectionnées)
// ne fait pas apparaitre les especes deja selectionnées
- List<String> filteredSpecies = view.getFilteredSpecyListModel().getSpecies();
+ List<String> filteredSpecies = view.getFilteredSpeciesListModel().getSpecies();
filteredSpecies.removeAll(selectedSpeciesList);
- view.getFilteredSpecyListModel().setSpecies(filteredSpecies);
+ view.getFilteredSpeciesListModel().setSpecies(filteredSpecies);
}
/**
@@ -903,22 +903,22 @@
Selection selection = view.getContextValue(Selection.class);
- List<String> filteredSpecies = new ArrayList<String>(view.getFilteredSpecyListModel().getSpecies());
- List<String> selectedSpecies = new ArrayList<String>(view.getSelectedSpecyListModel().getSpecies());
- Object[] selectedSelectedSpecies = view.getSelectedSpecyList().getSelectedValues();
- for (Object selectedSelectedSpecy : selectedSelectedSpecies) {
- selectedSpecies.remove((String)selectedSelectedSpecy);
- filteredSpecies.add((String)selectedSelectedSpecy);
+ List<String> filteredSpecies = new ArrayList<String>(view.getFilteredSpeciesListModel().getSpecies());
+ List<String> selectedSpecies = new ArrayList<String>(view.getSelectedSpeciesListModel().getSpecies());
+ Object[] selectedSelectedSpecies = view.getSelectedSpeciesList().getSelectedValues();
+ for (Object singleSelectedSelectedSpecies : selectedSelectedSpecies) {
+ selectedSpecies.remove((String)singleSelectedSelectedSpecies);
+ filteredSpecies.add((String)singleSelectedSelectedSpecies);
}
Collections.sort(selectedSpecies);
Collections.sort(filteredSpecies);
// met à jour la liste des especes selectionnées
selection.setSelectedSpecies(selectedSpecies);
- view.getSelectedSpecyListModel().setSpecies(selectedSpecies);
+ view.getSelectedSpeciesListModel().setSpecies(selectedSpecies);
// met a jour la liste filtrée (retrait des especes selectionnées)
- view.getFilteredSpecyListModel().setSpecies(filteredSpecies);
+ view.getFilteredSpeciesListModel().setSpecies(filteredSpecies);
}
/**
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-12-14 11:01:06 UTC (rev 403)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2010-12-14 13:55:38 UTC (rev 404)
@@ -100,7 +100,7 @@
<row>
<cell weighty="1" weightx="1" fill="both" columns="2">
<JScrollPane>
- <SpecyListModel id="selectionAllSpeciesListModel"
+ <SpeciesListModel id="selectionAllSpeciesListModel"
onContentsChanged='allSpeciesLabel.setTitle(_("coser.ui.selection.allSpecies", selectionAllSpeciesList.getSelectedIndices().length, selectionAllSpeciesList.getModel().getSize()))' />
<JList id="selectionAllSpeciesList" model="{selectionAllSpeciesListModel}"
selectionModel="{new CoserListSelectionModel(selectionAllSpeciesList.getSelectionModel(), selectionAllSpeciesListModel)}"
@@ -110,17 +110,17 @@
</cell>
<cell weightx="1" fill="both" columns="2">
<JScrollPane>
- <OccurrenceDensitySpecyListModel id="selectionOccurrenceDensityListModel"
+ <OccurrenceDensitySpeciesListModel id="selectionOccurrenceDensityListModel"
onContentsChanged='occurrenceDensitySpeciesLabel.setTitle(_("coser.ui.selection.occurrenceDensitySpecies", selectionOccurrenceDensityList.getSelectedIndices().length, selectionOccurrenceDensityList.getModel().getSize()))' />
<JList id="selectionOccurrenceDensityList" model="{selectionOccurrenceDensityListModel}"
- cellRenderer="{new SpecyListOccDensRenderer(selectionOccurrenceDensityListModel)}"
+ cellRenderer="{new SpeciesListOccDensRenderer()}"
selectionModel="{new CoserListSelectionModel(selectionOccurrenceDensityList.getSelectionModel(), selectionOccurrenceDensityListModel)}"
onValueChanged='applyOccDensFilter.setEnabled(true); occurrenceDensitySpeciesLabel.setTitle(_("coser.ui.selection.occurrenceDensitySpecies", selectionOccurrenceDensityList.getSelectedIndices().length, selectionOccurrenceDensityList.getModel().getSize()))' />
</JScrollPane>
</cell>
<cell weightx="1" fill="both" columns="2">
<JScrollPane>
- <SizeAllYearSpecyListModel id="selectionSizeAllYearListModel"
+ <SizeAllYearSpeciesListModel id="selectionSizeAllYearListModel"
onContentsChanged='sizeAllYearSpeciesLabel.setTitle(_("coser.ui.selection.sizeAllYearSpecies", selectionSizeAllYearList.getSelectedIndices().length, selectionSizeAllYearList.getModel().getSize()))' />
<JList id="selectionSizeAllYearList" model="{selectionSizeAllYearListModel}"
selectionModel="{new CoserListSelectionModel(selectionSizeAllYearList.getSelectionModel(), selectionSizeAllYearListModel)}"
@@ -129,7 +129,7 @@
</cell>
<cell weightx="1" fill="both" columns="2">
<JScrollPane>
- <MaturitySpecyListModel id="selectionMaturityListModel"
+ <MaturitySpeciesListModel id="selectionMaturityListModel"
onContentsChanged='maturitySpeciesLabel.setTitle(_("coser.ui.selection.maturitySpecies", selectionMaturityList.getSelectedIndices().length, selectionMaturityList.getModel().getSize()))' />
<JList id="selectionMaturityList" model="{selectionMaturityListModel}"
selectionModel="{new CoserListSelectionModel(selectionMaturityList.getSelectionModel(), selectionMaturityListModel)}"
Copied: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesListOccDensRenderer.java (from rev 207, trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpecyListOccDensRenderer.java)
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesListOccDensRenderer.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesListOccDensRenderer.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -0,0 +1,66 @@
+/*
+ * #%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;
+
+import static org.nuiton.i18n.I18n._;
+
+import java.awt.Component;
+
+import javax.swing.JList;
+
+import org.jdesktop.swingx.renderer.DefaultListRenderer;
+
+import fr.ifremer.coser.ui.selection.model.OccurrenceDensitySpeciesListModel;
+
+/**
+ * Specy renderer with occurrence and density display.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class SpeciesListOccDensRenderer extends DefaultListRenderer {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -5404111064519251687L;
+
+ @Override
+ public Component getListCellRendererComponent(JList list, Object value,
+ int index, boolean isSelected, boolean cellHasFocus) {
+
+ String species = (String)value;
+ OccurrenceDensitySpeciesListModel model = (OccurrenceDensitySpeciesListModel)list.getModel();
+
+ double occurrence = model.getOccurrence(species);
+ double density = model.getDensity(species);
+ String stringValue = _("coser.ui.selection.occurrencedensityrenderer", species, occurrence, density);
+
+ return super.getListCellRendererComponent(list, stringValue, index, isSelected, cellHasFocus);
+ }
+
+}
Added: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesTypesRenderer.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesTypesRenderer.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesTypesRenderer.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -0,0 +1,70 @@
+/*
+ * #%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;
+
+import java.awt.Component;
+
+import javax.swing.JList;
+
+import org.apache.commons.lang.StringUtils;
+import org.jdesktop.swingx.renderer.DefaultListRenderer;
+
+import fr.ifremer.coser.ui.selection.model.SpeciesTypesListModel;
+
+/**
+ * Specy type renderer (with comment display when available).
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class SpeciesTypesRenderer extends DefaultListRenderer {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -6218097608544949959L;
+
+ @Override
+ public Component getListCellRendererComponent(JList list, Object value,
+ int index, boolean isSelected, boolean cellHasFocus) {
+
+ String species = (String)value;
+ SpeciesTypesListModel model = (SpeciesTypesListModel)list.getModel();
+
+ String comment = model.getComment(species);
+ String stringValue = null;
+ if (StringUtils.isEmpty(comment)) {
+ stringValue = species;
+ }
+ else {
+ stringValue = species + " (" + comment + ")";
+ }
+
+ return super.getListCellRendererComponent(list, stringValue, index, isSelected, cellHasFocus);
+ }
+
+}
Property changes on: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpeciesTypesRenderer.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Deleted: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpecyListOccDensRenderer.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpecyListOccDensRenderer.java 2010-12-14 11:01:06 UTC (rev 403)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SpecyListOccDensRenderer.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -1,77 +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%
- */
-
-package fr.ifremer.coser.ui.selection;
-
-import static org.nuiton.i18n.I18n._;
-
-import java.awt.Component;
-
-import javax.swing.JList;
-
-import org.jdesktop.swingx.renderer.DefaultListRenderer;
-
-import fr.ifremer.coser.ui.selection.model.OccurrenceDensitySpecyListModel;
-
-/**
- * Specy renderer with occurrence and density display.
- *
- * @author chatellier
- * @version $Revision$
- *
- * Last update : $Date$
- * By : $Author$
- */
-public class SpecyListOccDensRenderer extends DefaultListRenderer {
-
- /** serialVersionUID. */
- private static final long serialVersionUID = -5404111064519251687L;
-
- protected OccurrenceDensitySpecyListModel model;
-
- public SpecyListOccDensRenderer(OccurrenceDensitySpecyListModel model) {
- this.model = model;
- }
-
- @Override
- public Component getListCellRendererComponent(JList list, Object value,
- int index, boolean isSelected, boolean cellHasFocus) {
-
- String specy = (String)value;
-
- String stringValue = null;
- if (model != null) {
- double occurrence = model.getOccurrence(specy);
- double density = model.getDensity(specy);
- stringValue = _("coser.ui.selection.occurrencedensityrenderer", specy, occurrence, density);
- }
- else {
- stringValue = specy;
- }
-
- return super.getListCellRendererComponent(list, stringValue, index, isSelected, cellHasFocus);
- }
-
-}
Copied: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/MaturitySpeciesListModel.java (from rev 252, 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/MaturitySpeciesListModel.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/MaturitySpeciesListModel.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -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 MaturitySpeciesListModel 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);
+ }
+ }
+}
Deleted: 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 2010-12-14 11:01:06 UTC (rev 403)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/MaturitySpecyListModel.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -1,119 +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%
- */
-
-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);
- }
- }
-}
Copied: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/OccurrenceDensitySpeciesListModel.java (from rev 272, trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/OccurrenceDensitySpecyListModel.java)
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/OccurrenceDensitySpeciesListModel.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/OccurrenceDensitySpeciesListModel.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -0,0 +1,137 @@
+/*
+ * #%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.List;
+
+import javax.swing.AbstractListModel;
+import javax.swing.JList;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+
+import org.nuiton.math.matrix.MatrixND;
+
+import fr.ifremer.coser.ui.util.CoserListModel;
+
+/**
+ * Occurence and density filered specy list model.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class OccurrenceDensitySpeciesListModel extends AbstractListModel implements ListSelectionListener, CoserListModel {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4769109927915812519L;
+
+ protected List<String> species = new ArrayList<String>();
+
+ protected MatrixND occurrence = null;
+
+ protected MatrixND density = null;
+
+ public List<String> getSpecies() {
+ return species;
+ }
+
+ public void setSpecies(List<String> species) {
+ this.species = species;
+ fireContentsChanged(this, 0, species.size());
+ }
+
+ public void setOccurrence(MatrixND occurrence) {
+ this.occurrence = occurrence;
+ }
+
+ public void setDensity(MatrixND density) {
+ this.density = density;
+ }
+
+ public double getOccurrence(String specy) {
+ List<String> years = (List<String>)occurrence.getSemantic(1);
+ // get(0) == mean value (meanOverDim(1))
+ double result = occurrence.getValue(specy, years.get(0));
+ return result;
+ }
+
+ public double getDensity(String specy) {
+ List<String> years = (List<String>)density.getSemantic(1);
+ // get(0) == mean value (meanOverDim(1))
+ double result = density.getValue(specy, years.get(0));
+ return result;
+ }
+
+ /*
+ * @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;
+ species.add(specy);
+ }
+ fireContentsChanged(this, 0, species.size() - 1);
+ }
+ }
+}
Deleted: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/OccurrenceDensitySpecyListModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/OccurrenceDensitySpecyListModel.java 2010-12-14 11:01:06 UTC (rev 403)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/OccurrenceDensitySpecyListModel.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -1,137 +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%
- */
-
-package fr.ifremer.coser.ui.selection.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.AbstractListModel;
-import javax.swing.JList;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-
-import org.nuiton.math.matrix.MatrixND;
-
-import fr.ifremer.coser.ui.util.CoserListModel;
-
-/**
- * Occurence and density filered specy list model.
- *
- * @author chatellier
- * @version $Revision$
- *
- * Last update : $Date$
- * By : $Author$
- */
-public class OccurrenceDensitySpecyListModel extends AbstractListModel implements ListSelectionListener, CoserListModel {
-
- /** serialVersionUID. */
- private static final long serialVersionUID = -4769109927915812519L;
-
- protected List<String> species = new ArrayList<String>();
-
- protected MatrixND occurrence = null;
-
- protected MatrixND density = null;
-
- public List<String> getSpecies() {
- return species;
- }
-
- public void setSpecies(List<String> species) {
- this.species = species;
- fireContentsChanged(this, 0, species.size());
- }
-
- public void setOccurrence(MatrixND occurrence) {
- this.occurrence = occurrence;
- }
-
- public void setDensity(MatrixND density) {
- this.density = density;
- }
-
- public double getOccurrence(String specy) {
- List<String> years = (List<String>)occurrence.getSemantic(1);
- // get(0) == mean value (meanOverDim(1))
- double result = occurrence.getValue(specy, years.get(0));
- return result;
- }
-
- public double getDensity(String specy) {
- List<String> years = (List<String>)density.getSemantic(1);
- // get(0) == mean value (meanOverDim(1))
- double result = density.getValue(specy, years.get(0));
- return result;
- }
-
- /*
- * @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;
- species.add(specy);
- }
- fireContentsChanged(this, 0, species.size() - 1);
- }
- }
-}
Copied: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SizeAllYearSpeciesListModel.java (from rev 252, 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/SizeAllYearSpeciesListModel.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SizeAllYearSpeciesListModel.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -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 SizeAllYearSpeciesListModel 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);
+ }
+ }
+}
Deleted: 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-12-14 11:01:06 UTC (rev 403)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SizeAllYearSpecyListModel.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -1,119 +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%
- */
-
-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 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);
- }
- }
-}
Copied: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpeciesListModel.java (from rev 207, trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpecyListModel.java)
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpeciesListModel.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpeciesListModel.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -0,0 +1,109 @@
+/*
+ * #%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.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;
+
+/**
+ * No filtered species model.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class SpeciesListModel extends AbstractListModel implements ListSelectionListener, CoserListModel {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4769109927915812519L;
+
+ protected List<String> species = new ArrayList<String>();
+
+ public List<String> getSpecies() {
+ return species;
+ }
+
+ public void setSpecies(List<String> species) {
+ this.species = species;
+ fireContentsChanged(this, 0, species.size());
+ }
+
+ /*
+ * @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;
+ species.add(specy);
+ }
+ fireContentsChanged(this, 0, species.size() - 1);
+ }
+ }
+}
Copied: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpeciesTypesListModel.java (from rev 207, trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpecyTypesListModel.java)
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpeciesTypesListModel.java (rev 0)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpeciesTypesListModel.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -0,0 +1,105 @@
+/*
+ * #%L
+ * $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.List;
+import java.util.Map;
+
+import javax.swing.AbstractListModel;
+
+import fr.ifremer.coser.bean.Project;
+import fr.ifremer.coser.services.ProjectService;
+import fr.ifremer.coser.ui.selection.SelectionDetailsView;
+import fr.ifremer.coser.ui.util.CoserListModel;
+
+/**
+ * Affiche la liste des types d'especes définie dans le projet.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class SpeciesTypesListModel extends AbstractListModel implements CoserListModel {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 441910182067909029L;
+
+ protected SelectionDetailsView view;
+
+ protected List<String> types;
+
+ protected Map<String, String> typesComments;
+
+ public SpeciesTypesListModel(SelectionDetailsView view) {
+ super();
+ this.view = view;
+ }
+
+ protected List<String> getTypes() {
+ if (types == null) {
+ Project project = view.getContextValue(Project.class);
+ ProjectService service = view.getContextValue(ProjectService.class);
+ typesComments = service.getProjectSpeciesTypes(project);
+ types = new ArrayList<String>(typesComments.keySet());
+ }
+ return types;
+ }
+
+ /**
+ * Get species comment (used in renderer).
+ *
+ * @param species species
+ * @return species comment
+ */
+ public String getComment(String species) {
+ return typesComments.get(species);
+ }
+
+ /*
+ * @see javax.swing.ListModel#getSize()
+ */
+ @Override
+ public int getSize() {
+ return getTypes().size();
+ }
+
+ /*
+ * @see javax.swing.ListModel#getElementAt(int)
+ */
+ @Override
+ public Object getElementAt(int index) {
+ return getTypes().get(index);
+ }
+
+ /*
+ * @see fr.ifremer.coser.ui.util.CoserListModel#indexOf(java.lang.Object)
+ */
+ @Override
+ public int indexOf(Object element) {
+ return getTypes().indexOf(element);
+ }
+}
Deleted: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpecyListModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpecyListModel.java 2010-12-14 11:01:06 UTC (rev 403)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpecyListModel.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -1,109 +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%
- */
-
-package fr.ifremer.coser.ui.selection.model;
-
-import java.util.ArrayList;
-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;
-
-/**
- * No filtered species model.
- *
- * @author chatellier
- * @version $Revision$
- *
- * Last update : $Date$
- * By : $Author$
- */
-public class SpecyListModel extends AbstractListModel implements ListSelectionListener, CoserListModel {
-
- /** serialVersionUID. */
- private static final long serialVersionUID = -4769109927915812519L;
-
- protected List<String> species = new ArrayList<String>();
-
- public List<String> getSpecies() {
- return species;
- }
-
- public void setSpecies(List<String> species) {
- this.species = species;
- fireContentsChanged(this, 0, species.size());
- }
-
- /*
- * @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;
- species.add(specy);
- }
- fireContentsChanged(this, 0, species.size() - 1);
- }
- }
-}
Deleted: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpecyTypesListModel.java
===================================================================
--- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpecyTypesListModel.java 2010-12-14 11:01:06 UTC (rev 403)
+++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/model/SpecyTypesListModel.java 2010-12-14 13:55:38 UTC (rev 404)
@@ -1,90 +0,0 @@
-/*
- * #%L
- * $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.List;
-
-import javax.swing.AbstractListModel;
-
-import fr.ifremer.coser.bean.Project;
-import fr.ifremer.coser.services.ProjectService;
-import fr.ifremer.coser.ui.selection.SelectionDetailsView;
-import fr.ifremer.coser.ui.util.CoserListModel;
-
-/**
- * Affiche la liste des types d'especes définie dans le projet.
- *
- * @author chatellier
- * @version $Revision$
- *
- * Last update : $Date$
- * By : $Author$
- */
-public class SpecyTypesListModel extends AbstractListModel implements CoserListModel {
-
- /** serialVersionUID. */
- private static final long serialVersionUID = 441910182067909029L;
-
- protected SelectionDetailsView view;
-
- protected List<String> types;
-
- public SpecyTypesListModel(SelectionDetailsView view) {
- super();
- this.view = view;
- }
-
- protected List<String> getTypes() {
- if (types == null) {
- Project project = view.getContextValue(Project.class);
- ProjectService service = view.getContextValue(ProjectService.class);
- types = service.getProjectSpeciesTypes(project);
- }
- return types;
- }
-
- /*
- * @see javax.swing.ListModel#getSize()
- */
- @Override
- public int getSize() {
- return getTypes().size();
- }
-
- /*
- * @see javax.swing.ListModel#getElementAt(int)
- */
- @Override
- public Object getElementAt(int index) {
- return getTypes().get(index);
- }
-
- /*
- * @see fr.ifremer.coser.ui.util.CoserListModel#indexOf(java.lang.Object)
- */
- @Override
- public int indexOf(Object element) {
- return getTypes().indexOf(element);
- }
-}
1
0