Isis-fish-commits
Threads by month
- ----- 2026 -----
- September
- August
- July
- 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
April 2009
- 7 participants
- 108 discussions
r2162 - in isis-fish/trunk/src/main: java/fr/ifremer/isisfish/ui/input resources/i18n
by sletellier@users.labs.libre-entreprise.org April 30, 2009
by sletellier@users.labs.libre-entreprise.org April 30, 2009
April 30, 2009
Author: sletellier
Date: 2009-04-30 16:41:43 +0000 (Thu, 30 Apr 2009)
New Revision: 2162
Added:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonSpacializedUI.jaxx
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputNavigationTreeSelectionAdapter.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx
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:
Done : [#1817] manque de zones de saisie dans l'interface Population/Saison_ Bloquant EC
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputNavigationTreeSelectionAdapter.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputNavigationTreeSelectionAdapter.java 2009-04-30 16:21:03 UTC (rev 2161)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputNavigationTreeSelectionAdapter.java 2009-04-30 16:41:43 UTC (rev 2162)
@@ -107,6 +107,7 @@
}
// go back to previous node
returnToPreviousNode(getNavigationTree(), event);
+ log.info("goBackToPreviousNode");
}
@@ -121,7 +122,10 @@
try {
currentUI = (InputContentUI) newUI;
currentUI.setSens(false);
- context.getContextValue(InputSaveVerifier.class).addCurrentPanel(currentUI);
+ InputSaveVerifier verifier = context.getContextValue(InputSaveVerifier.class);
+ verifier.removeAllPanels();
+ verifier.addCurrentPanel(currentUI);
+ currentUI.refresh();
currentNode = node;
} catch (Exception e) {
if (log.isErrorEnabled()) {
@@ -148,7 +152,7 @@
exit = false;
}
if (exit) {
- verif.removeAllPanels();
+ verif.reset();
}
return exit;
}
@@ -164,9 +168,6 @@
if (TopiaEntity.class.isInstance(data)){
verif.addCurrentEntity((TopiaEntity) data);
}
- else{
- verif.addCurrentEntity(null);
- }
verif.refreshAll();
verif.setCurrentNode(node);
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java 2009-04-30 16:21:03 UTC (rev 2161)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java 2009-04-30 16:41:43 UTC (rev 2162)
@@ -373,6 +373,16 @@
addCurrentEntity(currentEntity, currentEntity.getTopiaId());
}
}
+ public void reset(){
+ removeAllEntity();
+ removeAllPanels();
+ this.currentCancelButton = null;
+ this.currentDeleteButton = null;
+ this.currentNewButton = null;
+ this.currentSaveButton = null;
+ this.currentOnglet = null;
+ this.currentNode = null;
+ }
public void removeAllEntity(){
currentEntities.clear();
editable = false;
Added: 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 (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonSpacializedUI.jaxx 2009-04-30 16:41:43 UTC (rev 2162)
@@ -0,0 +1,124 @@
+
+<fr.ifremer.isisfish.ui.input.InputContentUI>
+
+ <!-- bean property -->
+ <fr.ifremer.isisfish.entities.PopulationImpl id='bean' javaBean='null'/>
+
+ <fr.ifremer.isisfish.entities.PopulationSeasonInfoImpl id='populationSeasonInfo' javaBean='null'/>
+
+ <Boolean id='popSeasonInfoNotNull' javaBean='false'/>
+
+ <Boolean id='ageGroupType' javaBean='false'/>
+
+ <script><![CDATA[
+import fr.ifremer.isisfish.entities.PopulationSeasonInfo;
+import org.codelutin.math.matrix.gui.JAXXMatrixEditor;
+import fr.ifremer.isisfish.entities.PopulationSeasonInfoImpl;
+import org.codelutin.math.matrix.MatrixND;
+import org.codelutin.math.matrix.gui.MatrixPanelEvent;
+import org.codelutin.math.matrix.gui.MatrixPanelListener;
+import fr.ifremer.isisfish.ui.widget.ErrorDialogUI;
+
+protected MatrixPanelListener listener = null;
+
+listener = new MatrixPanelListener() {
+
+ @Override
+ public void matrixChanged(MatrixPanelEvent arg0) {
+ if (getPopulationSeasonInfo() != null && fieldPopulationSeasonReproductionDistribution.getMatrix() != null){
+ getPopulationSeasonInfo().setLengthChangeMatrix(fieldPopulationSeasonReproductionDistribution.getMatrix().copy());
+ }
+ }
+};
+public void refresh(){
+ fieldPopulationSeasonReproductionDistribution.addMatrixListener(listener);
+}
+public void spacialized(){
+ getPopulationSeasonInfo().setSimpleLengthChangeMatrix(labelPopulationSeasonGroupChangeLengthNoSpacialized.isSelected());
+ PopulationSeasonInfo popInfo = getPopulationSeasonInfo();
+ try {
+ MatrixND mat = popInfo.getLengthChangeMatrix();
+ if (mat != null){
+ if (popInfo.getSimpleLengthChangeMatrix()) {
+ mat = popInfo.unspacializeLengthChangeMatrix(mat);
+ } else {
+ mat = popInfo.spacializeLengthChangeMatrix(mat);
+ popInfo.setLengthChangeMatrix(mat);
+ }
+ }
+ }catch(Exception eee){
+ log.error("Can't (un)spacialize Matrix Change Of Group", eee);
+ ErrorDialogUI.showError(eee);
+ }
+}
+
+public void computeMatrixChangeOfGroup(){
+ PopulationSeasonInfo popInfo = getPopulationSeasonInfo();
+ MatrixND mat = popInfo.computeLengthChangeMatrix();
+ if(!popInfo.getSimpleLengthChangeMatrix()){
+ mat = popInfo.spacializeLengthChangeMatrix(mat);
+ }
+ popInfo.setLengthChangeMatrix(mat);
+}
+
+public void showSpacializedMatrixChangeOfGroup(){
+ PopulationSeasonInfo popInfo = getPopulationSeasonInfo();
+ MatrixND mat = popInfo.getLengthChangeMatrix();
+ if(popInfo.getSimpleLengthChangeMatrix()){
+ mat = popInfo.spacializeLengthChangeMatrix(mat);
+ }
+ JAXXMatrixEditor panel = new JAXXMatrixEditor(false, 800, 300);
+ panel.setMatrix(mat);
+ JOptionPane.showMessageDialog(null, panel, _("isisfish.message.spacialized.visualisation"), JOptionPane.INFORMATION_MESSAGE);
+}
+ ]]></script>
+
+ <Table>
+ <row>
+ <cell>
+ <Panel/>
+ </cell>
+ <cell fill='horizontal' weightx='0.5'>
+ <JRadioButton id="labelPopulationSeasonGroupChangeLengthNoSpacialized"
+ buttonGroup="labelPopulationSeasonGroupChangeLengthSpacializedGroup"
+ selected='{getPopulationSeasonInfo().getSimpleLengthChangeMatrix()}'
+ text="isisfish.populationSeasons.noSpacialized" decorator='boxed'
+ enabled='{isPopSeasonInfoNotNull()}' onItemStateChanged='spacialized()'
+ visible='{isAgeGroupType()}'/>
+ </cell>
+ <cell fill='horizontal' weightx='0.5'>
+ <JRadioButton id="labelPopulationSeasonGroupChangeLengthSpacialized"
+ buttonGroup="labelPopulationSeasonGroupChangeLengthSpacializedGroup"
+ selected='{!getPopulationSeasonInfo().getSimpleLengthChangeMatrix()}'
+ text="isisfish.populationSeasons.spacialized" enabled='{isPopSeasonInfoNotNull()}'
+ visible='{isAgeGroupType()}' decorator='boxed'/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel text="isisfish.populationSeasons.changeGroup" visible='{isAgeGroupType()}'/>
+ </cell>
+ <cell fill='horizontal' weightx='0.5'>
+ <JButton text="isisfish.populationSeasons.computeCoefficient" decorator='boxed' visible='{isAgeGroupType()}'
+ enabled='{isPopSeasonInfoNotNull()}' onActionPerformed='computeMatrixChangeOfGroup()'/>
+ </cell>
+ <cell fill='horizontal' weightx='0.5'>
+ <JButton id="labelPopulationSeasonGroupChangeLengthButtonShow" text="isisfish.populationSeasons.showSpacialized"
+ enabled='{labelPopulationSeasonGroupChangeLengthNoSpacialized.isSelected()}' decorator='boxed'
+ onActionPerformed='showSpacializedMatrixChangeOfGroup()'
+ visible='{isAgeGroupType()}'/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <Panel/>
+ </cell>
+ <cell columns='2' fill='both' weightx='1.0' weighty='1.0'>
+ <org.codelutin.math.matrix.gui.JAXXMatrixEditor id ='fieldPopulationSeasonReproductionDistribution'
+ matrix='{getPopulationSeasonInfo() == null ? null : getPopulationSeasonInfo().getLengthChangeMatrix()}' enabled='{isPopSeasonInfoNotNull()}'
+ decorator='boxed' _bean='{PopulationSeasonInfoImpl.class}' _method='"LengthChangeMatrix"'
+ visible='{isAgeGroupType()}'/>
+ </cell>
+ </row>
+ </Table>
+</fr.ifremer.isisfish.ui.input.InputContentUI>
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-04-30 16:21:03 UTC (rev 2161)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx 2009-04-30 16:41:43 UTC (rev 2162)
@@ -120,6 +120,15 @@
}
});
+listener = new MatrixPanelListener() {
+
+ @Override
+ public void matrixChanged(MatrixPanelEvent arg0) {
+ if (getPopulationSeasonInfo() != null && fieldPopulationSeasonReproductionDistribution.getMatrix() != null){
+ getPopulationSeasonInfo().setLengthChangeMatrix(fieldPopulationSeasonReproductionDistribution.getMatrix().copy());
+ }
+ }
+};
public void refresh(){
if (!isActif()){
setPopSeasonInfoNotNull(false);
@@ -144,16 +153,14 @@
ip.setLabelRenderer(Month.MONTH);
ip.setModel(interval);
- listener = new MatrixPanelListener() {
-
- @Override
- public void matrixChanged(MatrixPanelEvent arg0) {
- if (getPopulationSeasonInfo() != null && fieldPopulationSeasonReproductionDistribution.getMatrix() != null){
- getPopulationSeasonInfo().setLengthChangeMatrix(fieldPopulationSeasonReproductionDistribution.getMatrix().copy());
- }
- }
- };
+ if(getPopulationSeasonInfo() != null) {
+ PopulationSeasonInfoImpl popInfo = getPopulationSeasonInfo();
+ setPopulationSeasonInfo(null);
+ setPopulationSeasonInfo(popInfo);
+ getVerifier().addCurrentEntity(getPopulationSeasonInfo());
+ }
fieldPopulationSeasonReproductionDistribution.addMatrixListener(listener);
+ getVerifier().addCurrentPanel(populationSeasonSpecializedUI);
}
protected void setInterval() {
if(getPopulationSeasonInfo() != null) {
@@ -191,7 +198,7 @@
}
protected void setCombo(){
if (getBean() != null){
- jaxx.runtime.SwingUtil.fillComboBox(fieldPopulationSeasonInfoChooser,getBean().getPopulationSeasonInfo(), getBean().getPopulationSeasonInfo(), true);
+ jaxx.runtime.SwingUtil.fillComboBox(fieldPopulationSeasonInfoChooser,getBean().getPopulationSeasonInfo(), getPopulationSeasonInfo(), true);
}
}
protected void seasonGroupChanged(){
@@ -204,17 +211,17 @@
setPopulationSeasonInfo((PopulationSeasonInfoImpl)fieldPopulationSeasonInfoChooser.getSelectedItem());
getVerifier().addCurrentEntity(getPopulationSeasonInfo());
setPopSeasonInfoNotNull(getPopulationSeasonInfo() != null);
- SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- setInterval();
- setMatrix();
- init = false;
- }
- });
+ setInterval();
+ setMatrix();
+ init = false;
}
protected void setMatrix(){
fieldPopulationSeasonReproductionDistribution.setMatrix(getPopulationSeasonInfo().getLengthChangeMatrix());
}
+protected boolean isAgeGroupType(boolean result){
+ populationSeasonSpecializedUI.setVisible(result);
+ return result;
+}
]]>
</script>
<Table id='body'>
@@ -240,32 +247,48 @@
</cell>
</row>
<row>
- <cell>
+ <cell fill='both'>
<JPanel/>
</cell>
- <cell fill='horizontal' weightx='1.0'>
+ <cell fill='both' weightx='1.0'>
<JCheckBox id="fieldPopulationSeasonGroupChange" text="isisfish.populationSeasons.changeGroup" selected='{getPopulationSeasonInfo().getGroupChange()}'
decorator='boxed' _bean='{PopulationSeasonInfoImpl.class}' _method='"GroupChange"'
- onActionPerformed='seasonGroupChanged()' enabled='{isPopSeasonInfoNotNull()}'/>
+ onActionPerformed='seasonGroupChanged()' enabled='{isPopSeasonInfoNotNull()}' visible='{isAgeGroupType(getPopulationSeasonInfo().getPopulation().getSpecies().getAgeGroupType())}'/>
</cell>
</row>
<row>
+ <cell>
+ <JPanel/>
+ </cell>
+ <cell fill='horizontal' weightx='1.0'>
+ <JCheckBox id="fieldPopulationSeasonReproduction" selected='{getPopulationSeasonInfo().getReproduction()}'
+ onActionPerformed='getPopulationSeasonInfo().setReproduction(fieldPopulationSeasonReproduction.isSelected())'
+ text="isisfish.populationSeasons.Reproduction" enabled='{isPopSeasonInfoNotNull()}'/>
+ </cell>
+ </row>
+ <row>
+ <cell columns='2' fill='both' weightx='1.0' weighty='0.6'>
+ <PopulationSeasonSpacializedUI id='populationSeasonSpecializedUI' bean='{getBean()}'
+ populationSeasonInfo='{getPopulationSeasonInfo()}' popSeasonInfoNotNull='{isPopSeasonInfoNotNull()}'
+ ageGroupType='{isAgeGroupType(!getPopulationSeasonInfo().getPopulation().getSpecies().getAgeGroupType())}'/>
+ </cell>
+ </row>
+ <row>
<cell anchor='east'>
- <JLabel text="isisfish.populationSeasons.distributionSpawning" enabled='{isPopSeasonInfoNotNull()}'/>
+ <JLabel text="isisfish.populationSeasons.distributionSpawning" enabled='{isPopSeasonInfoNotNull()}' visible='{getPopulationSeasonInfo().getReproduction()}'/>
</cell>
- <cell fill='both' weightx='1.0'>
- <JScrollPane>
- <org.codelutin.math.matrix.gui.JAXXMatrixEditor id ='fieldPopulationSeasonReproductionDistribution'
- matrix='{getPopulationSeasonInfo() == null ? null : getPopulationSeasonInfo().getLengthChangeMatrix()}' enabled='{isPopSeasonInfoNotNull()}'
- decorator='boxed' _bean='{PopulationSeasonInfoImpl.class}' _method='"LengthChangeMatrix"'/>
- </JScrollPane>
+ <cell fill='both' weightx='1.0' weighty='0.2'>
+ <org.codelutin.math.matrix.gui.JAXXMatrixEditor id ='fieldPopulationSeasonReproductionDistribution'
+ matrix='{getPopulationSeasonInfo() == null ? null : getPopulationSeasonInfo().getLengthChangeMatrix()}' enabled='{isPopSeasonInfoNotNull()}'
+ visible='{getPopulationSeasonInfo().getReproduction()}'
+ decorator='boxed' _bean='{PopulationSeasonInfoImpl.class}' _method='"LengthChangeMatrix"'/>
</cell>
</row>
<row>
<cell anchor='east'>
<JLabel text="isisfish.populationSeasons.comments" enabled='{isPopSeasonInfoNotNull()}'/>
</cell>
- <cell fill='both' weightx='1.0' weighty='1.0'>
+ <cell fill='both' weightx='1.0' weighty='0.1'>
<JScrollPane>
<JTextArea id="fieldPopulationSeasonComment" text='{jaxx.runtime.SwingUtil.getStringValue(getBean().getSeasonsComment())}' onKeyReleased='getBean().setSeasonsComment(fieldPopulationSeasonComment.getText())' enabled='{isPopSeasonInfoNotNull()}' decorator='boxed'/>
</JScrollPane>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx 2009-04-30 16:21:03 UTC (rev 2161)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx 2009-04-30 16:41:43 UTC (rev 2162)
@@ -32,8 +32,6 @@
import fr.ifremer.isisfish.entities.Formule;
import fr.ifremer.isisfish.entities.SetOfVessels;
import fr.ifremer.isisfish.entities.SetOfVesselsImpl;
-import java.util.logging.Level;
-import java.util.logging.Logger;
boolean init = false;
addPropertyChangeListener("bean", new PropertyChangeListener() {
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-04-30 16:21:03 UTC (rev 2161)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-04-30 16:41:43 UTC (rev 2162)
@@ -608,6 +608,7 @@
isisfish.message.simulation.ended=Simulation ended
isisfish.message.simulation.execution=Simulation execution
isisfish.message.simulation.prepare=Preparing simulation
+isisfish.message.spacialized.visualisation=
isisfish.message.tray.disabled=SystemTray disabled
isisfish.message.update.finished=update finished
isisfish.metier.comments=Comments
@@ -731,10 +732,15 @@
isisfish.populationSeasonInfo.migration=Migration
isisfish.populationSeasonInfo.months=Months
isisfish.populationSeasonInfo.toString=%1$s season %2$s-%3$s
+isisfish.populationSeasons.Reproduction=Reproduction
isisfish.populationSeasons.changeGroup=Change of group
isisfish.populationSeasons.comments=Comments
+isisfish.populationSeasons.computeCoefficient=Calculate coefficient
isisfish.populationSeasons.distributionSpawning=Distribution of spawning
+isisfish.populationSeasons.noSpacialized=Not spacialized
isisfish.populationSeasons.selectSeason=Select a season
+isisfish.populationSeasons.showSpacialized=Show the spacialized
+isisfish.populationSeasons.spacialized=Spacialized
isisfish.populationSeasons.title=Saisons
isisfish.populationZones.betweenSpawningRecruitmentAreas=Match between spawning and recruitment areas
isisfish.populationZones.selectPopulationAreas=Select the population areas
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-04-30 16:21:03 UTC (rev 2161)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-04-30 16:41:43 UTC (rev 2162)
@@ -608,6 +608,7 @@
isisfish.message.simulation.ended=Simulation termin\u00E9e
isisfish.message.simulation.execution=Simulation execution
isisfish.message.simulation.prepare=Pr\u00E9paration de la simulation
+isisfish.message.spacialized.visualisation=
isisfish.message.tray.disabled=Icone de notification d\u00E9sactiv\u00E9e
isisfish.message.update.finished=Mise \u00E0 jour termin\u00E9e
isisfish.metier.comments=Commentaires
@@ -731,10 +732,15 @@
isisfish.populationSeasonInfo.migration=Migration
isisfish.populationSeasonInfo.months=Mois
isisfish.populationSeasonInfo.toString=%1$s saison %2$s-%3$s
+isisfish.populationSeasons.Reproduction=Reproduction
isisfish.populationSeasons.changeGroup=Changement de groupe
isisfish.populationSeasons.comments=Commentaires
+isisfish.populationSeasons.computeCoefficient=Calculer le coefficient
isisfish.populationSeasons.distributionSpawning=Distribution de la reproduction
+isisfish.populationSeasons.noSpacialized=Non spacialized
isisfish.populationSeasons.selectSeason=S\u00E9lectionnez une saison
+isisfish.populationSeasons.showSpacialized=Voir les spacialized
+isisfish.populationSeasons.spacialized=Spacialized
isisfish.populationSeasons.title=Saisons
isisfish.populationZones.betweenSpawningRecruitmentAreas=Correspondance entre les zones de reproduction et de recrutement
isisfish.populationZones.selectPopulationAreas=S\u00E9lectionnez les zones des populations
@@ -1058,4 +1064,4 @@
minimum\ length=
not\ started=
region\ already\ exists\ %s\ use\ 'force'\ argument\ to\ force\ overwrite=
-simulate\ %s\ with\ file\ %s=
+simulate\ %s\ with\ file\ %s=
\ No newline at end of file
1
0
r2161 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator
by chatellier@users.labs.libre-entreprise.org April 30, 2009
by chatellier@users.labs.libre-entreprise.org April 30, 2009
April 30, 2009
Author: chatellier
Date: 2009-04-30 16:21:03 +0000 (Thu, 30 Apr 2009)
New Revision: 2161
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
Log:
Rechargement des ann?\195?\169es lors du rechargement d'un simulation
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-04-30 15:35:37 UTC (rev 2160)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-04-30 16:21:03 UTC (rev 2161)
@@ -154,6 +154,8 @@
public void run() {
getContextValue(SimulAction.class).loadOldSimulation(selected);
refresh();
+ // mise a jour des années
+ fieldSimulParamsNbAnnees.setText(String.valueOf(getContextValue(SimulAction.class).getNumberOfYear()));
setFactorRegion();
setExportSens();
setSensitivityCalculator();
@@ -207,7 +209,7 @@
}
}
protected void setNbAnnees(){
- getContextValue(SimulAction.class).setNbAnnees(fieldSimulParamsNbAnnees.getText());
+ getContextValue(SimulAction.class).setNumberOfYear(fieldSimulParamsNbAnnees.getText());
}
protected void setListSimulParamsStrategiesItems(){
DefaultListModel listSimulParamsStrategiesModel = new DefaultListModel();
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-04-30 15:35:37 UTC (rev 2160)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-04-30 16:21:03 UTC (rev 2161)
@@ -514,7 +514,11 @@
// Years
- public void setNbAnnees(String years) {
+ public int getNumberOfYear() {
+ return param.getNumberOfYear();
+ }
+
+ public void setNumberOfYear(String years) {
param.setNumberOfYear(Integer.parseInt(years));
}
1
0
r2160 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish: datastore simulator
by chatellier@users.labs.libre-entreprise.org April 30, 2009
by chatellier@users.labs.libre-entreprise.org April 30, 2009
April 30, 2009
Author: chatellier
Date: 2009-04-30 15:35:37 +0000 (Thu, 30 Apr 2009)
New Revision: 2160
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java
Log:
Fix hack cache problem (hack still not fixed)
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2009-04-30 15:35:07 UTC (rev 2159)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2009-04-30 15:35:37 UTC (rev 2160)
@@ -71,11 +71,20 @@
@SuppressWarnings("unchecked")
static protected Map<String, RegionStorage> regions = (Map<String, RegionStorage>) new ReferenceMap();
-
/** File to use to store next commit region comment */
protected File commentForNextCommitFile = null;
- protected RegionStorage(File directory, String name) {
+ /**
+ * Constructor.
+ *
+ * @param directory region directory
+ * @param name region name
+ *
+ * FIXME constrcutor is publicc for hack in
+ * fr.ifremer.isisfish.simulator.SimulationParameter.fromProperties(File, Properties)
+ * set protected when fix hack
+ */
+ public RegionStorage(File directory, String name) {
super(directory, name);
commentForNextCommitFile = new File(getDirectory(), "commentForNextCommit.txt");
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2009-04-30 15:35:07 UTC (rev 2159)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2009-04-30 15:35:37 UTC (rev 2160)
@@ -349,7 +349,8 @@
// FIXME not good place and code
if(this.region == null || !region.getName().equals(regionName)) {
- this.region = RegionStorage.getRegion(directory, regionName);
+ // ATTENTION: directory pointe sur le repertoire de la simulation et non de la region
+ this.region = new RegionStorage(directory, regionName); // RegionStorage.getRegion(directory, regionName);
}
try {
1
0
r2159 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator
by chatellier@users.labs.libre-entreprise.org April 30, 2009
by chatellier@users.labs.libre-entreprise.org April 30, 2009
April 30, 2009
Author: chatellier
Date: 2009-04-30 15:35:07 +0000 (Thu, 30 Apr 2009)
New Revision: 2159
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
Log:
Re-enable combo box update
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-04-30 12:18:41 UTC (rev 2158)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-04-30 15:35:07 UTC (rev 2159)
@@ -48,11 +48,10 @@
import fr.ifremer.isisfish.simulator.launcher.SimulationServiceListener;
// instances variables déclaration
-// FIXME les liste ne sont plus actualisé, ca prend trop de resources
-//SimulationServiceListener simulationListener;
+SimulationServiceListener simulationListener;
// end constructor code
-/*simulationListener = new SimulationServiceListener() {
+simulationListener = new SimulationServiceListener() {
@Override
public void simulationStart(SimulationService simService, SimulationJob job) {
}
@@ -65,15 +64,16 @@
@Override
public void clearJobDone(SimulationService simService) {
}
-}*/
+}
public ParamsUI(SimulAction action) {
setContextValue(action);
}
public void refresh() {
- //SimulationService.getService().removeSimulationServiceListener(simulationListener);
- //SimulationService.getService().addSimulationServiceListener(simulationListener);
+ // TODO add comment why remove/readd ?
+ SimulationService.getService().removeSimulationServiceListener(simulationListener);
+ SimulationService.getService().addSimulationServiceListener(simulationListener);
if (getContextValue(SimulAction.class).getSimulationStorage() != null) {
fieldSimulParamsName.setText(getContextValue(SimulAction.class).getSimulationStorage().getName());
}
1
0
r2158 - in isis-fish/trunk: . src/main/java/fr/ifremer/isisfish src/main/java/fr/ifremer/isisfish/actions src/main/java/fr/ifremer/isisfish/datastore src/main/java/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org April 30, 2009
by chatellier@users.labs.libre-entreprise.org April 30, 2009
April 30, 2009
Author: chatellier
Date: 2009-04-30 12:18:41 +0000 (Thu, 30 Apr 2009)
New Revision: 2158
Modified:
isis-fish/trunk/pom.xml
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisTray.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationInformation.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
Log:
Modify zip/unzip without export/import
Modified: isis-fish/trunk/pom.xml
===================================================================
--- isis-fish/trunk/pom.xml 2009-04-29 15:04:54 UTC (rev 2157)
+++ isis-fish/trunk/pom.xml 2009-04-30 12:18:41 UTC (rev 2158)
@@ -527,6 +527,11 @@
</links>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <version>1.2</version>
+ </plugin>
</plugins>
</reporting>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisTray.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisTray.java 2009-04-29 15:04:54 UTC (rev 2157)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisTray.java 2009-04-30 12:18:41 UTC (rev 2158)
@@ -1,6 +1,5 @@
/* *##%
- * Copyright (C) 2007
- * Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
+ * Copyright (C) 2007 - 2009 Ifremer, Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -17,18 +16,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-/* *
- * IsisTray.java
- *
- * Created: 6 janv. 07 13:52:25
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-
package fr.ifremer.isisfish;
import static org.codelutin.i18n.I18n._;
@@ -51,54 +38,72 @@
import fr.ifremer.isisfish.simulator.launcher.SimulationServiceListener;
/**
+ * IsisTray.java
+ *
+ * Created: 6 janv. 07 13:52:25
+ *
* @author poussin
+ * @version $Revision$
*
+ * Last update: $Date$
+ * by : $Author$
*/
-public abstract class IsisTray implements SimulationServiceListener, PropertyChangeListener {
+public abstract class IsisTray implements SimulationServiceListener,
+ PropertyChangeListener {
/** to use log facility, just put in your code: log.info(\"...\"); */
- protected static Log log = LogFactory.getLog(IsisTray.class);
+ protected static final Log log = LogFactory.getLog(IsisTray.class);
protected static final ImageIcon TRAY_IMAGE_STOP = Resource.getIcon("/images/BulbR.gif");
protected static final ImageIcon TRAY_IMAGE_START = Resource.getIcon("/images/BulbG.gif");
-
- static final public String NO_SIMULATION_TEXT = n_("isisfish.tray.simulation.no");
- /** text a utiliser pour afficher l'etat de la simulation en cours
+
+ private static final String NO_SIMULATION_TEXT = n_("isisfish.tray.simulation.no");
+
+ /**
+ * Texte a utiliser pour afficher l'etat de la simulation en cours.
+ *
* <li>0 = id de simulation
* <li>1 = pas de temps courant de la simulation
* <li>2 = nombre total de pas de temps attendu
*/
- static final public String SIMULATION_TEXT = n_("isisfish.tray.simulation");
-
- static protected IsisTray instance = null;
-
- abstract public void setImage(ImageIcon image);
- abstract public void setToolTip(String text);
-
- static public IsisTray getInstance() {
+ private static final String SIMULATION_TEXT = n_("isisfish.tray.simulation");
+
+ private static IsisTray instance = null;
+
+ public abstract void setImage(ImageIcon image);
+
+ public abstract void setToolTip(String text);
+
+ public static IsisTray getInstance() {
if (instance == null) {
if (AWTSystemTray.isSupported()) {
instance = new AWTSystemTray();
} else {
instance = new DummySystemTray();
}
- log.info("Use System tray: " + instance.getClass().getName());
+ if (log.isInfoEnabled()) {
+ log.info("Use System tray: " + instance.getClass().getName());
+ }
instance.setToolTip(_(NO_SIMULATION_TEXT));
- SimulationService.getService().addSimulationServiceListener(instance);
+ SimulationService.getService().addSimulationServiceListener(
+ instance);
}
return instance;
}
-
- /* (non-Javadoc)
+
+ /*
* @see fr.ifremer.isisfish.simulator.SimulationQueueListener#simulationStart(fr.ifremer.isisfish.simulator.SimulationQueueEvent)
*/
public void simulationStart(SimulationService simService, SimulationJob job) {
SimulationControl control = job.getItem().getControl();
control.addPropertyChangeListener(this);
- getInstance().setToolTip(_(SIMULATION_TEXT, control.getId(), control.getProgress(), control.getProgressMax()));
+ getInstance().setToolTip(
+ _(SIMULATION_TEXT, control.getId(), control.getProgress(),
+ control.getProgressMax()));
getInstance().setImage(TRAY_IMAGE_START);
}
- /* (non-Javadoc)
+
+ /*
* @see fr.ifremer.isisfish.simulator.SimulationQueueListener#simulationStop(fr.ifremer.isisfish.simulator.SimulationQueueEvent)
*/
public void simulationStop(SimulationService simService, SimulationJob job) {
@@ -111,51 +116,54 @@
public void clearJobDone(SimulationService simService) {
// nothing to do
}
-
- /* (non-Javadoc)
+
+ /*
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
*/
public void propertyChange(PropertyChangeEvent evt) {
- SimulationControl control = (SimulationControl)evt.getSource();
- getInstance().setToolTip(_(SIMULATION_TEXT, control.getId(), control.getProgress(), control.getProgressMax()));
+ SimulationControl control = (SimulationControl) evt.getSource();
+ getInstance().setToolTip(
+ _(SIMULATION_TEXT, control.getId(), control.getProgress(),
+ control.getProgressMax()));
}
-
+
static class DummySystemTray extends IsisTray {
- /* (non-Javadoc)
+ /*
* @see fr.ifremer.isisfish.IsisTray#setImage(javax.swing.ImageIcon)
*/
@Override
public void setImage(ImageIcon image) {
}
- /* (non-Javadoc)
+ /*
* @see fr.ifremer.isisfish.IsisTray#setToolTip(java.lang.String)
*/
@Override
- public void setToolTip(String text) {
+ public void setToolTip(String text) {
}
-
+
}
-
+
static class AWTSystemTray extends IsisTray {
protected java.awt.TrayIcon trayIcon = null;
-
+
static public boolean isSupported() {
boolean result = SystemTray.isSupported();
return result;
}
-
+
@Override
public void setImage(ImageIcon image) {
trayIcon.setImage(image.getImage());
}
+
@Override
public void setToolTip(String text) {
trayIcon.setToolTip(text);
}
-
- public AWTSystemTray() {
+
+ public AWTSystemTray() {
if (SystemTray.isSupported()) {
// get the SystemTray instance
SystemTray tray = SystemTray.getSystemTray();
@@ -179,7 +187,8 @@
popup.add(defaultItem);*/
/// ... add other items
// construct a TrayIcon
- trayIcon = new java.awt.TrayIcon(TRAY_IMAGE_STOP.getImage(), "Tray Demo", null);
+ trayIcon = new java.awt.TrayIcon(TRAY_IMAGE_STOP.getImage(),
+ "Tray Demo", null);
trayIcon.setImageAutoSize(true);
// set the TrayIcon properties
//trayIcon.addActionListener(trayListener);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java 2009-04-29 15:04:54 UTC (rev 2157)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java 2009-04-30 12:18:41 UTC (rev 2158)
@@ -23,11 +23,13 @@
import java.io.File;
import java.io.FileInputStream;
+import java.util.Collections;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codelutin.util.FileUtil;
+import org.codelutin.util.ZipUtil;
import org.codelutin.util.ApplicationConfig.Action.Step;
import fr.ifremer.isisfish.IsisConfig;
@@ -71,8 +73,12 @@
File region) throws Exception {
Properties props = new Properties();
FileInputStream inStream = new FileInputStream(parameterFile);
- props.load(inStream);
- inStream.close();
+ try {
+ props.load(inStream);
+ }
+ finally {
+ inStream.close();
+ }
SimulationParameter params = new SimulationParameter();
params.fromProperties(SimulationStorage.getSimulationDirectory(),
@@ -162,11 +168,17 @@
SimulationStorage simulationStorage = launcher.getSimulationStorage(SimulationService.getService(), control);
// zip + md5 creation
- simulationStorage.createZip(simulationResultZip, true);
-
+ //simulationStorage.createZip(simulationResultZip, true);
// close all resources
+ //simulationStorage.getStorage().closeContext();
+
+ // FIXME more performant than simulationStorage.createZip
+ //ZipUtil.compressFiles(simulationResultZip, simulationStorage.getFile(),
+ // Collections.singletonList(new File(simulationStorage.getFile(), simulationStorage.getName())), true);
+ ZipUtil.compress(simulationResultZip, simulationStorage.getFile(), null, true);
+
simulationStorage.getStorage().closeContext();
-
+
// remove simulation
simulationStorage.delete(false);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationInformation.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationInformation.java 2009-04-29 15:04:54 UTC (rev 2157)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationInformation.java 2009-04-30 12:18:41 UTC (rev 2158)
@@ -1,6 +1,5 @@
/* *##%
- * Copyright (C) 2007
- * Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
+ * Copyright (C) 2007 - 2009 Ifremer, Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -17,18 +16,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-/* *
- * SimulationInformation.java
- *
- * Created: 22 mars 07 11:01:01
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-
package fr.ifremer.isisfish.datastore;
import static org.codelutin.i18n.I18n._;
@@ -50,7 +37,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
/**
* Cette classe permet de conserver des informations sur le deroulement d'une
* simulation. La plupart des informations sont automatiquement renseignees,
@@ -58,6 +44,10 @@
* {@link #addInformation(String)}
*
* @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
*/
public class SimulationInformation {
@@ -84,7 +74,9 @@
this.file = file;
if (file.exists()) {
try {
- info.load(new FileReader(file));
+ FileReader reader = new FileReader(file);
+ info.load(reader);
+ reader.close();
} catch (IOException eee) {
if (log.isWarnEnabled()) {
log.warn(_("isisfish.error.read.simulation", file.getPath()), eee);
@@ -93,7 +85,7 @@
}
}
- /* (non-Javadoc)
+ /*
* @see java.lang.Object#toString()
*/
@Override
@@ -131,7 +123,9 @@
protected void store() {
try {
- info.store(new FileWriter(file), "Simulation Information");
+ FileWriter writer = new FileWriter(file);
+ info.store(writer, "Simulation Information");
+ writer.close();
} catch (IOException eee) {
if (log.isWarnEnabled()) {
log.warn(_("isisfish.error.write.simulation", file.getPath()), eee);
@@ -217,7 +211,7 @@
}
}
if (value == null) {
- value = new Long(0);
+ value = Long.valueOf(0);
}
result.put(exportName, value);
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-29 15:04:54 UTC (rev 2157)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-30 12:18:41 UTC (rev 2158)
@@ -23,6 +23,7 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.StringWriter;
import java.io.Writer;
import java.rmi.RemoteException;
@@ -36,10 +37,10 @@
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.codelutin.topia.TopiaException;
import org.codelutin.util.FileUtil;
import org.codelutin.util.MD5;
import org.codelutin.util.MD5InputStream;
+import org.codelutin.util.ZipUtil;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
@@ -184,6 +185,9 @@
public void simulationStarted() {
try {
semaphore.acquire();
+ if (log.isDebugEnabled()) {
+ log.debug("Semaphore have now " + semaphore.availablePermits() + " available resources");
+ }
} catch (InterruptedException e) {
if (log.isErrorEnabled()) {
log.error("Semaphore aquiere has been interrupted", e);
@@ -196,6 +200,9 @@
*/
protected void simulationEnded() {
semaphore.release();
+ if (log.isDebugEnabled()) {
+ log.debug("Semaphore have now " + semaphore.availablePermits() + " available resources");
+ }
}
/**
@@ -203,7 +210,7 @@
*/
@Override
public void simulationStopRequest() {
- semaphore.release();
+ simulationEnded();
}
/**
@@ -346,7 +353,9 @@
// mais qu'elle a demandée a être arrêté
simulationEnded();
- SimulationStorage.importZip(resultZipFile);
+ // FIXME too slow methods
+ //SimulationStorage.importZip(resultZipFile);
+ ZipUtil.uncompress(resultZipFile, SimulationStorage.getSimulationDirectory());
if (log.isDebugEnabled()) {
log.debug("Simulation imported : " + resultZipFile.getAbsolutePath());
@@ -373,11 +382,11 @@
if (log.isDebugEnabled()) {
log.debug(_("Error while downloading file : %s", e.getMessage()));
}
- } catch (TopiaException e) {
+ } /*catch (TopiaException e) {
if (log.isErrorEnabled()) {
log.error("Can't import result zip file", e);
}
- }
+ }*/
// INFORMATION file
try {
@@ -392,7 +401,13 @@
// on dit juste que la simulation a eu une demande
// d'arret pour qu'elle s'arrete dans l'UI
Properties infoProperties = new Properties();
- infoProperties.load(new FileInputStream(infoFile));
+ InputStream isInfoFile = new FileInputStream(infoFile);
+ try {
+ infoProperties.load(isInfoFile);
+ }
+ finally {
+ isInfoFile.close();
+ }
if (!StringUtils.isEmpty(infoProperties
.getProperty("exception"))) {
synchronized (control) {
@@ -649,7 +664,7 @@
String remoteFile = getRemoteResultZipPath(simulationId);
SSHUtils.scpFrom(session, remoteFile, localFile);
-
+
if (!StringUtils.isEmpty(md5sum)) {
MD5InputStream in = new MD5InputStream(new FileInputStream(localFile));
while(in.read() != -1) {}
1
0
r2157 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish: simulator/launcher ui/simulator
by chatellier@users.labs.libre-entreprise.org April 29, 2009
by chatellier@users.labs.libre-entreprise.org April 29, 2009
April 29, 2009
Author: chatellier
Date: 2009-04-29 15:04:54 +0000 (Wed, 29 Apr 2009)
New Revision: 2157
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
Log:
Change again semaphore mecanism.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2009-04-29 14:43:10 UTC (rev 2156)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2009-04-29 15:04:54 UTC (rev 2157)
@@ -533,18 +533,8 @@
* Do nothing (no restriction on inprocess launcher).
*/
@Override
- public void simulationEnded() {
+ public void simulationStopRequest() {
}
- /**
- * {@inheritDoc}
- *
- * Do nothing (no restriction on inprocess launcher).
- */
- @Override
- public void simulationStarted() {
-
- }
-
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java 2009-04-29 14:43:10 UTC (rev 2156)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java 2009-04-29 15:04:54 UTC (rev 2157)
@@ -251,17 +251,7 @@
* Do nothing (no restriction on xml rpc launcher).
*/
@Override
- public void simulationEnded() {
+ public void simulationStopRequest() {
}
-
- /**
- * {@inheritDoc}
- *
- * Do nothing (no restriction on xml rpc launcher).
- */
- @Override
- public void simulationStarted() {
-
- }
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-29 14:43:10 UTC (rev 2156)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-29 15:04:54 UTC (rev 2157)
@@ -178,13 +178,9 @@
}
/**
- * {@inheritDoc}
- *
* Use semaphore to limit simultaneous simulation number on caparmor.
- *
* @see Semaphore
*/
- @Override
public void simulationStarted() {
try {
semaphore.acquire();
@@ -196,12 +192,17 @@
}
/**
+ * Release one resource on semaphore.
+ */
+ protected void simulationEnded() {
+ semaphore.release();
+ }
+
+ /**
* {@inheritDoc}
- *
- * Release one resource onr semaphore.
*/
@Override
- public void simulationEnded() {
+ public void simulationStopRequest() {
semaphore.release();
}
@@ -219,7 +220,7 @@
String simulationPrescript) throws RemoteException {
// ask for available resources on caparmor
- // bloquin until available
+ // blocking until available
simulationStarted();
// start ssh session
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-04-29 14:43:10 UTC (rev 2156)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-04-29 15:04:54 UTC (rev 2157)
@@ -436,9 +436,14 @@
// FIXME check SimulationStorage.exists(control.getId()) condition
if ((control.getProgress() > 0
- && control.getProgress() >= control.getProgressMax() && SimulationStorage.exists(control.getId())) || control.isStopSimulationRequest()) {
+ && control.getProgress() >= control.getProgressMax() && SimulationStorage.exists(control.getId()))) {
simulationEnded = true;
}
+
+ if (control.isStopSimulationRequest()) {
+ launcher.simulationStopRequest(); // to release one resource
+ simulationEnded = true;
+ }
} catch (RemoteException e) {
if (log.isErrorEnabled()) {
log.error("Progression thread update error", e);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java 2009-04-29 14:43:10 UTC (rev 2156)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java 2009-04-29 15:04:54 UTC (rev 2157)
@@ -105,23 +105,11 @@
*/
public void updateControl(SimulationService simulationService,
SimulationControl control) throws RemoteException;
-
-
- /**
- * Call it before starting a simulation.
- *
- * This call is bloquing until available resources.
- *
- * @deprecated managed by launcher himelf
- */
- public void simulationStarted();
/**
- * Call it after simulation end.
+ * Called if a started simulation has been ask to stop.
*
- * Release one resources.
- *
- * @deprecated managed by launcher himelf
+ * TODO review this mecanism (some resource could be not released)
*/
- public void simulationEnded();
+ public void simulationStopRequest();
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2009-04-29 14:43:10 UTC (rev 2156)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2009-04-29 15:04:54 UTC (rev 2157)
@@ -315,17 +315,7 @@
* Do nothing (no restriction on subprocess launcher).
*/
@Override
- public void simulationEnded() {
+ public void simulationStopRequest() {
}
-
- /**
- * {@inheritDoc}
- *
- * Do nothing (no restriction on subprocess launcher).
- */
- @Override
- public void simulationStarted() {
-
- }
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx 2009-04-29 14:43:10 UTC (rev 2156)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx 2009-04-29 15:04:54 UTC (rev 2157)
@@ -17,18 +17,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-
-/* *
- * QueueUI.java
- *
- * Created: 1 aout 2005 18:37:25 CEST
- *
- * @author Benjamin POUSSIN <poussin at codelutin.com>
- * @version $Revision: 1312 $
- *
- * Last update: $Date: 2008-08-28 10:21:07 +0200 (jeu, 28 aoû 2008) $
- * by : $Author: sletellier $
- */
-->
<Table>
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-04-29 14:43:10 UTC (rev 2156)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-04-29 15:04:54 UTC (rev 2157)
@@ -237,7 +237,7 @@
return result;
}
- protected void stopSimulation(SimulationJob job) {
+ public void stopSimulation(SimulationJob job) {
job.stop();
if (log.isInfoEnabled()) {
log.info(_("User stop simulation %s", job.getItem().getControl()
1
0
r2156 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org April 29, 2009
by chatellier@users.labs.libre-entreprise.org April 29, 2009
April 29, 2009
Author: chatellier
Date: 2009-04-29 14:43:10 +0000 (Wed, 29 Apr 2009)
New Revision: 2156
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
Log:
Fix test
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-29 14:42:22 UTC (rev 2155)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-29 14:43:10 UTC (rev 2156)
@@ -82,8 +82,8 @@
protected Configuration freemarkerConfiguration;
/** Freemarker qsub template. */
- //protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/isis-launch-with-qsub.seq";
- protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/isis-launch-with-cron.seq";
+ protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/isis-launch-with-qsub.seq";
+ //protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/isis-launch-with-cron.seq";
/**
* Opened session. Stored in static context to not reask passphrase at each
1
0
r2155 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org April 29, 2009
by chatellier@users.labs.libre-entreprise.org April 29, 2009
April 29, 2009
Author: chatellier
Date: 2009-04-29 14:42:22 +0000 (Wed, 29 Apr 2009)
New Revision: 2155
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
Log:
Add comment (for semaphore hack) don't work in all case.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-29 14:35:39 UTC (rev 2154)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-29 14:42:22 UTC (rev 2155)
@@ -82,8 +82,8 @@
protected Configuration freemarkerConfiguration;
/** Freemarker qsub template. */
- protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/isis-launch-with-qsub.seq";
- //protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/isis-launch-with-cron.seq";
+ //protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/isis-launch-with-qsub.seq";
+ protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/isis-launch-with-cron.seq";
/**
* Opened session. Stored in static context to not reask passphrase at each
@@ -340,6 +340,9 @@
if (resultZipFile != null) {
// FIXME done here to not break upload during import
+ // FIXME je pense que les resources ne sont
+ // pas liberees si la simulation a commencé
+ // mais qu'elle a demandée a être arrêté
simulationEnded();
SimulationStorage.importZip(resultZipFile);
1
0
r2154 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator: . launcher
by chatellier@users.labs.libre-entreprise.org April 29, 2009
by chatellier@users.labs.libre-entreprise.org April 29, 2009
April 29, 2009
Author: chatellier
Date: 2009-04-29 14:35:39 +0000 (Wed, 29 Apr 2009)
New Revision: 2154
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationProperties.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java
Log:
Start simulation uploading before importing zip
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationProperties.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationProperties.java 2009-04-29 14:12:34 UTC (rev 2153)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationProperties.java 2009-04-29 14:35:39 UTC (rev 2154)
@@ -52,11 +52,14 @@
} catch (IOException e) {
log.warn(_("isisfish.error.load.file", file));
} finally {
- if (reader != null) try {
- reader.close();
- } catch (IOException e) {
- //TODO
+ if (reader != null) {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ //TODO
+ }
}
+
}
}
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-29 14:12:34 UTC (rev 2153)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-29 14:35:39 UTC (rev 2154)
@@ -338,6 +338,10 @@
File resultZipFile = downloadZIPResults(sshSession, control.getId(), md5sum);
if (resultZipFile != null) {
+
+ // FIXME done here to not break upload during import
+ simulationEnded();
+
SimulationStorage.importZip(resultZipFile);
if (log.isDebugEnabled()) {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-04-29 14:12:34 UTC (rev 2153)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-04-29 14:35:39 UTC (rev 2154)
@@ -468,7 +468,8 @@
SimulationControl control = job.getItem().getControl();
// Release one available resource on launcher
- launcher.simulationEnded();
+ // FIXME done by launcher himself
+ //launcher.simulationEnded();
if (log.isInfoEnabled()) {
log.info("Do post simulation operation for " + control.getId());
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java 2009-04-29 14:12:34 UTC (rev 2153)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java 2009-04-29 14:35:39 UTC (rev 2154)
@@ -111,6 +111,8 @@
* Call it before starting a simulation.
*
* This call is bloquing until available resources.
+ *
+ * @deprecated managed by launcher himelf
*/
public void simulationStarted();
@@ -118,6 +120,8 @@
* Call it after simulation end.
*
* Release one resources.
+ *
+ * @deprecated managed by launcher himelf
*/
public void simulationEnded();
}
1
0
r2153 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions
by chatellier@users.labs.libre-entreprise.org April 29, 2009
by chatellier@users.labs.libre-entreprise.org April 29, 2009
April 29, 2009
Author: chatellier
Date: 2009-04-29 14:12:34 +0000 (Wed, 29 Apr 2009)
New Revision: 2153
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java
Log:
Delete simulation after closing it
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java 2009-04-29 13:27:09 UTC (rev 2152)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java 2009-04-29 14:12:34 UTC (rev 2153)
@@ -164,12 +164,12 @@
// zip + md5 creation
simulationStorage.createZip(simulationResultZip, true);
+ // close all resources
+ simulationStorage.getStorage().closeContext();
+
// remove simulation
simulationStorage.delete(false);
- // close all resources
- simulationStorage.getStorage().closeContext();
-
// FIXME integrer ca dans le process normal d'init
IsisFish.quit();
}
1
0
r2152 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator
by chatellier@users.labs.libre-entreprise.org April 29, 2009
by chatellier@users.labs.libre-entreprise.org April 29, 2009
April 29, 2009
Author: chatellier
Date: 2009-04-29 13:27:09 +0000 (Wed, 29 Apr 2009)
New Revision: 2152
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
Log:
Desactive l'actualisation des listes (trop de resources)
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-04-29 13:06:25 UTC (rev 2151)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-04-29 13:27:09 UTC (rev 2152)
@@ -48,10 +48,11 @@
import fr.ifremer.isisfish.simulator.launcher.SimulationServiceListener;
// instances variables déclaration
-SimulationServiceListener simulationListener;
+// FIXME les liste ne sont plus actualisé, ca prend trop de resources
+//SimulationServiceListener simulationListener;
// end constructor code
-simulationListener = new SimulationServiceListener() {
+/*simulationListener = new SimulationServiceListener() {
@Override
public void simulationStart(SimulationService simService, SimulationJob job) {
}
@@ -64,15 +65,15 @@
@Override
public void clearJobDone(SimulationService simService) {
}
-}
+}*/
public ParamsUI(SimulAction action) {
setContextValue(action);
}
public void refresh() {
- SimulationService.getService().removeSimulationServiceListener(simulationListener);
- SimulationService.getService().addSimulationServiceListener(simulationListener);
+ //SimulationService.getService().removeSimulationServiceListener(simulationListener);
+ //SimulationService.getService().addSimulationServiceListener(simulationListener);
if (getContextValue(SimulAction.class).getSimulationStorage() != null) {
fieldSimulParamsName.setText(getContextValue(SimulAction.class).getSimulationStorage().getName());
}
1
0
r2151 - in isis-fish/trunk: . src/main/java/fr/ifremer/isisfish src/main/java/fr/ifremer/isisfish/actions src/main/java/fr/ifremer/isisfish/datastore src/main/java/fr/ifremer/isisfish/simulator/launcher src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh src/main/resources/templates/ssh src/test/java/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org April 29, 2009
by chatellier@users.labs.libre-entreprise.org April 29, 2009
April 29, 2009
Author: chatellier
Date: 2009-04-29 13:06:25 +0000 (Wed, 29 Apr 2009)
New Revision: 2151
Added:
isis-fish/trunk/src/main/resources/templates/ssh/isis-launch-with-cron.seq
isis-fish/trunk/src/main/resources/templates/ssh/isis-launch-with-qsub.seq
Removed:
isis-fish/trunk/src/main/resources/templates/ssh/launch-isis-cron.seq
isis-fish/trunk/src/main/resources/templates/ssh/launch-isis-qsub.seq
Modified:
isis-fish/trunk/pom.xml
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/DataStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUtils.java
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java
Log:
New simulation result donwload implementation.
Make zip on server, and import zip on client.
Modified: isis-fish/trunk/pom.xml
===================================================================
--- isis-fish/trunk/pom.xml 2009-04-28 15:17:38 UTC (rev 2150)
+++ isis-fish/trunk/pom.xml 2009-04-29 13:06:25 UTC (rev 2151)
@@ -342,18 +342,17 @@
<topia.version>2.1.4</topia.version>
<topia.service.version>1.0.2</topia.service.version>
<lutinmatrix.version>1.3</lutinmatrix.version>
- <lutinutil.version>1.0.4</lutinutil.version>
+ <lutinutil.version>1.0.5-SNAPSHOT</lutinutil.version>
<i18n.version>0.9</i18n.version>
<lutinwidget.version>0.14</lutinwidget.version>
<generator.version>0.64</generator.version>
- <lutinj2r.version>0.3</lutinj2r.version>
+ <lutinj2r.version>0.4-SNAPSHOT</lutinj2r.version>
<jrst.version>0.8.4</jrst.version>
<license-switcher.version>0.6</license-switcher.version>
<openmap.version>4.6.4</openmap.version>
<aspectwerkz.version>2.0</aspectwerkz.version>
<sshtool.version>0.2.2</sshtool.version>
<xmlrpc.version>3.1</xmlrpc.version>
- <javadoc.version>2.5</javadoc.version>
<!-- for compilation test to run -->
<maven.test.forkMode>once</maven.test.forkMode>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-04-28 15:17:38 UTC (rev 2150)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-04-29 13:06:25 UTC (rev 2151)
@@ -874,9 +874,8 @@
VCS_COMMIT(_(""), VCSAction.class.getName() + "#vcsCommit", "--vcsCommit"),
SIMULATE_WITH_REGION(_(""), SimulationAction.class.getName() + "#simulateWithRegion", "--simulateWithRegion"),
- SIMULATE_WITH_SIMULATION(_(""), SimulationAction.class.getName() + "#simulateWithSimulation", "--simulateWithSimulation"),
- SIMULATE_WITH_SIMULATION_AND_SCRIPT(_(""), SimulationAction.class.getName() + "#simulateWithSimulationAndScript", "--simulateWithSimulationAndScript"),
- ;
+ SIMULATE_REMOTELLY(_(""), SimulationAction.class.getName() + "#simulateRemotelly", "--simulateRemotelly"),
+ SIMULATE_REMOTELLY_WITH_PRESCRIPT(_(""), SimulationAction.class.getName() + "#simulateRemotellyWithPreScript", "--simulateRemotellyWithPreScript");
public String description;
public String action;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2009-04-28 15:17:38 UTC (rev 2150)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2009-04-29 13:06:25 UTC (rev 2151)
@@ -1,6 +1,5 @@
/* *##%
- * Copyright (C) 2005
- * Ifremer, Code Lutin, Cedric Pineau, Benjamin Poussin
+ * Copyright (C) 2005 - 2009 Ifremer, Code Lutin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -17,18 +16,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-/* *
- * IsisFish.java
- *
- * Created: 1 aout 2005 18:37:25 CEST
- *
- * @author Benjamin POUSSIN <poussin at codelutin.com>
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-
package fr.ifremer.isisfish;
import static org.codelutin.i18n.I18n._;
@@ -88,9 +75,15 @@
/**
* This is the main class of <code>IsisFish</code> application.
+ *
+ * Created: 1 aout 2005 18:37:25 CEST
*
- * @author poussin
+ * @author Benjamin POUSSIN <poussin at codelutin.com>
* @author chemit
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author$
*/
public class IsisFish { // IsisFish
@@ -135,6 +128,9 @@
// action after init
config.doAction(IsisConfig.STEP_AFTER_INIT);
+ // initVCS ask for passphrase, ui must be set before
+ initLoookAndFeel();
+
// static vcs init (needed for some actions)
try {
initVCS();
@@ -142,9 +138,6 @@
log.warn(_("Error during vcs initialisation"), eee);
}
- // initVCS ask for passphrase, ui must be set before
- initLoookAndFeel();
-
if (log.isInfoEnabled()) {
log.info(_("isisfish.launching", config.getElapsedTimeAsString()));
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java 2009-04-28 15:17:38 UTC (rev 2150)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/SimulationAction.java 2009-04-29 13:06:25 UTC (rev 2151)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002-2008 Code Lutin, Benjamin Poussin
+ * Copyright (C) 2002-2009 Code Lutin, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -28,6 +28,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codelutin.util.FileUtil;
+import org.codelutin.util.ApplicationConfig.Action.Step;
import fr.ifremer.isisfish.IsisConfig;
import fr.ifremer.isisfish.IsisFish;
@@ -95,45 +96,62 @@
}
/**
- * Launch a simulation with specified simulationId and simulation zip.
+ * Launch a simulation specialized for remote launch (caparmor).
*
+ * Done operations :
+ * - simulation zip import
+ * - pre script set
+ * - simulation
+ * - zip creation
+ * - checksum creation (zip creation name + .md5 extension)
+ * - delete simulation
+ *
* @param simulationId id de simulation
- * @param simulationZip Zip de la simulation
+ * @param simulationZip zip de la simulation
+ * @param simulationResultZip simulation result zip
* @throws Exception
*/
- public static void simulateWithSimulation(String simulationId, File simulationZip)
- throws Exception {
- // just call with null pre script
- simulateWithSimulationAndScript(simulationId, simulationZip, null);
+ @Step(IsisConfig.STEP_AFTER_INIT_VCS)
+ public static void simulateRemotelly(String simulationId, File simulationZip, File simulationResultZip) throws Exception {
+ simulateRemotellyWithPreScript(simulationId, simulationZip, simulationResultZip, null);
}
-
+
/**
- * Launch a simulation with specified simulationId, simulationZip
- * and simulationPrescript.
+ * Launch a simulation specialized for remote launch (caparmor).
*
+ * Done operations :
+ * - simulation zip import
+ * - pre script set
+ * - simulation
+ * - zip creation
+ * - checksum creation (zip creation name + .md5 extension)
+ * - delete simulation
+ *
* @param simulationId id de simulation
- * @param simulationZip Zip de la simulation
- * @param simulationPrescript simulation prescript
+ * @param simulationZip zip de la simulation
+ * @param simulationPrescript simulation prescript (can be null, empty)
+ * @param simulationResultZip simulation result zip
* @throws Exception
*/
- public static void simulateWithSimulationAndScript(String simulationId, File simulationZip, File simulationPrescript)
+ @Step(IsisConfig.STEP_AFTER_INIT_VCS)
+ public static void simulateRemotellyWithPreScript(String simulationId, File simulationZip, File simulationResultZip, File simulationPrescript)
throws Exception {
-
+
if (log.isInfoEnabled()) {
- log.info("Command line action : simulateWithSimulation (" + simulationId + ", " + simulationZip.getAbsolutePath() + ", " + simulationPrescript + ")");
+ log.info("Command line action : simulateRemotelly (" + simulationId + ", " + simulationZip.getAbsolutePath() + ", " + simulationPrescript + ")");
}
String name = simulationId; // ne pas mettre la date, car le sub process la met deja + " " + new SimpleDateFormat("yyyy-MM-dd-HH-mm").format(new Date());
-
+
SimulationControl control = new SimulationControl(name);
// pour forcer le fichier de control a être sauver
// pour ensuite être lu par le processus parent
control.setAutoSaveState(true);
-
+
// lancement de la simulation
SimulatorLauncher launcher = new InProcessSimulatorLauncher();
-
+
//SimulationStorage simulation = launcher.simulate(null, control, simulationZip);
//simulation.getStorage().closeContext();
String simulationPrescriptContent = null;
@@ -141,9 +159,17 @@
simulationPrescriptContent = FileUtil.readAsString(simulationPrescript);
}
launcher.simulate(null, control, simulationZip, simulationPrescriptContent);
- SimulationStorage simulation = launcher.getSimulationStorage(SimulationService.getService(), control);
- simulation.getStorage().closeContext();
-
+ SimulationStorage simulationStorage = launcher.getSimulationStorage(SimulationService.getService(), control);
+
+ // zip + md5 creation
+ simulationStorage.createZip(simulationResultZip, true);
+
+ // remove simulation
+ simulationStorage.delete(false);
+
+ // close all resources
+ simulationStorage.getStorage().closeContext();
+
// FIXME integrer ca dans le process normal d'init
IsisFish.quit();
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/DataStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/DataStorage.java 2009-04-28 15:17:38 UTC (rev 2150)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/DataStorage.java 2009-04-29 13:06:25 UTC (rev 2151)
@@ -234,8 +234,6 @@
}
/*
- * (non-Javadoc)
- *
* @see fr.ifremer.isisfish.datastore.VersionStorage#delete(boolean)
*/
@Override
@@ -252,12 +250,12 @@
}
/**
- * copy le DataStorage courante Attention, all script with package name will
- * not be modified you must change package name in each script to reflect
- * new name
+ * Copy le DataStorage courant.
*
- * @param toName
- * le nouveau nom de la region
+ * Attention, all script with package name will not be modified you must
+ * change package name in each script to reflect new name
+ *
+ * @param toName le nouveau nom de la region
* @throws IOException si problème lors de la copie
* @throws TopiaException ???
*/
@@ -342,10 +340,22 @@
* @throws IOException si problème lors de la création du zip
*/
public File createZip(File file) throws IOException {
+ createZip(file, false);
+ return file;
+ }
+
+ /**
+ * Cree un zip. Le zip contient les memes fichiers lorsqu'on utilise le CVS.
+ *
+ * @param file le fichier dans lequel l'export doit se faire
+ * @return l'argument file
+ * @throws IOException si problème lors de la création du zip
+ */
+ public File createZip(File file, boolean createMD5) throws IOException {
prepare();
List<File> files = getFiles(false);
- ZipUtil.compressFiles(file, getDirectory().getParentFile(), files);
+ ZipUtil.compressFiles(file, getDirectory().getParentFile(), files, createMD5);
log.info("Zip DataStorage in " + file);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java 2009-04-28 15:17:38 UTC (rev 2150)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java 2009-04-29 13:06:25 UTC (rev 2151)
@@ -202,14 +202,14 @@
}
/**
- * Permet de supprimer une classe
+ * Permet de supprimer un fichier ou répertoire versionné ou non.
*
- * @param cvsDelete si vrai alors la classe sera aussi supprimé sur le
- * cvs si elle existait. Cela prend effet immediatement (un commit est fait)
- * @throws StorageException si pb pendant l'op
+ * @param vcsDelete si vrai alors le fichier sera aussi supprimé sur le
+ * vcs si elle existait. Cela prend effet immediatement (un commit est fait)
+ * @throws StorageException if delete operation fail
*/
- public void delete(boolean cvsDelete) throws StorageException {
- if (cvsDelete) {
+ public void delete(boolean vcsDelete) throws StorageException {
+ if (vcsDelete) {
List<File> files = getFiles(true);
try {
getVCS().delete(files, _("isisfish.versionStorage.removed"));
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-28 15:17:38 UTC (rev 2150)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-29 13:06:25 UTC (rev 2151)
@@ -36,7 +36,10 @@
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.codelutin.topia.TopiaException;
import org.codelutin.util.FileUtil;
+import org.codelutin.util.MD5;
+import org.codelutin.util.MD5InputStream;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
@@ -79,8 +82,8 @@
protected Configuration freemarkerConfiguration;
/** Freemarker qsub template. */
- protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/launch-isis-qsub.seq";
- //protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/launch-isis-cron.seq";
+ protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/isis-launch-with-qsub.seq";
+ //protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/isis-launch-with-cron.seq";
/**
* Opened session. Stored in static context to not reask passphrase at each
@@ -230,13 +233,14 @@
String simulationRemotePath = uploadSimulation(sshSession,
simulationZip);
+ String remoteResultZip = getRemoteResultZipPath(control.getId());
+
// build du contenu du script
- message(control,
- _("isisfish.simulation.remote.message.waitingstart"));
+ message(control,_("isisfish.simulation.remote.message.waitingstart"));
String simulationPreScriptPath = uploadPreScriptIfNecessary(
sshSession, control.getId(), simulationPrescript);
- File simulationScript = getSimulationScriptFile(control.getId(),
- simulationRemotePath, simulationPreScriptPath);
+ File simulationScript = getLaunchSimulationScriptFile(control.getId(),
+ simulationRemotePath, remoteResultZip, simulationPreScriptPath);
String scriptRemotePath = uploadSimulationScript(sshSession,
simulationScript);
@@ -262,21 +266,11 @@
SimulationService simulationService, SimulationControl control)
throws RemoteException {
+ // TODO change, now getSimulationStorage()
+ // is common to all launchers
SimulationStorage simulationStorage = null;
-
- try {
- // recuperation des resultats
- message(control,
- _("isisfish.simulation.remote.message.downloadresults"));
-
- downloadResults(sshSession, control.getId());
-
simulationStorage = SimulationStorage
.getSimulation(control.getId());
- } catch (SSHException e) {
- throw new RemoteException(
- _("isisfish.error.simulation.remote.global"), e);
- }
return simulationStorage;
}
@@ -292,6 +286,8 @@
SimulationControl control) throws RemoteException {
try {
+
+ // CONTROL file
try {
// download control file
File controlFile = downloadSimulationFile(control.getId(),
@@ -313,6 +309,7 @@
// deleteTempFile
controlFile.delete();
} catch (SSHException e) {
+
// file doesn't exist
if (log.isDebugEnabled()) {
// not add ,e plz :)
@@ -321,8 +318,61 @@
}
}
+ // can be because, simulation has not begun
+ // or simulation is ended
+ // try do download md5 control file
+
+ // MD5 + SIMULATION zip file
try {
- // download information file
+ File md5ControlFile = downloadMD5ControlFile(control.getId());
+
+ if (md5ControlFile != null) {
+ control.setText(_("isisfish.simulation.remote.message.downloadresults"));
+
+ String md5sum = FileUtil.readAsString(md5ControlFile);
+
+ if (log.isDebugEnabled()) {
+ log.debug("MD5 Control file have been downloaded : " + md5ControlFile.getAbsolutePath());
+ }
+
+ File resultZipFile = downloadZIPResults(sshSession, control.getId(), md5sum);
+
+ if (resultZipFile != null) {
+ SimulationStorage.importZip(resultZipFile);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Simulation imported : " + resultZipFile.getAbsolutePath());
+ }
+
+ // read control from downloaded simulation
+ synchronized (control) {
+ SimulationStorage.readControl(control.getId(), control, "stop");
+ }
+
+ resultZipFile.delete();
+ }
+ else {
+ if (log.isWarnEnabled()) {
+ log.warn("Simulation zip download failed");
+ }
+ }
+
+ // remove temp file
+ md5ControlFile.delete();
+ }
+ }
+ catch(SSHException e) {
+ if (log.isDebugEnabled()) {
+ log.debug(_("Error while downloading file : %s", e.getMessage()));
+ }
+ } catch (TopiaException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't import result zip file", e);
+ }
+ }
+
+ // INFORMATION file
+ try {
File infoFile = downloadSimulationFile(control.getId(),
SimulationStorage.INFORMATION_FILENAME);
if (log.isDebugEnabled()) {
@@ -572,46 +622,41 @@
}
/**
- * Download simulation results.
+ * Download simulation zip results.
*
- * Simulation result is save in {@link SimulationStorage#SIMULATION_PATH}.
- *
- * @throws SSHException
- * if download fail (can happen if remote file doesn't exist
+ * @throws SSHException if download fail (can happen if remote file doesn't exist
+ * @throws IOException if download fail (can happen if remote file doesn't exist
*/
- protected void downloadResults(Session session, String simulationId)
- throws SSHException {
+ protected File downloadZIPResults(Session session, String simulationId, String md5sum)
+ throws SSHException, IOException {
- // simulation directory
- File localFile = new File(IsisFish.config.getDatabaseDirectory(),
- SimulationStorage.SIMULATION_PATH);
+ File localFile = File.createTempFile("simulation-results", ".zip");
if (log.isDebugEnabled()) {
log.debug("Downloading results in " + localFile.getAbsolutePath());
}
- // Cant happen if result have already been downloded
- // Or try to, but has been interrupted
- // delete and download again
- File simulationBaseDirectory = new File(localFile, simulationId);
- if (simulationBaseDirectory.exists()) {
- if (log.isWarnEnabled()) {
- log.warn("Warning, simulation results "
- + simulationBaseDirectory.getAbsolutePath()
- + " already exists");
- log.warn("Delete it, and download again");
- }
-
- FileUtil.deleteRecursively(simulationBaseDirectory);
- }
-
// build remote file path
// FIXME this path should be given by remote IsisFish app
- String remoteFile = IsisFish.config.getSimulatorSshDataPath();
- remoteFile += "/" + SimulationStorage.SIMULATION_PATH;
- remoteFile += "/" + simulationId;
+ String remoteFile = getRemoteResultZipPath(simulationId);
SSHUtils.scpFrom(session, remoteFile, localFile);
+
+ if (!StringUtils.isEmpty(md5sum)) {
+ MD5InputStream in = new MD5InputStream(new FileInputStream(localFile));
+ while(in.read() != -1) {}
+ in.close();
+ String localMd5 = MD5.asHex(in.hash());
+ if (!localMd5.equals(md5sum)) {
+ if (log.isWarnEnabled()) {
+ log.warn("Warning md5 checksum failed (got " + localMd5 + ", expected : " + md5sum + ")");
+ }
+ localFile.delete();
+ localFile = null;
+ }
+ }
+
+ return localFile;
}
/**
@@ -648,7 +693,36 @@
return localFile;
}
+
+ /**
+ * Download remote simulation md5 control file and store its content into temp
+ * file.
+ *
+ * @param simulationId id de la simulation
+ * @return downloaded temp file (file have to be manually deleted)
+ * @throws IOException
+ * @throws SSHException if remote file doesn't exists
+ */
+ protected File downloadMD5ControlFile(String simulationId)
+ throws IOException, SSHException {
+ File localFile = null;
+
+ // build remote file path
+ String remoteFile = getRemoteResultZipPath(simulationId) + ".md5";
+
+ // local tmp file
+ localFile = File.createTempFile(simulationId, ".md5");
+
+ try {
+ SSHUtils.scpFrom(getSSHSession(), remoteFile, localFile);
+ } catch (JSchException e) {
+ throw new SSHException("Can't download file", e);
+ }
+
+ return localFile;
+ }
+
/**
* Upload script on remote server.
*
@@ -685,11 +759,37 @@
}
/**
+ * Get remote simulation zip path.
+ *
+ * Return path if uploaded or null if no upload needed.
+ *
+ * @param simulationId simulation id
+ *
+ * @throws SSHException if upload fail
+ * @throws IOException if upload fail
+ */
+ protected String getRemoteResultZipPath(String simulationId)
+ throws SSHException, IOException {
+
+ String remotePath = IsisFish.config.getSimulatorSshTmpPath();
+
+ // upload directory in that dir
+ if (!remotePath.endsWith("/")) {
+ remotePath += "/";
+ }
+
+ remotePath += "simulation-" + simulationId + "-result.zip";
+
+ return remotePath;
+ }
+
+ /**
* Upload pre script on remote server.
*
* Return path if uploaded or null if no upload needed.
*
* @param session valid opened ssh session
+ * @param simulationId simulation id
* @param simulationPreScript script content
*
* @throws SSHException if upload fail
@@ -745,14 +845,14 @@
*
* @throws IOException if can't build script
*/
- protected File getSimulationScriptFile(String simuationId,
- String simulationZip, String preScriptPath) throws IOException {
+ protected File getLaunchSimulationScriptFile(String simuationId,
+ String simulationZip, String simulationResultZip, String preScriptPath) throws IOException {
- File tempScript = File.createTempFile("launch-isis", ".seq");
+ File tempScript = File.createTempFile("isis-launch-", ".seq");
tempScript.deleteOnExit(); // auto delete
String fileContent = getSimulationScriptLaunchContent(
- QSUB_SCRIPT_TEMPLATE, simuationId, simulationZip, preScriptPath);
+ QSUB_SCRIPT_TEMPLATE, simuationId, simulationZip, simulationResultZip, preScriptPath);
FileUtil.writeString(tempScript, fileContent);
return tempScript;
@@ -766,12 +866,13 @@
* @param templateName url du template
* @param simuationId id de la simulation
* @param simulationZip zip de la simulation
+ * @param simulationZipResult zip resultat de la simulation
* @param preScriptPath simulation pre script path (can be null)
*
* @throws IOException if can't get script content
*/
protected String getSimulationScriptLaunchContent(String templateName,
- String simuationId, String simulationZip, String preScriptPath)
+ String simuationId, String simulationZip, String simulationZipResult, String preScriptPath)
throws IOException {
String scriptContent = null;
@@ -792,6 +893,7 @@
root.put("isishome", IsisFish.config.getSimulatorSshIsisHome());
root.put("simulationid", simuationId);
root.put("simulationzip", simulationZip);
+ root.put("simulationresultzip", simulationZipResult);
root.put("simulationprescript", localPreScript);
// process template
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-04-28 15:17:38 UTC (rev 2150)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-04-29 13:06:25 UTC (rev 2151)
@@ -375,9 +375,17 @@
// if not finished, re-add it at end
if (jobIsFinished) {
+
+ if (log.isInfoEnabled()) {
+ log.info("Job " + job.getId() + " finished");
+ }
+
doPostSimulationOperation(job, launcher);
- } else {
-
+ }
+
+ // Si le job est reelement fini
+ // et que les post operation ont réussie
+ else {
// next check date
long nextJobTimeMs = date.getTime()
+ launcher.getCheckProgressionInterval() * 1000;
@@ -425,8 +433,10 @@
// WARNING this condition is VERY important
// and set by end of
// fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher#localSimulateSameThread(SimulationControl, SimulationStorage)
+
+ // FIXME check SimulationStorage.exists(control.getId()) condition
if ((control.getProgress() > 0
- && control.getProgress() >= control.getProgressMax()) || control.isStopSimulationRequest()) {
+ && control.getProgress() >= control.getProgressMax() && SimulationStorage.exists(control.getId())) || control.isStopSimulationRequest()) {
simulationEnded = true;
}
} catch (RemoteException e) {
@@ -446,10 +456,14 @@
*
* @param job job
* @param launcher {@link SimulatorLauncher} that manage simulation
+ *
+ * @return true if post operation complete and job has be removed from queue
*/
- protected void doPostSimulationOperation(SimulationJob job,
+ protected boolean doPostSimulationOperation(SimulationJob job,
SimulatorLauncher launcher) {
+ boolean result = false;
+
SimulationService service = SimulationService.getService();
SimulationControl control = job.getItem().getControl();
@@ -475,23 +489,29 @@
boolean simulationAvailble = exportResult(job, simulation);
// sensitivity calculator analyze result call
- // can't do analyze seond pass if simulation
+ // can't do analyze second pass if simulation
// has been deleted
if (simulationAvailble) {
analyzeSensitivityResult(job, simulation);
}
}
+
+ // notify simulation ended
+ // to not check later...
+ // don't do in finally, getSimulationStorage may fail (md5 on ssh)
+ simulationStop(job);
+ service.fireStopEvent(job);
+
+ result = true;
+
} catch (RemoteException e) {
if (log.isErrorEnabled()) {
log.error("Can't get simulation results after simulation end",
e);
}
- } finally {
- // notify simulation ended
- // to not check later...
- simulationStop(job);
- service.fireStopEvent(job);
}
+
+ return result;
}
/**
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUtils.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUtils.java 2009-04-28 15:17:38 UTC (rev 2150)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUtils.java 2009-04-29 13:06:25 UTC (rev 2151)
@@ -29,8 +29,10 @@
import java.io.InputStreamReader;
import java.io.OutputStream;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.codelutin.util.MD5InputStream;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelExec;
@@ -121,13 +123,13 @@
}
/**
- * Download a local file from remote server.
+ * Download a local file from remote server and check md5sum.
*
* @param session opened valid jsch session
* @param remoteFileName remote file name to download
* @param localFile local file name to download into
*
- * @throws SSHException
+ * @throws SSHException if transfer fail (include md5 control failed)
*/
public static void scpFrom(Session session, String remoteFileName,
File localFile) throws SSHException {
Copied: isis-fish/trunk/src/main/resources/templates/ssh/isis-launch-with-cron.seq (from rev 2143, isis-fish/trunk/src/main/resources/templates/ssh/launch-isis-cron.seq)
===================================================================
--- isis-fish/trunk/src/main/resources/templates/ssh/isis-launch-with-cron.seq (rev 0)
+++ isis-fish/trunk/src/main/resources/templates/ssh/isis-launch-with-cron.seq 2009-04-29 13:06:25 UTC (rev 2151)
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+cd "${isishome}"
+
+<#if simulationprescript?length > 0>
+java -jar isis-fish*.jar --option launch.ui false --simulateRemotellyWithPreScript "${simulationid}" "${simulationzip}" "${simulationresultzip}" "${simulationprescript}"
+<#else>
+java -jar isis-fish*.jar --option launch.ui false --simulateRemotelly "${simulationid}" "${simulationzip}" "${simulationresultzip}"
+</#if>
\ No newline at end of file
Copied: isis-fish/trunk/src/main/resources/templates/ssh/isis-launch-with-qsub.seq (from rev 2143, isis-fish/trunk/src/main/resources/templates/ssh/launch-isis-qsub.seq)
===================================================================
--- isis-fish/trunk/src/main/resources/templates/ssh/isis-launch-with-qsub.seq (rev 0)
+++ isis-fish/trunk/src/main/resources/templates/ssh/isis-launch-with-qsub.seq 2009-04-29 13:06:25 UTC (rev 2151)
@@ -0,0 +1,13 @@
+#!/bin/csh
+
+#PBS -l mem=1000mb
+
+cd "${isishome}"
+source /usr/share/modules/init/csh
+module load java/1.6.0
+
+<#if simulationprescript?length > 0>
+java -jar isis-fish*.jar --option launch.ui false --simulateRemotellyWithPreScript "${simulationid}" "${simulationzip}" "${simulationresultzip}" "${simulationprescript}"
+<#else>
+java -jar isis-fish*.jar --option launch.ui false --simulateRemotelly "${simulationid}" "${simulationzip}" "${simulationresultzip}"
+</#if>
\ No newline at end of file
Deleted: isis-fish/trunk/src/main/resources/templates/ssh/launch-isis-cron.seq
===================================================================
--- isis-fish/trunk/src/main/resources/templates/ssh/launch-isis-cron.seq 2009-04-28 15:17:38 UTC (rev 2150)
+++ isis-fish/trunk/src/main/resources/templates/ssh/launch-isis-cron.seq 2009-04-29 13:06:25 UTC (rev 2151)
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-cd "${isishome}"
-
-<#if simulationprescript?length > 0>
-java -jar isis-fish*.jar --option launch.ui false --simulateWithSimulationAndScript "${simulationid}" "${simulationzip}" "${simulationprescript}"
-<#else>
-java -jar isis-fish*.jar --option launch.ui false --simulateWithSimulation "${simulationid}" "${simulationzip}"
-</#if>
\ No newline at end of file
Deleted: isis-fish/trunk/src/main/resources/templates/ssh/launch-isis-qsub.seq
===================================================================
--- isis-fish/trunk/src/main/resources/templates/ssh/launch-isis-qsub.seq 2009-04-28 15:17:38 UTC (rev 2150)
+++ isis-fish/trunk/src/main/resources/templates/ssh/launch-isis-qsub.seq 2009-04-29 13:06:25 UTC (rev 2151)
@@ -1,13 +0,0 @@
-#!/bin/csh
-
-#PBS -l mem=1000mb
-
-cd "${isishome}"
-source /usr/share/modules/init/csh
-module load java/1.6.0
-
-<#if simulationprescript?length > 0>
-java -jar isis-fish*.jar --option launch.ui false --simulateWithSimulationAndScript "${simulationid}" "${simulationzip}" "${simulationprescript}"
-<#else>
-java -jar isis-fish*.jar --option launch.ui false --simulateWithSimulation "${simulationid}" "${simulationzip}"
-</#if>
\ No newline at end of file
Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java 2009-04-28 15:17:38 UTC (rev 2150)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java 2009-04-29 13:06:25 UTC (rev 2151)
@@ -61,13 +61,14 @@
final String SIMULATIONID = "testid";
final String SIMULATIONZIP = "test.zip";
+ final String SIMULATIONRESULTZIP = "/tmp/test-result.zip";
final String SIMULATIONPRESCRIPT = "prescript-1234567890.txt";
final String ISISHOME = IsisFish.config.getSimulatorSshIsisHome();
SSHSimulatorLauncher launcher = new SSHSimulatorLauncher();
String content = launcher.getSimulationScriptLaunchContent(
SSHSimulatorLauncher.QSUB_SCRIPT_TEMPLATE, SIMULATIONID,
- SIMULATIONZIP, SIMULATIONPRESCRIPT);
+ SIMULATIONZIP, SIMULATIONRESULTZIP, SIMULATIONPRESCRIPT);
// simulation parameters
Assert.assertTrue("String \"" + SIMULATIONID
@@ -76,12 +77,15 @@
Assert.assertTrue("String \"" + SIMULATIONZIP
+ "\" not found in template",
content.indexOf(SIMULATIONZIP) > 0);
+ Assert.assertTrue("String \"" + SIMULATIONRESULTZIP
+ + "\" not found in template",
+ content.indexOf(SIMULATIONRESULTZIP) > 0);
Assert.assertTrue("String \"" + SIMULATIONPRESCRIPT
+ "\" not found in template", content
.indexOf(SIMULATIONPRESCRIPT) > 0);
Assert.assertTrue(
- "Action --simulateWithSimulationAndScript not on script",
- content.indexOf(" --simulateWithSimulationAndScript ") > 0);
+ "Action --simulateRemotellyWithPreScript not on script",
+ content.indexOf(" --simulateRemotellyWithPreScript ") > 0);
// isis location
Assert.assertTrue("String \"" + ISISHOME + "\" not found in template",
@@ -105,13 +109,14 @@
final String SIMULATIONID = "testid";
final String SIMULATIONZIP = "test.zip";
+ final String SIMULATIONRESULTZIP = "/tmp/test-result.zip";
final String SIMULATIONPRESCRIPT = null;
final String ISISHOME = IsisFish.config.getSimulatorSshIsisHome();
SSHSimulatorLauncher launcher = new SSHSimulatorLauncher();
String content = launcher.getSimulationScriptLaunchContent(
SSHSimulatorLauncher.QSUB_SCRIPT_TEMPLATE, SIMULATIONID,
- SIMULATIONZIP, SIMULATIONPRESCRIPT);
+ SIMULATIONZIP, SIMULATIONRESULTZIP, SIMULATIONPRESCRIPT);
// simulation parameters
Assert.assertTrue("String \"" + SIMULATIONID
@@ -120,14 +125,17 @@
Assert.assertTrue("String \"" + SIMULATIONZIP
+ "\" not found in template",
content.indexOf(SIMULATIONZIP) > 0);
- Assert.assertTrue("Action --simulateWithSimulation not on script",
- content.indexOf(" --simulateWithSimulation ") > 0);
+ Assert.assertTrue("String \"" + SIMULATIONRESULTZIP
+ + "\" not found in template",
+ content.indexOf(SIMULATIONRESULTZIP) > 0);
+ Assert.assertTrue("Action --simulateRemotelly not on script",
+ content.indexOf(" --simulateRemotelly ") > 0);
// isis location
Assert.assertTrue("String \"" + ISISHOME + "\" not found in template",
content.indexOf(ISISHOME) > 0);
}
-
+
/**
* Pour tester, un autre script est present, mais
* celui ci ne doit jamais être utilisé hors des tests.
@@ -140,7 +148,7 @@
SSHSimulatorLauncher launcher = new SSHSimulatorLauncher();
String content = launcher.getSimulationScriptLaunchContent(
SSHSimulatorLauncher.QSUB_SCRIPT_TEMPLATE, "",
- "", "");
+ "", "", "");
// simulation parameters
Assert.assertTrue("Invalid qsub script is used", content
1
0
r2150 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish: . actions
by chatellier@users.labs.libre-entreprise.org April 28, 2009
by chatellier@users.labs.libre-entreprise.org April 28, 2009
April 28, 2009
Author: chatellier
Date: 2009-04-28 15:17:38 +0000 (Tue, 28 Apr 2009)
New Revision: 2150
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/ExportAction.java
Log:
Refactoring des @Step sur les actions.
(ca marche pas avec les enum)
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-04-28 10:26:19 UTC (rev 2149)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-04-28 15:17:38 UTC (rev 2150)
@@ -68,6 +68,42 @@
private static Log log = LogFactory.getLog(IsisConfig.class);
/**
+ * Config step after init.
+ *
+ * Refactored, can't be in enum
+ *
+ * @see org.codelutin.util.ApplicationConfig.Action.Step
+ */
+ public static final int STEP_AFTER_INIT = 0;
+
+ /**
+ * Config step after init vcs.
+ *
+ * Refactored, can't be in enum
+ *
+ * @see org.codelutin.util.ApplicationConfig.Action.Step
+ */
+ public static final int STEP_AFTER_INIT_VCS = 1;
+
+ /**
+ * Config step after ui.
+ *
+ * Refactored, can't be in enum
+ *
+ * @see org.codelutin.util.ApplicationConfig.Action.Step
+ */
+ public static final int STEP_AFTER_UI = 2;
+
+ /**
+ * Config step before exit.
+ *
+ * Refactored, can't be in enum
+ *
+ * @see org.codelutin.util.ApplicationConfig.Action.Step
+ */
+ public static final int STEP_BEFORE_EXIT = 3;
+
+ /**
* La version du logiciel constitue de l.d.a.r
* <li>l: le numero de version du logiciel
* <li>d: le numero de version du schema de la base de donnees
@@ -798,10 +834,6 @@
//////////////////////////////////////////////////
// Toutes les actions disponibles
//////////////////////////////////////////////////
-
- static public enum Step {
- AfterInit, AfterInitVCS, AfterUI, BeforeExit
- }
public static enum Action {
HELP(_("Show help"), OtherAction.class.getName() + "#help", "-h", "--help"),
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2009-04-28 10:26:19 UTC (rev 2149)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2009-04-28 15:17:38 UTC (rev 2150)
@@ -128,29 +128,34 @@
// initialisation de l'application
IsisFish.init(args);
- log.debug(_("isisfish.launch.init.done", config.getElapsedTimeAsString()));
-
+ if (log.isDebugEnabled()) {
+ log.debug(_("isisfish.launch.init.done", config.getElapsedTimeAsString()));
+ }
+
// action after init
- config.doAction(IsisConfig.Step.AfterInit.ordinal());
+ config.doAction(IsisConfig.STEP_AFTER_INIT);
- // initVCS ask for passphrase, ui must be set before
- initLoookAndFeel();
-
+ // static vcs init (needed for some actions)
try {
initVCS();
} catch (Exception eee) {
log.warn(_("Error during vcs initialisation"), eee);
}
- log.info(_("isisfish.launching", config.getElapsedTimeAsString()));
+ // initVCS ask for passphrase, ui must be set before
+ initLoookAndFeel();
+ if (log.isInfoEnabled()) {
+ log.info(_("isisfish.launching", config.getElapsedTimeAsString()));
+ }
+
// after init vcs and local data
- config.doAction(IsisConfig.Step.AfterInitVCS.ordinal());
-
+ config.doAction(IsisConfig.STEP_AFTER_INIT_VCS);
+
launchUI();
// action after ui launched
- config.doAction(IsisConfig.Step.AfterUI.ordinal());
+ config.doAction(IsisConfig.STEP_AFTER_UI);
} catch (Exception e) {
e.printStackTrace();
quit();
@@ -176,7 +181,7 @@
@Override
public void run() {
try {
- config.doAction(IsisConfig.Step.BeforeExit.ordinal());
+ config.doAction(IsisConfig.STEP_BEFORE_EXIT);
} catch (Exception eee) {
log.info("Error in quit daemon", eee);
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/ExportAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/ExportAction.java 2009-04-28 10:26:19 UTC (rev 2149)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/ExportAction.java 2009-04-28 15:17:38 UTC (rev 2150)
@@ -19,6 +19,19 @@
package fr.ifremer.isisfish.actions;
+import static org.codelutin.i18n.I18n._;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.regex.Pattern;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.codelutin.util.FileUtil;
+import org.codelutin.util.ApplicationConfig.Action.Step;
+
import fr.ifremer.isisfish.IsisConfig;
import fr.ifremer.isisfish.datastore.AnalysePlanStorage;
import fr.ifremer.isisfish.datastore.DataStorage;
@@ -29,24 +42,15 @@
import fr.ifremer.isisfish.datastore.ScriptStorage;
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.datastore.SimulatorStorage;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.regex.Pattern;
-import static org.codelutin.i18n.I18n._;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.codelutin.util.FileUtil;
-
/**
- *
+ * Export actions.
+ *
* @author poussin
- * @version $Revision: 1862 $
+ * @version $Revision$
*
- * Last update: $Date: 2009-02-23 16:42:34 +0100 (lun. 23 févr. 2009) $
- * by : $Author: chatellier $
+ * Last update: $Date$
+ * by : $Author$
*/
public class ExportAction {
@@ -59,7 +63,7 @@
this.config = config;
}
- public void applyFilter(String filter, List<String> names) {
+ protected void applyFilter(String filter, List<String> names) {
if (filter != null && !"*".equals(filter)) {
Pattern p = Pattern.compile(filter);
// apply filter on names found
@@ -72,7 +76,7 @@
}
}
- public void display(String filter, List<String> names) {
+ protected void display(String filter, List<String> names) {
StringBuilder sb = new StringBuilder();
sb.append(" found ").append(names.size());
sb.append(" with filter ").append(filter);
@@ -156,8 +160,9 @@
}
}
+ @Step(IsisConfig.STEP_AFTER_INIT_VCS)
public void exportSimulation(File file, String name, boolean force) throws Exception {
- log.info("file:" + file + ", name:" + name);
+ log.info("exportSimulation in file " + file + " ( " + name + ", force = " + force + ")");
if (!force && file.exists()) {
throw new IllegalArgumentException(_("destination already exists %s use 'force' argument to force overwrite", file));
}
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/actions/ExportAction.java
___________________________________________________________________
Name: svn:keywords
+ Date Author Revision
1
0
r2149 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico
by chatellier@users.labs.libre-entreprise.org April 28, 2009
by chatellier@users.labs.libre-entreprise.org April 28, 2009
April 28, 2009
Author: chatellier
Date: 2009-04-28 10:26:19 +0000 (Tue, 28 Apr 2009)
New Revision: 2149
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java
Log:
Lit le design plan en uft-8 (meme si c'est par defaut comme ca)
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java 2009-04-28 10:25:11 UTC (rev 2148)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java 2009-04-28 10:26:19 UTC (rev 2149)
@@ -91,6 +91,7 @@
// don't use reader.read(String);
// don't work on windows beacause of : in path
// Document doc = reader.read(xmlFile);
+ reader.setEncoding("utf-8");
Document doc = reader.read(xmlFile);
Element root = doc.getRootElement();
designPlan = DomXMLParser.parseDesignPlan(root);
1
0
r2148 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org April 28, 2009
by chatellier@users.labs.libre-entreprise.org April 28, 2009
April 28, 2009
Author: chatellier
Date: 2009-04-28 10:25:11 +0000 (Tue, 28 Apr 2009)
New Revision: 2148
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
Log:
Sauvegarde le designplan en utf-8
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-04-28 09:18:49 UTC (rev 2147)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-04-28 10:25:11 UTC (rev 2148)
@@ -925,7 +925,7 @@
// Sauvegarde du design plan en XML
if (!StringUtils.isEmpty(xmlDesignPlan)) {
File simulationDesignPlanFile = SimulationStorage.getMexicoDesignPlan(tmpDirectory);
- FileUtil.writeString(simulationDesignPlanFile, xmlDesignPlan);
+ FileUtil.writeString(simulationDesignPlanFile, xmlDesignPlan, "utf-8");
}
FileUtil.copy(new File(SimulatorStorage.getSimulatorDirectory(),
1
0
r2147 - in isis-fish/trunk/src: main/java/fr/ifremer/isisfish/mexico main/java/fr/ifremer/isisfish/ui/simulator test/java/fr/ifremer/isisfish/mexico
by chatellier@users.labs.libre-entreprise.org April 28, 2009
by chatellier@users.labs.libre-entreprise.org April 28, 2009
April 28, 2009
Author: chatellier
Date: 2009-04-28 09:18:49 +0000 (Tue, 28 Apr 2009)
New Revision: 2147
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java
Log:
Utilise un FIle pour le parser xml.
Pour lui un path string qui comporte un :, c'est pas pareil
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java 2009-04-24 16:06:42 UTC (rev 2146)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/mexico/MexicoHelper.java 2009-04-28 09:18:49 UTC (rev 2147)
@@ -18,6 +18,7 @@
package fr.ifremer.isisfish.mexico;
+import java.io.File;
import java.io.IOException;
import org.dom4j.Document;
@@ -82,11 +83,14 @@
* @return DesignPlan
* @throws IOException
*/
- public static DesignPlan getDesignPlanFromXML(String xmlFile)
+ public static DesignPlan getDesignPlanFromXML(File xmlFile)
throws IOException {
DesignPlan designPlan = null;
try {
SAXReader reader = new SAXReader();
+ // don't use reader.read(String);
+ // don't work on windows beacause of : in path
+ // Document doc = reader.read(xmlFile);
Document doc = reader.read(xmlFile);
Element root = doc.getRootElement();
designPlan = DomXMLParser.parseDesignPlan(root);
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-04-24 16:06:42 UTC (rev 2146)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-04-28 09:18:49 UTC (rev 2147)
@@ -308,10 +308,10 @@
// Chargement des facteurs
File f = simulStorage.getMexicoDesignPlan(SimulationStorage.getSimulationDirectory(simulName));
if (f != null && f.canRead()) {
- if (log.isDebugEnabled()) {
- log.debug("Import design plan from : " + f.getPath());
+ if (log.isInfoEnabled()) {
+ log.info("Import design plan from : " + f.getAbsolutePath());
}
- designPlan = MexicoHelper.getDesignPlanFromXML(f.getPath());
+ designPlan = MexicoHelper.getDesignPlanFromXML(f);
factors.clear();
for (Factor factor : designPlan.getFactors()) {
if (log.isDebugEnabled()) {
Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java 2009-04-24 16:06:42 UTC (rev 2146)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/mexico/MexicoHelperTest.java 2009-04-28 09:18:49 UTC (rev 2147)
@@ -162,10 +162,10 @@
*/
@Test
public void testGetDesignPlanFromXML() throws IOException {
+
+ File testFile = new File("src/test/resources/mexico/mexicohelper_designplan.xml");
+ DesignPlan plan = MexicoHelper.getDesignPlanFromXML(testFile);
- DesignPlan plan = MexicoHelper
- .getDesignPlanFromXML("src/test/resources/mexico/mexicohelper_designplan.xml");
-
Assert.assertEquals(5, plan.getFactors().size());
String xml = MexicoHelper.getDesignPlanAsXML(plan);
@@ -187,7 +187,8 @@
log.debug("xml 1 = " + xml1);
// export
- DesignPlan plan = MexicoHelper.getDesignPlanFromXML("src/test/resources/mexico/mexicohelper_designplan.xml");
+ File testFile = new File("src/test/resources/mexico/mexicohelper_designplan.xml");
+ DesignPlan plan = MexicoHelper.getDesignPlanFromXML(testFile);
String xml2 = MexicoHelper.getDesignPlanAsXML(plan);
log.debug("xml 2 = " + xml2);
1
0
r2146 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity
by chatellier@users.labs.libre-entreprise.org April 24, 2009
by chatellier@users.labs.libre-entreprise.org April 24, 2009
April 24, 2009
Author: chatellier
Date: 2009-04-24 16:06:42 +0000 (Fri, 24 Apr 2009)
New Revision: 2146
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx
Log:
Fix jaxx compilation
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx 2009-04-24 16:06:42 UTC (rev 2146)
@@ -109,7 +109,7 @@
Object o = node.getUserObject();
if (Factor.class.isInstance(o)) {
Factor f = (Factor)o;
- FactorWizard wizard = new FactorWizard(this);
+ FactorWizardUI wizard = new FactorWizardUI(this);
JComponent c = getSimulAction().getFactorComponent(f);
if (c != null) {
wizard.initExisting(c, f);
1
0
r2145 - in isis-fish/trunk: . src/main/java/fr/ifremer/isisfish/ui/input src/main/java/fr/ifremer/isisfish/ui/sensitivity
by chatellier@users.labs.libre-entreprise.org April 24, 2009
by chatellier@users.labs.libre-entreprise.org April 24, 2009
April 24, 2009
Author: chatellier
Date: 2009-04-24 15:57:15 +0000 (Fri, 24 Apr 2009)
New Revision: 2145
Added:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainerUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanelUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EquationContinuousPanelUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizardUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanelUI.jaxx
Removed:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainer.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EquationContinuousPanel.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanel.jaxx
Modified:
isis-fish/trunk/pom.xml
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeCellRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx
Log:
Refactoring (pour faire du code propre).
Les UI, ont leur nom suffix?\195?\169es par 'UI'.
Modified: isis-fish/trunk/pom.xml
===================================================================
--- isis-fish/trunk/pom.xml 2009-04-24 15:56:19 UTC (rev 2144)
+++ isis-fish/trunk/pom.xml 2009-04-24 15:57:15 UTC (rev 2145)
@@ -451,9 +451,9 @@
<entry>
<basedir>${maven.gen.dir}/java/</basedir>
<specificGoal>parserJava</specificGoal>
- <!-- <includes>
+ <includes>
<param>**\/**UI.java</param>
- </includes> -->
+ </includes>
</entry>
</entries>
</configuration>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx 2009-04-24 15:56:19 UTC (rev 2144)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
@@ -42,7 +42,7 @@
import java.lang.reflect.Method;
import org.apache.commons.beanutils.MethodUtils;
import fr.ifremer.isisfish.ui.util.UtilsUI;
-import fr.ifremer.isisfish.ui.sensitivity.FactorWizard;
+import fr.ifremer.isisfish.ui.sensitivity.FactorWizardUI;
import fr.ifremer.isisfish.ui.sensitivity.EditorHelper;
import fr.ifremer.isisfish.ui.sensitivity.SensitivityTabUI;
import jaxx.runtime.JAXXInitialContext;
@@ -112,7 +112,7 @@
bean = getVerifier().getEntity(classBean, beanID);
}
if (bean != null){
- FactorWizard wizard = new FactorWizard(this);
+ FactorWizardUI wizard = new FactorWizardUI(this);
wizard.initNew(source, bean, EditorHelper.canBeContinue(source, bean));
wizard.pack();
Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainer.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainer.jaxx 2009-04-24 15:56:19 UTC (rev 2144)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainer.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
@@ -1,41 +0,0 @@
-<!--
-/* *##%
- * Copyright (C) 2005
- * Ifremer, Code Lutin, Cedric Pineau, Benjamin Poussin
- *
- * 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.
- *##%*/
-
-/* *
- * IsisFish.java
- *
- * Created: 1 aout 2005 18:37:25 CEST
- *
- * @author Benjamin POUSSIN <poussin at codelutin.com>
- * @version $Revision: 1312 $
- *
- * Last update: $Date: 2008-08-28 10:21:07 +0200 (jeu, 28 aoû 2008) $
- * by : $Author: sletellier $
- */
- -->
-<JPanel id='continuousPanelContainer' layout='{new BorderLayout()}'>
-
- <Boolean id='continuePossible' javaBean='true'/>
-
- <Boolean id='continueSelected' javaBean='false'/>
-
- <JPanel id='content' constraints='BorderLayout.CENTER'/>
-
-</JPanel>
\ No newline at end of file
Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainerUI.jaxx (from rev 2134, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainer.jaxx)
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainerUI.jaxx (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainerUI.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
@@ -0,0 +1,28 @@
+<!--
+/* *##%
+ * Copyright (C) 2005 - 2009 Ifremer, 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.
+ *##%*/
+ -->
+<JPanel id='continuousPanelContainer' layout='{new BorderLayout()}'>
+
+ <Boolean id='continuePossible' javaBean='true'/>
+
+ <Boolean id='continueSelected' javaBean='false'/>
+
+ <JPanel id='content' constraints='BorderLayout.CENTER'/>
+
+</JPanel>
\ No newline at end of file
Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx 2009-04-24 15:56:19 UTC (rev 2144)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
@@ -1,94 +0,0 @@
-<!--
-/* *##%
- * Copyright (C) 2005
- * Ifremer, Code Lutin, Cedric Pineau, Benjamin Poussin
- *
- * 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.
- *##%*/
-
-/* *
- * IsisFish.java
- *
- * Created: 1 aout 2005 18:37:25 CEST
- *
- * @author Benjamin POUSSIN <poussin at codelutin.com>
- * @version $Revision: 1312 $
- *
- * Last update: $Date: 2008-08-28 10:21:07 +0200 (jeu, 28 aoû 2008) $
- * by : $Author: sletellier $
- */
- -->
-<ContinuousPanelContainer>
- <script><![CDATA[
-
-protected JTextField continueMax = null;
-protected JTextField continueMin = null;
-
-addPropertyChangeListener("continuePossible", new PropertyChangeListener(){
-
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- continueMax.setVisible((Boolean)evt.getNewValue());
- continueMin.setVisible((Boolean)evt.getNewValue());
- }
-
-});
-
-addPropertyChangeListener("continueSelected", new PropertyChangeListener(){
-
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- continueMax.setEnabled((Boolean)evt.getNewValue());
- continueMin.setEnabled((Boolean)evt.getNewValue());
- }
-
-});
-
-public void init(JTextField cMin, JTextField cMax){
- continueMax = cMax;
- continueMin = cMin;
- continueMax.setEnabled(isContinueSelected());
- continueMin.setEnabled(isContinueSelected());
- continueMax.setVisible(isContinuePossible());
- continueMin.setVisible(isContinuePossible());
-
- continueMaxPanel.add(continueMax, BorderLayout.CENTER);
- continueMinPanel.add(continueMin, BorderLayout.CENTER);
-}
-public String getMin(){
- return continueMin.getText();
-}
-public String getMax(){
- return continueMax.getText();
-}
- ]]>
- </script>
- <Table id='content' constraints='BorderLayout.CENTER'>
- <row>
- <cell fill='horizontal'>
- <JLabel text='isisfish.factor.firstValue' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
- </cell>
- <cell fill='horizontal' weightx='0.5'>
- <JPanel id='continueMinPanel' layout='{new BorderLayout()}'/>
- </cell>
- <cell fill='horizontal'>
- <JLabel text='isisfish.factor.lastValue' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
- </cell>
- <cell fill='horizontal' weightx='0.5'>
- <JPanel id='continueMaxPanel' layout='{new BorderLayout()}'/>
- </cell>
- </row>
- </Table>
-</ContinuousPanelContainer>
\ No newline at end of file
Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanelUI.jaxx (from rev 2134, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx)
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanelUI.jaxx (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanelUI.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
@@ -0,0 +1,81 @@
+<!--
+/* *##%
+ * Copyright (C) 2005 - 2009 Ifremer, 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.
+ *##%*/
+ -->
+<ContinuousPanelContainerUI>
+ <script><![CDATA[
+
+protected JTextField continueMax = null;
+protected JTextField continueMin = null;
+
+addPropertyChangeListener("continuePossible", new PropertyChangeListener(){
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ continueMax.setVisible((Boolean)evt.getNewValue());
+ continueMin.setVisible((Boolean)evt.getNewValue());
+ }
+
+});
+
+addPropertyChangeListener("continueSelected", new PropertyChangeListener(){
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ continueMax.setEnabled((Boolean)evt.getNewValue());
+ continueMin.setEnabled((Boolean)evt.getNewValue());
+ }
+
+});
+
+public void init(JTextField cMin, JTextField cMax){
+ continueMax = cMax;
+ continueMin = cMin;
+ continueMax.setEnabled(isContinueSelected());
+ continueMin.setEnabled(isContinueSelected());
+ continueMax.setVisible(isContinuePossible());
+ continueMin.setVisible(isContinuePossible());
+
+ continueMaxPanel.add(continueMax, BorderLayout.CENTER);
+ continueMinPanel.add(continueMin, BorderLayout.CENTER);
+}
+public String getMin(){
+ return continueMin.getText();
+}
+public String getMax(){
+ return continueMax.getText();
+}
+ ]]>
+ </script>
+ <Table id='content' constraints='BorderLayout.CENTER'>
+ <row>
+ <cell fill='horizontal'>
+ <JLabel text='isisfish.factor.firstValue' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ </cell>
+ <cell fill='horizontal' weightx='0.5'>
+ <JPanel id='continueMinPanel' layout='{new BorderLayout()}'/>
+ </cell>
+ <cell fill='horizontal'>
+ <JLabel text='isisfish.factor.lastValue' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ </cell>
+ <cell fill='horizontal' weightx='0.5'>
+ <JPanel id='continueMaxPanel' layout='{new BorderLayout()}'/>
+ </cell>
+ </row>
+ </Table>
+</ContinuousPanelContainerUI>
\ No newline at end of file
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-04-24 15:56:19 UTC (rev 2144)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-04-24 15:57:15 UTC (rev 2145)
@@ -199,14 +199,14 @@
}
return result;
}
- public static ContinuousPanelContainer getContinuousPanel(JComponent c, TopiaEntity e){
- ContinuousPanelContainer result = null;
+ public static ContinuousPanelContainerUI getContinuousPanel(JComponent c, TopiaEntity e){
+ ContinuousPanelContainerUI result = null;
try {
String fieldName = getMethod(c);
- DefaultContinuousPanel continuousPanel = null;
+ DefaultContinuousPanelUI continuousPanel = null;
if (c instanceof InputOneEquationUI){
InputOneEquationUI origine = (InputOneEquationUI) c;
- EquationContinuousPanel ui = new EquationContinuousPanel(new JAXXInitialContext().add(new InputAction()));
+ EquationContinuousPanelUI ui = new EquationContinuousPanelUI(new JAXXInitialContext().add(new InputAction()));
ui.setSelectedEquation(origine.getSelectedEquation());
ui.setLblText(origine.getLblText());
ui.setNameEquation(origine.getNameEquation());
@@ -216,14 +216,14 @@
ui.setBean(e);
result = ui;
} else if (c instanceof MatrixEditor){
- MatrixContinuousPanel matrixPanel = new MatrixContinuousPanel();
+ MatrixContinuousPanelUI matrixPanel = new MatrixContinuousPanelUI();
MatrixND m = (MatrixND)callMethod(e, fieldName);
if (m != null){
matrixPanel.setMatrix(m.clone());
}
result = matrixPanel;
} else {
- continuousPanel = new DefaultContinuousPanel();
+ continuousPanel = new DefaultContinuousPanelUI();
result = continuousPanel;
}
if (continuousPanel != null){
@@ -242,13 +242,13 @@
}
return new JTextField();
}
- public static ContinuousPanelContainer getContinuousPanelWithValue(JComponent c, ContinuousDomain domain, Factor f) {
- ContinuousPanelContainer result = null;
+ public static ContinuousPanelContainerUI getContinuousPanelWithValue(JComponent c, ContinuousDomain domain, Factor f) {
+ ContinuousPanelContainerUI result = null;
try {
- DefaultContinuousPanel continuousPanel = null;
+ DefaultContinuousPanelUI continuousPanel = null;
if (c instanceof InputOneEquationUI){
InputOneEquationUI origine = (InputOneEquationUI) c;
- EquationContinuousPanel ui = new EquationContinuousPanel(new JAXXInitialContext().add(new InputAction()));
+ EquationContinuousPanelUI ui = new EquationContinuousPanelUI(new JAXXInitialContext().add(new InputAction()));
ui.setLblText(origine.getLblText());
ui.setNameEquation(origine.getNameEquation());
ui.getEditor().getEditor().setText((String)f.getValue());
@@ -263,7 +263,7 @@
result = ui;
} else if (c instanceof MatrixEditor){
- MatrixContinuousPanel panel = new MatrixContinuousPanel();
+ MatrixContinuousPanelUI panel = new MatrixContinuousPanelUI();
MatrixContinuousDomain matrixDomain = (MatrixContinuousDomain)domain;
MatrixND m = matrixDomain.getMatrix();
if (m != null){
@@ -273,7 +273,7 @@
panel.getCoef().setText("" + matrixDomain.getCoefficient());
result = panel;
} else {
- continuousPanel = new DefaultContinuousPanel();
+ continuousPanel = new DefaultContinuousPanelUI();
result = continuousPanel;
}
if (continuousPanel != null){
@@ -537,8 +537,8 @@
}
// RangeOfValue
- public static ContinuousPanelContainer getContinuousRangeOfValuePanel(JComponent cOrigine, TopiaEntity bean){
- DefaultContinuousPanel continuousPanel = new DefaultContinuousPanel();
+ public static ContinuousPanelContainerUI getContinuousRangeOfValuePanel(JComponent cOrigine, TopiaEntity bean){
+ DefaultContinuousPanelUI continuousPanel = new DefaultContinuousPanelUI();
RangeOfValuesUI ui = (RangeOfValuesUI)cOrigine;
String value = ui.getFieldGearParamPossibleValue().getText();
String min = "0";
Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EquationContinuousPanel.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EquationContinuousPanel.jaxx 2009-04-24 15:56:19 UTC (rev 2144)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EquationContinuousPanel.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
@@ -1,267 +0,0 @@
-<!--
-/* *##%
- * Copyright (C) 2005
- * Ifremer, Code Lutin, Cedric Pineau, Benjamin Poussin
- *
- * 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.
- *##%*/
-
-/* *
- * IsisFish.java
- *
- * Created: 1 aout 2005 18:37:25 CEST
- *
- * @author Benjamin POUSSIN <poussin at codelutin.com>
- * @version $Revision: 1312 $
- *
- * Last update: $Date: 2008-08-28 10:21:07 +0200 (jeu, 28 aoû 2008) $
- * by : $Author: sletellier $
- */
- -->
-<ContinuousPanelContainer>
-
- <!-- bean property -->
- <fr.ifremer.isisfish.entities.Formule id='formule' javaBean='null'/>
- <String id='lblText' javaBean='null'/>
- <org.codelutin.topia.persistence.TopiaEntity id='bean' javaBean='null'/>
- <Class id='clazz' javaBean='null'/>
- <String id='methodGet' javaBean='null'/>
- <String id='methodSet' javaBean='null'/>
- <String id='nameEquation' javaBean='null'/>
- <fr.ifremer.isisfish.entities.Equation id='selectedEquation' javaBean='null'/>
-
- <script><![CDATA[
-import javax.swing.table.AbstractTableModel;
-import javax.swing.table.DefaultTableModel;
-import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationContinuousDomain;
-import javax.swing.table.TableCellEditor;
-import javax.swing.table.TableModel;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import org.apache.commons.lang.StringUtils;
-
-protected String[] columnNames = {"Name", "Value", "Coef (in %)", "Operator", "Action"};
-protected java.util.List<EquationContinuousDomain> datas = new ArrayList<EquationContinuousDomain>();
-protected java.util.List<JComboBox> operateurs = new ArrayList<JComboBox>();
-protected java.util.List<JButton> actions = new ArrayList<JButton>();
-
-public java.util.List<EquationContinuousDomain> getDomains(){
- return datas;
-}
-public void setDomains(java.util.List<EquationContinuousDomain> domains){
- datas.clear();
- for (EquationContinuousDomain d : domains){
- addDomain(d);
- }
-}
-public void addDomain(EquationContinuousDomain domain){
- newButton();
- datas.add(domain);
-}
-protected AbstractTableModel getTableModel(){
- AbstractTableModel model = new AbstractTableModel() {
-
- @Override
- public int getRowCount() {
- return datas.size();
- }
-
- @Override
- public int getColumnCount() {
- return columnNames.length;
- }
-
- @Override
- public boolean isCellEditable(int rowIndex, int columnIndex) {
- return true;
- }
- @Override
- public Object getValueAt(int rowIndex, int columnIndex) {
- if (columnIndex == 0){
- return datas.get(rowIndex).getVariableName();
- } else if (columnIndex == 1){
- return datas.get(rowIndex).getReferenceValue();
- } else if (columnIndex == 2){
- return datas.get(rowIndex).getCoefficient() == null ? 100 : datas.get(rowIndex).getCoefficient() * 100;
- } else if (columnIndex == 3){
- return datas.get(rowIndex).getOperator();
- } else if (columnIndex == 4){
- return _("isisfish.factor.validDiscretNumber");
- }
- return null;
- }
-
- @Override
- public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
- if (String.class.isInstance(aValue)){
- if (!((String)aValue).equals("")){
- if (columnIndex == 0){
- datas.get(rowIndex).setVariableName((String)aValue);
- } else if (columnIndex == 1){
- datas.get(rowIndex).setReferenceValue(Double.parseDouble((String)aValue));
- } else if (columnIndex == 2){
- datas.get(rowIndex).setCoefficient(Double.parseDouble((String)aValue) / 100);
- } else if (columnIndex == 3){
- datas.get(rowIndex).setOperator((String)aValue);
- }
- }
- }
- }
-
- @Override
- public String getColumnName(int col) {
- return columnNames[col].toString();
- }
-
- };
- return model;
-}
-protected JComboBox getOperateur(){
- JComboBox result = new JComboBox();
- result.addItem("+");
- result.addItem("-");
- result.addItem("*");
- result.addItem("/");
- operateurs.add(result);
- result.addActionListener(new ActionListener() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- JComboBox source = (JComboBox)e.getSource();
- int i = operateurs.indexOf(source);
- if (datas.size() <= i){
- datas.get(i).setOperator((String)source.getSelectedItem());
- }
- }
- });
- return result;
-}
-protected void newButton(){
- JButton result = new JButton();
- result.setText(_("isisfish.factor.validDiscretNumber"));
- actions.add(result);
- result.addActionListener(new ActionListener() {
-
- @Override
- public void actionPerformed(ActionEvent e) {
- JButton source = (JButton)e.getSource();
- int i = actions.indexOf(source);
- valid(i);
- }
- });
-}
-protected JButton getActionButton(int i){
- return actions.get(i);
-}
-protected void valid(int i) {
- String variableName = datas.get(i).getVariableName();
- String[] lines = editor.getEditor().getText().split("\n");
- String result = "";
- for (String line : lines) {
- Pattern p = Pattern.compile("(^.*\\s+" + variableName + "\\s*\\=\\s*)([\\d\\.]+).*\\;$");
- Matcher matcher = p.matcher(line);
- if (matcher.find()) {
- String fullVariableName = bean.toString() + "." + StringUtils.uncapitalize(methodGet) + "." + variableName;
- line = matcher.group(1) + "context.getValueAndCompute(\"" + fullVariableName + "\", " + matcher.group(2) + ");";
- }
- result += line + "\n";
- }
- editor.getEditor().setText(result);
-}
-protected void setTable(){
- params.setModel(getTableModel());
- params.getColumnModel().getColumn(3).setCellEditor(new DefaultCellEditor(getOperateur()));
- params.getColumnModel().getColumn(4).setCellEditor(new TableCellEditor() {
-
- @Override
- public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
- return getActionButton(row);
- }
-
- @Override
- public Object getCellEditorValue() {
- return null;
- }
-
- @Override
- public boolean isCellEditable(EventObject anEvent) {
- return true;
- }
-
- @Override
- public boolean shouldSelectCell(EventObject anEvent) {
- return true;
- }
-
- @Override
- public boolean stopCellEditing() {
- return true;
- }
-
- @Override
- public void cancelCellEditing() {
- }
-
- @Override
- public void addCellEditorListener(CellEditorListener l) {
- }
-
- @Override
- public void removeCellEditorListener(CellEditorListener l) {
- }
- });
-}
-protected void add(){
- datas.add(new EquationContinuousDomain());
- newButton();
- setTable();
-}
-protected void remove(){
- int i = params.getSelectedRow();
- if (i != -1){
- datas.remove(i);
- operateurs.remove(i);
- actions.remove(i);
- setTable();
- }
-}
- ]]>
- </script>
- <Table id='content' constraints='BorderLayout.CENTER'>
- <row>
- <cell fill='both' columns='2' weightx='1' weighty='0.5'>
- <JScrollPane>
- <JTable id='params' visible='{isContinuePossible()}' model='{getTableModel()}' enabled='{isContinueSelected()}'/>
- </JScrollPane>
- </cell>
- </row>
- <row>
- <cell fill='horizontal' weightx='0.5'>
- <JButton id='add' text='isisfish.common.add' visible='{isContinuePossible()}' enabled='{isContinueSelected()}' onActionPerformed='add()'/>
- </cell>
- <cell fill='horizontal' weightx='0.5'>
- <JButton id='remove' text='isisfish.common.remove' visible='{isContinuePossible()}' enabled='{isContinueSelected()}' onActionPerformed='remove()'/>
- </cell>
- </row>
- <row>
- <cell fill='both' columns='2' weightx='1' weighty='0.5'>
- <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='editor' formule='{getFormule()}' lblText='{getLblText()}'
- constructorParams='this' bean='{getBean()}' clazz='{getClazz()}' methodGet='{getMethodGet()}' actif='{isContinueSelected()}'
- methodSet='{getMethodSet()}' nameEquation='{getNameEquation()}' selectedEquation='{getSelectedEquation()}'
- visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
- </cell>
- </row>
- </Table>
-</ContinuousPanelContainer>
\ No newline at end of file
Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EquationContinuousPanelUI.jaxx (from rev 2134, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EquationContinuousPanel.jaxx)
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EquationContinuousPanelUI.jaxx (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EquationContinuousPanelUI.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
@@ -0,0 +1,254 @@
+<!--
+/* *##%
+ * Copyright (C) 2005 - 2009 Ifremer, 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.
+ *##%*/
+ -->
+<ContinuousPanelContainerUI>
+
+ <!-- bean property -->
+ <fr.ifremer.isisfish.entities.Formule id='formule' javaBean='null'/>
+ <String id='lblText' javaBean='null'/>
+ <org.codelutin.topia.persistence.TopiaEntity id='bean' javaBean='null'/>
+ <Class id='clazz' javaBean='null'/>
+ <String id='methodGet' javaBean='null'/>
+ <String id='methodSet' javaBean='null'/>
+ <String id='nameEquation' javaBean='null'/>
+ <fr.ifremer.isisfish.entities.Equation id='selectedEquation' javaBean='null'/>
+
+ <script><![CDATA[
+import javax.swing.table.AbstractTableModel;
+import javax.swing.table.DefaultTableModel;
+import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationContinuousDomain;
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableModel;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import org.apache.commons.lang.StringUtils;
+
+protected String[] columnNames = {"Name", "Value", "Coef (in %)", "Operator", "Action"};
+protected java.util.List<EquationContinuousDomain> datas = new ArrayList<EquationContinuousDomain>();
+protected java.util.List<JComboBox> operateurs = new ArrayList<JComboBox>();
+protected java.util.List<JButton> actions = new ArrayList<JButton>();
+
+public java.util.List<EquationContinuousDomain> getDomains(){
+ return datas;
+}
+public void setDomains(java.util.List<EquationContinuousDomain> domains){
+ datas.clear();
+ for (EquationContinuousDomain d : domains){
+ addDomain(d);
+ }
+}
+public void addDomain(EquationContinuousDomain domain){
+ newButton();
+ datas.add(domain);
+}
+protected AbstractTableModel getTableModel(){
+ AbstractTableModel model = new AbstractTableModel() {
+
+ @Override
+ public int getRowCount() {
+ return datas.size();
+ }
+
+ @Override
+ public int getColumnCount() {
+ return columnNames.length;
+ }
+
+ @Override
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return true;
+ }
+ @Override
+ public Object getValueAt(int rowIndex, int columnIndex) {
+ if (columnIndex == 0){
+ return datas.get(rowIndex).getVariableName();
+ } else if (columnIndex == 1){
+ return datas.get(rowIndex).getReferenceValue();
+ } else if (columnIndex == 2){
+ return datas.get(rowIndex).getCoefficient() == null ? 100 : datas.get(rowIndex).getCoefficient() * 100;
+ } else if (columnIndex == 3){
+ return datas.get(rowIndex).getOperator();
+ } else if (columnIndex == 4){
+ return _("isisfish.factor.validDiscretNumber");
+ }
+ return null;
+ }
+
+ @Override
+ public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
+ if (String.class.isInstance(aValue)){
+ if (!((String)aValue).equals("")){
+ if (columnIndex == 0){
+ datas.get(rowIndex).setVariableName((String)aValue);
+ } else if (columnIndex == 1){
+ datas.get(rowIndex).setReferenceValue(Double.parseDouble((String)aValue));
+ } else if (columnIndex == 2){
+ datas.get(rowIndex).setCoefficient(Double.parseDouble((String)aValue) / 100);
+ } else if (columnIndex == 3){
+ datas.get(rowIndex).setOperator((String)aValue);
+ }
+ }
+ }
+ }
+
+ @Override
+ public String getColumnName(int col) {
+ return columnNames[col].toString();
+ }
+
+ };
+ return model;
+}
+protected JComboBox getOperateur(){
+ JComboBox result = new JComboBox();
+ result.addItem("+");
+ result.addItem("-");
+ result.addItem("*");
+ result.addItem("/");
+ operateurs.add(result);
+ result.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ JComboBox source = (JComboBox)e.getSource();
+ int i = operateurs.indexOf(source);
+ if (datas.size() <= i){
+ datas.get(i).setOperator((String)source.getSelectedItem());
+ }
+ }
+ });
+ return result;
+}
+protected void newButton(){
+ JButton result = new JButton();
+ result.setText(_("isisfish.factor.validDiscretNumber"));
+ actions.add(result);
+ result.addActionListener(new ActionListener() {
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ JButton source = (JButton)e.getSource();
+ int i = actions.indexOf(source);
+ valid(i);
+ }
+ });
+}
+protected JButton getActionButton(int i){
+ return actions.get(i);
+}
+protected void valid(int i) {
+ String variableName = datas.get(i).getVariableName();
+ String[] lines = editor.getEditor().getText().split("\n");
+ String result = "";
+ for (String line : lines) {
+ Pattern p = Pattern.compile("(^.*\\s+" + variableName + "\\s*\\=\\s*)([\\d\\.]+).*\\;$");
+ Matcher matcher = p.matcher(line);
+ if (matcher.find()) {
+ String fullVariableName = bean.toString() + "." + StringUtils.uncapitalize(methodGet) + "." + variableName;
+ line = matcher.group(1) + "context.getValueAndCompute(\"" + fullVariableName + "\", " + matcher.group(2) + ");";
+ }
+ result += line + "\n";
+ }
+ editor.getEditor().setText(result);
+}
+protected void setTable(){
+ params.setModel(getTableModel());
+ params.getColumnModel().getColumn(3).setCellEditor(new DefaultCellEditor(getOperateur()));
+ params.getColumnModel().getColumn(4).setCellEditor(new TableCellEditor() {
+
+ @Override
+ public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
+ return getActionButton(row);
+ }
+
+ @Override
+ public Object getCellEditorValue() {
+ return null;
+ }
+
+ @Override
+ public boolean isCellEditable(EventObject anEvent) {
+ return true;
+ }
+
+ @Override
+ public boolean shouldSelectCell(EventObject anEvent) {
+ return true;
+ }
+
+ @Override
+ public boolean stopCellEditing() {
+ return true;
+ }
+
+ @Override
+ public void cancelCellEditing() {
+ }
+
+ @Override
+ public void addCellEditorListener(CellEditorListener l) {
+ }
+
+ @Override
+ public void removeCellEditorListener(CellEditorListener l) {
+ }
+ });
+}
+protected void add(){
+ datas.add(new EquationContinuousDomain());
+ newButton();
+ setTable();
+}
+protected void remove(){
+ int i = params.getSelectedRow();
+ if (i != -1){
+ datas.remove(i);
+ operateurs.remove(i);
+ actions.remove(i);
+ setTable();
+ }
+}
+ ]]>
+ </script>
+ <Table id='content' constraints='BorderLayout.CENTER'>
+ <row>
+ <cell fill='both' columns='2' weightx='1' weighty='0.5'>
+ <JScrollPane>
+ <JTable id='params' visible='{isContinuePossible()}' model='{getTableModel()}' enabled='{isContinueSelected()}'/>
+ </JScrollPane>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal' weightx='0.5'>
+ <JButton id='add' text='isisfish.common.add' visible='{isContinuePossible()}' enabled='{isContinueSelected()}' onActionPerformed='add()'/>
+ </cell>
+ <cell fill='horizontal' weightx='0.5'>
+ <JButton id='remove' text='isisfish.common.remove' visible='{isContinuePossible()}' enabled='{isContinueSelected()}' onActionPerformed='remove()'/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='both' columns='2' weightx='1' weighty='0.5'>
+ <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='editor' formule='{getFormule()}' lblText='{getLblText()}'
+ constructorParams='this' bean='{getBean()}' clazz='{getClazz()}' methodGet='{getMethodGet()}' actif='{isContinueSelected()}'
+ methodSet='{getMethodSet()}' nameEquation='{getNameEquation()}' selectedEquation='{getSelectedEquation()}'
+ visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ </cell>
+ </row>
+ </Table>
+</ContinuousPanelContainerUI>
\ No newline at end of file
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java 2009-04-24 15:56:19 UTC (rev 2144)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java 2009-04-24 15:57:15 UTC (rev 2145)
@@ -44,18 +44,18 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
private static Log log = LogFactory.getLog(SimulAction.class);
- public static void saveContinue(JComponent cOrigine, String name, String comment, String path, ContinuousPanelContainer panel, SimulAction action, boolean exist){
- DefaultContinuousPanel defaultPanel = null;
- if (MatrixContinuousPanel.class.isInstance(panel)){
- MatrixContinuousPanel matrixPanel = (MatrixContinuousPanel)panel;
+ public static void saveContinue(JComponent cOrigine, String name, String comment, String path, ContinuousPanelContainerUI panel, SimulAction action, boolean exist){
+ DefaultContinuousPanelUI defaultPanel = null;
+ if (MatrixContinuousPanelUI.class.isInstance(panel)){
+ MatrixContinuousPanelUI matrixPanel = (MatrixContinuousPanelUI)panel;
Double coef = Double.valueOf(matrixPanel.getCoef().getText());
MatrixND matrix = matrixPanel.getMatrix();
String operateur = (String)matrixPanel.getOperator().getSelectedItem();
action.addContinuousMatrixFactor(name, comment, path, coef, matrix, operateur, cOrigine, exist);
- } else if (EquationContinuousPanel.class.isInstance(panel)){
+ } else if (EquationContinuousPanelUI.class.isInstance(panel)){
try {
- EquationContinuousPanel equationPanel = (EquationContinuousPanel) panel;
+ EquationContinuousPanelUI equationPanel = (EquationContinuousPanelUI) panel;
TopiaEntity bean = equationPanel.getBean();
String methodSet = equationPanel.getMethodSet();
@@ -80,15 +80,15 @@
log.error("Can't call method : ", ex);
}
}
- } else if (DefaultContinuousPanel.class.isInstance(panel)){
- defaultPanel = (DefaultContinuousPanel)panel;
+ } else if (DefaultContinuousPanelUI.class.isInstance(panel)){
+ defaultPanel = (DefaultContinuousPanelUI)panel;
action.addContinuousFactor(name, comment, path, getMin(defaultPanel), getMax(defaultPanel), cOrigine, exist);
}
}
- protected static Double getMin(DefaultContinuousPanel defaultPanel){
+ protected static Double getMin(DefaultContinuousPanelUI defaultPanel){
return Double.parseDouble(defaultPanel.getMin());
}
- protected static Double getMax(DefaultContinuousPanel defaultPanel){
+ protected static Double getMax(DefaultContinuousPanelUI defaultPanel){
return Double.parseDouble(defaultPanel.getMax());
}
public static void saveDiscret(JComponent cOrigine, String name, String comment, String path, List<JComponent> components, SimulAction action, boolean exist){
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeCellRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeCellRenderer.java 2009-04-24 15:56:19 UTC (rev 2144)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeCellRenderer.java 2009-04-24 15:57:15 UTC (rev 2145)
@@ -37,6 +37,8 @@
*
* Last update : $Date: 9 mars 2009 $
* By : $Author: chatellier $
+ *
+ * TODO extends AbstractTreeCellRenderer and remove DefaultMutableTreeNode reference
*/
public class FactorTreeCellRenderer extends DefaultTreeCellRenderer {
Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx 2009-04-24 15:56:19 UTC (rev 2144)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
@@ -1,267 +0,0 @@
-<!--
-/* *##%
- * Copyright (C) 2005 - 2009 Ifremer, 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.
- *##%*/ -->
-<JDialog id="FactorTypeChooser" title='isisfish.factor.title' modal='{true}' layout='{new BorderLayout()}'>
-
- <Boolean id='continuePossible' javaBean='true'/>
-
- <Boolean id='continueSelected' javaBean='false'/>
-
- <Boolean id='saveEnabled' javaBean='false'/>
-
- <Boolean id='existingValue' javaBean='false'/>
-
- <script><![CDATA[
-import org.apache.commons.lang.StringUtils;
-import org.codelutin.topia.persistence.TopiaEntity;
-import fr.ifremer.isisfish.ui.simulator.SimulAction;
-import fr.ifremer.isisfish.ui.input.InputSaveVerifier;
-import fr.ifremer.isisfish.simulator.sensitivity.Factor;
-import fr.ifremer.isisfish.simulator.sensitivity.Domain;
-import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain;
-import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain;
-
-protected JComponent cOrigine = null;
-protected TopiaEntity bean = null;
-protected java.util.List<JComponent> discretComponents = new ArrayList<JComponent>();
-protected String path = null;
-protected ContinuousPanelContainer continuousPanel = null;
-protected Factor factor = null;
-
-addPropertyChangeListener("continuePossible", new PropertyChangeListener(){
-
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (continuousPanel != null){
- continuousPanel.setContinuePossible((Boolean)evt.getNewValue());
- }
- }
-
-});
-
-addPropertyChangeListener("continueSelected", new PropertyChangeListener(){
-
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (continuousPanel != null){
- continuousPanel.setContinueSelected((Boolean)evt.getNewValue());
- }
- }
-
-});
-
-public void initNew(JComponent c, TopiaEntity be, Boolean b){
- this.bean = be;
- this.cOrigine = c;
-
- // path is topiaId#property
- // ex : fwn#fsd#0.3425345#name
- // for JAXX : cOrigine start with upper case
- // for commons beanutils : must be lower case
- String methodName = StringUtils.uncapitalize(EditorHelper.getMethod(cOrigine));
- this.path = bean.getTopiaId() + "#" + methodName;
-
- factorName.setText(bean.toString() + "." + methodName);
- setContinuePossible(b);
- boolean selected = EditorHelper.isContinue(cOrigine);
- setContinueSelected(selected);
- continueRadion.setSelected(selected);
- if (isContinuePossible()){
- if (EditorHelper.isRangeOfValue(cOrigine)){
- continuousPanel = EditorHelper.getContinuousRangeOfValuePanel(cOrigine, bean);
- }
- else {
- continuousPanel = EditorHelper.getContinuousPanel(cOrigine, bean);
- }
- init();
- }
- if (!isContinueSelected() && EditorHelper.isRangeOfValue(cOrigine)){
- int i = 0;
- for (String s : EditorHelper.getDiscretRangeOfValueValues(cOrigine, bean)){
- JTextField text = new JTextField(s);
- discretComponents.add(text);
- tabPane.add(text, "Factor " + (i+1));
- i++;
- }
- }
- if (continuousPanel != null){
- continuousPanel.setContinueSelected(selected);
- }
- setContinueSelected(EditorHelper.isContinue(cOrigine));
- setSaveEnabled(!factorName.getText().equals(""));
-}
-
-public void initExisting(JComponent cOrigine, Factor f){
- setExistingValue(true);
- this.cOrigine = cOrigine;
- this.path = f.getPath();
- factorName.setText(f.getName());
- comment.setText(f.getComment());
- Domain domain = f.getDomain();
- this.factor = f;
-
- if (ContinuousDomain.class.isInstance(domain)){
- ContinuousDomain cDomain = (ContinuousDomain) domain;
-
- continuousPanel = EditorHelper.getContinuousPanelWithValue(cOrigine, cDomain, f);
- init();
-
- continueRadion.setSelected(true);
- setContinueSelected(true);
- setContinuePossible(true);
- }else{
- DiscreteDomain dDomain = (DiscreteDomain)domain;
-
- int nb = dDomain.getValues().size();
- discretNumber.setText(nb + "");
-
- discretComponents.clear();
- tabPane.removeAll();
-
- SortedMap values = dDomain.getValues();
- int i = 0;
- Object cache = null;
- for (Object o : values.values()) {
- i++;
- cache = o;
- JComponent c = null;
- if (o != null){
- c = EditorHelper.getEditorWithValue(cOrigine, o);
- }
- else {
- c = EditorHelper.getEditorWithValue(cOrigine);
- }
- discretComponents.add(c);
- JScrollPane js = new JScrollPane(c);
- tabPane.addTab("Factor " + i, js);
- }
- setContinuePossible(EditorHelper.canBeContinue(cOrigine, cache));
-
- this.pack();
- }
- setSaveEnabled(!factorName.getText().equals(""));
-}
-protected void init(){
- continuousPanelContainer.add(continuousPanel, BorderLayout.CENTER);
- this.pack();
-}
-protected JComponent getNewComponent(){
- return EditorHelper.getEditor(cOrigine, bean);
-}
-protected void addTabs(String sNbTab){
- int nbTab = Integer.parseInt(sNbTab);
- discretComponents.clear();
- tabPane.removeAll();
- for (int i=0;i<nbTab;i++){
- JComponent c = getNewComponent();
- discretComponents.add(c);
- JScrollPane js = new JScrollPane(c);
- tabPane.addTab("Factor " + (i+1), js);
- }
- this.pack();
-}
-protected FactorAction getFactorAction(){
- return getContextValue(FactorAction.class);
-}
-protected SimulAction getSimulAction(){
- return getContextValue(SimulAction.class);
-}
-protected void save(){
- if (continueRadion.isSelected()){
- getFactorAction().saveContinue(cOrigine, factorName.getText(), comment.getText(), path, continuousPanel, getSimulAction(), isExistingValue());
- } else {
- getFactorAction().saveDiscret(cOrigine, factorName.getText(), comment.getText(), path, discretComponents, getSimulAction(), isExistingValue());
- }
- getContextValue(InputSaveVerifier.class).getSensPanel().setFactorModel();
- exit();
-}
-protected void remove(){
- getSimulAction().removeFactor(factor);
- getContextValue(InputSaveVerifier.class).getSensPanel().setFactorModel();
- exit();
-}
-protected void exit(){
- this.dispose();
-}
- ]]>
- </script>
- <Table constraints='BorderLayout.CENTER'>
- <row>
- <cell columns='1' fill='horizontal'>
- <JLabel text='isisfish.factor.name'/>
- </cell>
- <cell columns='3' fill='horizontal' weightx='1'>
- <JTextField id='factorName' onKeyReleased='setSaveEnabled(!factorName.getText().equals(""))'/>
- </cell>
- </row>
- <row>
- <cell columns='4' fill='horizontal' weightx='1'>
- <JRadioButton id='continueRadion' text='isisfish.factor.continue' buttonGroup='factorType' visible='{isContinuePossible()}' selected='{false}' onActionPerformed='setContinueSelected(continueRadion.isSelected())'/>
- </cell>
- </row>
- <row>
- <cell fill='both' columns='4' weightx='1' weighty='0.5'>
- <JPanel id='continuousPanelContainer' layout='{new BorderLayout()}'/>
- </cell>
- </row>
- <row>
- <cell columns='4' fill='horizontal' weightx='1'>
- <JRadioButton id='discret' text='isisfish.factor.discret' selected='{true}' buttonGroup='factorType' onActionPerformed='setContinueSelected(continueRadion.isSelected())'/>
- </cell>
- </row>
- <row>
- <cell fill='horizontal'>
- <JLabel text='isisfish.factor.selectDiscretNumber' enabled='{!isContinueSelected()}'/>
- </cell>
- <cell fill='horizontal' weightx='0.5'>
- <JTextField id='discretNumber' enabled='{!isContinueSelected()}'/>
- </cell>
- <cell columns='2' fill='horizontal' weightx='0.5'>
- <JButton text='isisfish.factor.validDiscretNumber' enabled='{!isContinueSelected()}' onActionPerformed='addTabs(discretNumber.getText())'/>
- </cell>
- </row>
- <row>
- <cell columns='4' fill='both' weightx='1' weighty='0.3'>
- <JTabbedPane id='tabPane' visible='{!isContinueSelected()}' enabled='{!isContinueSelected()}'/>
- </cell>
- </row>
- <row>
- <cell columns='4' fill='horizontal'>
- <JLabel text='isisfish.factor.comment'/>
- </cell>
- </row>
- <row>
- <cell columns='4' fill='both' weightx='1' weighty='0.3'>
- <JScrollPane>
- <JTextArea id='comment'/>
- </JScrollPane>
- </cell>
- </row>
- <row>
- <cell fill='horizontal' weightx='0.25'>
- <JButton id='cancel' text='isisfish.common.cancel' onActionPerformed='exit()'/>
- </cell>
- <cell fill='horizontal' weightx='0.25'>
- <JButton id='remove' text='isisfish.common.remove' visible='{isExistingValue()}' onActionPerformed='remove()'/>
- </cell>
- <cell columns='2' fill='horizontal' weightx='0.5'>
- <JButton id='save' text='isisfish.common.save' enabled='{isSaveEnabled()}' onActionPerformed='save()'/>
- </cell>
- </row>
- </Table>
-</JDialog>
\ No newline at end of file
Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizardUI.jaxx (from rev 2134, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx)
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizardUI.jaxx (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizardUI.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
@@ -0,0 +1,267 @@
+<!--
+/* *##%
+ * Copyright (C) 2005 - 2009 Ifremer, 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.
+ *##%*/ -->
+<JDialog id="FactorTypeChooser" title='isisfish.factor.title' modal='{true}' layout='{new BorderLayout()}'>
+
+ <Boolean id='continuePossible' javaBean='true'/>
+
+ <Boolean id='continueSelected' javaBean='false'/>
+
+ <Boolean id='saveEnabled' javaBean='false'/>
+
+ <Boolean id='existingValue' javaBean='false'/>
+
+ <script><![CDATA[
+import org.apache.commons.lang.StringUtils;
+import org.codelutin.topia.persistence.TopiaEntity;
+import fr.ifremer.isisfish.ui.simulator.SimulAction;
+import fr.ifremer.isisfish.ui.input.InputSaveVerifier;
+import fr.ifremer.isisfish.simulator.sensitivity.Factor;
+import fr.ifremer.isisfish.simulator.sensitivity.Domain;
+import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain;
+import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain;
+
+protected JComponent cOrigine = null;
+protected TopiaEntity bean = null;
+protected java.util.List<JComponent> discretComponents = new ArrayList<JComponent>();
+protected String path = null;
+protected ContinuousPanelContainerUI continuousPanel = null;
+protected Factor factor = null;
+
+addPropertyChangeListener("continuePossible", new PropertyChangeListener(){
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (continuousPanel != null){
+ continuousPanel.setContinuePossible((Boolean)evt.getNewValue());
+ }
+ }
+
+});
+
+addPropertyChangeListener("continueSelected", new PropertyChangeListener(){
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (continuousPanel != null){
+ continuousPanel.setContinueSelected((Boolean)evt.getNewValue());
+ }
+ }
+
+});
+
+public void initNew(JComponent c, TopiaEntity be, Boolean b){
+ this.bean = be;
+ this.cOrigine = c;
+
+ // path is topiaId#property
+ // ex : fwn#fsd#0.3425345#name
+ // for JAXX : cOrigine start with upper case
+ // for commons beanutils : must be lower case
+ String methodName = StringUtils.uncapitalize(EditorHelper.getMethod(cOrigine));
+ this.path = bean.getTopiaId() + "#" + methodName;
+
+ factorName.setText(bean.toString() + "." + methodName);
+ setContinuePossible(b);
+ boolean selected = EditorHelper.isContinue(cOrigine);
+ setContinueSelected(selected);
+ continueRadion.setSelected(selected);
+ if (isContinuePossible()){
+ if (EditorHelper.isRangeOfValue(cOrigine)){
+ continuousPanel = EditorHelper.getContinuousRangeOfValuePanel(cOrigine, bean);
+ }
+ else {
+ continuousPanel = EditorHelper.getContinuousPanel(cOrigine, bean);
+ }
+ init();
+ }
+ if (!isContinueSelected() && EditorHelper.isRangeOfValue(cOrigine)){
+ int i = 0;
+ for (String s : EditorHelper.getDiscretRangeOfValueValues(cOrigine, bean)){
+ JTextField text = new JTextField(s);
+ discretComponents.add(text);
+ tabPane.add(text, "Factor " + (i+1));
+ i++;
+ }
+ }
+ if (continuousPanel != null){
+ continuousPanel.setContinueSelected(selected);
+ }
+ setContinueSelected(EditorHelper.isContinue(cOrigine));
+ setSaveEnabled(!factorName.getText().equals(""));
+}
+
+public void initExisting(JComponent cOrigine, Factor f){
+ setExistingValue(true);
+ this.cOrigine = cOrigine;
+ this.path = f.getPath();
+ factorName.setText(f.getName());
+ comment.setText(f.getComment());
+ Domain domain = f.getDomain();
+ this.factor = f;
+
+ if (ContinuousDomain.class.isInstance(domain)){
+ ContinuousDomain cDomain = (ContinuousDomain) domain;
+
+ continuousPanel = EditorHelper.getContinuousPanelWithValue(cOrigine, cDomain, f);
+ init();
+
+ continueRadion.setSelected(true);
+ setContinueSelected(true);
+ setContinuePossible(true);
+ }else{
+ DiscreteDomain dDomain = (DiscreteDomain)domain;
+
+ int nb = dDomain.getValues().size();
+ discretNumber.setText(nb + "");
+
+ discretComponents.clear();
+ tabPane.removeAll();
+
+ SortedMap values = dDomain.getValues();
+ int i = 0;
+ Object cache = null;
+ for (Object o : values.values()) {
+ i++;
+ cache = o;
+ JComponent c = null;
+ if (o != null){
+ c = EditorHelper.getEditorWithValue(cOrigine, o);
+ }
+ else {
+ c = EditorHelper.getEditorWithValue(cOrigine);
+ }
+ discretComponents.add(c);
+ JScrollPane js = new JScrollPane(c);
+ tabPane.addTab("Factor " + i, js);
+ }
+ setContinuePossible(EditorHelper.canBeContinue(cOrigine, cache));
+
+ this.pack();
+ }
+ setSaveEnabled(!factorName.getText().equals(""));
+}
+protected void init(){
+ continuousPanelContainer.add(continuousPanel, BorderLayout.CENTER);
+ this.pack();
+}
+protected JComponent getNewComponent(){
+ return EditorHelper.getEditor(cOrigine, bean);
+}
+protected void addTabs(String sNbTab){
+ int nbTab = Integer.parseInt(sNbTab);
+ discretComponents.clear();
+ tabPane.removeAll();
+ for (int i=0;i<nbTab;i++){
+ JComponent c = getNewComponent();
+ discretComponents.add(c);
+ JScrollPane js = new JScrollPane(c);
+ tabPane.addTab("Factor " + (i+1), js);
+ }
+ this.pack();
+}
+protected FactorAction getFactorAction(){
+ return getContextValue(FactorAction.class);
+}
+protected SimulAction getSimulAction(){
+ return getContextValue(SimulAction.class);
+}
+protected void save(){
+ if (continueRadion.isSelected()){
+ getFactorAction().saveContinue(cOrigine, factorName.getText(), comment.getText(), path, continuousPanel, getSimulAction(), isExistingValue());
+ } else {
+ getFactorAction().saveDiscret(cOrigine, factorName.getText(), comment.getText(), path, discretComponents, getSimulAction(), isExistingValue());
+ }
+ getContextValue(InputSaveVerifier.class).getSensPanel().setFactorModel();
+ exit();
+}
+protected void remove(){
+ getSimulAction().removeFactor(factor);
+ getContextValue(InputSaveVerifier.class).getSensPanel().setFactorModel();
+ exit();
+}
+protected void exit(){
+ this.dispose();
+}
+ ]]>
+ </script>
+ <Table constraints='BorderLayout.CENTER'>
+ <row>
+ <cell columns='1' fill='horizontal'>
+ <JLabel text='isisfish.factor.name'/>
+ </cell>
+ <cell columns='3' fill='horizontal' weightx='1'>
+ <JTextField id='factorName' onKeyReleased='setSaveEnabled(!factorName.getText().equals(""))'/>
+ </cell>
+ </row>
+ <row>
+ <cell columns='4' fill='horizontal' weightx='1'>
+ <JRadioButton id='continueRadion' text='isisfish.factor.continue' buttonGroup='factorType' visible='{isContinuePossible()}' selected='{false}' onActionPerformed='setContinueSelected(continueRadion.isSelected())'/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='both' columns='4' weightx='1' weighty='0.5'>
+ <JPanel id='continuousPanelContainer' layout='{new BorderLayout()}'/>
+ </cell>
+ </row>
+ <row>
+ <cell columns='4' fill='horizontal' weightx='1'>
+ <JRadioButton id='discret' text='isisfish.factor.discret' selected='{true}' buttonGroup='factorType' onActionPerformed='setContinueSelected(continueRadion.isSelected())'/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal'>
+ <JLabel text='isisfish.factor.selectDiscretNumber' enabled='{!isContinueSelected()}'/>
+ </cell>
+ <cell fill='horizontal' weightx='0.5'>
+ <JTextField id='discretNumber' enabled='{!isContinueSelected()}'/>
+ </cell>
+ <cell columns='2' fill='horizontal' weightx='0.5'>
+ <JButton text='isisfish.factor.validDiscretNumber' enabled='{!isContinueSelected()}' onActionPerformed='addTabs(discretNumber.getText())'/>
+ </cell>
+ </row>
+ <row>
+ <cell columns='4' fill='both' weightx='1' weighty='0.3'>
+ <JTabbedPane id='tabPane' visible='{!isContinueSelected()}' enabled='{!isContinueSelected()}'/>
+ </cell>
+ </row>
+ <row>
+ <cell columns='4' fill='horizontal'>
+ <JLabel text='isisfish.factor.comment'/>
+ </cell>
+ </row>
+ <row>
+ <cell columns='4' fill='both' weightx='1' weighty='0.3'>
+ <JScrollPane>
+ <JTextArea id='comment'/>
+ </JScrollPane>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal' weightx='0.25'>
+ <JButton id='cancel' text='isisfish.common.cancel' onActionPerformed='exit()'/>
+ </cell>
+ <cell fill='horizontal' weightx='0.25'>
+ <JButton id='remove' text='isisfish.common.remove' visible='{isExistingValue()}' onActionPerformed='remove()'/>
+ </cell>
+ <cell columns='2' fill='horizontal' weightx='0.5'>
+ <JButton id='save' text='isisfish.common.save' enabled='{isSaveEnabled()}' onActionPerformed='save()'/>
+ </cell>
+ </row>
+ </Table>
+</JDialog>
\ No newline at end of file
Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanel.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanel.jaxx 2009-04-24 15:56:19 UTC (rev 2144)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanel.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
@@ -1,75 +0,0 @@
-<!--
-/* *##%
- * Copyright (C) 2005
- * Ifremer, Code Lutin, Cedric Pineau, Benjamin Poussin
- *
- * 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.
- *##%*/
-
-/* *
- * IsisFish.java
- *
- * Created: 1 aout 2005 18:37:25 CEST
- *
- * @author Benjamin POUSSIN <poussin at codelutin.com>
- * @version $Revision: 1312 $
- *
- * Last update: $Date: 2008-08-28 10:21:07 +0200 (jeu, 28 aoû 2008) $
- * by : $Author: sletellier $
- */
- -->
-<ContinuousPanelContainer>
-
- <org.codelutin.math.matrix.MatrixND id='matrix' javaBean='null'/>
-
- <script><![CDATA[
-import org.codelutin.math.matrix.MatrixND;
-import org.codelutin.math.matrix.gui.JAXXMatrixEditor;
- ]]>
- </script>
- <Table id='content' constraints='BorderLayout.CENTER'>
- <row>
- <cell fill='horizontal'>
- <JLabel text='isisfish.factor.value' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
- </cell>
- <cell fill='both' weightx='1' weighty='1'>
- <!--JScrollPane-->
- <JAXXMatrixEditor id='componentPanel' dimensionEdit='{false}' matrix='{getMatrix() == null ? null : getMatrix().clone()}' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
- <!--/JScrollPane-->
- </cell>
- </row>
- <row>
- <cell fill='horizontal'>
- <JLabel text='isisfish.factor.coefficient' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
- </cell>
- <cell fill='both' columns='2' weightx='1' weighty='1'>
- <JTextField id='coef' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
- </cell>
- </row>
- <row>
- <cell fill='horizontal'>
- <JLabel text='isisfish.factor.operateur' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
- </cell>
- <cell fill='horizontal' weightx='1' columns='3'>
- <JComboBox id='operator' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'>
- <item id='plus' value="+"/>
- <item id='moins' value="-"/>
- <item id='mult' value="*"/>
- <item id='div' value="/"/>
- </JComboBox>
- </cell>
- </row>
- </Table>
-</ContinuousPanelContainer>
\ No newline at end of file
Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanelUI.jaxx (from rev 2134, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanel.jaxx)
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanelUI.jaxx (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanelUI.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
@@ -0,0 +1,62 @@
+<!--
+/* *##%
+ * Copyright (C) 2005 - 2009 Ifremer, 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.
+ *##%*/
+ -->
+<ContinuousPanelContainerUI>
+
+ <org.codelutin.math.matrix.MatrixND id='matrix' javaBean='null'/>
+
+ <script><![CDATA[
+import org.codelutin.math.matrix.MatrixND;
+import org.codelutin.math.matrix.gui.JAXXMatrixEditor;
+ ]]>
+ </script>
+ <Table id='content' constraints='BorderLayout.CENTER'>
+ <row>
+ <cell fill='horizontal'>
+ <JLabel text='isisfish.factor.value' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ </cell>
+ <cell fill='both' weightx='1' weighty='1'>
+ <!--JScrollPane-->
+ <JAXXMatrixEditor id='componentPanel' dimensionEdit='{false}' matrix='{getMatrix() == null ? null : getMatrix().clone()}' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ <!--/JScrollPane-->
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal'>
+ <JLabel text='isisfish.factor.coefficient' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ </cell>
+ <cell fill='both' columns='2' weightx='1' weighty='1'>
+ <JTextField id='coef' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal'>
+ <JLabel text='isisfish.factor.operateur' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/>
+ </cell>
+ <cell fill='horizontal' weightx='1' columns='3'>
+ <JComboBox id='operator' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'>
+ <item id='plus' value="+"/>
+ <item id='moins' value="-"/>
+ <item id='mult' value="*"/>
+ <item id='div' value="/"/>
+ </JComboBox>
+ </cell>
+ </row>
+ </Table>
+</ContinuousPanelContainerUI>
\ No newline at end of file
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-04-24 15:56:19 UTC (rev 2144)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
@@ -15,7 +15,8 @@
* 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.
- *##%*/ -->
+ *##%*/
+-->
<Table>
<script><![CDATA[
import javax.swing.table.DefaultTableModel;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx 2009-04-24 15:56:19 UTC (rev 2144)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivitySecondPassUI.jaxx 2009-04-24 15:57:15 UTC (rev 2145)
@@ -16,16 +16,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*##%*/
-
-/* *
- * SensitivitySecondPassUI.
- *
- * @author chatellier
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-->
<Table>
<script><![CDATA[
1
0
r2144 - in isis-fish/trunk/src/main: java/fr/ifremer/isisfish/simulator/launcher java/fr/ifremer/isisfish/simulator/launcher/ssh resources/i18n
by chatellier@users.labs.libre-entreprise.org April 24, 2009
by chatellier@users.labs.libre-entreprise.org April 24, 2009
April 24, 2009
Author: chatellier
Date: 2009-04-24 15:56:19 +0000 (Fri, 24 Apr 2009)
New Revision: 2144
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUserInfo.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 log info message if ssh key is found, or not found
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-24 10:27:19 UTC (rev 2143)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-24 15:56:19 UTC (rev 2144)
@@ -423,6 +423,11 @@
jsch.addIdentity(sshKey.getAbsolutePath());
sshKeyUsed = true;
}
+ else {
+ if (log.isInfoEnabled()) {
+ log.info(_("Can't read ssh key : %s", sshKey));
+ }
+ }
Session session = jsch.getSession(username, host, port);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUserInfo.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUserInfo.java 2009-04-24 10:27:19 UTC (rev 2143)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUserInfo.java 2009-04-24 15:56:19 UTC (rev 2144)
@@ -20,7 +20,6 @@
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
-import javax.swing.JTextField;
import com.jcraft.jsch.UserInfo;
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-04-24 10:27:19 UTC (rev 2143)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-04-24 15:56:19 UTC (rev 2144)
@@ -16,6 +16,7 @@
Can't\ instanciate\ wanted\ VCS\ (%s),\ use\ default=
Can't\ instantiate\ %s=
Can't\ open\ log\ for\ %s=
+Can't\ read\ ssh\ key\ \:\ %s=
Can't\ simulate\ %s=
Check\ state\ of\ local\ repository\:\ %s=
Check\ syntax\ of\ the\ current\ script=
@@ -166,6 +167,7 @@
isisfish.config.main.regionMap.description=
isisfish.config.main.remoteCaparmor.description=
isisfish.config.main.resultExport.description=
+isisfish.config.main.simulation.max.simultaneous.simulation.description=
isisfish.config.main.simulation.ssh.addscripttoqueuecommand.description=
isisfish.config.main.simulation.ssh.control.check.interval.description=
isisfish.config.main.simulation.ssh.datapath.description=
@@ -251,7 +253,6 @@
isisfish.error.equation.return.number=EquationImpl must retun a number\: %1$s
isisfish.error.evaluate.equation=Can't evaluate equation\: %1$s
isisfish.error.evalute.plan.script=Can't evaluate plan script
-isisfish.error.factor.coefValueIsOne=Coefficient can't be equal to 1
isisfish.error.factor.invalid=Factor is not valid
isisfish.error.file.already.exists=The file %1$s already exist
isisfish.error.get.fisheryRegion=Can't get FisheryRegion
@@ -292,7 +293,6 @@
isisfish.error.no.sector=No sector defined
isisfish.error.no.select.simulation=could not select simulation
isisfish.error.no.target.species=no target species in %1$s for %2$s
-isisfish.error.not.found.class=this class does not
isisfish.error.not.found.code=could not found codeclass for %1$s
isisfish.error.not.found.description=could not found description for %1$s
isisfish.error.not.found.field=could not found field %1$s doc for %2$s
@@ -359,8 +359,6 @@
isisfish.error.wait.simThread=Can't wait SimThread
isisfish.error.warning.title=Warning
isisfish.error.write.simulation=Can't write information %1$s
-isisfish.exit.text=Something has change, please enter a comment
-isisfish.exit.title=Exit
isisfish.export.directory=Export directory
isisfish.export.saved=Export saved
isisfish.export.title=Results export
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-04-24 10:27:19 UTC (rev 2143)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-04-24 15:56:19 UTC (rev 2144)
@@ -16,6 +16,7 @@
Can't\ instanciate\ wanted\ VCS\ (%s),\ use\ default=
Can't\ instantiate\ %s=
Can't\ open\ log\ for\ %s=
+Can't\ read\ ssh\ key\ \:\ %s=
Can't\ simulate\ %s=
Check\ state\ of\ local\ repository\:\ %s=
Check\ syntax\ of\ the\ current\ script=
@@ -166,6 +167,7 @@
isisfish.config.main.regionMap.description=le nom du r\u00E9pertoire contenant les maps d'une r\u00E9gion
isisfish.config.main.remoteCaparmor.description=lance les simulations sur un serveur distant
isisfish.config.main.resultExport.description=TODO
+isisfish.config.main.simulation.max.simultaneous.simulation.description=
isisfish.config.main.simulation.ssh.addscripttoqueuecommand.description=
isisfish.config.main.simulation.ssh.control.check.interval.description=
isisfish.config.main.simulation.ssh.datapath.description=
@@ -251,7 +253,6 @@
isisfish.error.equation.return.number=EquationImpl must retun a number\: %1$s
isisfish.error.evaluate.equation=Can't evaluate equation\: %1$s
isisfish.error.evalute.plan.script=Can't evaluate plan script
-isisfish.error.factor.coefValueIsOne=Un co\u00E9fficient ne peux pas \u00EAtre \u00E9gual \u00E0 1
isisfish.error.factor.invalid=Le facteur n'est pas valide
isisfish.error.file.already.exists=The file %1$s already exist
isisfish.error.get.fisheryRegion=Can't get FisheryRegion
@@ -292,7 +293,6 @@
isisfish.error.no.sector=il n'y a pas de secteur de d\u00E9finit
isisfish.error.no.select.simulation=could not select simulation
isisfish.error.no.target.species=no target species in %1$s for %2$s
-isisfish.error.not.found.class=this class does not
isisfish.error.not.found.code=could not found codeclass for %1$s
isisfish.error.not.found.description=could not found description for %1$s
isisfish.error.not.found.field=could not found field %1$s doc for %2$s
@@ -359,8 +359,6 @@
isisfish.error.wait.simThread=Can't wait SimThread
isisfish.error.warning.title=Attention
isisfish.error.write.simulation=Can't write information %1$s
-isisfish.exit.text=Quelque chose a chang\u00E9, merci de saisir un commentaire
-isisfish.exit.title=Exit
isisfish.export.directory=Dossier d'export
isisfish.export.saved=Exports des r\u00E9sultats sauvegard\u00E9s
isisfish.export.title=Export des r\u00E9sultats
1
0
r2143 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org April 24, 2009
by chatellier@users.labs.libre-entreprise.org April 24, 2009
April 24, 2009
Author: chatellier
Date: 2009-04-24 10:27:19 +0000 (Fri, 24 Apr 2009)
New Revision: 2143
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
Log:
Recupere l'export xml avant le compute (car ce dernier le modifie).
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-04-23 16:08:14 UTC (rev 2142)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-04-24 10:27:19 UTC (rev 2143)
@@ -406,15 +406,17 @@
masterExportDirectory.mkdirs();
}
+ // export designplan as XML
+ // get as XML (before compute)
+ // compute do bad modification on design plan
+ String xmlDesignPlan = MexicoHelper.getDesignPlanAsXML(designPlan);
+
SensitivityScenarios sensitivityScenarios = sensitivitycalculator
.compute(designPlan, masterExportDirectory);
// ajout des parametres de simulation
param.setSensitivityCalculator(sensitivitycalculator);
param.setNumberOfSensitivitySimulation(sensitivityScenarios.getScenarios().size());
-
- // export designplan as XML
- String xmlDesignPlan = MexicoHelper.getDesignPlanAsXML(designPlan);
// on l'ajoute tout de suite a la liste des simulations demandee
// init with default "id" must been changed for designPlan
1
0
r2142 - in isis-fish/trunk: . src/main/java/fr/ifremer/isisfish/ui/input src/main/resources
by sletellier@users.labs.libre-entreprise.org April 23, 2009
by sletellier@users.labs.libre-entreprise.org April 23, 2009
April 23, 2009
Author: sletellier
Date: 2009-04-23 16:08:14 +0000 (Thu, 23 Apr 2009)
New Revision: 2142
Removed:
isis-fish/trunk/src/main/resources/log4j.properties
Modified:
isis-fish/trunk/
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx
Log:
bug fixed
Property changes on: isis-fish/trunk
___________________________________________________________________
Name: svn:ignore
- maven.log
target
velocity.log
.classpath
.project
isis-fish.ipr
isis-fish.iws
isis-fish.iml
.settings
bin
+ maven.log
target
velocity.log
.classpath
.project
isis-fish.ipr
isis-fish.iws
isis-fish.iml
.settings
bin
nbproject
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx 2009-04-23 15:47:53 UTC (rev 2141)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx 2009-04-23 16:08:14 UTC (rev 2142)
@@ -100,25 +100,23 @@
}
}
- protected void accept(ActionEvent e) {
- JComponent source = (JComponent) e.getSource();
- Class classBean = (Class)source.getClientProperty("bean");
- String beanID = (String)source.getClientProperty("beanID");
- TopiaEntity bean = null;
- if(beanID == null){
- bean = getVerifier().getEntity(classBean);
- }
- else{
- System.out.println(beanID);
- bean = getVerifier().getEntity(classBean, beanID);
- }
- if (bean != null){
- FactorWizard wizard = new FactorWizard(this);
+protected void accept(ActionEvent e) {
+ JComponent source = (JComponent) e.getSource();
+ Class classBean = (Class)source.getClientProperty("bean");
+ String beanID = (String)source.getClientProperty("beanID");
+ TopiaEntity bean = null;
+ if (beanID == null){
+ bean = getVerifier().getEntity(classBean);
+ }
+ else{
+ bean = getVerifier().getEntity(classBean, beanID);
+ }
+ if (bean != null){
+ FactorWizard wizard = new FactorWizard(this);
- wizard.initNew(source, bean, EditorHelper.canBeContinue(source, bean));
- wizard.pack();
- wizard.setVisible(true);
- }
+ wizard.initNew(source, bean, EditorHelper.canBeContinue(source, bean));
+ wizard.pack();
+ wizard.setVisible(true);
}
}
Deleted: isis-fish/trunk/src/main/resources/log4j.properties
===================================================================
--- isis-fish/trunk/src/main/resources/log4j.properties 2009-04-23 15:47:53 UTC (rev 2141)
+++ isis-fish/trunk/src/main/resources/log4j.properties 2009-04-23 16:08:14 UTC (rev 2142)
@@ -1,17 +0,0 @@
-# Global logging configuration
-log4j.rootLogger=ERROR, stdout
-# Console output...
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n
-
-# package level
-log4j.logger.fr.ifremer.isisfish=INFO
-log4j.logger.org.codelutin=INFO
-log4j.logger.analyseplans=INFO
-log4j.logger.exports=INFO
-log4j.logger.formules=INFO
-log4j.logger.rules=INFO
-log4j.logger.scripts=INFO
-log4j.logger.sensitivity=INFO
-log4j.logger.simulators=INFO
1
0
r2141 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input
by sletellier@users.labs.libre-entreprise.org April 23, 2009
by sletellier@users.labs.libre-entreprise.org April 23, 2009
April 23, 2009
Author: sletellier
Date: 2009-04-23 15:47:53 +0000 (Thu, 23 Apr 2009)
New Revision: 2141
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx
Log:
Bug StrategiesOneMonth factor resolved
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx 2009-04-23 15:34:25 UTC (rev 2140)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx 2009-04-23 15:47:53 UTC (rev 2141)
@@ -100,15 +100,25 @@
}
}
-protected void accept(ActionEvent e) {
- JComponent source = (JComponent) e.getSource();
- Class classBean = (Class)source.getClientProperty("bean");
- TopiaEntity bean = getVerifier().getEntity(classBean);
- if (bean != null) {
- FactorWizard wizard = new FactorWizard(this);
- wizard.initNew(source, bean, EditorHelper.canBeContinue(source, bean));
- wizard.pack();
- wizard.setVisible(true);
+ protected void accept(ActionEvent e) {
+ JComponent source = (JComponent) e.getSource();
+ Class classBean = (Class)source.getClientProperty("bean");
+ String beanID = (String)source.getClientProperty("beanID");
+ TopiaEntity bean = null;
+ if(beanID == null){
+ bean = getVerifier().getEntity(classBean);
+ }
+ else{
+ System.out.println(beanID);
+ bean = getVerifier().getEntity(classBean, beanID);
+ }
+ if (bean != null){
+ FactorWizard wizard = new FactorWizard(this);
+
+ wizard.initNew(source, bean, EditorHelper.canBeContinue(source, bean));
+ wizard.pack();
+ wizard.setVisible(true);
+ }
}
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java 2009-04-23 15:34:25 UTC (rev 2140)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java 2009-04-23 15:47:53 UTC (rev 2141)
@@ -27,6 +27,8 @@
import java.beans.PropertyChangeListener;
import java.lang.reflect.Method;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
import javax.swing.JButton;
@@ -50,6 +52,8 @@
import fr.ifremer.isisfish.ui.SaveVerifier;
import fr.ifremer.isisfish.ui.sensitivity.SensitivityTabUI;
import fr.ifremer.isisfish.ui.widget.ErrorDialogUI;
+import java.util.Map;
+import java.util.Map.Entry;
/**
* InputSaveVerifier.
@@ -107,8 +111,8 @@
protected String currentOnglet = null;
protected TopiaContext isisContext = null;
- protected List<TopiaEntity> currentEntities = new ArrayList<TopiaEntity>();
- protected List<InputContentUI> currentPanels = new ArrayList<InputContentUI>();
+ protected Map<String, TopiaEntity> currentEntities = new HashMap <String, TopiaEntity>();
+ protected List<InputContentUI> currentPanels = new ArrayList <InputContentUI>();
protected InputUI rootUI;
protected SensitivityTabUI sensUI;
@@ -269,7 +273,7 @@
public void topiaSave() {
try {
noModif();
- for (TopiaEntity t : currentEntities) {
+ for (TopiaEntity t : currentEntities.values()){
t.update();
if (log.isDebugEnabled()) {
log.debug("updating : " + t);
@@ -294,23 +298,24 @@
try {
noModif();
isisContext.rollbackTransaction();
- List<TopiaEntity> canceledEntity = currentEntities;
- currentEntities = new ArrayList<TopiaEntity>();
+ Map<String, TopiaEntity> canceledEntity = new HashMap<String, TopiaEntity>();
+ for (Entry<String, TopiaEntity> currentEntity : currentEntities.entrySet()) {
+ TopiaEntity t = isisContext.findByTopiaId(currentEntity.getValue().getTopiaId());
- // TODO a quoi ca sert de recharger les entités ?
- for (TopiaEntity t : canceledEntity) {
- TopiaEntity t2 = isisContext.findByTopiaId(t.getTopiaId());
-
- // desynchronise la précédente
- // fix : org.hibernate.NonUniqueObjectException: a different object with the
- // same identifier value was already associated with the session
- //((TopiaContextImpl)isisContext).getHibernate().evict(t2);
- //t.setTopiaId(null);
-
- rootUI.repaintNode(currentNode.getContextPath());
- rootUI.setTreeSelection(currentNode.getContextPath());
- addCurrentEntity(t2);
- }
+ // TODO a quoi ca sert de recharger les entités ?
+ // desynchronise la précédente
+ // fix : org.hibernate.NonUniqueObjectException: a different object with the
+ // same identifier value was already associated with the session
+ //((TopiaContextImpl)isisContext).getHibernate().evict(t2);
+ //t.setTopiaId(null);
+
+ rootUI.repaintNode(currentNode.getContextPath());
+ rootUI.setTreeSelection(currentNode.getContextPath());
+
+ String key = currentEntity.getKey();
+ canceledEntity.put(key, t);
+ addCurrentEntity(t);
+ }
rootUI.setInfoText(_("isisfish.message.cancel.finished"));
} catch (Exception eee) {
if (log.isErrorEnabled()) {
@@ -339,7 +344,7 @@
}
}
- public void addCurrentEntity(TopiaEntity currentEntity) {
+ public void addCurrentEntity(TopiaEntity currentEntity, String key) {
if (currentEntity != null) {
editable = true;
isisContext = currentEntity.getTopiaContext();
@@ -358,12 +363,17 @@
if (entity != null) {
currentEntities.remove(entity);
}
- this.currentEntities.add(currentEntity);
+ this.currentEntities.put(key, currentEntity);
setPanelsActifs();
}
}
- public void removeAllEntity() {
+ public void addCurrentEntity(TopiaEntity currentEntity) {
+ if (currentEntity != null){
+ addCurrentEntity(currentEntity, currentEntity.getTopiaId());
+ }
+ }
+ public void removeAllEntity(){
currentEntities.clear();
editable = false;
noModif();
@@ -446,13 +456,17 @@
return isisContext;
}
- public List<TopiaEntity> getCurrentEntities() {
- return currentEntities;
+ public Collection<TopiaEntity> getCurrentEntities() {
+ return currentEntities.values();
}
- public <E extends TopiaEntity> E getEntity(Class<E> clazz) {
- for (TopiaEntity te : currentEntities) {
- if (clazz.isInstance(te)) {
+ public <E extends TopiaEntity> E getEntity(Class<E> clazz, String key){
+ return (E)currentEntities.get(key);
+ }
+
+ public <E extends TopiaEntity> E getEntity(Class<E> clazz){
+ for (TopiaEntity te : currentEntities.values()){
+ if (clazz.isInstance(te)){
return (E) te;
}
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx 2009-04-23 15:34:25 UTC (rev 2140)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx 2009-04-23 15:47:53 UTC (rev 2141)
@@ -56,7 +56,7 @@
int month = 0;
PropertyChangeListener listener = null;
-addPropertyChangeListener("bean", new PropertyChangeListener() {
+addPropertyChangeListener("strategyMonthInfo", new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getOldValue() != null || evt.getNewValue() == null) {
// remove previous binding on getBean()
@@ -92,6 +92,9 @@
}
}
if (getStrategyMonthInfo() != null){
+ numberOfTrips.putClientProperty("beanID", getStrategyMonthInfo().getTopiaId());
+ fieldStrategyMonthInfoProportion.putClientProperty("beanID", getStrategyMonthInfo().getTopiaId());
+ fieldStrategyMonthInfoMinInactivityDays.putClientProperty("beanID", getStrategyMonthInfo().getTopiaId());
ActionListener[] listeners = fieldStrategyMonthInfoTripType.getActionListeners();
for (ActionListener listener : listeners){
fieldStrategyMonthInfoTripType.removeActionListener(listener);
1
0
r2140 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish: . simulator/launcher
by chatellier@users.labs.libre-entreprise.org April 23, 2009
by chatellier@users.labs.libre-entreprise.org April 23, 2009
April 23, 2009
Author: chatellier
Date: 2009-04-23 15:34:25 +0000 (Thu, 23 Apr 2009)
New Revision: 2140
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
Log:
Reformat one method (label error)
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-04-23 15:27:52 UTC (rev 2139)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-04-23 15:34:25 UTC (rev 2140)
@@ -371,7 +371,7 @@
*
* @return le nombre de simulations authorisé
*/
- public int getSimulatorSshMaxSimulteaneousSimulation() {
+ public int getSimulatorSshMaxSimultaneousSimulation() {
int result = getOptionAsInt(Option.SIMULATOR_SSH_MAX_SIMULTANEOUS_SIMULATION.key);
return result;
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-23 15:27:52 UTC (rev 2139)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-23 15:34:25 UTC (rev 2140)
@@ -92,7 +92,7 @@
* Semaphore used to upload only 20 (default) simulations at a time.
*/
protected static Semaphore semaphore = new Semaphore(IsisFish.config
- .getSimulatorSshMaxSimulteaneousSimulation());
+ .getSimulatorSshMaxSimultaneousSimulation());
/**
* Constructor.
1
0
r2139 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish: . simulator/launcher
by chatellier@users.labs.libre-entreprise.org April 23, 2009
by chatellier@users.labs.libre-entreprise.org April 23, 2009
April 23, 2009
Author: chatellier
Date: 2009-04-23 15:27:52 +0000 (Thu, 23 Apr 2009)
New Revision: 2139
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java
Log:
Comment previous commit.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-04-23 14:08:36 UTC (rev 2138)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-04-23 15:27:52 UTC (rev 2139)
@@ -364,10 +364,15 @@
}
/**
- * TODO comment
+ * Retourne le nombre simultané de simulations authorisées sur
+ * caparmor.
+ *
+ * Utilisé pour l'envoie des simulations.
+ *
+ * @return le nombre de simulations authorisé
*/
public int getSimulatorSshMaxSimulteaneousSimulation() {
- int result = getOptionAsInt(Option.SIMULATOR_SSH_MAX_SIMULTEANEOUS_SIMULATION.key);
+ int result = getOptionAsInt(Option.SIMULATOR_SSH_MAX_SIMULTANEOUS_SIMULATION.key);
return result;
}
@@ -661,7 +666,10 @@
};
- log.info("Check configuration change");
+ if (log.isInfoEnabled()) {
+ log.info("Check configuration change");
+ }
+
for(int i=0; i<keys.length;) {
String oldKey = keys[i++];
String newKey = keys[i++];
@@ -679,7 +687,9 @@
}
if (mustSave) {
saveForUser();
- log.info("Config file migration done");
+ if (log.isInfoEnabled()) {
+ log.info("Config file migration done");
+ }
}
if (log.isDebugEnabled()) {
printConfig();
@@ -736,7 +746,7 @@
/** Serveur accessible par SSH : interval de check du fichier de control */
SIMULATOR_SSH_CONTROLCHECKINTERVAL("simulation.ssh.control.check.interval", _("isisfish.config.main.simulation.ssh.control.check.interval.description"), "5"),
/** Serveur accessible par SSH : nombre de simulations simultanées sur caparmor */
- SIMULATOR_SSH_MAX_SIMULTEANEOUS_SIMULATION("simulation.ssh.max.simultaneous.simulation", _("isisfish.config.main.simulation.max.simultaneous.simulation.description"), "20"),
+ SIMULATOR_SSH_MAX_SIMULTANEOUS_SIMULATION("simulation.ssh.max.simultaneous.simulation", _("isisfish.config.main.simulation.max.simultaneous.simulation.description"), "20"),
LOCALE("locale", _("isisfish.config.main.locale.description"), "fr_FR"),
// REGION_MAP("regionMap", _("isisfish.config.main.regionMap.description"), "maps"),
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2009-04-23 14:08:36 UTC (rev 2138)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2009-04-23 15:27:52 UTC (rev 2139)
@@ -527,22 +527,24 @@
}
}
- /*
- * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#simulationEnded()
+ /**
+ * {@inheritDoc}
+ *
+ * Do nothing (no restriction on inprocess launcher).
*/
@Override
public void simulationEnded() {
- // TODO Auto-generated method stub
-
+
}
- /*
- * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#simulationStarted()
+ /**
+ * {@inheritDoc}
+ *
+ * Do nothing (no restriction on inprocess launcher).
*/
@Override
public void simulationStarted() {
- // TODO Auto-generated method stub
-
+
}
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java 2009-04-23 14:08:36 UTC (rev 2138)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java 2009-04-23 15:27:52 UTC (rev 2139)
@@ -233,7 +233,6 @@
public SimulationStorage getSimulationStorage(
SimulationService simulationService, SimulationControl control)
throws RemoteException {
- // TODO Auto-generated method stub
return null;
}
@@ -243,25 +242,26 @@
@Override
public void updateControl(SimulationService simulationService,
SimulationControl control) throws RemoteException {
- // TODO Auto-generated method stub
}
- /*
- * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#simulationEnded()
+ /**
+ * {@inheritDoc}
+ *
+ * Do nothing (no restriction on xml rpc launcher).
*/
@Override
public void simulationEnded() {
- // TODO Auto-generated method stub
-
+
}
- /*
- * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#simulationStarted()
+ /**
+ * {@inheritDoc}
+ *
+ * Do nothing (no restriction on xml rpc launcher).
*/
@Override
public void simulationStarted() {
- // TODO Auto-generated method stub
-
+
}
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-23 14:08:36 UTC (rev 2138)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-23 15:27:52 UTC (rev 2139)
@@ -82,8 +82,6 @@
protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/launch-isis-qsub.seq";
//protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/launch-isis-cron.seq";
- protected static Semaphore semaphore = new Semaphore(IsisFish.config.getSimulatorSshMaxSimulteaneousSimulation());
-
/**
* Opened session. Stored in static context to not reask passphrase at each
* connection.
@@ -91,6 +89,12 @@
protected static Session sshSession;
/**
+ * Semaphore used to upload only 20 (default) simulations at a time.
+ */
+ protected static Semaphore semaphore = new Semaphore(IsisFish.config
+ .getSimulatorSshMaxSimulteaneousSimulation());
+
+ /**
* Constructor.
*
* Init freemarker.
@@ -99,29 +103,7 @@
initFreemarker();
}
-
/**
- * @return the semaphore
- */
- public static Semaphore getSemaphore() {
- return semaphore;
- }
-
- public void simulationStarted() {
- try {
- semaphore.acquire();
- } catch (InterruptedException e) {
- if (log.isErrorEnabled()) {
- log.error("Semaphore aquiere has been interrupted", e);
- }
- }
- }
-
- public void simulationEnded() {
- semaphore.release();
- }
-
- /**
* Init freemarker configuration.
*/
protected void initFreemarker() {
@@ -195,6 +177,34 @@
/**
* {@inheritDoc}
*
+ * Use semaphore to limit simultaneous simulation number on caparmor.
+ *
+ * @see Semaphore
+ */
+ @Override
+ public void simulationStarted() {
+ try {
+ semaphore.acquire();
+ } catch (InterruptedException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Semaphore aquiere has been interrupted", e);
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * Release one resource onr semaphore.
+ */
+ @Override
+ public void simulationEnded() {
+ semaphore.release();
+ }
+
+ /**
+ * {@inheritDoc}
+ *
* Dans le cas de ssh: - upload la simulation - construit le script pour
* qsub - upload le script qsub - ajoute le script a qsub
*
@@ -206,6 +216,7 @@
String simulationPrescript) throws RemoteException {
// ask for available resources on caparmor
+ // bloquin until available
simulationStarted();
// start ssh session
@@ -243,7 +254,7 @@
/**
* {@inheritDoc}
*
- * Se connecte au serveur distance et tétécharge les résultats de la
+ * Se connecte au serveur distant et télécharge les résultats de la
* simulation.
*/
@Override
@@ -273,7 +284,7 @@
/**
* {@inheritDoc}
*
- * Se connecte au serveur distance et télécharge le fichier de control.
+ * Se connecte au serveur distant et télécharge le fichier de control.
* Injecte ensuite ce fichier dans le {@link SimulationControl}.
*/
@Override
@@ -455,8 +466,7 @@
*
* Just connect and do an "echo xx >> .ssh/authorized_keys"
*
- * @param session
- * opened session
+ * @param session opened session
* @param sshKey
* @throws JSchException
*/
@@ -469,8 +479,10 @@
// command to :
// - make ssh directory
// - add key to authorized_keys
- String command = "if [ ! -d .ssh ] ; then mkdir .ssh; fi ; echo \"%s\" >> .ssh/authorized_keys";
+ // tested on bash/csh
+ String command = "test -d .ssh||mkdir .ssh;echo \"%s\" >> .ssh/authorized_keys";
+
try {
// use usefull readLines from commons-io
@SuppressWarnings("unchecked")
@@ -491,16 +503,12 @@
}
} catch (IOException e) {
if (log.isErrorEnabled()) {
- log
- .error(
- _("Error while uploading public key to remote serveur authorized_keys"),
+ log.error(_("Error while uploading public key to remote serveur authorized_keys"),
e);
}
} catch (SSHException e) {
if (log.isErrorEnabled()) {
- log
- .error(
- _("Error while uploading public key to remote serveur authorized_keys"),
+ log.error(_("Error while uploading public key to remote serveur authorized_keys"),
e);
}
}
@@ -509,14 +517,11 @@
/**
* Upload simulation file to server.
*
- * @param session
- * already open valid ssh session
- * @param simulationFile
- * simulation file to upload
+ * @param session already open valid ssh session
+ * @param simulationFile simulation file to upload
*
* @return remote file path or <tt>null</tt> if errors
- * @throws SSHException
- * if upload fail
+ * @throws SSHException if upload fail
*/
protected String uploadSimulation(Session session, File simulationFile)
throws SSHException {
@@ -526,12 +531,10 @@
// first check that remote directory exists
String remotePath = IsisFish.config.getSimulatorSshTmpPath();
- // FIXME This is a workaround to make the simulations work on caparmor
- // FIXME We need to find a way to make it work the old way.
-
- String command = "test -d \"" + remotePath + "\"||mkdir \"" + remotePath + "\"";
- //String command = "if ( ! -d \"" + remotePath + "\" ) mkdir \""
- // + remotePath + "\"";
+ // following command work on bash and csh
+ String command = "test -d \"" + remotePath + "\"||mkdir \""
+ + remotePath + "\"";
+
if (log.isInfoEnabled()) {
log.info("Creating remote temp directory (if not exists) "
+ remotePath);
@@ -610,14 +613,11 @@
* Download remote simulation control file and store its content into temp
* file.
*
- * @param simulationId
- * id de la simulation
- * @param fileName
- * nom du fichier a telecharger
+ * @param simulationId id de la simulation
+ * @param fileName nom du fichier a telecharger
* @return downloaded temp file (file have to be manually deleted)
* @throws IOException
- * @throws SSHException
- * if remote file doesn't exists
+ * @throws SSHException if remote file doesn't exists
*/
protected File downloadSimulationFile(String simulationId, String fileName)
throws IOException, SSHException {
@@ -647,13 +647,10 @@
/**
* Upload script on remote server.
*
- * @param session
- * valid opened ssh session
- * @param simulationScript
- * file to upload
+ * @param session valid opened ssh session
+ * @param simulationScript file to upload
*
- * @throws SSHException
- * if upload fail
+ * @throws SSHException if upload fail
*/
protected String uploadSimulationScript(Session session,
File simulationScript) throws SSHException {
@@ -687,15 +684,11 @@
*
* Return path if uploaded or null if no upload needed.
*
- * @param session
- * valid opened ssh session
- * @param simulationPreScript
- * script content
+ * @param session valid opened ssh session
+ * @param simulationPreScript script content
*
- * @throws SSHException
- * if upload fail
- * @throws IOException
- * if upload fail
+ * @throws SSHException if upload fail
+ * @throws IOException if upload fail
*/
protected String uploadPreScriptIfNecessary(Session session,
String simulationId, String simulationPreScript)
@@ -739,17 +732,13 @@
*
* Le fichier temporaire est configuré pour se supprimer tout seul.
*
- * @param simuationId
- * id de la simulation
- * @param simulationZip
- * zip de la simulation
- * @param preScriptPath
- * simulation pre script path (can be null)
+ * @param simuationId id de la simulation
+ * @param simulationZip zip de la simulation
+ * @param preScriptPath simulation pre script path (can be null)
*
* @return un Fichier temporaire ou <tt>null</tt> en cas d'exception
*
- * @throws IOException
- * if can't build script
+ * @throws IOException if can't build script
*/
protected File getSimulationScriptFile(String simuationId,
String simulationZip, String preScriptPath) throws IOException {
@@ -769,17 +758,12 @@
*
* Remplace aussi la variable $simulation du template.
*
- * @param templateName
- * url du template
- * @param simuationId
- * id de la simulation
- * @param simulationZip
- * zip de la simulation
- * @param preScriptPath
- * simulation pre script path (can be null)
+ * @param templateName url du template
+ * @param simuationId id de la simulation
+ * @param simulationZip zip de la simulation
+ * @param preScriptPath simulation pre script path (can be null)
*
- * @throws IOException
- * if can't get script content
+ * @throws IOException if can't get script content
*/
protected String getSimulationScriptLaunchContent(String templateName,
String simuationId, String simulationZip, String preScriptPath)
@@ -825,13 +809,10 @@
/**
* Add script in remote qsub queue.
*
- * @param session
- * valid opened session
- * @param scriptRemotePath
- * remote script path
+ * @param session valid opened session
+ * @param scriptRemotePath remote script path
*
- * @throws SSHException
- * if call fail
+ * @throws SSHException if call fail
*/
protected void addScriptToQsubQueue(Session session, String scriptRemotePath)
throws SSHException {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-04-23 14:08:36 UTC (rev 2138)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-04-23 15:27:52 UTC (rev 2139)
@@ -453,7 +453,7 @@
SimulationService service = SimulationService.getService();
SimulationControl control = job.getItem().getControl();
- // TODO comment
+ // Release one available resource on launcher
launcher.simulationEnded();
if (log.isInfoEnabled()) {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java 2009-04-23 14:08:36 UTC (rev 2138)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java 2009-04-23 15:27:52 UTC (rev 2139)
@@ -107,7 +107,17 @@
SimulationControl control) throws RemoteException;
+ /**
+ * Call it before starting a simulation.
+ *
+ * This call is bloquing until available resources.
+ */
public void simulationStarted();
+ /**
+ * Call it after simulation end.
+ *
+ * Release one resources.
+ */
public void simulationEnded();
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2009-04-23 14:08:36 UTC (rev 2138)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2009-04-23 15:27:52 UTC (rev 2139)
@@ -309,21 +309,23 @@
}
- /*
- * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#simulationEnded()
+ /**
+ * {@inheritDoc}
+ *
+ * Do nothing (no restriction on subprocess launcher).
*/
@Override
public void simulationEnded() {
- // TODO Auto-generated method stub
-
+
}
- /*
- * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#simulationStarted()
+ /**
+ * {@inheritDoc}
+ *
+ * Do nothing (no restriction on subprocess launcher).
*/
@Override
public void simulationStarted() {
- // TODO Auto-generated method stub
-
+
}
}
1
0
r2138 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish: . simulator/launcher
by chatellier@users.labs.libre-entreprise.org April 23, 2009
by chatellier@users.labs.libre-entreprise.org April 23, 2009
April 23, 2009
Author: chatellier
Date: 2009-04-23 14:08:36 +0000 (Thu, 23 Apr 2009)
New Revision: 2138
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java
Log:
Add semaphore to control simulteaneous thread on caparmor
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-04-22 17:03:14 UTC (rev 2137)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-04-23 14:08:36 UTC (rev 2138)
@@ -362,6 +362,14 @@
int result = getOptionAsInt(Option.SIMULATOR_SSH_CONTROLCHECKINTERVAL.key);
return result;
}
+
+ /**
+ * TODO comment
+ */
+ public int getSimulatorSshMaxSimulteaneousSimulation() {
+ int result = getOptionAsInt(Option.SIMULATOR_SSH_MAX_SIMULTEANEOUS_SIMULATION.key);
+ return result;
+ }
/**
* Retourne la clé privée de l'utilisteur courant.
@@ -727,6 +735,8 @@
SIMULATOR_SSH_ADDSCRIPTTOQUEUECOMMAND("simulation.ssh.addscripttoqueuecommand", _("isisfish.config.main.simulation.ssh.addscripttoqueuecommand.description"), "/usr/pbs/bin/qsub"),
/** Serveur accessible par SSH : interval de check du fichier de control */
SIMULATOR_SSH_CONTROLCHECKINTERVAL("simulation.ssh.control.check.interval", _("isisfish.config.main.simulation.ssh.control.check.interval.description"), "5"),
+ /** Serveur accessible par SSH : nombre de simulations simultanées sur caparmor */
+ SIMULATOR_SSH_MAX_SIMULTEANEOUS_SIMULATION("simulation.ssh.max.simultaneous.simulation", _("isisfish.config.main.simulation.max.simultaneous.simulation.description"), "20"),
LOCALE("locale", _("isisfish.config.main.locale.description"), "fr_FR"),
// REGION_MAP("regionMap", _("isisfish.config.main.regionMap.description"), "maps"),
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2009-04-22 17:03:14 UTC (rev 2137)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2009-04-23 14:08:36 UTC (rev 2138)
@@ -527,4 +527,22 @@
}
}
+ /*
+ * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#simulationEnded()
+ */
+ @Override
+ public void simulationEnded() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#simulationStarted()
+ */
+ @Override
+ public void simulationStarted() {
+ // TODO Auto-generated method stub
+
+ }
+
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java 2009-04-22 17:03:14 UTC (rev 2137)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/IsisFishServerSimulationLauncher.java 2009-04-23 14:08:36 UTC (rev 2138)
@@ -246,4 +246,22 @@
// TODO Auto-generated method stub
}
+
+ /*
+ * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#simulationEnded()
+ */
+ @Override
+ public void simulationEnded() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#simulationStarted()
+ */
+ @Override
+ public void simulationStarted() {
+ // TODO Auto-generated method stub
+
+ }
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-22 17:03:14 UTC (rev 2137)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-04-23 14:08:36 UTC (rev 2138)
@@ -30,6 +30,7 @@
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.concurrent.Semaphore;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
@@ -81,6 +82,8 @@
protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/launch-isis-qsub.seq";
//protected static final String QSUB_SCRIPT_TEMPLATE = "templates/ssh/launch-isis-cron.seq";
+ protected static Semaphore semaphore = new Semaphore(IsisFish.config.getSimulatorSshMaxSimulteaneousSimulation());
+
/**
* Opened session. Stored in static context to not reask passphrase at each
* connection.
@@ -96,7 +99,29 @@
initFreemarker();
}
+
/**
+ * @return the semaphore
+ */
+ public static Semaphore getSemaphore() {
+ return semaphore;
+ }
+
+ public void simulationStarted() {
+ try {
+ semaphore.acquire();
+ } catch (InterruptedException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Semaphore aquiere has been interrupted", e);
+ }
+ }
+ }
+
+ public void simulationEnded() {
+ semaphore.release();
+ }
+
+ /**
* Init freemarker configuration.
*/
protected void initFreemarker() {
@@ -180,6 +205,9 @@
SimulationControl control, File simulationZip,
String simulationPrescript) throws RemoteException {
+ // ask for available resources on caparmor
+ simulationStarted();
+
// start ssh session
try {
// connection
@@ -501,10 +529,9 @@
// FIXME This is a workaround to make the simulations work on caparmor
// FIXME We need to find a way to make it work the old way.
- //String command = "if [ ! -d \"" + remotePath + "\" ] ; then mkdir \""
- // + remotePath + "\"; fi";
- String command = "if ( ! -d \"" + remotePath + "\" ) mkdir \""
- + remotePath + "\"";
+ String command = "test -d \"" + remotePath + "\"||mkdir \"" + remotePath + "\"";
+ //String command = "if ( ! -d \"" + remotePath + "\" ) mkdir \""
+ // + remotePath + "\"";
if (log.isInfoEnabled()) {
log.info("Creating remote temp directory (if not exists) "
+ remotePath);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-04-22 17:03:14 UTC (rev 2137)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-04-23 14:08:36 UTC (rev 2138)
@@ -453,6 +453,9 @@
SimulationService service = SimulationService.getService();
SimulationControl control = job.getItem().getControl();
+ // TODO comment
+ launcher.simulationEnded();
+
if (log.isInfoEnabled()) {
log.info("Do post simulation operation for " + control.getId());
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java 2009-04-22 17:03:14 UTC (rev 2137)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java 2009-04-23 14:08:36 UTC (rev 2138)
@@ -105,4 +105,9 @@
*/
public void updateControl(SimulationService simulationService,
SimulationControl control) throws RemoteException;
+
+
+ public void simulationStarted();
+
+ public void simulationEnded();
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2009-04-22 17:03:14 UTC (rev 2137)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2009-04-23 14:08:36 UTC (rev 2138)
@@ -308,4 +308,22 @@
SimulationStorage.readControl(simulationId, control, "stop");
}
+
+ /*
+ * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#simulationEnded()
+ */
+ @Override
+ public void simulationEnded() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#simulationStarted()
+ */
+ @Override
+ public void simulationStarted() {
+ // TODO Auto-generated method stub
+
+ }
}
1
0