Isis-fish-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
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
June 2009
- 5 participants
- 152 discussions
r2388 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
16 Jun '09
Author: chatellier
Date: 2009-06-16 09:21:16 +0000 (Tue, 16 Jun 2009)
New Revision: 2388
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx
Log:
Remove binding on potentially uninitialized things
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2009-06-16 09:04:25 UTC (rev 2387)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2009-06-16 09:21:16 UTC (rev 2388)
@@ -154,8 +154,9 @@
</cell>
<cell columns='2' fill='both' weightx='1.0' weighty='1.0'>
<org.codelutin.math.matrix.gui.JAXXMatrixEditor id ='fieldPopulationGroupNaturalDeathRate'
- matrix='{getBean() == null || getPopulationGroup() == null ? null : ((AbstractMatrixND)getBean().getNaturalDeathRateMatrix()).getSubMatrixOnSemantic(0, getPopulationGroup())}'
- enabled='{isPopGroupNotNull()}' decorator='boxed' _bean='{PopulationImpl.class}' _method='"NaturalDeathRateMatrix"'/>
+ enabled='{isPopGroupNotNull()}' decorator='boxed' _bean='{PopulationImpl.class}' _method='"NaturalDeathRateMatrix"' />
+ <!-- this bindings totaly break UI
+ matrix='{getBean() == null || getPopulationGroup() == null ? null : ((AbstractMatrixND)getBean().getNaturalDeathRateMatrix()).getSubMatrixOnSemantic(0, getPopulationGroup())}' -->
</cell>
</row>
<row>
2
1
r2387 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
16 Jun '09
Author: chatellier
Date: 2009-06-16 09:04:25 +0000 (Tue, 16 Jun 2009)
New Revision: 2387
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonSpacializedUI.jaxx
Log:
Initialise la matric de changement de groupe si erreur
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonSpacializedUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonSpacializedUI.jaxx 2009-06-16 09:03:59 UTC (rev 2386)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonSpacializedUI.jaxx 2009-06-16 09:04:25 UTC (rev 2387)
@@ -49,6 +49,25 @@
}
};
+addPropertyChangeListener("populationSeasonInfo", new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (evt.getOldValue() != null || evt.getNewValue() == null) {
+ matrixPanelPopulationSeasonLengthChange.setMatrix(null);
+ }
+ if (evt.getNewValue() != null) {
+ try {
+ matrixPanelPopulationSeasonLengthChange.setMatrix(getPopulationSeasonInfo().getLengthChangeMatrix().copy());
+ }
+ catch(Exception e) {
+ // an exception can happen if lengthChange matrix has never
+ // been initialized
+ computeMatrixChangeOfGroup();
+ matrixPanelPopulationSeasonLengthChange.setMatrix(getPopulationSeasonInfo().getLengthChangeMatrix().copy());
+ }
+ }
+ }
+});
+
@Override
public void refresh() {
// TODO add only once
@@ -148,11 +167,11 @@
<Panel/>
</cell>
<cell columns='2' fill='both' weightx='1.0' weighty='1.0'>
- <org.codelutin.math.matrix.gui.JAXXMatrixEditor id ='matrixPanelPopulationSeasonLengthChange'
- matrix='{getPopulationSeasonInfo() == null ? null : getPopulationSeasonInfo().getLengthChangeMatrix().copy()}'
+ <org.codelutin.math.matrix.gui.JAXXMatrixEditor id='matrixPanelPopulationSeasonLengthChange'
enabled='{isPopSeasonInfoNotNull()}'
_bean='{PopulationSeasonInfoImpl.class}' _method='"LengthChangeMatrix"'
visible='{isAgeGroupType()}' decorator='boxed' />
+ <!-- matrix='{getPopulationSeasonInfo() == null ? null : getPopulationSeasonInfo().getLengthChangeMatrix().copy()}' -->
</cell>
</row>
</Table>
1
0
r2386 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
16 Jun '09
Author: chatellier
Date: 2009-06-16 09:03:59 +0000 (Tue, 16 Jun 2009)
New Revision: 2386
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx
Log:
Comment can be null.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx 2009-06-16 09:03:12 UTC (rev 2385)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx 2009-06-16 09:03:59 UTC (rev 2386)
@@ -207,7 +207,7 @@
}
}
-protected void seasonChanged(ActionEvent event) {
+protected void seasonChanged() {
init = true;
PopulationSeasonInfo seasonInfoSelected = (PopulationSeasonInfo)fieldPopulationSeasonInfoChooser.getSelectedItem();
if (log.isDebugEnabled()) {
@@ -245,7 +245,7 @@
</cell>
<cell fill='horizontal' weightx='1.0'>
<JComboBox id="fieldPopulationSeasonInfoChooser"
- onActionPerformed='seasonChanged(event)'
+ onActionPerformed='seasonChanged()'
enabled='{isActif()}'/>
</cell>
</row>
@@ -290,7 +290,7 @@
visible='{getPopulationSeasonInfo().getReproduction()}'/>
</cell>
<cell fill='both' weightx='1.0' weighty='0.2'>
- <org.codelutin.math.matrix.gui.JAXXMatrixEditor id ='fieldPopulationSeasonReproductionDistribution'
+ <org.codelutin.math.matrix.gui.JAXXMatrixEditor id='fieldPopulationSeasonReproductionDistribution'
matrix='{getPopulationSeasonInfo() == null ? null : getPopulationSeasonInfo().getReproductionDistribution().copy()}'
enabled='{isPopSeasonInfoNotNull()}'
visible='{getPopulationSeasonInfo().getReproduction()}'
1
0
r2385 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
16 Jun '09
Author: chatellier
Date: 2009-06-16 09:03:12 +0000 (Tue, 16 Jun 2009)
New Revision: 2385
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx
Log:
Comment can be null.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx 2009-06-16 07:52:25 UTC (rev 2384)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx 2009-06-16 09:03:12 UTC (rev 2385)
@@ -161,7 +161,8 @@
</cell>
<cell fill='both' weightx='1.0' weighty='0.3'>
<JScrollPane>
- <JTextArea id="fieldPopulationMigrationComment" text='{getBean().getMigrationComment()}'
+ <!-- comment can be null jaxx.runtime.SwingUtil.getStringValue() -->
+ <JTextArea id="fieldPopulationMigrationComment" text='{jaxx.runtime.SwingUtil.getStringValue(getBean().getMigrationComment())}'
onKeyReleased='getBean().setMigrationComment(fieldPopulationMigrationComment.getText())'
enabled='{isActif()}' decorator='boxed'/>
</JScrollPane>
1
0
r2384 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
16 Jun '09
Author: chatellier
Date: 2009-06-16 07:52:25 +0000 (Tue, 16 Jun 2009)
New Revision: 2384
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx
Log:
Comment can be null
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx 2009-06-16 07:46:23 UTC (rev 2383)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx 2009-06-16 07:52:25 UTC (rev 2384)
@@ -138,7 +138,8 @@
</cell>
<cell fill='both' weightx='1.0' weighty='0.3'>
<JScrollPane>
- <JTextArea id="fieldPopulationRecruitmentComment" text='{getBean().getRecruitmentComment()}'
+ <!-- jaxx.runtime.SwingUtil.getStringValue() comment can be null -->
+ <JTextArea id="fieldPopulationRecruitmentComment" text='{jaxx.runtime.SwingUtil.getStringValue(getBean().getRecruitmentComment())}'
onKeyReleased='getBean().setRecruitmentComment(fieldPopulationRecruitmentComment.getText())'
enabled='{isActif()}' decorator='boxed'/>
</JScrollPane>
1
0
r2383 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
16 Jun '09
Author: chatellier
Date: 2009-06-16 07:46:23 +0000 (Tue, 16 Jun 2009)
New Revision: 2383
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx
Log:
NaturalDeathRate matrix can be no defined yet.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2009-06-16 07:45:55 UTC (rev 2382)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2009-06-16 07:46:23 UTC (rev 2383)
@@ -80,12 +80,21 @@
}
protected void setNaturalDeathRateMatrix() {
- Population population = getBean();
- AbstractMatrixND naturalDeathRateMatrix = (AbstractMatrixND)population.getNaturalDeathRateMatrix();
+
+ try {
+ Population population = getBean();
+ AbstractMatrixND naturalDeathRateMatrix = (AbstractMatrixND)population.getNaturalDeathRateMatrix();
- // TODO what is this code for ???
- MatrixND naturalDeathRateMatrix2 = naturalDeathRateMatrix.getSubMatrixOnSemantic(0, getPopulationGroup());
- fieldPopulationGroupNaturalDeathRate.setMatrix(naturalDeathRateMatrix2.copy());
+ // extract only line for this population group
+ MatrixND naturalDeathRateMatrix2 = naturalDeathRateMatrix.getSubMatrixOnSemantic(0, getPopulationGroup());
+ fieldPopulationGroupNaturalDeathRate.setMatrix(naturalDeathRateMatrix2.copy());
+ } catch (Exception e) {
+ // can happen if population has no zone yet
+ // TODO maybe display a message
+ if (log.isWarnEnabled()) {
+ log.warn("No zone defined for this population group", e);
+ }
+ }
}
/**
1
0
r2382 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
16 Jun '09
Author: chatellier
Date: 2009-06-16 07:45:55 +0000 (Tue, 16 Jun 2009)
New Revision: 2382
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx
Log:
Comment can be null
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx 2009-06-16 07:27:39 UTC (rev 2381)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx 2009-06-16 07:45:55 UTC (rev 2382)
@@ -303,7 +303,8 @@
</cell>
<cell fill='both' weightx='1.0' weighty='0.1'>
<JScrollPane>
- <JTextArea id="fieldPopulationSeasonComment" text='{getBean().getSeasonsComment()}' onKeyReleased='getBean().setSeasonsComment(fieldPopulationSeasonComment.getText())' enabled='{isPopSeasonInfoNotNull()}' decorator='boxed'/>
+ <!-- jaxx.runtime.SwingUtil.getStringValue() comment can be null -->
+ <JTextArea id="fieldPopulationSeasonComment" text='{jaxx.runtime.SwingUtil.getStringValue(getBean().getSeasonsComment())}' onKeyReleased='getBean().setSeasonsComment(fieldPopulationSeasonComment.getText())' enabled='{isPopSeasonInfoNotNull()}' decorator='boxed'/>
</JScrollPane>
</cell>
</row>
1
0
r2381 - isis-fish/trunk/src/main/resources/i18n
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
by chatellier@users.labs.libre-entreprise.org 16 Jun '09
16 Jun '09
Author: chatellier
Date: 2009-06-16 07:27:39 +0000 (Tue, 16 Jun 2009)
New Revision: 2381
Modified:
isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties
isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties
Log:
Corrections des traductions "populationgroup"
Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties
===================================================================
--- isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-06-15 16:38:43 UTC (rev 2380)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-06-16 07:27:39 UTC (rev 2381)
@@ -701,7 +701,7 @@
isisfish.populationBasics.maturityGroup=Maturity group
isisfish.populationBasics.name=Name
isisfish.populationBasics.numberGroup=Number of group
-isisfish.populationBasics.plusGroup=plusGroup
+isisfish.populationBasics.plusGroup=Plus group
isisfish.populationBasics.recreateClasses=Recreate classes
isisfish.populationBasics.title=Population input
isisfish.populationCapturability.comments=Comments
Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties
===================================================================
--- isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-06-15 16:38:43 UTC (rev 2380)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-06-16 07:27:39 UTC (rev 2381)
@@ -701,8 +701,8 @@
isisfish.populationBasics.maturityGroup=Groupe de maturit\u00E9
isisfish.populationBasics.name=Nom
isisfish.populationBasics.numberGroup=Nombre de groupes
-isisfish.populationBasics.plusGroup=plusGroup
-isisfish.populationBasics.recreateClasses=Recruter les classes
+isisfish.populationBasics.plusGroup=Groupe plus
+isisfish.populationBasics.recreateClasses=Reconstruire les groupes
isisfish.populationBasics.title=Saisie des populations
isisfish.populationCapturability.comments=Commentaires
isisfish.populationCapturability.selectCoefficient=S\u00E9lectionnez un coefficient par saison et par classe
1
0
r2380 - isis-fish/trunk/src/main/resources/i18n
by chatellier@users.labs.libre-entreprise.org 15 Jun '09
by chatellier@users.labs.libre-entreprise.org 15 Jun '09
15 Jun '09
Author: chatellier
Date: 2009-06-15 16:38:43 +0000 (Mon, 15 Jun 2009)
New Revision: 2380
Modified:
isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties
Log:
Oubli de traduction
Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties
===================================================================
--- isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-06-15 16:37:09 UTC (rev 2379)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-06-15 16:38:43 UTC (rev 2380)
@@ -242,7 +242,7 @@
isisfish.error.change.classloader=Can't change classloader because can't create URL from file %1$s
isisfish.error.change.equation=Can't change equation
isisfish.error.check.region=
-isisfish.error.compile.fileerror=Le fichier %s contient des erreurs \!
+isisfish.error.compile.fileerror=File %s can't be compiled \!
isisfish.error.compile.script=Can't compile script\: %1$s
isisfish.error.compiled.parameter=Can't get rule parameter from compiled class
isisfish.error.conversion.data=Erreur lors de la conversion du fichier de donn\u00E9es
1
0
r2379 - in isis-fish/trunk/src/main: java/fr/ifremer/isisfish/ui/models java/fr/ifremer/isisfish/ui/models/analyzeplan java/fr/ifremer/isisfish/ui/models/export java/fr/ifremer/isisfish/ui/models/rule java/fr/ifremer/isisfish/ui/models/sensitivity java/fr/ifremer/isisfish/ui/sensitivity java/fr/ifremer/isisfish/ui/simulator java/fr/ifremer/isisfish/ui/util resources/i18n
by chatellier@users.labs.libre-entreprise.org 15 Jun '09
by chatellier@users.labs.libre-entreprise.org 15 Jun '09
15 Jun '09
Author: chatellier
Date: 2009-06-15 16:37:09 +0000 (Mon, 15 Jun 2009)
New Revision: 2379
Added:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportListModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportListRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportNameListModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportNameListRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellEditor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorComboModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorComboRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorListModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorListRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableCellEditor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableCellRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableModel.java
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanComboRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanParametersTableModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleComboRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/util/TooltipHelper.java
isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties
isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties
Log:
Add sensitivity and exports models.
Refactor Sensitivity chooser UI.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanComboRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanComboRenderer.java 2009-06-15 08:36:04 UTC (rev 2378)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanComboRenderer.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -18,6 +18,8 @@
package fr.ifremer.isisfish.ui.models.analyzeplan;
+import static org.codelutin.i18n.I18n._;
+
import java.awt.Component;
import java.util.HashMap;
import java.util.Map;
@@ -29,6 +31,7 @@
import fr.ifremer.isisfish.datastore.AnalysePlanStorage;
import fr.ifremer.isisfish.simulator.AnalysePlan;
+import fr.ifremer.isisfish.ui.util.TooltipHelper;
/**
* Renderer pour la combo des plans d'analyse.
@@ -83,7 +86,8 @@
c.setToolTipText(plan.getDescription());
} catch (Exception e) {
- // can't get exception
+ String errorTooltip = TooltipHelper.getErrorTooltip(_("isisfish.error.compile.fileerror", analysePlanName));
+ c.setToolTipText(errorTooltip);
}
return c;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanParametersTableModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanParametersTableModel.java 2009-06-15 08:36:04 UTC (rev 2378)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/analyzeplan/AnalyzePlanParametersTableModel.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -32,7 +32,6 @@
import fr.ifremer.isisfish.IsisFishException;
import fr.ifremer.isisfish.datastore.AnalysePlanStorage;
import fr.ifremer.isisfish.simulator.AnalysePlan;
-import fr.ifremer.isisfish.ui.input.metier.MetierSeasonInfoTargetSpeciesModel;
/**
* Model de la table de definition de parametre d'un plan d'analyse.
@@ -51,7 +50,7 @@
/** Log. */
private static Log log = LogFactory
- .getLog(MetierSeasonInfoTargetSpeciesModel.class);
+ .getLog(AnalyzePlanParametersTableModel.class);
/** serialVersionUID. */
private static final long serialVersionUID = 3169786638868209920L;
@@ -182,7 +181,7 @@
AnalysePlanStorage.setParameterValue(plan, name, value);
} catch (IsisFishException e) {
if (log.isErrorEnabled()) {
- log.error("Can't set parameter value");
+ log.error("Can't set parameter value", e);
}
}
break;
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportListModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportListModel.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportListModel.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,98 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.export;
+
+import java.util.List;
+
+import javax.swing.AbstractListModel;
+
+import fr.ifremer.isisfish.export.Export;
+
+/**
+ * Model pour la liste des instances d'exports.
+ *
+ * @author chatellier
+ * @version $Revision: 2350 $
+ *
+ * Last update : $Date: 2009-06-09 13:52:58 +0200 (mar. 09 juin 2009) $
+ * By : $Author: chatellier $
+ */
+public class ExportListModel extends AbstractListModel {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4070846632975105788L;
+
+ protected List<? extends Export> exports;
+
+ /**
+ * Empty constructor.
+ */
+ public ExportListModel() {
+ this(null);
+ }
+
+ /**
+ * Constructor with plan list.
+ *
+ * @param exports exports
+ */
+ public ExportListModel(List<? extends Export> exports) {
+ super();
+ setExport(exports);
+ }
+
+ /**
+ * Get exports list.
+ *
+ * @return the exports
+ */
+ public List<? extends Export> getExports() {
+ return exports;
+ }
+
+ /**
+ * Set exports list.
+ *
+ * @param exports the exports to set
+ */
+ public void setExport(List<? extends Export> exports) {
+ this.exports = exports;
+ }
+
+ /*
+ * @see javax.swing.ListModel#getElementAt(int)
+ */
+ @Override
+ public Object getElementAt(int index) {
+ return exports.get(index);
+ }
+
+ /*
+ * @see javax.swing.ListModel#getSize()
+ */
+ @Override
+ public int getSize() {
+ int size = 0;
+
+ if (exports != null) {
+ size = exports.size();
+ }
+ return size;
+ }
+}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportListRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportListRenderer.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportListRenderer.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,69 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.export;
+
+import java.awt.Component;
+
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.ListCellRenderer;
+
+import fr.ifremer.isisfish.datastore.ExportStorage;
+import fr.ifremer.isisfish.export.Export;
+
+/**
+ * Renderer pour la liste des plans d'analyse.
+ *
+ * @author chatellier
+ * @version $Revision: 2350 $
+ *
+ * Last update : $Date: 2009-06-09 13:52:58 +0200 (mar. 09 juin 2009) $
+ * By : $Author: chatellier $
+ */
+public class ExportListRenderer extends DefaultListCellRenderer implements
+ ListCellRenderer {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4070846632975105788L;
+
+ /*
+ * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean)
+ */
+ @Override
+ public Component getListCellRendererComponent(JList list, Object value,
+ int index, boolean isSelected, boolean cellHasFocus) {
+
+ // this must be used to have alterned highlight rows and default
+ // selection color
+ JLabel c = (JLabel) super.getListCellRendererComponent(list, value,
+ index, isSelected, cellHasFocus);
+
+ Export export = (Export) value;
+ c.setText(ExportStorage.getName(export));
+
+ try {
+ c.setToolTipText(export.getDescription());
+ } catch (Exception e) {
+ // can't get exception
+ }
+
+ return this;
+ }
+}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportNameListModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportNameListModel.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportNameListModel.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,97 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.export;
+
+import java.util.List;
+
+import javax.swing.DefaultListModel;
+
+/**
+ * Model pour la liste des noms d'exports.
+ *
+ * @author chatellier
+ * @version $Revision: 2350 $
+ *
+ * Last update : $Date: 2009-06-09 13:52:58 +0200 (mar. 09 juin 2009) $
+ * By : $Author: chatellier $
+ */
+public class ExportNameListModel extends DefaultListModel {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4070846632975105788L;
+
+ /** Analyze plan names. */
+ protected List<String> exportNames;
+
+ /**
+ * Empty constructor.
+ */
+ public ExportNameListModel() {
+ this(null);
+ }
+
+ /**
+ * Constructor with export list.
+ *
+ * @param exportNames exports Names
+ */
+ public ExportNameListModel(List<String> exportNames) {
+ super();
+ setExportNames(exportNames);
+ }
+
+ /**
+ * Get exports names.
+ *
+ * @return the analyze plan names
+ */
+ public List<String> getExportNames() {
+ return exportNames;
+ }
+
+ /**
+ * Set analyze plan names.
+ *
+ * @param exportNames the exports names to set
+ */
+ public void setExportNames(List<String> exportNames) {
+ this.exportNames = exportNames;
+ }
+
+ /*
+ * @see javax.swing.ListModel#getElementAt(int)
+ */
+ @Override
+ public Object getElementAt(int index) {
+ return exportNames.get(index);
+ }
+
+ /*
+ * @see javax.swing.ListModel#getSize()
+ */
+ @Override
+ public int getSize() {
+ int size = 0;
+
+ if (exportNames != null) {
+ size = exportNames.size();
+ }
+ return size;
+ }
+}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportNameListRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportNameListRenderer.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportNameListRenderer.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,94 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.export;
+
+import static org.codelutin.i18n.I18n._;
+
+import java.awt.Component;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.ListCellRenderer;
+
+import fr.ifremer.isisfish.datastore.ExportStorage;
+import fr.ifremer.isisfish.export.Export;
+import fr.ifremer.isisfish.ui.util.TooltipHelper;
+
+/**
+ * Renderer pour la combo des noms d'export.
+ *
+ * @author chatellier
+ * @version $Revision: 2350 $
+ *
+ * Last update : $Date: 2009-06-09 13:52:58 +0200 (mar. 09 juin 2009) $
+ * By : $Author: chatellier $
+ */
+public class ExportNameListRenderer extends DefaultListCellRenderer implements
+ ListCellRenderer {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4070846632975105788L;
+
+ /** Export cache. */
+ protected Map<String, Export> exportCache;
+
+ /**
+ * Empty constructor.
+ */
+ public ExportNameListRenderer() {
+ exportCache = new HashMap<String, Export>();
+ }
+
+ /*
+ * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean)
+ */
+ @Override
+ public Component getListCellRendererComponent(JList list, Object value,
+ int index, boolean isSelected, boolean cellHasFocus) {
+
+ // this must be used to have alterned highlight rows and default
+ // selection color
+ JLabel c = (JLabel) super.getListCellRendererComponent(list, value,
+ index, isSelected, cellHasFocus);
+
+ String exportName = (String) value;
+ c.setText(exportName);
+
+ // c'est tres couteux d'avoir une instance
+ // on les met en cache
+ try {
+ Export export = exportCache.get(exportName);
+ if (export == null) {
+ ExportStorage storage = ExportStorage.getExport(exportName);
+ export = storage.getNewExportInstance();
+ exportCache.put(exportName, export);
+ }
+
+ c.setToolTipText(export.getDescription());
+ } catch (Exception e) {
+ String errorTooltip = TooltipHelper.getErrorTooltip(_("isisfish.error.compile.fileerror", exportName));
+ c.setToolTipText(errorTooltip);
+ }
+
+ return c;
+ }
+}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellEditor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellEditor.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellEditor.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,72 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.export;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import fr.ifremer.isisfish.datastore.ExportStorage;
+import fr.ifremer.isisfish.export.Export;
+import fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor;
+
+/**
+ * Specific editor for export parameters.
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 9 juin 2009 $
+ * By : $Author: chatellier $
+ */
+public class ExportParametersTableCellEditor extends ParameterTableCellEditor {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 8211639776194497615L;
+
+ protected Export export;
+
+ protected List<Class<?>> exportParametersTypes;
+
+ /**
+ * Constructor with export parameter.
+ *
+ * @param export export
+ */
+ public ExportParametersTableCellEditor(Export export) {
+ super();
+
+ this.export = export;
+ exportParametersTypes = new ArrayList<Class<?>>();
+ //TODO map may be sorted
+ Map<String, Class<?>> planParametersNamesAndTypes = ExportStorage
+ .getParameterNames(export);
+ for (Class<?> type : planParametersNamesAndTypes.values()) {
+ exportParametersTypes.add(type);
+ }
+ }
+
+ /*
+ * @see fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor#getType(java.lang.Object, int, int)
+ */
+ @Override
+ protected Class<?> getType(Object value, int row, int column) {
+ return exportParametersTypes.get(row);
+ }
+}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellRenderer.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellRenderer.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,76 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.export;
+
+import java.awt.Component;
+
+import javax.swing.JLabel;
+import javax.swing.JTable;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.TableCellRenderer;
+
+import fr.ifremer.isisfish.datastore.ExportStorage;
+import fr.ifremer.isisfish.export.Export;
+import fr.ifremer.isisfish.ui.util.TooltipHelper;
+import fr.ifremer.isisfish.util.Doc;
+
+/**
+ * Specific renderer for export parameters.
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 9 juin 2009 $
+ * By : $Author: chatellier $
+ */
+public class ExportParametersTableCellRenderer extends DefaultTableCellRenderer
+ implements TableCellRenderer {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -1655744662816030649L;
+
+ protected Export export;
+
+ public ExportParametersTableCellRenderer(Export export) {
+ this.export = export;
+ }
+
+ /*
+ * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int)
+ */
+ @Override
+ public Component getTableCellRendererComponent(JTable table, Object value,
+ boolean isSelected, boolean hasFocus, int row, int column) {
+
+ // this must be used to have alterned highlight rows and default
+ // selection color
+ JLabel c = (JLabel) super.getTableCellRendererComponent(table, value,
+ isSelected, hasFocus, row, column);
+
+ String parameterName = (String) value;
+ c.setText(parameterName);
+
+ Doc doc = ExportStorage.getParameterDoc(export, parameterName);
+ String documentation = TooltipHelper.docToString(doc);
+ c.setToolTipText(documentation);
+
+ return c;
+ }
+
+}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableModel.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableModel.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,194 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.export;
+
+import static org.codelutin.i18n.I18n._;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.table.AbstractTableModel;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import fr.ifremer.isisfish.IsisFishException;
+import fr.ifremer.isisfish.datastore.ExportStorage;
+import fr.ifremer.isisfish.export.Export;
+
+/**
+ * Model de la table de definition de parametre d'un export.
+ *
+ * Columns :
+ * <li>Parameter name</li>
+ * <li>Parameter value</li>
+ *
+ * @author chatellier
+ * @version $Revision: 2350 $
+ *
+ * Last update : $Date: 2009-06-09 13:52:58 +0200 (mar. 09 juin 2009) $
+ * By : $Author: chatellier $
+ */
+public class ExportParametersTableModel extends AbstractTableModel {
+
+ /** Log. */
+ private static Log log = LogFactory
+ .getLog(ExportParametersTableModel.class);
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 3169786638868209920L;
+
+ /** Columns names. */
+ public final static String[] COLUMN_NAMES = { _("isisfish.common.name"),
+ _("isisfish.common.value") };
+
+ protected Export export;
+
+ protected List<String> exportParametersNames;
+
+ /**
+ * Constructor with data.
+ *
+ * @param export export to edit parameters
+ */
+ public ExportParametersTableModel(Export export) {
+ super();
+ this.export = export;
+
+ //TODO map may be sorted
+ exportParametersNames = new ArrayList<String>();
+ Map<String, Class<?>> planParametersNamesAndTypes = ExportStorage
+ .getParameterNames(export);
+ for (String names : planParametersNamesAndTypes.keySet()) {
+ exportParametersNames.add(names);
+ }
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#getColumnCount()
+ */
+ @Override
+ public int getColumnCount() {
+ return COLUMN_NAMES.length;
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#getRowCount()
+ */
+ @Override
+ public int getRowCount() {
+ return exportParametersNames.size();
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#getValueAt(int, int)
+ */
+ @Override
+ public Object getValueAt(int rowIndex, int columnIndex) {
+
+ Object result = null;
+
+ String name = exportParametersNames.get(rowIndex);
+ switch (columnIndex) {
+ case 0:
+ result = name;
+ break;
+ case 1:
+ try {
+ result = ExportStorage.getParameterValue(export, name);
+ } catch (IsisFishException e) {
+ if (log.isErrorEnabled()) {
+ log.debug("Can't get parameters value", e);
+ }
+ }
+ break;
+ default:
+ throw new IndexOutOfBoundsException("No such column " + columnIndex);
+ }
+
+ return result;
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#getColumnClass(int)
+ */
+ @Override
+ public Class<?> getColumnClass(int columnIndex) {
+
+ Class<?> result = null;
+
+ switch (columnIndex) {
+ case 0:
+ result = String.class;
+ break;
+ case 1:
+ result = Object.class;
+ break;
+ default:
+ throw new IndexOutOfBoundsException("No such column " + columnIndex);
+ }
+
+ return result;
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#getColumnName(int)
+ */
+ @Override
+ public String getColumnName(int columnIndex) {
+ return COLUMN_NAMES[columnIndex];
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#isCellEditable(int, int)
+ */
+ @Override
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return columnIndex > 0;
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int)
+ */
+ @Override
+ public void setValueAt(Object value, int rowIndex, int columnIndex) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Cell edition (column " + columnIndex + ") = " + value);
+ }
+
+ String name = exportParametersNames.get(rowIndex);
+ switch (columnIndex) {
+ case 1:
+ try {
+ ExportStorage.setParameterValue(export, name, value);
+ } catch (IsisFishException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't set parameter value", e);
+ }
+ }
+ break;
+ default:
+ throw new IndexOutOfBoundsException("Can't edit column "
+ + columnIndex);
+ }
+
+ }
+}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleComboRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleComboRenderer.java 2009-06-15 08:36:04 UTC (rev 2378)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleComboRenderer.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -18,6 +18,8 @@
package fr.ifremer.isisfish.ui.models.rule;
+import static org.codelutin.i18n.I18n._;
+
import java.awt.Component;
import java.util.HashMap;
import java.util.Map;
@@ -29,6 +31,7 @@
import fr.ifremer.isisfish.datastore.RuleStorage;
import fr.ifremer.isisfish.rule.Rule;
+import fr.ifremer.isisfish.ui.util.TooltipHelper;
/**
* Renderer pour la combo des noms de regles.
@@ -81,7 +84,8 @@
c.setToolTipText(rule.getDescription());
} catch (Exception e) {
- // can't get exception
+ String errorTooltip = TooltipHelper.getErrorTooltip(_("isisfish.error.compile.fileerror", ruleName));
+ c.setToolTipText(errorTooltip);
}
return c;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableModel.java 2009-06-15 08:36:04 UTC (rev 2378)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableModel.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -32,7 +32,6 @@
import fr.ifremer.isisfish.IsisFishException;
import fr.ifremer.isisfish.datastore.RuleStorage;
import fr.ifremer.isisfish.rule.Rule;
-import fr.ifremer.isisfish.ui.input.metier.MetierSeasonInfoTargetSpeciesModel;
/**
* Model de la table de definition de parametre d'une regle.
@@ -51,7 +50,7 @@
/** Log. */
private static Log log = LogFactory
- .getLog(MetierSeasonInfoTargetSpeciesModel.class);
+ .getLog(RuleParametersTableModel.class);
/** serialVersionUID. */
private static final long serialVersionUID = 3169786638868209920L;
@@ -181,7 +180,7 @@
RuleStorage.setParameterValue(rule, name, value);
} catch (IsisFishException e) {
if (log.isErrorEnabled()) {
- log.error("Can't set parameter value");
+ log.error("Can't set parameter value", e);
}
}
break;
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorComboModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorComboModel.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorComboModel.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,103 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.sensitivity;
+
+import java.util.List;
+
+import javax.swing.DefaultComboBoxModel;
+
+/**
+ * Model pour la liste des calculateurs de sensibilite.
+ *
+ * @author chatellier
+ * @version $Revision: 2350 $
+ *
+ * Last update : $Date: 2009-06-09 13:52:58 +0200 (mar. 09 juin 2009) $
+ * By : $Author: chatellier $
+ */
+public class SensitivityCalculatorComboModel extends DefaultComboBoxModel {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4070846632975105788L;
+
+ /** SensitivityCalculator names. */
+ protected List<String> sensitivityCalculatorNames;
+
+ /**
+ * Empty constructor.
+ */
+ public SensitivityCalculatorComboModel() {
+ this(null);
+ }
+
+ /**
+ * Constructor with calculator list.
+ *
+ * @param sensitivityCalculatorNames sensitivity calculator Names
+ */
+ public SensitivityCalculatorComboModel(List<String> sensitivityCalculatorNames) {
+ super();
+ setSensitivityCalculatorNames(sensitivityCalculatorNames);
+ }
+
+ /**
+ * Get analyze plan names.
+ *
+ * @return the analyze plan names
+ */
+ public List<String> getSensitivityCalculatorNames() {
+ return sensitivityCalculatorNames;
+ }
+
+ /**
+ * Set sensitivity names.
+ *
+ * @param sensitivityCalculatorNames the names to set
+ */
+ public void setSensitivityCalculatorNames(List<String> sensitivityCalculatorNames) {
+ this.sensitivityCalculatorNames = sensitivityCalculatorNames;
+
+ // default first selected
+ /* disable default selection
+ if (!sensitivityCalculatorNames.isEmpty()) {
+ setSelectedItem(sensitivityCalculatorNames.get(0));
+ }*/
+ }
+
+ /*
+ * @see javax.swing.ListModel#getElementAt(int)
+ */
+ @Override
+ public Object getElementAt(int index) {
+ return sensitivityCalculatorNames.get(index);
+ }
+
+ /*
+ * @see javax.swing.ListModel#getSize()
+ */
+ @Override
+ public int getSize() {
+ int size = 0;
+
+ if (sensitivityCalculatorNames != null) {
+ size = sensitivityCalculatorNames.size();
+ }
+ return size;
+ }
+}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorComboRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorComboRenderer.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorComboRenderer.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,95 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.sensitivity;
+
+import static org.codelutin.i18n.I18n._;
+
+import java.awt.Component;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.ListCellRenderer;
+
+import fr.ifremer.isisfish.datastore.SensitivityStorage;
+import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator;
+import fr.ifremer.isisfish.ui.util.TooltipHelper;
+
+/**
+ * Renderer pour la combo des calculateurs de sensibilités.
+ *
+ * @author chatellier
+ * @version $Revision: 2350 $
+ *
+ * Last update : $Date: 2009-06-09 13:52:58 +0200 (mar. 09 juin 2009) $
+ * By : $Author: chatellier $
+ */
+public class SensitivityCalculatorComboRenderer extends DefaultListCellRenderer implements
+ ListCellRenderer {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4070846632975105788L;
+
+ /** Sensitivity cache. */
+ protected Map<String, SensitivityCalculator> sensitivityCalculatorCache;
+
+ /**
+ * Empty constructor.
+ */
+ public SensitivityCalculatorComboRenderer() {
+ sensitivityCalculatorCache = new HashMap<String, SensitivityCalculator>();
+ }
+
+ /*
+ * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean)
+ */
+ @Override
+ public Component getListCellRendererComponent(JList list, Object value,
+ int index, boolean isSelected, boolean cellHasFocus) {
+
+ // this must be used to have alterned highlight rows and default
+ // selection color
+ JLabel c = (JLabel) super.getListCellRendererComponent(list, value,
+ index, isSelected, cellHasFocus);
+
+ String sensitivityName = (String) value;
+ c.setText(sensitivityName);
+
+ // c'est tres couteux d'avoir une instance
+ // on les met en cache
+ try {
+ SensitivityCalculator plan = sensitivityCalculatorCache.get(sensitivityName);
+ if (plan == null) {
+ SensitivityStorage storage = SensitivityStorage
+ .getSensitivity(sensitivityName);
+ plan = storage.getNewSensitivityInstance();
+ sensitivityCalculatorCache.put(sensitivityName, plan);
+ }
+
+ c.setToolTipText(plan.getDescription());
+ } catch (Exception e) {
+ String errorTooltip = TooltipHelper.getErrorTooltip(_("isisfish.error.compile.fileerror", sensitivityName));
+ c.setToolTipText(errorTooltip);
+ }
+
+ return c;
+ }
+}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorListModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorListModel.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorListModel.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,98 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.sensitivity;
+
+import java.util.List;
+
+import javax.swing.AbstractListModel;
+
+import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator;
+
+/**
+ * Model pour la liste des instances de calculateurs.
+ *
+ * @author chatellier
+ * @version $Revision: 2350 $
+ *
+ * Last update : $Date: 2009-06-09 13:52:58 +0200 (mar. 09 juin 2009) $
+ * By : $Author: chatellier $
+ */
+public class SensitivityCalculatorListModel extends AbstractListModel {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4070846632975105788L;
+
+ protected List<SensitivityCalculator> sensitivityCalculators;
+
+ /**
+ * Empty constructor.
+ */
+ public SensitivityCalculatorListModel() {
+ this(null);
+ }
+
+ /**
+ * Constructor with list.
+ *
+ * @param sensitivityCalculators calculators
+ */
+ public SensitivityCalculatorListModel(List<SensitivityCalculator> sensitivityCalculators) {
+ super();
+ setSensitivityCalculators(sensitivityCalculators);
+ }
+
+ /**
+ * Get calculators list.
+ *
+ * @return the calculators
+ */
+ public List<SensitivityCalculator> getSensitivityCalculators() {
+ return sensitivityCalculators;
+ }
+
+ /**
+ * Set calculators list.
+ *
+ * @param sensitivityCalculators the calculators to set
+ */
+ public void setSensitivityCalculators(List<SensitivityCalculator> sensitivityCalculators) {
+ this.sensitivityCalculators = sensitivityCalculators;
+ }
+
+ /*
+ * @see javax.swing.ListModel#getElementAt(int)
+ */
+ @Override
+ public Object getElementAt(int index) {
+ return sensitivityCalculators.get(index);
+ }
+
+ /*
+ * @see javax.swing.ListModel#getSize()
+ */
+ @Override
+ public int getSize() {
+ int size = 0;
+
+ if (sensitivityCalculators != null) {
+ size = sensitivityCalculators.size();
+ }
+ return size;
+ }
+}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorListRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorListRenderer.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorListRenderer.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,69 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.sensitivity;
+
+import java.awt.Component;
+
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.ListCellRenderer;
+
+import fr.ifremer.isisfish.datastore.SensitivityStorage;
+import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator;
+
+/**
+ * Renderer pour la liste des plans d'analyse.
+ *
+ * @author chatellier
+ * @version $Revision: 2350 $
+ *
+ * Last update : $Date: 2009-06-09 13:52:58 +0200 (mar. 09 juin 2009) $
+ * By : $Author: chatellier $
+ */
+public class SensitivityCalculatorListRenderer extends DefaultListCellRenderer implements
+ ListCellRenderer {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4070846632975105788L;
+
+ /*
+ * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean)
+ */
+ @Override
+ public Component getListCellRendererComponent(JList list, Object value,
+ int index, boolean isSelected, boolean cellHasFocus) {
+
+ // this must be used to have alterned highlight rows and default
+ // selection color
+ JLabel c = (JLabel) super.getListCellRendererComponent(list, value,
+ index, isSelected, cellHasFocus);
+
+ SensitivityCalculator sensitivity = (SensitivityCalculator) value;
+ c.setText(SensitivityStorage.getName(sensitivity));
+
+ try {
+ c.setToolTipText(sensitivity.getDescription());
+ } catch (Exception e) {
+ // can't get exception
+ }
+
+ return this;
+ }
+}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableCellEditor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableCellEditor.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableCellEditor.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,73 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.sensitivity;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import fr.ifremer.isisfish.datastore.SensitivityStorage;
+import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator;
+import fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor;
+
+/**
+ * Specific editor for rule parameters.
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 9 juin 2009 $
+ * By : $Author: chatellier $
+ */
+public class SensitivityCalculatorParametersTableCellEditor extends
+ ParameterTableCellEditor {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 8211639776194497615L;
+
+ protected SensitivityCalculator sensitivityCalculator;
+
+ protected List<Class<?>> sensitivityCalculatorParametersTypes;
+
+ /**
+ * Constructor with calculator parameter.
+ *
+ * @param sensitivityCalculator plan
+ */
+ public SensitivityCalculatorParametersTableCellEditor(SensitivityCalculator sensitivityCalculator) {
+ super();
+
+ this.sensitivityCalculator = sensitivityCalculator;
+ sensitivityCalculatorParametersTypes = new ArrayList<Class<?>>();
+ //TODO map may be sorted
+ Map<String, Class<?>> planParametersNamesAndTypes = SensitivityStorage
+ .getParameterNames(sensitivityCalculator);
+ for (Class<?> type : planParametersNamesAndTypes.values()) {
+ sensitivityCalculatorParametersTypes.add(type);
+ }
+ }
+
+ /*
+ * @see fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor#getType(java.lang.Object, int, int)
+ */
+ @Override
+ protected Class<?> getType(Object value, int row, int column) {
+ return sensitivityCalculatorParametersTypes.get(row);
+ }
+}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableCellRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableCellRenderer.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableCellRenderer.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,76 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.sensitivity;
+
+import java.awt.Component;
+
+import javax.swing.JLabel;
+import javax.swing.JTable;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.TableCellRenderer;
+
+import fr.ifremer.isisfish.datastore.SensitivityStorage;
+import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator;
+import fr.ifremer.isisfish.ui.util.TooltipHelper;
+import fr.ifremer.isisfish.util.Doc;
+
+/**
+ * Specific renderer for calculator parameters.
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 9 juin 2009 $
+ * By : $Author: chatellier $
+ */
+public class SensitivityCalculatorParametersTableCellRenderer extends
+ DefaultTableCellRenderer implements TableCellRenderer {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -1655744662816030649L;
+
+ protected SensitivityCalculator sensitivityCalculator;
+
+ public SensitivityCalculatorParametersTableCellRenderer(SensitivityCalculator sensitivityCalculator) {
+ this.sensitivityCalculator = sensitivityCalculator;
+ }
+
+ /*
+ * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int)
+ */
+ @Override
+ public Component getTableCellRendererComponent(JTable table, Object value,
+ boolean isSelected, boolean hasFocus, int row, int column) {
+
+ // this must be used to have alterned highlight rows and default
+ // selection color
+ JLabel c = (JLabel) super.getTableCellRendererComponent(table, value,
+ isSelected, hasFocus, row, column);
+
+ String parameterName = (String) value;
+ c.setText(parameterName);
+
+ Doc doc = SensitivityStorage.getParameterDoc(sensitivityCalculator, parameterName);
+ String documentation = TooltipHelper.docToString(doc);
+ c.setToolTipText(documentation);
+
+ return c;
+ }
+
+}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableModel.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableModel.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -0,0 +1,194 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.sensitivity;
+
+import static org.codelutin.i18n.I18n._;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.table.AbstractTableModel;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import fr.ifremer.isisfish.IsisFishException;
+import fr.ifremer.isisfish.datastore.SensitivityStorage;
+import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator;
+
+/**
+ * Model de la table de definition de parametre d'un plan d'analyse.
+ *
+ * Columns :
+ * <li>Parameter name</li>
+ * <li>Parameter value</li>
+ *
+ * @author chatellier
+ * @version $Revision: 2350 $
+ *
+ * Last update : $Date: 2009-06-09 13:52:58 +0200 (mar. 09 juin 2009) $
+ * By : $Author: chatellier $
+ */
+public class SensitivityCalculatorParametersTableModel extends AbstractTableModel {
+
+ /** Log. */
+ private static Log log = LogFactory
+ .getLog(SensitivityCalculatorParametersTableModel.class);
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = 3169786638868209920L;
+
+ /** Columns names. */
+ public final static String[] COLUMN_NAMES = { _("isisfish.common.name"),
+ _("isisfish.common.value") };
+
+ protected SensitivityCalculator sensitivityCalculator;
+
+ protected List<String> planParametersNames;
+
+ /**
+ * Constructor with data.
+ *
+ * @param sensitivityCalculator plan to edit parameters
+ */
+ public SensitivityCalculatorParametersTableModel(SensitivityCalculator sensitivityCalculator) {
+ super();
+ this.sensitivityCalculator = sensitivityCalculator;
+
+ //TODO map may be sorted
+ planParametersNames = new ArrayList<String>();
+ Map<String, Class<?>> planParametersNamesAndTypes = SensitivityStorage
+ .getParameterNames(sensitivityCalculator);
+ for (String names : planParametersNamesAndTypes.keySet()) {
+ planParametersNames.add(names);
+ }
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#getColumnCount()
+ */
+ @Override
+ public int getColumnCount() {
+ return COLUMN_NAMES.length;
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#getRowCount()
+ */
+ @Override
+ public int getRowCount() {
+ return planParametersNames.size();
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#getValueAt(int, int)
+ */
+ @Override
+ public Object getValueAt(int rowIndex, int columnIndex) {
+
+ Object result = null;
+
+ String name = planParametersNames.get(rowIndex);
+ switch (columnIndex) {
+ case 0:
+ result = name;
+ break;
+ case 1:
+ try {
+ result = SensitivityStorage.getParameterValue(sensitivityCalculator, name);
+ } catch (IsisFishException e) {
+ if (log.isErrorEnabled()) {
+ log.debug("Can't get parameters value", e);
+ }
+ }
+ break;
+ default:
+ throw new IndexOutOfBoundsException("No such column " + columnIndex);
+ }
+
+ return result;
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#getColumnClass(int)
+ */
+ @Override
+ public Class<?> getColumnClass(int columnIndex) {
+
+ Class<?> result = null;
+
+ switch (columnIndex) {
+ case 0:
+ result = String.class;
+ break;
+ case 1:
+ result = Object.class;
+ break;
+ default:
+ throw new IndexOutOfBoundsException("No such column " + columnIndex);
+ }
+
+ return result;
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#getColumnName(int)
+ */
+ @Override
+ public String getColumnName(int columnIndex) {
+ return COLUMN_NAMES[columnIndex];
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#isCellEditable(int, int)
+ */
+ @Override
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return columnIndex > 0;
+ }
+
+ /*
+ * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int)
+ */
+ @Override
+ public void setValueAt(Object value, int rowIndex, int columnIndex) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Cell edition (column " + columnIndex + ") = " + value);
+ }
+
+ String name = planParametersNames.get(rowIndex);
+ switch (columnIndex) {
+ case 1:
+ try {
+ SensitivityStorage.setParameterValue(sensitivityCalculator, name, value);
+ } catch (IsisFishException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't set parameter value", e);
+ }
+ }
+ break;
+ default:
+ throw new IndexOutOfBoundsException("Can't edit column "
+ + columnIndex);
+ }
+
+ }
+}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2009-06-15 08:36:04 UTC (rev 2378)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2009-06-15 16:37:09 UTC (rev 2379)
@@ -36,26 +36,38 @@
import fr.ifremer.isisfish.ui.simulator.ToolTipListModelFactory;
import fr.ifremer.isisfish.ui.widget.renderer.SimpleToolTipComboBoxRenderer;
import fr.ifremer.isisfish.ui.widget.renderer.SimpleToolTipTableColumnRenderer;
+
+ import fr.ifremer.isisfish.ui.models.export.ExportListModel;
+ import fr.ifremer.isisfish.ui.models.export.ExportListRenderer;
+ import fr.ifremer.isisfish.ui.models.export.ExportNameListModel;
+ import fr.ifremer.isisfish.ui.models.export.ExportNameListRenderer;
+ import fr.ifremer.isisfish.ui.models.export.ExportParametersTableCellEditor;
+ import fr.ifremer.isisfish.ui.models.export.ExportParametersTableCellRenderer;
+ import fr.ifremer.isisfish.ui.models.export.ExportParametersTableModel;
+
+ import fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorComboModel;
+ import fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorComboRenderer;
+ import fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorListModel;
+ import fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorListRenderer;
+ import fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorParametersTableCellEditor;
+ import fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorParametersTableCellRenderer;
+ import fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorParametersTableModel;
protected SimulAction getSimulAction() {
return getContextValue(SimulAction.class);
}
public ComboBoxModel getSensitivityCalculatorModel() {
- java.util.List<Item> items = new ArrayList<Item>();
- items.add(new Item("null", " ", null, true));
- for (String s : getSimulAction().getSensitivityNames()) {
- items.add(new Item(s, s, s, false));
- }
- fieldSensitivityCalculatorSelect.setItems(items);
- // add list tooltip renderer
- //fieldSensitivityCalculatorSelect.setCellRenderer(new SimpleToolTipComboBoxRenderer(ToolTipListModelFactory.createRuleDescriptionsModel(getSimulAction().getSensitivityNames())));
- return fieldSensitivityCalculatorSelect.getModel();
+ java.util.List<String> sensitivityNames = getSimulAction().getSensitivityNames();
+ SensitivityCalculatorComboModel model = new SensitivityCalculatorComboModel(sensitivityNames);
+ return model;
}
/**
* Auto select calculator in JComboBox
* with calculator selected in SimulAction.
+ *
+ * Used by "reloadOldSimulation" operation.
*/
public void refreshSelectedSensitivityCalculator() {
SensitivityCalculator calculator = getSimulAction().getSensitivityCalculator();
@@ -67,7 +79,7 @@
fieldSensitivityCalculatorSelect.setSelectedItem(calculator.getClass().getSimpleName());
}
}
-
+
protected void sensCalculatorChanged() {
// TODO change combo box content
@@ -75,70 +87,23 @@
// this event is thrown by build a new Calculator instance
// and parameter are lost
- if (fieldSensitivityCalculatorSelect.getSelectedIndex() != -1) {
- String sensitivityName = (String)fieldSensitivityCalculatorSelect.getSelectedItem();
- getSimulAction().setSensitivity(sensitivityName);
-
- // enable/disable table
- try {
- SensitivityCalculator sens = SensitivityStorage.getSensitivity(sensitivityName).getNewSensitivityInstance();
- factorCardinalityScrollPane.setVisible(!sens.canManageCardinality());
- validate();
- }
- catch(IsisFishException e) {
- if (log.isErrorEnabled()) {
- log.error("Can't get canManageCardinality() value", e);
- }
- }
- setSensitivityCalculatorParamsModel();
- }
- }
-
- protected void setSensitivityCalculatorParamsModel() {
String sensitivityName = (String)fieldSensitivityCalculatorSelect.getSelectedItem();
- Map<String, Class<?>> values = getSimulAction().getSensitivityParameterNames(sensitivityName);
- setSensitivityCalculatorParamsTableModel(values, simulSensitivityCalculatorParam);
- simulSensitivityCalculatorParam.getModel().addTableModelListener(new TableModelListener() {
- @Override
- public void tableChanged(TableModelEvent e) {
- int row = e.getFirstRow();
- TableModel model = (TableModel)e.getSource();
- GenericCell data = (GenericCell) model.getValueAt(row, 0);
- getContextValue(SimulAction.class).setSensitivityCalculatorParameterValue(data.getName(), model.getValueAt(row, 1));
- }
- });
- simulSensitivityCalculatorParam.getColumnModel().getColumn(0).setCellRenderer(new SimpleToolTipTableColumnRenderer(ToolTipListModelFactory.createSensitivityParamsModel(sensitivityName)));
- }
+ SensitivityCalculator sensivitityCalculator = getSimulAction().getSensivitityCalculatorInstance(sensitivityName);
+
+ // can be null for example if calculator can't be compiled
+ if (sensivitityCalculator != null) {
+ getSimulAction().setSensitivityCalculator(sensivitityCalculator);
+
+ // enable/disable table (if sensivitityCalculator can manage it)
+ factorCardinalityScrollPane.setVisible(!sensivitityCalculator.canManageCardinality());
+ validate();
- protected void setSensitivityCalculatorParamsTableModel(Map<String, Class<?>> values, JTable table) {
- int row = 0;
- if (values != null){
- DefaultTableModel model = new DefaultTableModel() {
- @Override
- public boolean isCellEditable(int row, int column) {
- boolean result = false;
- if (column > 0) {
- result = true;
- }
- return result;
- }
- };
- java.util.List<GenericCell> paramNamesList = new ArrayList<GenericCell>();
- java.util.List<Object> paramValuesList = new ArrayList<Object>();
- for (Iterator<String> it = values.keySet().iterator(); it.hasNext();) {
- String name = it.next();
- Object properties = getContextValue(SimulAction.class).getSensitivityCalculatorParameterValue(name);
- GenericCell value = new GenericCell(name, values.get(name), null);
- paramNamesList.add(value);
- paramValuesList.add(properties);
- row++;
- }
- model.addColumn(_("isisfish.common.name"), paramNamesList.toArray());
- model.addColumn(_("isisfish.common.value"), paramValuesList.toArray());
- table.setModel(model);
- ParameterColumnEditor cellEditor = new ParameterColumnEditor();
- cellEditor.setRegion(getContextValue(SimulAction.class).getRegionStorage());
- table.getColumnModel().getColumn(1).setCellEditor(cellEditor);
+ // update model
+ //setSensitivityCalculatorParamsModel();
+ SensitivityCalculatorParametersTableModel parametersTableModel = new SensitivityCalculatorParametersTableModel(sensivitityCalculator);
+ simulSensitivityCalculatorParam.setModel(parametersTableModel);
+ simulSensitivityCalculatorParam.getColumnModel().getColumn(0).setCellRenderer(new SensitivityCalculatorParametersTableCellRenderer(sensivitityCalculator));
+ simulSensitivityCalculatorParam.getColumnModel().getColumn(1).setCellEditor(new SensitivityCalculatorParametersTableCellEditor(sensivitityCalculator));
}
}
@@ -180,114 +145,93 @@
});
}
- protected DefaultComboBoxModel getExportTableModel() {
+ protected ExportNameListModel getAvailableExportListModel() {
java.util.List<String> exportNames = getSimulAction().getSensitivityExportNames();
- DefaultComboBoxModel model = new DefaultComboBoxModel(exportNames.toArray());
- // TODO add tooltip model for this combo
+ ExportNameListModel model = new ExportNameListModel(exportNames);
return model;
}
-
- // FIXME use bindings ?
- protected void exportListSelected() {
- removeExportButton.setEnabled(exportList.getSelectedIndex() != -1);
- setExportParams();
- }
-
- /**
- * Fill export parameters names and values in table.
- */
- protected void setExportParams() {
- SensitivityExport export = getSelectedExport();
- Map<String, Class<?>> values = getSimulAction().getSensitivityExportParameterNames(export);
- setSensitivityExportParamsTableModel(values, exportParamsTable);
- exportParamsTable.getModel().addTableModelListener(new TableModelListener() {
- @Override
- public void tableChanged(TableModelEvent e) {
- int row = e.getFirstRow();
- TableModel model = (TableModel)e.getSource();
- GenericCell data = (GenericCell) model.getValueAt(row, 0);
- getContextValue(SimulAction.class).setSensitivityExportParameterValue(getSelectedExport(), (String)data.getName(), model.getValueAt(row, 1));
- }
- });
- exportParamsTable.getColumnModel().getColumn(0).setCellRenderer(new SimpleToolTipTableColumnRenderer(ToolTipListModelFactory.createExportParamsModel(ExportStorage.getName(export))));
- }
-
/**
- * FIXME can't be factorized with {link #setFactorCardinalityTableModel}
+ * Add multiples export.
+ *
+ * Export name can be duplicated.
*/
- protected void setSensitivityExportParamsTableModel(Map<String, Class<?>> values, JTable table) {
- int row = 0;
- if (values != null){
- DefaultTableModel model = new DefaultTableModel() {
- @Override
- public boolean isCellEditable(int row, int column) {
- boolean result = false;
- if (column > 0) {
- result = true;
- }
- return result;
- }
- };
- java.util.List<GenericCell> paramNamesList = new ArrayList<GenericCell>();
- java.util.List<Object> paramValuesList = new ArrayList<Object>();
- for (Iterator<String> it = values.keySet().iterator(); it.hasNext();) {
- String name = it.next();
- Object properties = getContextValue(SimulAction.class).getSensitivityExportParameterValue(getSelectedExport(), name);
- GenericCell value = new GenericCell(name, values.get(name), null);
- paramNamesList.add(value);
- paramValuesList.add(properties);
- row++;
- }
- model.addColumn(_("isisfish.common.name"), paramNamesList.toArray());
- model.addColumn(_("isisfish.common.value"), paramValuesList.toArray());
- table.setModel(model);
- ParameterColumnEditor cellEditor = new ParameterColumnEditor();
- cellEditor.setRegion(getContextValue(SimulAction.class).getRegionStorage());
- table.getColumnModel().getColumn(1).setCellEditor(cellEditor);
+ protected void addExports() {
+ Object[] exportNames = (Object[])availableSensitivityExports.getSelectedValues();
+ for (Object exportName : exportNames) {
+ getSimulAction().addSensitivityExport((String)exportName);
}
+ setExportListModel();
}
- protected SensitivityExport getSelectedExport(){
- return (SensitivityExport)((GenericCell)exportList.getSelectedValue()).getValue();
- }
-
/**
- * Add an export.
- *
- * Export name can be duplicated.
+ * Remove multiple export.
*/
- protected void addExport() {
- getSimulAction().addSensitivityExport((String)exportCombo.getSelectedItem());
+ protected void removeExports() {
+ Object[] exports = (Object[])selectedSensitivityExports.getSelectedValues();
+ for (Object export : exports) {
+ getSimulAction().removeSensitivityExport((SensitivityExport)export);
+ }
setExportListModel();
- clearExportsButton.setEnabled(true);
}
- protected void removeExport() {
- getSimulAction().removeSensitivityExport(getSelectedExport());
- setExportListModel();
- removeExportButton.setEnabled(false);
- }
-
+ /**
+ * Clear all export.
+ */
protected void clearExports() {
getSimulAction().clearSensitivityExport();
setExportListModel();
- clearExportsButton.setEnabled(false);
}
/**
- * Set model (refresh export Jlist).
+ * Set model (refresh export JList).
*/
public void setExportListModel() {
- java.util.List<SensitivityExport> exports = getSimulAction().getSensitivityExportList();
- DefaultListModel model = new DefaultListModel();
-
- for (SensitivityExport s : exports) {
- model.addElement(new GenericCell(s.getExportFilename(), s, s.getClass()));
+ java.util.List<SensitivityExport> exports = getSimulAction().getSensitivityExports();
+ ExportListModel model = new ExportListModel(exports);
+ selectedSensitivityExports.setModel(model);
+ selectedSensitivityExports.setCellRenderer(new ExportListRenderer());
+
+ clearExportsButton.setEnabled(!exports.isEmpty());
+ }
+
+ /**
+ * When selection change on available export list.
+ */
+ protected void availableSensitivityExportSelection() {
+ addExportButton.setEnabled(availableSensitivityExports.getSelectedIndices().length != 0);
+ }
+
+ /**
+ * When selection change on choosen export list.
+ */
+ protected void selectedSensitivityExportSelection() {
+ if (log.isDebugEnabled()) {
+ log.debug("Sensitivity export selection change");
}
- exportList.setModel(model);
- exportList.setCellRenderer(new SimpleToolTipComboBoxRenderer(ToolTipListModelFactory.createExportDescriptionsModel2(exports, clearExportsButton, exportList)));
+ setExportParams();
+ removeExportButton.setEnabled(selectedSensitivityExports.getSelectedIndices().length != 0);
}
+
+ /**
+ * Fill export parameters names and values in table.
+ */
+ protected void setExportParams() {
+ SimulAction simulAction = getContextValue(SimulAction.class);
+
+ if (selectedSensitivityExports.getSelectedIndices().length == 1) {
+ SensitivityExport export = (SensitivityExport)selectedSensitivityExports.getSelectedValue();
+ ExportParametersTableModel model = new ExportParametersTableModel(export);
+ exportParamsTable.setModel(model);
+ exportParamsTable.getColumnModel().getColumn(0).setCellRenderer(new ExportParametersTableCellRenderer(export));
+ ExportParametersTableCellEditor cellEditor = new ExportParametersTableCellEditor(export);
+ cellEditor.setRegion(simulAction.getRegionStorage());
+ exportParamsTable.getColumnModel().getColumn(1).setCellEditor(cellEditor);
+ }
+ else {
+ exportParamsTable.setModel(new DefaultTableModel());
+ }
+ }
]]>
</script>
<row>
@@ -295,7 +239,8 @@
<JLabel text="isisfish.sensitivity.select"/>
</cell>
<cell fill="horizontal" weightx="1.0">
- <JComboBox id="fieldSensitivityCalculatorSelect" model='{getSensitivityCalculatorModel()}' onActionPerformed='sensCalculatorChanged()'/>
+ <JComboBox id="fieldSensitivityCalculatorSelect" model='{getSensitivityCalculatorModel()}'
+ renderer='{new SensitivityCalculatorComboRenderer()}' onActionPerformed='sensCalculatorChanged()'/>
</cell>
</row>
<row>
@@ -312,6 +257,7 @@
</JScrollPane>
</cell>
</row>
+ <!--
<row>
<cell fill="both" columns='2' weightx="1.0" weighty="1.0">
<Table>
@@ -369,11 +315,56 @@
</row>
</Table>
</cell>
+ </row> -->
+ <row>
+ <cell fill="both" columns='3' weightx="1.0">
+ <JLabel text="isisfish.sensitivity.export"/>
+ </cell>
</row>
<row>
+ <cell columns='2' fill="both" weightx="1.0" weighty="1.0">
+ <Table>
+ <row>
+ <cell fill="both" weightx="0.5" weighty="1.0">
+ <JScrollPane>
+ <JList id="availableSensitivityExports" selectionMode="{javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION}"
+ model='{getAvailableExportListModel()}' cellRenderer='{new ExportNameListRenderer()}'
+ onValueChanged='availableSensitivityExportSelection()' />
+ </JScrollPane>
+ </cell>
+ <cell fill="both" weighty="1.0">
+ <Table>
+ <row>
+ <cell fill="both">
+ <JButton id="addExportButton" text="isisfish.common.add" enabled="false" onActionPerformed='addExports()' />
+ </cell>
+ </row>
+ <row>
+ <cell fill="both">
+ <JButton id="removeExportButton" text="isisfish.common.remove" enabled="false" onActionPerformed='removeExports()' />
+ </cell>
+ </row>
+ <row>
+ <cell fill="both">
+ <JButton id="clearExportsButton" text="isisfish.common.clear" enabled="false" onActionPerformed='clearExports()' />
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ <cell fill="both" weightx="0.5" weighty="1.0">
+ <JScrollPane>
+ <JList id="selectedSensitivityExports" selectionMode="{javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION}"
+ onValueChanged='selectedSensitivityExportSelection()' />
+ </JScrollPane>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ </row>
+ <row>
<cell fill="both" columns='2' weightx="1.0" weighty="1.0">
- <JScrollPane minimumSize='{new Dimension(0,50)}' preferredSize='{new Dimension(0,50)}'>
- <JTable id="exportParamsTable" rowHeight='24'/>
+ <JScrollPane>
+ <JTable id="exportParamsTable" rowHeight='24' />
</JScrollPane>
</cell>
</row>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-06-15 08:36:04 UTC (rev 2378)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -102,7 +102,6 @@
protected SimulationParameter param = null;
protected RegionStorage regionStorage = null;
protected SimulationStorage simulStorage = null;
- protected Map<SensitivityExport, String> sensitivityExports = new HashMap<SensitivityExport, String>();
protected List<String> oldSimulNames = null;
protected String simulName = null;
@@ -110,7 +109,6 @@
protected Map<String, Factor> factors;
protected Map<String, JComponent> factorComponent = new HashMap<String, JComponent>();
protected DesignPlan designPlan = new DesignPlan();
- protected SensitivityCalculator sensitivityCalculator = null;
/*
************
@@ -295,14 +293,12 @@
param.setAnalysePlanNumber(-1);
regionStorage = param.getRegion();
- // Chargement des sensibilites
- sensitivityCalculator = param.getSensitivityCalculator();
-
// Chargement des exports de sensibilites
- sensitivityExports.clear();
+ /* not used anymore
+ * sensitivityExports.clear();
for (SensitivityExport ex : param.getSensitivityExport()){
sensitivityExports.put(ex, ex.getExportFilename());
- }
+ }*/
// Chargement des facteurs
File f = simulStorage.getMexicoDesignPlan(SimulationStorage.getSimulationDirectory(simulName));
@@ -704,22 +700,16 @@
return result;
}
- public List<SensitivityExport> getSensitivityExportList() {
- List<SensitivityExport> result = new ArrayList<SensitivityExport>();
- for (Map.Entry<SensitivityExport, String> entry : sensitivityExports
- .entrySet()) {
- result.add(entry.getKey());
- }
+ public List<SensitivityExport> getSensitivityExports() {
+ List<SensitivityExport> result = param.getSensitivityExport();
return result;
}
public void addSensitivityExport(String name) {
try {
ExportStorage storage = ExportStorage.getExport(name);
- SensitivityExport exInstance = (SensitivityExport) storage
- .getNewExportInstance();
- sensitivityExports.put(exInstance, name);
- param.setSensitivityExport(getSensitivityExportList());
+ SensitivityExport sensitivityExport = (SensitivityExport) storage.getNewExportInstance();
+ param.getSensitivityExport().add(sensitivityExport);
} catch (IsisFishException e) {
if (log.isErrorEnabled()) {
log.error("Can't add sensitivity export", e);
@@ -733,13 +723,11 @@
* @param export export to remove
*/
public void removeSensitivityExport(SensitivityExport export) {
- sensitivityExports.remove(export);
- param.setSensitivityExport(getSensitivityExportList());
+ param.getSensitivityExport().remove(export);
}
public void clearSensitivityExport() {
- sensitivityExports.clear();
- param.setSensitivityExport(getSensitivityExportList());
+ param.getSensitivityExport().clear();
}
public Map<String, Class<?>> getSensitivityExportParameterNames(
@@ -780,79 +768,54 @@
public List<String> getSensitivityNames() {
List<String> result = new ArrayList<String>();
for (String r : SensitivityStorage.getSensitivityNames()) {
- // Remove .java extention
- // TODO find a better way to to that
- // for example SensitivityStorage.getRuleName(String)
- result.add(r.substring(0, r.length() - 5));
- }
- return result;
- }
-
- public Map<String, Class<?>> getSensitivityParameterNames(String name) {
- Map<String, Class<?>> result = null;
- try {
- SensitivityStorage sens = SensitivityStorage.getSensitivity(name);
- result = sens.getParameterNames();
- } catch (IsisFishException e) {
- if (log.isErrorEnabled()) {
- log.error("Can't get sensitivity sensitivity params names", e);
+ // there is some non java files in sensitivity directory
+ if (r.endsWith(".java")) {
+ // Remove .java extention
+ // for example SensitivityStorage.getRuleName(String)
+ result.add(r.substring(0, r.length() - 5));
}
}
return result;
}
- public Object getSensitivityCalculatorParameterValue(String paramName) {
- Object result = null;
- try {
- result = SensitivityStorage.getParameterValue(param
- .getSensitivityCalculator(), paramName);
- } catch (IsisFishException e) {
- if (log.isErrorEnabled()) {
- log.error("Can't get sensitivity param value", e);
- }
- showMsgBox(e);
- }
- return result;
- }
-
- public void setSensitivityCalculatorParameterValue(String paramName,
- Object value) {
- try {
- if (value != null) {
- SensitivityStorage.setParameterValue(param
- .getSensitivityCalculator(), paramName, value);
- }
- } catch (IsisFishException e) {
- if (log.isErrorEnabled()) {
- log.error("Can't set sensitivity param value", e);
- }
- showMsgBox(e);
- }
- }
-
/**
* Get current sensitivity calculator instance.
* @return sensitivity calculator
*/
public SensitivityCalculator getSensitivityCalculator() {
- return sensitivityCalculator;
+ return param.getSensitivityCalculator();
}
- public void setSensitivity(String name) {
+ /**
+ * Build a new sensitivity calculator instance by his name.
+ *
+ * @param name calcultor name
+ * @return instance
+ */
+ public SensitivityCalculator getSensivitityCalculatorInstance(String name) {
+ SensitivityCalculator sensitivityCalculator = null;
try {
sensitivityStorage = SensitivityStorage.getSensitivity(name);
- SensitivityCalculator sensCal = sensitivityStorage
+ sensitivityCalculator = sensitivityStorage
.getNewSensitivityInstance();
- sensitivityCalculator = sensCal;
- param.setSensitivityCalculator(sensitivityCalculator);
} catch (IsisFishException e) {
if (log.isErrorEnabled()) {
log.error("Can't set sensitivity", e);
}
}
+ return sensitivityCalculator;
}
/**
+ * Set calculator instance to use.
+ *
+ * @param sensitivityCalculator new instance
+ */
+ public void setSensitivityCalculator(SensitivityCalculator sensitivityCalculator) {
+ param.setSensitivityCalculator(sensitivityCalculator);
+ }
+
+ /**
* Get current simulation factor list.
*
* @return factor list
@@ -1064,7 +1027,7 @@
public void launchSimulationWhithSensibility(String simulationId,
SimulatorLauncher launcher) {
- launchSimulation(simulationId, launcher, sensitivityCalculator,
+ launchSimulation(simulationId, launcher, getSensitivityCalculator(),
designPlan);
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/util/TooltipHelper.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/util/TooltipHelper.java 2009-06-15 08:36:04 UTC (rev 2378)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/util/TooltipHelper.java 2009-06-15 16:37:09 UTC (rev 2379)
@@ -74,4 +74,20 @@
}
return tooltip;
}
+
+ /**
+ * Format error as tootip error messsage.
+ *
+ * @param errorMessage error message
+ * @return html formated string
+ */
+ public static String getErrorTooltip(String errorMessage) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("<html>");
+ sb.append("<font color='red'><b>");
+ sb.append(errorMessage);
+ sb.append("</b></font>");
+ sb.append("</html>");
+ return sb.toString();
+ }
}
Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties
===================================================================
--- isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-06-15 08:36:04 UTC (rev 2378)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-06-15 16:37:09 UTC (rev 2379)
@@ -242,6 +242,7 @@
isisfish.error.change.classloader=Can't change classloader because can't create URL from file %1$s
isisfish.error.change.equation=Can't change equation
isisfish.error.check.region=
+isisfish.error.compile.fileerror=Le fichier %s contient des erreurs \!
isisfish.error.compile.script=Can't compile script\: %1$s
isisfish.error.compiled.parameter=Can't get rule parameter from compiled class
isisfish.error.conversion.data=Erreur lors de la conversion du fichier de donn\u00E9es
Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties
===================================================================
--- isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-06-15 08:36:04 UTC (rev 2378)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-06-15 16:37:09 UTC (rev 2379)
@@ -242,7 +242,8 @@
isisfish.error.change.classloader=Can't change classloader because can't create URL from file %1$s
isisfish.error.change.equation=Can't change equation
isisfish.error.check.region=
-isisfish.error.compile.script=Can't compile script\: %1$s
+isisfish.error.compile.fileerror=Le fichier %s contient des erreurs \!
+isisfish.error.compile.script=Impossible de compiler le script \: %s
isisfish.error.compiled.parameter=Can't get rule parameter from compiled class
isisfish.error.conversion.data=Erreur lors de la conversion du fichier de donn\u00E9es
isisfish.error.create.equation=Can't create equation
1
0