Isis-fish-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
January 2009
- 3 participants
- 45 discussions
r1757 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore
by chatellier@users.labs.libre-entreprise.org 27 Jan '09
by chatellier@users.labs.libre-entreprise.org 27 Jan '09
27 Jan '09
Author: chatellier
Date: 2009-01-27 14:46:47 +0000 (Tue, 27 Jan 2009)
New Revision: 1757
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java
Log:
N?\195?\169gation en trop non ?
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-01-27 12:12:42 UTC (rev 1756)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/VersionStorage.java 2009-01-27 14:46:47 UTC (rev 1757)
@@ -120,7 +120,7 @@
* @return <code>true</code> si le fichier est versionné
*/
protected boolean isVersionnableAbleFile(File file) {
- return !getVCS().isVersionnableAbleFile(file);
+ return getVCS().isVersionnableAbleFile(file);
}
/**
1
0
r1756 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher: . ssh
by chatellier@users.labs.libre-entreprise.org 27 Jan '09
by chatellier@users.labs.libre-entreprise.org 27 Jan '09
27 Jan '09
Author: chatellier
Date: 2009-01-27 12:12:42 +0000 (Tue, 27 Jan 2009)
New Revision: 1756
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
Log:
Store ssh session in static context to not ask for passphrase at each connection
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-01-26 10:39:35 UTC (rev 1755)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-01-27 12:12:42 UTC (rev 1756)
@@ -76,6 +76,13 @@
protected Configuration freemarkerConfiguration;
/**
+ * Opened session.
+ * Stored in static context to not reask passphrase
+ * at each connection.
+ */
+ protected static Session sshSession;
+
+ /**
* Constructor.
*
* Init freemarker.
@@ -164,7 +171,7 @@
// connection
message(control, _("isisfish.simulation.remote.message.connection"));
- Session sshSession = openSSHSession();
+ Session sshSession = getSSHSession(); //openSSHSession();
// upload simulation on server
message(control, _("isisfish.simulation.remote.message.upload"));
@@ -210,6 +217,23 @@
}
/**
+ * Get opened ssh session or try to open a new one.
+ *
+ * This method must synchronized.
+ *
+ * @return opened ssh session.
+ * @throws JSchException
+ */
+ protected synchronized Session getSSHSession() throws JSchException {
+
+ if(sshSession == null || !sshSession.isConnected()) {
+ sshSession = openSSHSession();
+ }
+
+ return sshSession;
+ }
+
+ /**
* Connect to remote server throw SSH, and return session.
*
* @return valid opened session
@@ -392,42 +416,6 @@
SSHUtils.scpFrom(session, remoteFile, localFile);
}
-
- /*
- * Launch simulation on remote server.
- *
- * @param session opened ssh session
- * @param simulationService simulation service
- * @param control control
- * @param remotePath remote zip simulation path
- * @throws JSchException
- *
- protected void launchSimulation(Session session,
- SimulationService simulationService, SimulationControl control,
- String remotePath) throws JSchException {
-
- String simulationId = control.getId();
-
- String command = String.format("%s %s %s %s '%s' '%s' %s '%s' '%s'",
- "java", // java command
- "-jar", // java jar option
- IsisFish.config.getSimulatorSshJarPath(), // remote jar path
- "--option", "launch.ui", "false", // additionnal option ui
- "--simulateWithSimulation", simulationId, remotePath // add option simulation
- );
-
- if (log.isDebugEnabled()) {
- log.debug("Launch : " + command);
- }
-
- try {
- SSHUtils.exec(session, command);
- } catch (SSHException e) {
- if (log.isErrorEnabled()) {
- log.error(_("Error while launching simulation"), e);
- }
- }
- }*/
/**
* Upload script on remote server.
@@ -642,7 +630,7 @@
// file doesn't exist
if(log.isDebugEnabled()) {
// not add ,e plz :)
- log.debug(_("Remote control file doen't exists %s", e.getMessage()));
+ log.debug(_("Remote control file doesn't exists %s", e.getMessage()));
}
}
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-01-26 10:39:35 UTC (rev 1755)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUserInfo.java 2009-01-27 12:12:42 UTC (rev 1756)
@@ -50,7 +50,7 @@
*
* Static to be stored on multiple connexion.
*/
- protected static String passphrase;
+ protected String passphrase;
/**
* Passphrase text field.
@@ -160,18 +160,6 @@
response = new String[prompt.length];
for (int i = 0; i < prompt.length; i++) {
response[i] = texts[i].getText();
-
- // hack to remember password
- if (prompt[i] != null
- && prompt[i].toLowerCase().indexOf("password") >= 0) {
- passwd = response[i];
- }
-
- // hack to remember passphrase
- if (prompt[i] != null
- && prompt[i].toLowerCase().indexOf("passphrase") >= 0) {
- passphrase = response[i];
- }
}
}
// else = cancel
1
0
r1755 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input
by sletellier@users.labs.libre-entreprise.org 26 Jan '09
by sletellier@users.labs.libre-entreprise.org 26 Jan '09
26 Jan '09
Author: sletellier
Date: 2009-01-26 10:39:35 +0000 (Mon, 26 Jan 2009)
New Revision: 1755
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.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/MetierSeasonInfoSpeciesUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEquationUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyTabUI.jaxx
Log:
Update Tony's fillList()
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx 2009-01-23 17:37:09 UTC (rev 1754)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx 2009-01-26 10:39:35 UTC (rev 1755)
@@ -75,12 +75,12 @@
SetOfVessels setOfVessels = getVerifier().getEntity(SetOfVessels.class);
setBean((SetOfVesselsImpl) setOfVessels);
if (getBean() != null){
- fieldEffortDescriptionMetierList.fillList(getRegion().getMetier(), null);
+ fieldEffortDescriptionMetierList.fillList(getRegion().getMetier(), (Object)null);
setEffortDescriptionEffortDescriptionList();
}
}
protected void setEffortDescriptionEffortDescriptionList(){
- fieldEffortDescriptionEffortDescriptionList.fillList(getBean().getPossibleMetiers(), null);
+ fieldEffortDescriptionEffortDescriptionList.fillList(getBean().getPossibleMetiers(), (Object)null);
}
protected void add(){
Object value = fieldEffortDescriptionMetierList.getSelectedValue();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx 2009-01-23 17:37:09 UTC (rev 1754)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx 2009-01-26 10:39:35 UTC (rev 1755)
@@ -54,47 +54,59 @@
protected Class clazz;
protected TopiaEntity bean;
-protected String method;
+protected String methodGet;
+protected String methodSet;
protected String name;
protected Equation selectedEquation;
+editor.getCurrentEditor().addDocumentListener(new DocumentListener() {
-public void init(String lblText, TopiaEntity bean, String method, String name, Class c){
+ @Override
+ public void insertUpdate(DocumentEvent e) {
+ }
+
+ @Override
+ public void removeUpdate(DocumentEvent e) {
+ }
+
+ @Override
+ public void changedUpdate(DocumentEvent e) {
+ setEquation();
+ }
+});
+
+public void init(String lblText, TopiaEntity bean, String name, String methodGet, String methodSet, Class c){
setLblText(lblText);
this.bean = bean;
- this.method = method;
+ this.methodGet = methodGet;
+ this.methodSet = methodSet;
this.name = name;
this.clazz = c;
selectedEquation = getEquation();
+ setComboModel();
+ setFormule((Formule)combo.getSelectedItem());
+ setEditorText();
}
protected Equation getEquation(){
Equation result = null;
try {
- if (bean != null){
- Method m = bean.getClass().getMethod("get" + method, null);
+ if (bean != null && methodGet != null){
+ Method m = bean.getClass().getMethod("get" + methodGet, null);
result = (Equation) m.invoke(bean, (Object[])null);
}
} catch (Exception ex) {
- Logger.getLogger(InputOneEquationUI.class.getName()).log(Level.SEVERE, null, ex);
+ System.out.println(ex);
}
return result;
}
-protected void setEquation(Formule f){
+protected void setEquation(){
try {
- EquationDAO dao = IsisFishDAOHelper.getEquationDAO(bean.getTopiaContext());
- Equation e = dao.create("name", f.getName());
- e.setCategory(f.getCategory());
- e.setContent(f.getContent());
- e.setJavaInterface(clazz);
- e.setLanguage("java");
- e.update();
- e.getTopiaContext().commitTransaction();
- if (bean != null) {
- Method m = bean.getClass().getMethod("set" + method, Equation.class);
- m.invoke(bean, e);
+ if (bean != null && methodSet != null) {
+ Method m = bean.getClass().getMethod("set" + methodSet, String.class);
+ m.invoke(bean, editor.getText());
}
} catch (Exception ex) {
- Logger.getLogger(InputOneEquationUI.class.getName()).log(Level.SEVERE, null, ex);
+ System.out.println(ex);
}
}
public void refresh(){
@@ -103,33 +115,26 @@
} catch (IOException ex) {
Logger.getLogger(InputOneEquationUI.class.getName()).log(Level.SEVERE, null, ex);
}
- setComboModel();
- setFormule((Formule)combo.getSelectedItem());
- setEditorText();
+ if (name != null){
+ setComboModel();
+ setFormule((Formule)combo.getSelectedItem());
+ setEditorText();
+ }
}
protected void setComboModel(){
java.util.List<Formule> formules = getAction().getFormules(getVerifier().getIsisContext(), name);
if (formules != null){
- if (selectedEquation != null){
- java.util.List<Item> items = new ArrayList<Item>();
- for (Formule f : formules) {
- System.out.println(selectedEquation.getClass().getName());
- boolean selected = f.equals(selectedEquation);
- items.add(new Item(f.getName(), f.getName(), f, selected));
- }
- combo.setItems(items);
+ java.util.List<Item> items = new ArrayList<Item>();
+ for (Formule f : formules) {
+ boolean selected = f.equals(selectedEquation);
+ items.add(new Item(f.getName(), f.getName(), f, selected));
}
+ combo.setItems(items);
}
}
protected void saveModel(){
- Formule e = (Formule)combo.getSelectedItem();
- if (e != null){
- getContextValue(InputAction.class).saveAsModel(e.getCategory(), "Java", e.getContent());
- }
- else{
- getContextValue(InputAction.class).saveAsModel(name, "Java", editor.getText());
- setComboModel();
- }
+ getContextValue(InputAction.class).saveAsModel(name, "Java", editor.getText());
+ setComboModel();
setInfoText(_("isisfish.message.saveModel.finished"));
}
protected void openEditor(){
@@ -154,7 +159,7 @@
<JLabel id='lbl' text='{getLblText()}' enabled='{isActif()}'/>
</cell>
<cell fill='horizontal' weightx='1.0'>
- <JComboBox id="combo" onActionPerformed='setFormule((Formule)combo.getSelectedItem());setEquation(getFormule());setEditorText();' enabled='{isActif()}'/>
+ <JComboBox id="combo" onActionPerformed='setFormule((Formule)combo.getSelectedItem());setEditorText();' enabled='{isActif()}'/>
</cell>
</row>
<row>
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-01-23 17:37:09 UTC (rev 1754)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java 2009-01-26 10:39:35 UTC (rev 1755)
@@ -300,10 +300,6 @@
this.currentEntities.add(currentEntity);
setPanelsActifs();
}
- else{
- editable = false;
- setPanelsActifs();
- }
}
public void removeAllEntity(){
currentEntities.clear();
@@ -313,6 +309,7 @@
}
public void addCurrentPanel(InputContentUI... panels) {
for (InputContentUI ui : panels){
+ editable = !currentEntities.isEmpty();
this.currentPanels.add(ui);
ui.refresh();
ui.setActif(editable);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx 2009-01-23 17:37:09 UTC (rev 1754)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx 2009-01-26 10:39:35 UTC (rev 1755)
@@ -74,7 +74,7 @@
}
// TODO : Equation selectionne
- targetFactor.init(_("isisfish.metierSeasonInfoSpecies.targetFactor"), null, "TargetFactor", "TargetSpeciesTargetFactorEquation", fr.ifremer.isisfish.equation.TargetSpeciesTargetFactorEquation.class);
+ targetFactor.init(_("isisfish.metierSeasonInfoSpecies.targetFactor"), null, "TargetFactor", null, null, fr.ifremer.isisfish.equation.TargetSpeciesTargetFactorEquation.class);
}
else{
DefaultComboBoxModel seasonModel = new DefaultComboBoxModel();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx 2009-01-23 17:37:09 UTC (rev 1754)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx 2009-01-26 10:39:35 UTC (rev 1755)
@@ -73,12 +73,12 @@
getVerifier().setNewButton(create, "Population", false);
getVerifier().setDeleteButton(remove);
Population population = getVerifier().getEntity(Population.class);
+ getVerifier().addCurrentPanel(growthEquation, growthReverseEquation);
setBean((PopulationImpl) population);
if (getBean() != null){
// TODO : Selection equation
- growthEquation.init(_("isisfish.populationBasics.growth"), getBean(), "Growth", "PopulationGrowth", fr.ifremer.isisfish.equation.PopulationGrowth.class);
- growthReverseEquation.init(_("isisfish.populationBasics.growthReverse"), getBean(), "GrowthReverse", "PopulationGrowthReverse", fr.ifremer.isisfish.equation.PopulationGrowthReverse.class);
- getVerifier().addCurrentPanel(growthEquation, growthReverseEquation);
+ growthEquation.init(_("isisfish.populationBasics.growth"), getBean(), "Growth", "Growth", "EquationGrowth", fr.ifremer.isisfish.equation.PopulationGrowth.class);
+ growthReverseEquation.init(_("isisfish.populationBasics.growthReverse"), getBean(), "GrowthReverse", "GrowthReverse", "EquationGrowthReverse", fr.ifremer.isisfish.equation.PopulationGrowthReverse.class);
if (getBean() != null){
jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationBasicsMatureClass, getBean().getPopulationGroup(), getBean().getMaturityGroup());
setTableAgeLengthModel();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx 2009-01-23 17:37:09 UTC (rev 1754)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx 2009-01-26 10:39:35 UTC (rev 1755)
@@ -48,9 +48,9 @@
getVerifier().setCancelButton(cancel);
Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
- naturalDeathRate.init(_("isisfish.populationEquation.naturalDeathRate"), getBean(), "NaturalDeathRate", "PopulationNaturalDeathRate", fr.ifremer.isisfish.equation.PopulationNaturalDeathRate.class);
- meanWeight.init(_("isisfish.populationEquation.meanWeight"), getBean(), "MeanWeight", "PopulationMeanWeight", fr.ifremer.isisfish.equation.PopulationMeanWeight.class);
- price.init(_("isisfish.populationEquation.price"), getBean(), "Price", "PopulationPrice", fr.ifremer.isisfish.equation.PopulationPrice.class);
+ naturalDeathRate.init(_("isisfish.populationEquation.naturalDeathRate"), getBean(), "NaturalDeathRate", "NaturalDeathRate", "EquationNaturalDeathRate", fr.ifremer.isisfish.equation.PopulationNaturalDeathRate.class);
+ meanWeight.init(_("isisfish.populationEquation.meanWeight"), getBean(), "MeanWeight", "MeanWeight", "EquationMeanWeight", fr.ifremer.isisfish.equation.PopulationMeanWeight.class);
+ price.init(_("isisfish.populationEquation.price"), getBean(), "Price", "Price", "EquationPrice", fr.ifremer.isisfish.equation.PopulationPrice.class);
getVerifier().addCurrentPanel(naturalDeathRate, meanWeight, price);
}
]]>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2009-01-23 17:37:09 UTC (rev 1754)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2009-01-26 10:39:35 UTC (rev 1755)
@@ -73,7 +73,9 @@
getVerifier().setCancelButton(cancel);
Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
- getVerifier().addCurrentEntity(getPopulationGroup());
+ if (getPopulationGroup() != null){
+ getVerifier().addCurrentEntity(getPopulationGroup());
+ }
if (getBean() != null){
jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationGroupPopulationGroup,getBean().getPopulationGroup(), null);
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEquationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEquationUI.jaxx 2009-01-23 17:37:09 UTC (rev 1754)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEquationUI.jaxx 2009-01-26 10:39:35 UTC (rev 1755)
@@ -52,9 +52,9 @@
public void refresh(){
Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
- migrationEquation.init(_("isisfish.common.migration"), getPopInfo(), "MigrationEquation", "Migration", fr.ifremer.isisfish.equation.MigrationEquation.class);
- emigrationEquation.init(_("isisfish.common.emigration"), getPopInfo(), "EmigrationEquation", "Emigration", fr.ifremer.isisfish.equation.EmigrationEquation.class);
- immigrationEquation.init(_("isisfish.common.immigration"), getPopInfo(), "ImmigrationEquation", "Immigration", fr.ifremer.isisfish.equation.ImmigrationEquation.class);
+ migrationEquation.init(_("isisfish.common.migration"), getPopInfo(), "Migration", "MigrationEquation", "MigrationEquationAsString", fr.ifremer.isisfish.equation.MigrationEquation.class);
+ emigrationEquation.init(_("isisfish.common.emigration"), getPopInfo(), "Emigration", "EmigrationEquation", "EmigrationEquationAsString", fr.ifremer.isisfish.equation.EmigrationEquation.class);
+ immigrationEquation.init(_("isisfish.common.immigration"), getPopInfo(), "Immigration", "ImmigrationEquation", "ImmigrationEquationAsString", fr.ifremer.isisfish.equation.ImmigrationEquation.class);
getVerifier().addCurrentPanel(migrationEquation, emigrationEquation, immigrationEquation);
}
]]>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx 2009-01-23 17:37:09 UTC (rev 1754)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx 2009-01-26 10:39:35 UTC (rev 1755)
@@ -65,7 +65,7 @@
Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
- reproductionEquation.init(_("isisfish.populationRecruitment.reproductionEquation"), getBean(), "ReproductionEquation", "PopulationReproductionEquation", fr.ifremer.isisfish.equation.PopulationGrowth.class);
+ reproductionEquation.init(_("isisfish.populationRecruitment.reproductionEquation"), getBean(), "Reproduction", "ReproductionEquation", "EquationReproductionEquation", fr.ifremer.isisfish.equation.PopulationGrowth.class);
getVerifier().addCurrentPanel(reproductionEquation);
}
]]>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx 2009-01-23 17:37:09 UTC (rev 1754)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx 2009-01-26 10:39:35 UTC (rev 1755)
@@ -89,10 +89,10 @@
toolMap.add((Component)toolSet);
setMapListener();
}
- refreshMap();
if (getBean() != null){
portCell.fillList(getRegion().getCell(), getBean().getCell());
}
+ refreshMap();
}
protected void refreshMap(){
java.util.List<Cell> cells = new ArrayList<Cell>();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityUI.jaxx 2009-01-23 17:37:09 UTC (rev 1754)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityUI.jaxx 2009-01-26 10:39:35 UTC (rev 1755)
@@ -69,7 +69,7 @@
}
// TODO : Equation selection
- selectivityEquation.init(_("isisfish.selectivity.equation"), null, "", "SelectivityEquation", fr.ifremer.isisfish.equation.SelectivityEquation.class);
+ selectivityEquation.init(_("isisfish.selectivity.equation"), null, "Selectivity", null, null, fr.ifremer.isisfish.equation.SelectivityEquation.class);
getVerifier().addCurrentPanel(selectivityEquation);
}
protected void setSelectivityTableModel(){
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-01-23 17:37:09 UTC (rev 1754)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx 2009-01-26 10:39:35 UTC (rev 1755)
@@ -76,7 +76,7 @@
jaxx.runtime.swing.Utils.fillComboBox(fieldSetOfVesselsPort,getRegion().getPort(), getBean().getPort());
jaxx.runtime.swing.Utils.fillComboBox(fieldSetOfVesselsVesselType,getRegion().getVesselType(), getBean().getVesselType());
- technicalEfficiency.init(_("isisfish.setOfVessels.technicalEfficiency"), getBean(), "TechnicalEfficiencyEquation", "SoVTechnicalEfficiencyEquation", fr.ifremer.isisfish.equation.SoVTechnicalEfficiencyEquation.class);
+ technicalEfficiency.init(_("isisfish.setOfVessels.technicalEfficiency"), bean, "TechnicalEfficiency", "TechnicalEfficiencyEquation", "EquationTechnicalEfficiency", fr.ifremer.isisfish.equation.SoVTechnicalEfficiencyEquation.class);
getVerifier().addCurrentPanel(technicalEfficiency);
}
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyTabUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyTabUI.jaxx 2009-01-23 17:37:09 UTC (rev 1754)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyTabUI.jaxx 2009-01-26 10:39:35 UTC (rev 1755)
@@ -72,7 +72,7 @@
Strategy strategy = (Strategy)getVerifier().getEntity(Strategy.class);
setBean((StrategyImpl) strategy);
if (getBean() != null){
- strategyInactivity.init("", getBean(), "InactivityEquation", "StrategyInactivityEquation", fr.ifremer.isisfish.equation.StrategyInactivityEquation.class);
+ strategyInactivity.init("isisfish.strategy.inactivity", getBean(), "Inactivity", "InactivityEquation", "EquationInactivity", fr.ifremer.isisfish.equation.StrategyInactivityEquation.class);
getVerifier().addCurrentPanel(strategyInactivity);
setSetOfVesselsModel();
}
1
0
r1754 - in isis-fish/trunk: . src/main/java/fr/ifremer/isisfish src/main/java/fr/ifremer/isisfish/simulator/launcher src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh src/main/resources src/main/resources/i18n src/main/resources/ssh src/test/java/fr/ifremer/isisfish/simulator src/test/java/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org 23 Jan '09
by chatellier@users.labs.libre-entreprise.org 23 Jan '09
23 Jan '09
Author: chatellier
Date: 2009-01-23 17:37:09 +0000 (Fri, 23 Jan 2009)
New Revision: 1754
Added:
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/
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/ClasspathTemplateLoader.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHException.java
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/SSHUtils.java
isis-fish/trunk/src/main/resources/ssh/
isis-fish/trunk/src/main/resources/ssh/launch-isis-pxe.seq
isis-fish/trunk/src/main/resources/ssh/launch-isis.seq
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java
Removed:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHUtils.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncher.java
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/simulator/launcher/SimulationJob.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.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:
Mise ?\195?\160 jour du launcher SSH sur caparmor
Modified: isis-fish/trunk/pom.xml
===================================================================
--- isis-fish/trunk/pom.xml 2009-01-23 09:22:36 UTC (rev 1753)
+++ isis-fish/trunk/pom.xml 2009-01-23 17:37:09 UTC (rev 1754)
@@ -11,7 +11,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>lutinproject</artifactId>
- <version>3.4-SNAPSHOT</version>
+ <version>3.3</version>
</parent>
<groupId>ifremer</groupId>
@@ -208,7 +208,7 @@
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
- <version>1.1.105</version>
+ <version>1.1.106</version>
<scope>compile</scope>
</dependency>
@@ -292,6 +292,11 @@
</dependency>
<!-- fin svnkit pour communication subversion -->
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ <version>2.3.15</version>
+ </dependency>
</dependencies>
<!-- ************************************************************* -->
@@ -334,7 +339,6 @@
<!-- Ignore failure test for now -->
<maven.test.testFailureIgnore>true</maven.test.testFailureIgnore>
- <maven.javadoc.skip>true</maven.javadoc.skip>
<!-- jnlp -->
<keystorepath>../../../CodeLutinKeystore</keystorepath>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-01-23 09:22:36 UTC (rev 1753)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-01-23 17:37:09 UTC (rev 1754)
@@ -50,7 +50,7 @@
import fr.ifremer.isisfish.simulator.SimulationContext;
import fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher;
import fr.ifremer.isisfish.simulator.launcher.SimulationService;
-import fr.ifremer.isisfish.simulator.launcher.SshSimulatorLauncher;
+import fr.ifremer.isisfish.simulator.launcher.SSHSimulatorLauncher;
import fr.ifremer.isisfish.simulator.launcher.SubProcessSimulationLauncher;
import fr.ifremer.isisfish.vcs.VCS;
@@ -633,7 +633,7 @@
/** prevu pour l'architecture de lancement en plugin: local, isis-server, caparmor, ... */
SIMULATOR_LAUNCHER(SimulationService.SIMULATION_LAUNCHER + ".localDefault", _("isisfish.config.main.localSimulator.description"), InProcessSimulatorLauncher.class.getName()),
SIMULATOR_LAUNCHER_SUB(SimulationService.SIMULATION_LAUNCHER + ".subDefault", _("isisfish.config.main.subSimulator.description"), SubProcessSimulationLauncher.class.getName()),
- SIMULATOR_LAUNCHER_REMOTE(SimulationService.SIMULATION_LAUNCHER + ".remoteCaparmor", _("isisfish.config.main.remoteCaparmor.description"), SshSimulatorLauncher.class.getName()),
+ SIMULATOR_LAUNCHER_REMOTE(SimulationService.SIMULATION_LAUNCHER + ".remoteCaparmor", _("isisfish.config.main.remoteCaparmor.description"), SSHSimulatorLauncher.class.getName()),
SIMULATOR_SERVER("simulation.server", _("isisfish.config.main.simulationServer.description"), "http://simulateur.ifremer.fr:9090"),
/** le login a utiliser pour les launcher distant, le type du launcher est ajouter a la cle (car 1 login par launcher) */
Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java (from rev 1751, 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 (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java 2009-01-23 17:37:09 UTC (rev 1754)
@@ -0,0 +1,694 @@
+/* *##%
+ * Copyright (C) 2008, 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.simulator.launcher;
+
+import static org.codelutin.i18n.I18n._;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.rmi.RemoteException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.codelutin.util.FileUtil;
+
+import com.jcraft.jsch.JSch;
+import com.jcraft.jsch.JSchException;
+import com.jcraft.jsch.Session;
+import com.jcraft.jsch.UserInfo;
+
+import fr.ifremer.isisfish.IsisFish;
+import fr.ifremer.isisfish.datastore.SimulationStorage;
+import fr.ifremer.isisfish.simulator.SimulationControl;
+import fr.ifremer.isisfish.simulator.launcher.ssh.ClasspathTemplateLoader;
+import fr.ifremer.isisfish.simulator.launcher.ssh.SSHException;
+import fr.ifremer.isisfish.simulator.launcher.ssh.SSHUserInfo;
+import fr.ifremer.isisfish.simulator.launcher.ssh.SSHUtils;
+import freemarker.cache.TemplateLoader;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import freemarker.template.TemplateException;
+
+/**
+ * Use a remote simulation server.
+ *
+ * Upload zip simulation file on server and launch
+ * simulation on that file.
+ *
+ * Isis-Fish must be installed on remote server.
+ *
+ * @see JSch
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 18 nov. 2008 $
+ * By : $Author: chatellier $
+ */
+public class SSHSimulatorLauncher implements SimulatorLauncher {
+
+ /** Class logger */
+ protected static Log log = LogFactory.getLog(SSHSimulatorLauncher.class);
+
+ /** Freemarker configuration */
+ protected Configuration freemarkerConfiguration;
+
+ /**
+ * Constructor.
+ *
+ * Init freemarker.
+ */
+ public SSHSimulatorLauncher() {
+ initFreemarker();
+ }
+
+ /**
+ * Init freemarker configuration.
+ */
+ protected void initFreemarker() {
+
+ freemarkerConfiguration = new Configuration();
+
+ // needed to overwrite "Defaults to default system encoding."
+ // fix encoding issue on some systems
+ freemarkerConfiguration.setDefaultEncoding("utf-8");
+
+ // specific template loader to get template from jars (classpath)
+ TemplateLoader templateLoader = new ClasspathTemplateLoader();
+ freemarkerConfiguration.setTemplateLoader(templateLoader);
+
+ //freemarkerConfiguration.setObjectWrapper(new BeansWrapper());
+
+ }
+
+ /**
+ * Display message both in commons-logging and control text progress.
+ *
+ * @param control control
+ * @param message message to display
+ */
+ protected void message(SimulationControl control, String message) {
+ // log
+ if (log.isInfoEnabled()) {
+ log.info(message);
+ }
+ // control
+ if (control != null) {
+ control.setText(message);
+ }
+ }
+
+ /*
+ * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#maxSimulationThread()
+ */
+ @Override
+ public int maxSimulationThread() {
+
+ // FIXME pour toutes les envoyer
+ // met le serveur les lance quand il veut
+
+ return 1;
+ }
+
+ /*
+ * @see java.lang.Object#toString()
+ */
+ @Override
+ public String toString() {
+ return _("isisfish.simulator.launcher.remote");
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * Dans le cas de ssh:
+ * - upload la simulation
+ * - construit le script pour qsub
+ * - upload le script qsub
+ * - ajoute le script a qsub
+ *
+ * Et :
+ * - lance le thread de control de la simulation
+ */
+ @Override
+ public SimulationStorage simulate(SimulationService simulationService,
+ SimulationControl control, File simulationZip)
+ throws RemoteException {
+
+ SimulationStorage simulationStorage = null;
+
+ // start ssh session
+ try {
+
+ // connection
+ message(control, _("isisfish.simulation.remote.message.connection"));
+ Session sshSession = openSSHSession();
+
+ // upload simulation on server
+ message(control, _("isisfish.simulation.remote.message.upload"));
+ String simulationRemotePath = uploadSimulation(sshSession, simulationZip);
+
+ // build du contenu du script
+ message(control, _("isisfish.simulation.remote.message.waitingstart"));
+ File simulationScript = getSimulationScriptFile(control.getId(), simulationRemotePath);
+ String scriptRemotePath = uploadSimulationScript(sshSession, simulationScript);
+ addScriptToQsubQueue(sshSession, scriptRemotePath);
+
+ // just start a thread
+ Thread thread = checkSimulationProgression(sshSession, simulationService,
+ control);
+ try {
+ thread.join();
+ } catch (InterruptedException e) {
+ if (log.isErrorEnabled()) {
+ log.error(_("Control thread interrupted"), e);
+ }
+ }
+
+ // recuperation des resultats
+ message(control,
+ _("isisfish.simulation.remote.message.downloadresults"));
+ downloadResults(sshSession, control.getId());
+ simulationStorage = SimulationStorage.getSimulation(control.getId());
+
+ // force thread to stop
+ synchronized (control) {
+ control.stopSimulation();
+ }
+
+ } catch (Exception e) {
+ if (log.isErrorEnabled()) {
+ log.error(_("isisfish.error.simulation.remote.global"));
+ }
+ throw new RemoteException(
+ _("isisfish.error.simulation.remote.global"), e);
+ }
+
+ return simulationStorage;
+ }
+
+ /**
+ * Connect to remote server throw SSH, and return session.
+ *
+ * @return valid opened session
+ *
+ * @throws JSchException
+ */
+ protected Session openSSHSession() throws JSchException {
+
+ JSch jsch = new JSch();
+
+ // extract connection infos
+ String host = IsisFish.config.getSimulatorSshServer();
+ String username = IsisFish.config.getSimulatorSshUsername();
+
+ int port = 22; // by default, 22
+
+ if (host.indexOf(':') > 0) {
+ String sPort = host.substring(host.indexOf(':') + 1);
+ try {
+ port = Integer.parseInt(sPort);
+ } catch (NumberFormatException e) {
+ if (log.isWarnEnabled()) {
+ log.warn(_(
+ "isisfish.error.simulation.remote.wrongportvalue",
+ sPort));
+ }
+ }
+ host = host.substring(0, host.indexOf(':'));
+ }
+
+ if (log.isInfoEnabled()) {
+ log.info(_("Try to log on %s@%s:%d", username, host, port));
+ }
+
+ // add ssh key
+ boolean sshKeyUsed = false;
+ File sshKey = IsisFish.config.getSSHPrivateKeyFilePath();
+ if (sshKey.canRead()) {
+ if (log.isInfoEnabled()) {
+ log.info(_("Ssh key found '%s' will be used to connect to",
+ sshKey.getAbsoluteFile(), host));
+ }
+ jsch.addIdentity(sshKey.getAbsolutePath());
+ sshKeyUsed = true;
+ }
+
+ Session session = jsch.getSession(username, host, port);
+
+ // username and password will be given via UserInfo interface.
+ UserInfo ui = new SSHUserInfo();
+ session.setUserInfo(ui);
+ session.connect(60000); // timeout
+
+ // test here, if password has been asked to user
+ if (session.isConnected() && sshKeyUsed && ui.getPassword() != null) {
+ putSshKeyOnRemoteServer(session, sshKey);
+ }
+ return session;
+ }
+
+ /**
+ * Close ssh session.
+ *
+ * @param session session to close
+ */
+ protected void closeSSHSession(Session session) {
+ if (session != null) {
+ session.disconnect();
+ }
+ }
+
+ /**
+ * Add ssh key into $HOME/.ssh/authorized_keys file.
+ *
+ * Just connect and do an "echo xx >> .ssh/authorized_keys"
+ * @param session opened session
+ * @param sshKey
+ * @throws JSchException
+ */
+ protected void putSshKeyOnRemoteServer(Session session, File sshKey)
+ throws JSchException {
+
+ // get public key for argument private key file
+ File publicKey = new File(sshKey.getAbsoluteFile() + ".pub");
+
+ // command to :
+ // - make ssh directory
+ // - add key to authorized_keys
+ String command = "if [ ! -d .ssh ] ; then mkdir .ssh; fi ; echo \"%s\" >> .ssh/authorized_keys";
+
+ try {
+ // use usefull readLines from commons-io
+ @SuppressWarnings("unchecked")
+ List<String> contents = FileUtils.readLines(publicKey);
+
+ // only one line
+ if (contents != null && contents.size() == 1) {
+ command = String.format(command, contents.get(0));
+
+ if (log.isInfoEnabled()) {
+ log.info("Add key on remote authorized keys");
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("command is : " + command);
+ }
+
+ SSHUtils.exec(session, command);
+ }
+ } catch (IOException e) {
+ if (log.isErrorEnabled()) {
+ 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"),
+ e);
+ }
+ }
+ }
+
+ /**
+ * Upload simulation file to server.
+ *
+ * @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
+ */
+ protected String uploadSimulation(Session session, File simulationFile) throws SSHException {
+
+ String localPath = simulationFile.getAbsolutePath();
+
+ // Copy simulation file in same arch as local arch
+ // on windows, it's a bad idee :)))
+ // copy it always on caparmor remote temp dir ?
+ // /tmp ?
+ // TODO check it
+
+ String remotePath = "/tmp/";
+
+ if (localPath.lastIndexOf("/") > 0) {
+ remotePath += localPath.substring(localPath.lastIndexOf("/") + 1);
+ } else if (localPath.lastIndexOf("\\") > 0) { // windows
+ remotePath += localPath.substring(localPath.lastIndexOf("\\") + 1);
+ } else {
+ remotePath += localPath;
+ }
+
+ SSHUtils.scpTo(session, simulationFile, remotePath);
+
+ return remotePath;
+ }
+
+ /**
+ * Download simulation results.
+ *
+ * Simulation result is save in {@link SimulationStorage#SIMULATION_PATH}.
+ *
+ * @throws SSHException if download fail (can happen if remote file doesn't exist
+ */
+ protected void downloadResults(Session session, String simulationId) throws SSHException {
+
+ // simulation directory
+ File localFile = new File(IsisFish.config.getDatabaseDirectory(),
+ SimulationStorage.SIMULATION_PATH);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Downloading results in " + localFile.getAbsolutePath());
+ }
+
+ // build remote file path
+ // FIXME this path should be given by remote IsisFish app
+ // TODO to change
+ String remoteFile = IsisFish.config.getSimulatorSshDataPath();
+ remoteFile += "/" + SimulationStorage.SIMULATION_PATH;
+ remoteFile += "/" + simulationId;
+
+ SSHUtils.scpFrom(session, remoteFile, localFile);
+
+ }
+
+ /*
+ * Launch simulation on remote server.
+ *
+ * @param session opened ssh session
+ * @param simulationService simulation service
+ * @param control control
+ * @param remotePath remote zip simulation path
+ * @throws JSchException
+ *
+ protected void launchSimulation(Session session,
+ SimulationService simulationService, SimulationControl control,
+ String remotePath) throws JSchException {
+
+ String simulationId = control.getId();
+
+ String command = String.format("%s %s %s %s '%s' '%s' %s '%s' '%s'",
+ "java", // java command
+ "-jar", // java jar option
+ IsisFish.config.getSimulatorSshJarPath(), // remote jar path
+ "--option", "launch.ui", "false", // additionnal option ui
+ "--simulateWithSimulation", simulationId, remotePath // add option simulation
+ );
+
+ if (log.isDebugEnabled()) {
+ log.debug("Launch : " + command);
+ }
+
+ try {
+ SSHUtils.exec(session, command);
+ } catch (SSHException e) {
+ if (log.isErrorEnabled()) {
+ log.error(_("Error while launching simulation"), e);
+ }
+ }
+ }*/
+
+ /**
+ * Upload script on remote server.
+ *
+ * @param session valid opened ssh session
+ * @param simulationScript file to upload
+ *
+ * @throws SSHException if upload fail
+ */
+ protected String uploadSimulationScript(Session session, File simulationScript) throws SSHException {
+
+ String localPath = simulationScript.getAbsolutePath();
+
+ // Copy simulation file in same arch as local arch
+ // on windows, it's a bad idee :)))
+ // copy it always on caparmor remote temp dir ?
+ // /tmp ?
+ // TODO check it
+
+ String remotePath = "/tmp/";
+
+ if (localPath.lastIndexOf("/") > 0) {
+ remotePath += localPath.substring(localPath.lastIndexOf("/") + 1);
+ } else if (localPath.lastIndexOf("\\") > 0) { // windows
+ remotePath += localPath.substring(localPath.lastIndexOf("\\") + 1);
+ } else {
+ remotePath += localPath;
+ }
+
+ SSHUtils.scpTo(session, simulationScript, remotePath);
+
+ return remotePath;
+ }
+
+ /**
+ * Retourne un fichier temporaire contenant le script de lancement
+ * de simulation.
+ *
+ * Le fichier temporaire est configuré pour se supprimer tout seul.
+ *
+ * @param simuationId id de la simulation
+ * @param simulationZip zip de la simulation
+ *
+ * @return un Fichier temporaire ou <tt>null</tt> en cas d'exception
+ *
+ * @throws IOException if can't build script
+ */
+ protected File getSimulationScriptFile(String simuationId, String simulationZip) throws IOException {
+
+ File tempScript = File.createTempFile("launch-isis", ".seq");
+ tempScript.deleteOnExit(); // auto delete
+
+ String fileContent = getSimulationScriptLaunchContent("ssh/launch-isis-pxe.seq", simuationId, simulationZip);
+ FileUtil.writeString(tempScript, fileContent);
+
+ return tempScript;
+ }
+
+ /**
+ * Utilise freemarker pour recuperer le contenu
+ * du script.
+ *
+ * Remplace aussi la variable $simulation du template.
+ *
+ * @param templateName url du template
+ * @param simuationId id de la simulation
+ * @param simulationZip zip de la simulation
+ *
+ * @throws IOException if can't get script content
+ */
+ protected String getSimulationScriptLaunchContent(String templateName,
+ String simuationId, String simulationZip) throws IOException {
+
+ String scriptContent = null;
+
+ try {
+ // get template
+ Template template = freemarkerConfiguration
+ .getTemplate(templateName);
+
+ // context values
+ Map<String, Object> root = new HashMap<String, Object>();
+ root.put("simulationid", simuationId);
+ root.put("simulationzip", simulationZip);
+
+ // process template
+ Writer out = new StringWriter();
+ template.process(root, out);
+ out.flush();
+ scriptContent = out.toString();
+
+ } catch (TemplateException e) {
+ if (log.isErrorEnabled()) {
+ log.error(_("Process template error"), e);
+ }
+
+ throw new IOException(_("Process template error"), e);
+ }
+
+ return scriptContent;
+ }
+
+ /**
+ * Add script in remote qsub queue.
+ *
+ * @param session valid opened session
+ * @param scriptRemotePath remote script path
+ *
+ * @throws SSHException if call fail
+ */
+ protected void addScriptToQsubQueue(Session session, String scriptRemotePath) throws SSHException {
+
+ // command to :
+ // - add script in qsub queue
+ String command = "./qsub \"" + scriptRemotePath + "\"";
+
+ int exit = SSHUtils.exec(session, command);
+
+ if(exit != 0) {
+ throw new SSHException(_("Command '%s' fail to execute", command));
+ }
+ }
+
+ /**
+ * Launch a thread to check simulation progression on remote
+ * server.
+ *
+ * Use IsisFish.config.SIMULATOR_SSH_DATAPATH to download
+ * remote simulation control file.
+ *
+ * @param sshSession
+ * @param simulationService
+ * @param control
+ */
+ protected Thread checkSimulationProgression(Session sshSession,
+ SimulationService simulationService, SimulationControl control) {
+
+ Runnable controlRunnable = new RemoteSSHControlThread(sshSession,
+ control);
+ Thread controlThread = new Thread(controlRunnable);
+ controlThread.start();
+
+ return controlThread;
+ }
+
+ /**
+ * Thread that check remote control file every 2s.
+ */
+ protected class RemoteSSHControlThread implements Runnable {
+
+ /** Sleep 1s */
+ protected static final int SLEEPTIME = 1000;
+
+ /** Opened ssh session */
+ protected Session sshSession;
+
+ /** Control (to update progression) */
+ protected SimulationControl control;
+
+ /**
+ * Constructor.
+ * @param sshSession
+ *
+ * @param control control
+ */
+ protected RemoteSSHControlThread(Session sshSession,
+ SimulationControl control) {
+ this.sshSession = sshSession;
+ this.control = control;
+ }
+
+ /*
+ * @see java.lang.Runnable#run()
+ */
+ @Override
+ public void run() {
+
+ boolean running = true;
+ while (running) {
+
+ // wait
+ try {
+ Thread.sleep(SLEEPTIME);
+
+ // log (to check if thread is still alive)
+ if (log.isDebugEnabled()) {
+ log.debug("Control thread wake up");
+ }
+
+ try {
+ // download control file
+ File controlFile = downloadControlFile(control.getId());
+
+ if (log.isDebugEnabled()) {
+ log.debug("Control have been downloaded : "
+ + controlFile.getAbsolutePath());
+ }
+
+ synchronized (control) {
+ // le thread principal a pu le modifier pendant le sleep
+ //if (control.isRunning()) {
+ // on ne lit pas le stop, car le stop ne peut-etre appeler
+ // que par l'utilisateur qui est de ce cote de la machine
+ SimulationStorage.readControl(controlFile,
+ control, "stop");
+ //}
+ }
+
+ // deleteTempFile
+ controlFile.delete();
+ } catch (SSHException e) {
+ // file doesn't exist
+ if(log.isDebugEnabled()) {
+ // not add ,e plz :)
+ log.debug(_("Remote control file doen't exists %s", e.getMessage()));
+ }
+ }
+
+ } catch (InterruptedException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Thread has been interrupted", e);
+ }
+ } catch (IOException e) {
+ if (log.isErrorEnabled()) {
+ log.error("Error while reading control file", e);
+ }
+ }
+
+ synchronized (control) {
+ running = control.getProgressMax() == 0 || (control.getProgress() < control.getProgressMax() - 1);
+ }
+ }
+ }
+
+ /**
+ * Download remote simulation control file and store
+ * its content into temp file.
+ *
+ * @return downloaded temp file (file have to be manually deleted)
+ * @throws IOException
+ * @throws SSHException if remote file doesn't exists
+ */
+ protected File downloadControlFile(String simulationId)
+ throws IOException, SSHException {
+
+ File localFile = null;
+
+ // build remote file path
+ // FIXME this path should be given by remote IsisFish app
+ // TODO to change
+ String remoteFile = IsisFish.config.getSimulatorSshDataPath();
+ remoteFile += "/" + SimulationStorage.SIMULATION_PATH;
+ remoteFile += "/" + simulationId;
+ remoteFile += "/control";
+
+ // local tmp file
+ localFile = File.createTempFile(simulationId, "control");
+
+ SSHUtils.scpFrom(sshSession, remoteFile, localFile);
+
+ return localFile;
+ }
+ }
+}
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHSimulatorLauncher.java
___________________________________________________________________
Name: svn:mergeinfo
+
Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHUtils.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHUtils.java 2009-01-23 09:22:36 UTC (rev 1753)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHUtils.java 2009-01-23 17:37:09 UTC (rev 1754)
@@ -1,495 +0,0 @@
-/* *##%
- * Copyright (C) 2008 Code Lutin
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *##%*/
-
-package fr.ifremer.isisfish.simulator.launcher;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayOutputStream;
-import java.io.EOFException;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import com.jcraft.jsch.Channel;
-import com.jcraft.jsch.ChannelExec;
-import com.jcraft.jsch.JSchException;
-import com.jcraft.jsch.Session;
-
-/**
- * SSH utils class.
- *
- * All this code has be taken from ant optionnal ssh task.
- *
- * Use full for:
- * - scpTo command
- * - scpFrom command
- * - exec command
- *
- * @author chatellier
- * @version $Revision: 1.0 $
- *
- * Last update : $Date: 13 janv. 2009 $
- * By : $Author: chatellier $
- */
-public class SSHUtils {
-
- /** log. */
- private static Log log = LogFactory.getLog(SSHUtils.class);
-
- protected static final byte LINE_FEED = 0x0a;
- protected static final int BUFFER_SIZE = 1024;
- private static final int HUNDRED_KILOBYTES = 102400;
-
- /** Utility class */
- protected SSHUtils() {
-
- }
-
- /**
- * Exec command on remote server.
- *
- * @param session opened valid session
- * @param command command to exec
- * @throws SSHException
- */
- public static void exec(Session session, String command)
- throws SSHException {
-
- try {
- // exec previous command
- Channel channel = session.openChannel("exec");
- ((ChannelExec) channel).setCommand(command);
-
- BufferedReader br = new BufferedReader(new InputStreamReader(
- channel.getInputStream()));
- channel.connect();
- String line = null;
- while (true) {
- while ((line = br.readLine()) != null) {
- if (log.isInfoEnabled()) {
- log.info("Remote output : " + line);
- }
- }
- if (channel.isClosed()) {
- if (log.isInfoEnabled()) {
- log.info("JSch channel exit-status: "
- + channel.getExitStatus());
- }
- break;
- }
- try {
- Thread.sleep(500);
- } catch (Exception ee) {
- }
- }
- channel.disconnect();
- // end read buffer
- } catch (JSchException e) {
- throw new SSHException("I/O error while executing command", e);
- } catch (IOException e) {
- throw new SSHException("I/O error while executing command", e);
- }
-
- }
-
- /**
- * Download a local file from remote server.
- *
- * @param session opened valid jsch session
- * @param remoteFileName remote file name to download
- * @param localFile local file name to download into
- *
- * @throws SSHException
- */
- public static void scpFrom(Session session, String remoteFileName,
- File localFile) throws SSHException {
-
- String command = "scp -f -r \"" + remoteFileName + "\"";
-
- ChannelExec channel = null;
- try {
- channel = (ChannelExec) session.openChannel("exec");
- channel.setCommand(command);
-
- // get I/O streams for remote scp
- OutputStream out = channel.getOutputStream();
- InputStream in = channel.getInputStream();
-
- channel.connect();
-
- sendAck(out);
- startRemoteCpProtocol(in, out, localFile);
- } catch (IOException e) {
- throw new SSHException(e);
- } catch (JSchException e) {
- throw new SSHException(e);
- } finally {
- if (channel != null) {
- channel.disconnect();
- }
- }
- }
-
- /**
- * Upload file on remote server.
- *
- * @param session opened valid session
- * @param localFile file to upload
- * @param remoteFilePath remote file path
- *
- * @throws SSHException
- */
- public static void scpTo(Session session, File localFile,
- String remoteFilePath) throws SSHException {
-
- try {
- doSingleTransfer(session, localFile, remoteFilePath);
- } catch (IOException e) {
- throw new SSHException(e);
- } catch (JSchException e) {
- throw new SSHException(e);
- }
- }
-
- /**
- * Send an ack.
- * @param out the output stream to use
- * @throws IOException on error
- */
- protected static void sendAck(OutputStream out) throws IOException {
- byte[] buf = new byte[1];
- buf[0] = 0;
- out.write(buf);
- out.flush();
- }
-
- /**
- * Reads the response, throws a BuildException if the response
- * indicates an error.
- * @param in the input stream to use
- * @throws IOException on I/O error
- */
- protected static void waitForAck(InputStream in) throws IOException,
- SSHException {
- int b = in.read();
-
- // b may be 0 for success,
- // 1 for error,
- // 2 for fatal error,
-
- if (b == -1) {
- // didn't receive any response
- throw new SSHException("No response from server");
- } else if (b != 0) {
- StringBuffer sb = new StringBuffer();
-
- int c = in.read();
- while (c > 0 && c != '\n') {
- sb.append((char) c);
- c = in.read();
- }
-
- if (b == 1) {
- throw new SSHException("server indicated an error: "
- + sb.toString());
- } else if (b == 2) {
- throw new SSHException("server indicated a fatal error: "
- + sb.toString());
- } else {
- throw new SSHException("unknown response, code " + b
- + " message: " + sb.toString());
- }
- }
- }
-
- /**
- * Track progress every 10% if 100kb < filesize < 1mb. For larger
- * files track progress for every percent transmitted.
- * @param filesize the size of the file been transmitted
- * @param totalLength the total transmission size
- * @param percentTransmitted the current percent transmitted
- * @return the percent that the file is of the total
- */
- protected static int trackProgress(long filesize, long totalLength,
- int percentTransmitted) {
-
- // CheckStyle:MagicNumber OFF
- int percent = (int) Math.round(Math
- .floor((totalLength / (double) filesize) * 100));
-
- if (percent > percentTransmitted) {
- if (filesize < 1048576) {
- if (percent % 5 == 0) {
- if (percent == 100) {
- System.out.println(" 100%");
- } else {
- System.out.print("*");
- }
- }
- } else {
- if (percent == 50) {
- System.out.println(" 50%");
- } else if (percent == 100) {
- System.out.println(" 100%");
- } else {
- System.out.print(".");
- }
- }
- }
- // CheckStyle:MagicNumber ON
-
- return percent;
- }
-
- protected static void startRemoteCpProtocol(InputStream in,
- OutputStream out, File localFile) throws IOException, SSHException {
- File startFile = localFile;
- while (true) {
- // C0644 filesize filename - header for a regular file
- // T time 0 time 0\n - present if perserve time.
- // D directory - this is the header for a directory.
- ByteArrayOutputStream stream = new ByteArrayOutputStream();
- while (true) {
- int read = in.read();
- if (read < 0) {
- return;
- }
- if ((byte) read == LINE_FEED) {
- break;
- }
- stream.write(read);
- }
- String serverResponse = stream.toString("UTF-8");
- if (serverResponse.charAt(0) == 'C') {
- parseAndFetchFile(serverResponse, startFile, out, in);
- } else if (serverResponse.charAt(0) == 'D') {
- startFile = parseAndCreateDirectory(serverResponse, startFile);
- sendAck(out);
- } else if (serverResponse.charAt(0) == 'E') {
- startFile = startFile.getParentFile();
- sendAck(out);
- } else if (serverResponse.charAt(0) == '\01'
- || serverResponse.charAt(0) == '\02') {
- // this indicates an error.
- throw new IOException(serverResponse.substring(1));
- }
- }
- }
-
- protected static File parseAndCreateDirectory(String serverResponse,
- File localFile) {
- int start = serverResponse.indexOf(" ");
- // appears that the next token is not used and it's zero.
- start = serverResponse.indexOf(" ", start + 1);
- String directoryName = serverResponse.substring(start + 1);
- if (localFile.isDirectory()) {
- File dir = new File(localFile, directoryName);
- dir.mkdir();
- log.debug("Creating: " + dir);
- return dir;
- }
- return null;
- }
-
- protected static void parseAndFetchFile(String serverResponse,
- File localFile, OutputStream out, InputStream in)
- throws IOException, SSHException {
- int start = 0;
- int end = serverResponse.indexOf(" ", start + 1);
- start = end + 1;
- end = serverResponse.indexOf(" ", start + 1);
- long filesize = Long.parseLong(serverResponse.substring(start, end));
- String filename = serverResponse.substring(end + 1);
- log.debug("Receiving: " + filename + " : " + filesize);
- File transferFile = (localFile.isDirectory()) ? new File(localFile,
- filename) : localFile;
- fetchFile(transferFile, filesize, out, in);
- waitForAck(in);
- sendAck(out);
- }
-
- protected static void fetchFile(File localFile, long filesize,
- OutputStream out, InputStream in) throws IOException {
- byte[] buf = new byte[BUFFER_SIZE];
- sendAck(out);
-
- // read a content of lfile
- FileOutputStream fos = new FileOutputStream(localFile);
- int length;
- long totalLength = 0;
-
- // only track progress for files larger than 100kb in verbose mode
- boolean trackProgress = filesize > HUNDRED_KILOBYTES;
- // since filesize keeps on decreasing we have to store the
- // initial filesize
- long initFilesize = filesize;
- int percentTransmitted = 0;
-
- try {
- while (true) {
- length = in.read(buf, 0, (BUFFER_SIZE < filesize) ? BUFFER_SIZE
- : (int) filesize);
- if (length < 0) {
- throw new EOFException("Unexpected end of stream.");
- }
- fos.write(buf, 0, length);
- filesize -= length;
- totalLength += length;
- if (filesize == 0) {
- break;
- }
-
- if (trackProgress) {
- percentTransmitted = trackProgress(initFilesize,
- totalLength, percentTransmitted);
- }
- }
- } finally {
- fos.flush();
- fos.close();
- }
- }
-
- protected static void doSingleTransfer(Session session, File localFile,
- String remoteFilePath) throws IOException, JSchException,
- SSHException {
-
- String command = "scp -t \"" + remoteFilePath + "\"";
- ChannelExec channel = (ChannelExec) session.openChannel("exec");
- channel.setCommand(command);
- try {
-
- OutputStream out = channel.getOutputStream();
- InputStream in = channel.getInputStream();
-
- channel.connect();
-
- waitForAck(in);
- sendFileToRemote(localFile, in, out);
- } finally {
- channel.disconnect();
- }
- }
-
- protected static void sendFileToRemote(File localFile, InputStream in,
- OutputStream out) throws IOException, SSHException {
- // send "C0644 filesize filename", where filename should not include '/'
- long filesize = localFile.length();
- String command = "C0644 " + filesize + " ";
- command += localFile.getName();
- command += "\n";
-
- out.write(command.getBytes());
- out.flush();
-
- waitForAck(in);
-
- // send a content of lfile
- FileInputStream fis = new FileInputStream(localFile);
- byte[] buf = new byte[BUFFER_SIZE];
- long totalLength = 0;
-
- // only track progress for files larger than 100kb in verbose mode
- boolean trackProgress = filesize > HUNDRED_KILOBYTES;
- // since filesize keeps on decreasing we have to store the
- // initial filesize
- long initFilesize = filesize;
- int percentTransmitted = 0;
-
- try {
- while (true) {
- int len = fis.read(buf, 0, buf.length);
- if (len <= 0) {
- break;
- }
- out.write(buf, 0, len);
- totalLength += len;
-
- if (trackProgress) {
- percentTransmitted = trackProgress(initFilesize,
- totalLength, percentTransmitted);
- }
- }
- out.flush();
- sendAck(out);
- waitForAck(in);
- } finally {
- fis.close();
- }
- }
-}
-
-/**
- * SSHException.
- *
- * @author chatellier
- * @version $Revision: 1.0 $
- *
- * Last update : $Date: 14 janv. 2009 $
- * By : $Author: chatellier $
- */
-class SSHException extends Exception {
-
- /** serialVersionUID. */
- private static final long serialVersionUID = -198651402309210758L;
-
- /**
- * Constructs a new exception with null as its detail message.
- */
- public SSHException() {
- super();
- }
-
- /**
- * Constructs a new exception with the specified detail message.
- *
- * @param message message
- * @param cause cause
- */
- public SSHException(String message, Throwable cause) {
- super(message, cause);
- }
-
- /**
- * Constructs a new exception with the specified detail message and cause.
- *
- * @param message message
- */
- public SSHException(String message) {
- super(message);
- }
-
- /**
- * Constructs a new exception with the specified cause and a detail message
- * of (cause==null ? null : cause.toString()) (which typically contains the
- * class and detail message of cause).
- *
- * @param cause cause
- */
- public SSHException(Throwable cause) {
- super(cause);
- }
-
-}
\ No newline at end of file
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java 2009-01-23 09:22:36 UTC (rev 1753)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java 2009-01-23 17:37:09 UTC (rev 1754)
@@ -238,7 +238,9 @@
log.error(_("Can't do post action %s", action), eee);
}
}
- // la simulation est termine on, avant la progress au dernier cran
+ // la simulation est termine on avance la progress au dernier cran
+ // attention on utilise ca aussi pour detecer la fin d'une simulation
+ // quand date =progressMax
control.setProgress(control.getProgress()+1);
}
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-01-23 09:22:36 UTC (rev 1753)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulatorLauncher.java 2009-01-23 17:37:09 UTC (rev 1754)
@@ -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
@@ -50,7 +50,7 @@
* responsable du stockage de chaque simulation dans des storages.
* <b>IMPORTANT</b> Quoi qu'il arrive
*
- * @throws java.rmi.RemoteException Si pour l'execution de la simulation
+ * @throws RemoteException Si pour l'execution de la simulation
* on utilise des resources distantes (serveurs) et que ceux si non pas pu
* etre contacte. Dans ce cas la simulation n'a pas ete faite et cette
* exception est levee.
Deleted: 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-01-23 09:22:36 UTC (rev 1753)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncher.java 2009-01-23 17:37:09 UTC (rev 1754)
@@ -1,679 +0,0 @@
-/* *##%
- * Copyright (C) 2008 Code Lutin
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *##%*/
-
-package fr.ifremer.isisfish.simulator.launcher;
-
-import static org.codelutin.i18n.I18n._;
-
-import java.awt.Container;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.io.File;
-import java.io.IOException;
-import java.rmi.RemoteException;
-import java.util.List;
-
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.JPanel;
-import javax.swing.JPasswordField;
-import javax.swing.JTextField;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import com.jcraft.jsch.JSch;
-import com.jcraft.jsch.JSchException;
-import com.jcraft.jsch.Session;
-import com.jcraft.jsch.UIKeyboardInteractive;
-import com.jcraft.jsch.UserInfo;
-
-import fr.ifremer.isisfish.IsisFish;
-import fr.ifremer.isisfish.datastore.SimulationStorage;
-import fr.ifremer.isisfish.simulator.SimulationControl;
-import fr.ifremer.isisfish.simulator.SimulationException;
-
-/**
- * Use a remote simulation server.
- *
- * Upload zip simulation file on server and launch
- * simulation on that file.
- *
- * Isis-Fish must be installed on remote server.
- *
- * @see JSch
- *
- * @author chatellier
- * @version $Revision: 1.0 $
- *
- * Last update : $Date: 18 nov. 2008 $
- * By : $Author: chatellier $
- */
-public class SshSimulatorLauncher implements SimulatorLauncher {
-
- /** Class logger */
- protected static Log log = LogFactory.getLog(SshSimulatorLauncher.class);
-
- /**
- * Display message both in commons-logging and control text progress.
- *
- * @param control control
- * @param message message to display
- */
- protected void message(SimulationControl control, String message) {
- // log
- if (log.isInfoEnabled()) {
- log.info(message);
- }
- // control
- if (control != null) {
- control.setText(message);
- }
- }
-
- /*
- * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#maxSimulationThread()
- */
- @Override
- public int maxSimulationThread() {
- return 1;
- }
-
- /*
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- return _("isisfish.simulator.launcher.remote");
- }
-
- /*
- * @see fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher#simulate(fr.ifremer.isisfish.simulator.launcher.SimulationService, fr.ifremer.isisfish.simulator.SimulationControl, java.io.File)
- */
- @Override
- public SimulationStorage simulate(SimulationService simulationService,
- SimulationControl control, File simulationZip)
- throws RemoteException {
-
- // start ssh session
- try {
-
- // connection
- message(control, _("isisfish.simulation.remote.message.connection"));
- Session sshSession = openSSHSession();
-
- // upload simulation on server
- message(control, _("isisfish.simulation.remote.message.upload"));
- String remotePath = uploadSimulation(sshSession, simulationZip);
-
- // si l'upload a fonctionné
- if (remotePath != null) {
- message(control, _("isisfish.simulation.remote.message.launch"));
-
- // just start a thread
- checkSimulationProgression(sshSession, simulationService,
- control);
- launchSimulation(sshSession, simulationService, control,
- remotePath);
-
- // recuperation des resultats
- message(control, _("isisfish.simulation.remote.message.downloadresults"));
- downloadResults(sshSession, control.getId());
-
- // force thread to stop
- synchronized(control) {
- control.stopSimulation();
- }
- }
- } catch (JSchException e) {
- if (log.isErrorEnabled()) {
- log.error(_("isisfish.error.simulation.remote.global"));
- }
- throw new SimulationException(
- _("isisfish.error.simulation.remote.global"), e);
- }
-
- return null;
- }
-
- /**
- * Connect to remote server throw SSH, and return session.
- *
- * @return valid opened session
- *
- * @throws JSchException
- */
- protected Session openSSHSession() throws JSchException {
-
- JSch jsch = new JSch();
-
- // extract connection infos
- String host = IsisFish.config.getSimulatorSshServer();
- String username = IsisFish.config.getSimulatorSshUsername();
-
- int port = 22; // by default, 22
-
- if (host.indexOf(':') > 0) {
- String sPort = host.substring(host.indexOf(':') + 1);
- try {
- port = Integer.parseInt(sPort);
- } catch (NumberFormatException e) {
- if (log.isWarnEnabled()) {
- log.warn(_(
- "isisfish.error.simulation.remote.wrongportvalue",
- sPort));
- }
- }
- host = host.substring(0, host.indexOf(':'));
- }
-
- if (log.isInfoEnabled()) {
- log.info(_("Try to log on %s@%s:%d", username, host, port));
- }
-
- // add ssh key
- boolean sshKeyUsed = false;
- File sshKey = IsisFish.config.getSSHPrivateKeyFilePath();
- if (sshKey.canRead()) {
- if (log.isInfoEnabled()) {
- log.info(_("Ssh key found '%s' will be used to connect to",
- sshKey.getAbsoluteFile(), host));
- }
- jsch.addIdentity(sshKey.getAbsolutePath());
- sshKeyUsed = true;
- }
-
- Session session = jsch.getSession(username, host, port);
-
- // username and password will be given via UserInfo interface.
- UserInfo ui = new SSHUserInfo();
- session.setUserInfo(ui);
- session.connect(60000); // timeout
-
- // test here, if password has been asked to user
- if (session.isConnected() && sshKeyUsed && ui.getPassword() != null) {
- putSshKeyOnRemoteServer(session, sshKey);
- }
- return session;
- }
-
- /**
- * Close ssh session.
- *
- * @param session session to close
- */
- protected void closeSSHSession(Session session) {
- if (session != null) {
- session.disconnect();
- }
- }
-
- /**
- * Add ssh key into $HOME/.ssh/authorized_keys file.
- *
- * Just connect and do an "echo xx >>
- * @param session opened session
- * @param sshKey
- * @throws JSchException
- */
- protected void putSshKeyOnRemoteServer(Session session, File sshKey)
- throws JSchException {
-
- // get public key for argument private key file
- // TODO always .pub ?
- File publicKey = new File(sshKey.getAbsoluteFile() + ".pub");
-
- // command to :
- // - make ssh directory
- // - add key to authorized_keys
- String command = "if [ ! -d .ssh ] ; then mkdir .ssh; fi ; echo \"%s\" >> .ssh/authorized_keys";
-
- try {
- // use usefull readLines from commons-io
- @SuppressWarnings("unchecked")
- List<String> contents = FileUtils.readLines(publicKey);
-
- // only one line
- if (contents != null && contents.size() == 1) {
- command = String.format(command, contents.get(0));
-
- if (log.isInfoEnabled()) {
- log.info("Add key on remote authorized keys");
- }
- if (log.isDebugEnabled()) {
- log.debug("command is : " + command);
- }
-
- SSHUtils.exec(session, command);
- }
- } catch (IOException e) {
- if (log.isErrorEnabled()) {
- 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"),
- e);
- }
- }
- }
-
- /**
- * Upload simulation file to server.
- *
- * @param session already open valid ssh session
- * @param simulationFile simulation file to upload
- *
- * @return remote file path or <tt>null</tt> if errors
- */
- protected String uploadSimulation(Session session, File simulationFile) {
-
- String localPath = simulationFile.getAbsolutePath();
-
- // Copy simulation file in same arch as local arch
- // on windows, it's a bad idee :)))
- // copy it always on caparmor remote temp dir ?
- // /tmp ?
- // TODO check it
-
- String remotePath = "/tmp/";
-
- if(localPath.lastIndexOf("/") > 0) {
- remotePath += localPath.substring(localPath.lastIndexOf("/") + 1);
- }
- else if(localPath.lastIndexOf("\\") > 0) { // windows
- remotePath += localPath.substring(localPath.lastIndexOf("\\") + 1);
- }
- else {
- remotePath += localPath;
- }
-
- try {
- SSHUtils.scpTo(session, simulationFile, remotePath);
- }
- catch(SSHException e) {
- if (log.isErrorEnabled()) {
- log.error(_("Error while uploading simulation"),
- e);
- }
-
- remotePath = null;
- }
-
- return remotePath;
- }
-
- /**
- * Download resulation results.
- *
- * @return downloaded temp file (file have to be manually deleted)
- */
- protected File downloadResults(Session session, String simulationId) {
-
- // simulation directory
- File localFile = new File(IsisFish.config.getDatabaseDirectory(),
- SimulationStorage.SIMULATION_PATH);
-
- if(log.isDebugEnabled()) {
- log.debug("Downloading results in " + localFile.getAbsolutePath());
- }
-
- // build remote file path
- // FIXME this path should be given by remote IsisFish app
- // TODO to change
- String remoteFile = IsisFish.config.getSimulatorSshDataPath();
- remoteFile += "/" + SimulationStorage.SIMULATION_PATH;
- remoteFile += "/" + simulationId;
-
- try {
- SSHUtils.scpFrom(session, remoteFile, localFile);
- }
- catch(SSHException e) {
- // error can append because control file does'nt exist yet
- if (log.isDebugEnabled()) {
- log.debug(_("Error while downloading simulation control"));
- }
-
- localFile = null;
- }
-
- return localFile;
- }
-
- /**
- * Launch simulation on remote server.
- *
- * @param session opened ssh session
- * @param simulationService simulation service
- * @param control control
- * @param remotePath remote zip simulation path
- * @throws JSchException
- */
- protected void launchSimulation(Session session,
- SimulationService simulationService, SimulationControl control,
- String remotePath) throws JSchException {
-
- String simulationId = control.getId();
-
- String command = String.format("%s %s %s %s '%s' '%s' %s '%s' '%s'",
- "java", // java command
- "-jar", // java jar option
- IsisFish.config.getSimulatorSshJarPath(), // remote jar path
- "--option", "launch.ui", "false", // additionnal option ui
- "--simulateWithSimulation", simulationId, remotePath // add option simulation
- );
-
- if (log.isDebugEnabled()) {
- log.debug("Launch : " + command);
- }
-
- try {
- SSHUtils.exec(session, command);
- }
- catch(SSHException e) {
- if (log.isErrorEnabled()) {
- log.error(_("Error while launching simulation"),
- e);
- }
- }
- }
-
- /**
- * Launch a thread to check simulation progression on remote
- * server.
- *
- * Use IsisFish.config.SIMULATOR_SSH_DATAPATH to download
- * remote simulation control file.
- *
- * @param sshSession
- * @param simulationService
- * @param control
- */
- protected void checkSimulationProgression(Session sshSession,
- SimulationService simulationService, SimulationControl control) {
-
- Runnable controlRunnable = new RemoteSSHControlThread(sshSession, control);
- Thread controlThread = new Thread(controlRunnable);
- controlThread.start();
-
- }
-
- /**
- * Thread that check remote control file every 2s.
- */
- protected class RemoteSSHControlThread implements Runnable {
-
- /** Sleep 1s */
- protected static final int SLEEPTIME = 1000;
-
- /** Opened ssh session */
- protected Session sshSession;
-
- /** Control (to update progression) */
- protected SimulationControl control;
-
- /**
- * Constructor.
- * @param sshSession
- *
- * @param control control
- */
- protected RemoteSSHControlThread(Session sshSession, SimulationControl control) {
- this.sshSession = sshSession;
- this.control = control;
- }
-
- /*
- * @see java.lang.Runnable#run()
- */
- @Override
- public void run() {
-
- boolean running = true;
- while (running) {
-
- // wait
- try {
- Thread.sleep(SLEEPTIME);
-
- // download control file
- File controlFile = downloadControlFile(control.getId());
-
- if (controlFile != null) {
- if(log.isDebugEnabled()) {
- log.debug("Control have been downloaded : " + controlFile.getAbsolutePath());
- }
-
- synchronized (control) {
- // le thread principal a pu le modifier pendant le sleep
- if(control.isRunning()) {
- // on ne lit pas le stop, car le stop ne peut-etre appeler
- // que par l'utilisateur qui est de ce cote de la machine
- SimulationStorage.readControl(controlFile, control,
- "stop");
- }
- }
-
- // deleteTempFile
- controlFile.delete();
- }
- else {
- if(log.isDebugEnabled()) {
- log.debug("Control can't have been downloaded");
- }
- }
-
- } catch (InterruptedException e) {
- if (log.isErrorEnabled()) {
- log.error("Thread has been interrupted", e);
- }
- } catch (IOException e) {
- if (log.isErrorEnabled()) {
- log.error("Error while reading control file", e);
- }
- }
-
- synchronized (control) {
- running = control.isRunning();
- }
- }
- }
-
- /**
- * Download remote simulation control file and store
- * its content into temp file.
- *
- * @return downloaded temp file (file have to be manually deleted)
- * @throws IOException
- */
- protected File downloadControlFile(String simulationId)
- throws IOException {
-
- File localFile = null;
-
- // build remote file path
- // FIXME this path should be given by remote IsisFish app
- // TODO to change
- String remoteFile = IsisFish.config.getSimulatorSshDataPath();
- remoteFile += "/" + SimulationStorage.SIMULATION_PATH;
- remoteFile += "/" + simulationId;
- remoteFile += "/control";
-
- // local tmp file
- localFile = File.createTempFile(simulationId, "control");
-
- try {
- SSHUtils.scpFrom(sshSession, remoteFile, localFile);
- }
- catch(SSHException e) {
- if (log.isErrorEnabled()) {
- log.error(_("Error while launching simulation"),
- e);
- }
-
- localFile = null;
- }
- return localFile;
- }
- }
-}
-
-/**
- * Class used to ask used for connection info.
- *
- * Password, passphrase...
- */
-class SSHUserInfo implements UserInfo, UIKeyboardInteractive {
-
- /**
- * Passphrase.
- *
- * Static to be stored on multiple connexion.
- */
- protected static String passphrase;
-
- /**
- * Passphrase text field.
- */
- protected JTextField passphraseField = new JPasswordField(20);
-
- /**
- * Password text field.
- */
- protected String passwd;
-
- /**
- * Password text field.
- */
- protected JTextField passwordField = new JPasswordField(20);
-
- /**
- * Call to ask user in remote server key
- * can be trusted. Here, auto accept.
- */
- @Override
- public boolean promptYesNo(String str) {
- return true;
- }
-
- @Override
- public String getPassphrase() {
- return passphrase;
- }
-
- @Override
- public boolean promptPassphrase(String message) {
- Object[] ob = { passphraseField };
- int result = JOptionPane.showConfirmDialog(null, ob, message,
- JOptionPane.OK_CANCEL_OPTION);
- boolean bResult = false;
- if (result == JOptionPane.OK_OPTION) {
- passphrase = passphraseField.getText();
- bResult = true;
- }
- return bResult;
- }
-
- @Override
- public String getPassword() {
- return passwd;
- }
-
- @Override
- public boolean promptPassword(String message) {
- Object[] ob = { passwordField };
- int result = JOptionPane.showConfirmDialog(null, ob, message,
- JOptionPane.OK_CANCEL_OPTION);
- boolean bResult = false;
- if (result == JOptionPane.OK_OPTION) {
- passwd = passwordField.getText();
- bResult = true;
- }
- return bResult;
- }
-
- @Override
- public void showMessage(String message) {
- JOptionPane.showMessageDialog(null, message);
- }
-
- @Override
- public String[] promptKeyboardInteractive(String destination, String name,
- String instruction, String[] prompt, boolean[] echo) {
- final GridBagConstraints gbc = new GridBagConstraints(0, 0, 1, 1, 1, 1,
- GridBagConstraints.NORTHWEST, GridBagConstraints.NONE,
- new Insets(0, 0, 0, 0), 0, 0);
- Container panel = new JPanel();
- panel.setLayout(new GridBagLayout());
-
- gbc.weightx = 1.0;
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.gridx = 0;
- panel.add(new JLabel(instruction), gbc);
- gbc.gridy++;
-
- gbc.gridwidth = GridBagConstraints.RELATIVE;
-
- JTextField[] texts = new JTextField[prompt.length];
- for (int i = 0; i < prompt.length; i++) {
- gbc.fill = GridBagConstraints.NONE;
- gbc.gridx = 0;
- gbc.weightx = 1;
- panel.add(new JLabel(prompt[i]), gbc);
-
- gbc.gridx = 1;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.weighty = 1;
- if (echo[i]) {
- texts[i] = new JTextField(20);
- } else {
- texts[i] = new JPasswordField(20);
- }
- panel.add(texts[i], gbc);
- gbc.gridy++;
- }
-
- String[] response = null;
- if (JOptionPane.showConfirmDialog(null, panel, destination + ": "
- + name, JOptionPane.OK_CANCEL_OPTION,
- JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION) {
- response = new String[prompt.length];
- for (int i = 0; i < prompt.length; i++) {
- response[i] = texts[i].getText();
-
- // hack to remember password
- if (prompt[i] != null
- && prompt[i].toLowerCase().indexOf("password") >= 0) {
- passwd = response[i];
- }
-
- // hack to remember passphrase
- if (prompt[i] != null
- && prompt[i].toLowerCase().indexOf("passphrase") >= 0) {
- passphrase = response[i];
- }
- }
- }
- // else = cancel
- return response;
- }
-}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/ClasspathTemplateLoader.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/ClasspathTemplateLoader.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/ClasspathTemplateLoader.java 2009-01-23 17:37:09 UTC (rev 1754)
@@ -0,0 +1,68 @@
+/* *##%
+ * Copyright (C) 2008, 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.simulator.launcher.ssh;
+
+import java.net.URL;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.codelutin.util.Resource;
+import org.codelutin.util.ResourceNotFoundException;
+
+import freemarker.cache.URLTemplateLoader;
+
+/**
+ * Freemarker custom template loader.
+ * Load template from classpath jars.
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 1 déc. 2008 $
+ * By : $Author: chatellier $
+ */
+public class ClasspathTemplateLoader extends URLTemplateLoader {
+
+ /** log */
+ private static Log log = LogFactory.getLog(ClasspathTemplateLoader.class);
+
+ /*
+ * @see freemarker.cache.URLTemplateLoader#getURL(java.lang.String)
+ */
+ @Override
+ protected URL getURL(String name) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("Loading url template " + name);
+ }
+
+ URL url = null;
+
+ try {
+ url = Resource.getURL(name);
+ } catch (ResourceNotFoundException e) {
+ // not big deal
+ // freemarker ask for name_fr_FR, name_fr, name
+ url = null;
+ }
+
+ return url;
+ }
+
+}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHException.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHException.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHException.java 2009-01-23 17:37:09 UTC (rev 1754)
@@ -0,0 +1,72 @@
+/* *##%
+ * Copyright (C) 2008, 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.simulator.launcher.ssh;
+
+/**
+ * SSHException.
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 14 janv. 2009 $
+ * By : $Author: chatellier $
+ */
+public class SSHException extends Exception {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -198651402309210758L;
+
+ /**
+ * Constructs a new exception with null as its detail message.
+ */
+ public SSHException() {
+ super();
+ }
+
+ /**
+ * Constructs a new exception with the specified detail message.
+ *
+ * @param message message
+ * @param cause cause
+ */
+ public SSHException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ /**
+ * Constructs a new exception with the specified detail message and cause.
+ *
+ * @param message message
+ */
+ public SSHException(String message) {
+ super(message);
+ }
+
+ /**
+ * Constructs a new exception with the specified cause and a detail message
+ * of (cause==null ? null : cause.toString()) (which typically contains the
+ * class and detail message of cause).
+ *
+ * @param cause cause
+ */
+ public SSHException(Throwable cause) {
+ super(cause);
+ }
+
+}
Added: 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 (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUserInfo.java 2009-01-23 17:37:09 UTC (rev 1754)
@@ -0,0 +1,180 @@
+/* *##%
+ * Copyright (C) 2008, 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.simulator.launcher.ssh;
+
+import java.awt.Container;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+
+import com.jcraft.jsch.UIKeyboardInteractive;
+import com.jcraft.jsch.UserInfo;
+
+/**
+ * Class used to ask used for connection info.
+ *
+ * Password, passphrase...
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 1 déc. 2008 $
+ * By : $Author: chatellier $
+ */
+public class SSHUserInfo implements UserInfo, UIKeyboardInteractive {
+
+ /**
+ * Passphrase.
+ *
+ * Static to be stored on multiple connexion.
+ */
+ protected static String passphrase;
+
+ /**
+ * Passphrase text field.
+ */
+ protected JTextField passphraseField = new JPasswordField(20);
+
+ /**
+ * Password text field.
+ */
+ protected String passwd;
+
+ /**
+ * Password text field.
+ */
+ protected JTextField passwordField = new JPasswordField(20);
+
+ /**
+ * Call to ask user in remote server key
+ * can be trusted. Here, auto accept.
+ */
+ @Override
+ public boolean promptYesNo(String str) {
+ return true;
+ }
+
+ @Override
+ public String getPassphrase() {
+ return passphrase;
+ }
+
+ @Override
+ public boolean promptPassphrase(String message) {
+ Object[] ob = { passphraseField };
+ int result = JOptionPane.showConfirmDialog(null, ob, message,
+ JOptionPane.OK_CANCEL_OPTION);
+ boolean bResult = false;
+ if (result == JOptionPane.OK_OPTION) {
+ passphrase = passphraseField.getText();
+ bResult = true;
+ }
+ return bResult;
+ }
+
+ @Override
+ public String getPassword() {
+ return passwd;
+ }
+
+ @Override
+ public boolean promptPassword(String message) {
+ Object[] ob = { passwordField };
+ int result = JOptionPane.showConfirmDialog(null, ob, message,
+ JOptionPane.OK_CANCEL_OPTION);
+ boolean bResult = false;
+ if (result == JOptionPane.OK_OPTION) {
+ passwd = passwordField.getText();
+ bResult = true;
+ }
+ return bResult;
+ }
+
+ @Override
+ public void showMessage(String message) {
+ JOptionPane.showMessageDialog(null, message);
+ }
+
+ @Override
+ public String[] promptKeyboardInteractive(String destination, String name,
+ String instruction, String[] prompt, boolean[] echo) {
+ final GridBagConstraints gbc = new GridBagConstraints(0, 0, 1, 1, 1, 1,
+ GridBagConstraints.NORTHWEST, GridBagConstraints.NONE,
+ new Insets(0, 0, 0, 0), 0, 0);
+ Container panel = new JPanel();
+ panel.setLayout(new GridBagLayout());
+
+ gbc.weightx = 1.0;
+ gbc.gridwidth = GridBagConstraints.REMAINDER;
+ gbc.gridx = 0;
+ panel.add(new JLabel(instruction), gbc);
+ gbc.gridy++;
+
+ gbc.gridwidth = GridBagConstraints.RELATIVE;
+
+ JTextField[] texts = new JTextField[prompt.length];
+ for (int i = 0; i < prompt.length; i++) {
+ gbc.fill = GridBagConstraints.NONE;
+ gbc.gridx = 0;
+ gbc.weightx = 1;
+ panel.add(new JLabel(prompt[i]), gbc);
+
+ gbc.gridx = 1;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ gbc.weighty = 1;
+ if (echo[i]) {
+ texts[i] = new JTextField(20);
+ } else {
+ texts[i] = new JPasswordField(20);
+ }
+ panel.add(texts[i], gbc);
+ gbc.gridy++;
+ }
+
+ String[] response = null;
+ if (JOptionPane.showConfirmDialog(null, panel, destination + ": "
+ + name, JOptionPane.OK_CANCEL_OPTION,
+ JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION) {
+ response = new String[prompt.length];
+ for (int i = 0; i < prompt.length; i++) {
+ response[i] = texts[i].getText();
+
+ // hack to remember password
+ if (prompt[i] != null
+ && prompt[i].toLowerCase().indexOf("password") >= 0) {
+ passwd = response[i];
+ }
+
+ // hack to remember passphrase
+ if (prompt[i] != null
+ && prompt[i].toLowerCase().indexOf("passphrase") >= 0) {
+ passphrase = response[i];
+ }
+ }
+ }
+ // else = cancel
+ return response;
+ }
+}
Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUtils.java (from rev 1751, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SSHUtils.java)
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUtils.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUtils.java 2009-01-23 17:37:09 UTC (rev 1754)
@@ -0,0 +1,448 @@
+/* *##%
+ * Copyright (C) 2008, 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.simulator.launcher.ssh;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayOutputStream;
+import java.io.EOFException;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import com.jcraft.jsch.Channel;
+import com.jcraft.jsch.ChannelExec;
+import com.jcraft.jsch.JSchException;
+import com.jcraft.jsch.Session;
+
+/**
+ * SSH utils class.
+ *
+ * All this code has be taken from ant optionnal ssh task.
+ *
+ * Use full for:
+ * - scpTo command
+ * - scpFrom command
+ * - exec command
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 13 janv. 2009 $
+ * By : $Author: chatellier $
+ */
+public class SSHUtils {
+
+ /** log. */
+ private static Log log = LogFactory.getLog(SSHUtils.class);
+
+ protected static final byte LINE_FEED = 0x0a;
+ protected static final int BUFFER_SIZE = 1024;
+ private static final int HUNDRED_KILOBYTES = 102400;
+
+ /** Utility class */
+ protected SSHUtils() {
+
+ }
+
+ /**
+ * Exec command on remote server.
+ *
+ * @param session opened valid session
+ * @param command command to exec
+ *
+ * @return channel exit status (0 = no problem)
+ * @throws SSHException
+ */
+ public static int exec(Session session, String command)
+ throws SSHException {
+
+ int exitStatus = 0;
+
+ try {
+ // exec previous command
+ Channel channel = session.openChannel("exec");
+ ((ChannelExec) channel).setCommand(command);
+
+ BufferedReader br = new BufferedReader(new InputStreamReader(
+ channel.getInputStream()));
+ channel.connect();
+ String line = null;
+ while (true) {
+ while ((line = br.readLine()) != null) {
+ if (log.isInfoEnabled()) {
+ log.info("Remote output : " + line);
+ }
+ }
+ if (channel.isClosed()) {
+ exitStatus = channel.getExitStatus();
+ if (log.isInfoEnabled()) {
+ log.info("JSch channel exit-status: "
+ + exitStatus);
+ }
+ break;
+ }
+ try {
+ Thread.sleep(500);
+ } catch (Exception ee) {
+ }
+ }
+ channel.disconnect();
+ // end read buffer
+ } catch (JSchException e) {
+ throw new SSHException("I/O error while executing command", e);
+ } catch (IOException e) {
+ throw new SSHException("I/O error while executing command", e);
+ }
+
+ return exitStatus;
+ }
+
+ /**
+ * Download a local file from remote server.
+ *
+ * @param session opened valid jsch session
+ * @param remoteFileName remote file name to download
+ * @param localFile local file name to download into
+ *
+ * @throws SSHException
+ */
+ public static void scpFrom(Session session, String remoteFileName,
+ File localFile) throws SSHException {
+
+ String command = "scp -f -r \"" + remoteFileName + "\"";
+
+ ChannelExec channel = null;
+ try {
+ channel = (ChannelExec) session.openChannel("exec");
+ channel.setCommand(command);
+
+ // get I/O streams for remote scp
+ OutputStream out = channel.getOutputStream();
+ InputStream in = channel.getInputStream();
+
+ channel.connect();
+
+ sendAck(out);
+ startRemoteCpProtocol(in, out, localFile);
+ } catch (IOException e) {
+ throw new SSHException(e);
+ } catch (JSchException e) {
+ throw new SSHException(e);
+ } finally {
+ if (channel != null) {
+ channel.disconnect();
+ }
+ }
+ }
+
+ /**
+ * Upload file on remote server.
+ *
+ * @param session opened valid session
+ * @param localFile file to upload
+ * @param remoteFilePath remote file path
+ *
+ * @throws SSHException
+ */
+ public static void scpTo(Session session, File localFile,
+ String remoteFilePath) throws SSHException {
+
+ try {
+ doSingleTransfer(session, localFile, remoteFilePath);
+ } catch (IOException e) {
+ throw new SSHException(e);
+ } catch (JSchException e) {
+ throw new SSHException(e);
+ }
+ }
+
+ /**
+ * Send an ack.
+ * @param out the output stream to use
+ * @throws IOException on error
+ */
+ protected static void sendAck(OutputStream out) throws IOException {
+ byte[] buf = new byte[1];
+ buf[0] = 0;
+ out.write(buf);
+ out.flush();
+ }
+
+ /**
+ * Reads the response, throws a BuildException if the response
+ * indicates an error.
+ * @param in the input stream to use
+ * @throws IOException on I/O error
+ */
+ protected static void waitForAck(InputStream in) throws IOException,
+ SSHException {
+ int b = in.read();
+
+ // b may be 0 for success,
+ // 1 for error,
+ // 2 for fatal error,
+
+ if (b == -1) {
+ // didn't receive any response
+ throw new SSHException("No response from server");
+ } else if (b != 0) {
+ StringBuffer sb = new StringBuffer();
+
+ int c = in.read();
+ while (c > 0 && c != '\n') {
+ sb.append((char) c);
+ c = in.read();
+ }
+
+ if (b == 1) {
+ throw new SSHException("server indicated an error: "
+ + sb.toString());
+ } else if (b == 2) {
+ throw new SSHException("server indicated a fatal error: "
+ + sb.toString());
+ } else {
+ throw new SSHException("unknown response, code " + b
+ + " message: " + sb.toString());
+ }
+ }
+ }
+
+ /**
+ * Track progress every 10% if 100kb < filesize < 1mb. For larger
+ * files track progress for every percent transmitted.
+ * @param filesize the size of the file been transmitted
+ * @param totalLength the total transmission size
+ * @param percentTransmitted the current percent transmitted
+ * @return the percent that the file is of the total
+ */
+ protected static int trackProgress(long filesize, long totalLength,
+ int percentTransmitted) {
+
+ // CheckStyle:MagicNumber OFF
+ int percent = (int) Math.round(Math
+ .floor((totalLength / (double) filesize) * 100));
+
+ if (percent > percentTransmitted) {
+ if (filesize < 1048576) {
+ if (percent % 5 == 0) {
+ if (percent == 100) {
+ System.out.println(" 100%");
+ } else {
+ System.out.print("*");
+ }
+ }
+ } else {
+ if (percent == 50) {
+ System.out.println(" 50%");
+ } else if (percent == 100) {
+ System.out.println(" 100%");
+ } else {
+ System.out.print(".");
+ }
+ }
+ }
+ // CheckStyle:MagicNumber ON
+
+ return percent;
+ }
+
+ protected static void startRemoteCpProtocol(InputStream in,
+ OutputStream out, File localFile) throws IOException, SSHException {
+ File startFile = localFile;
+ while (true) {
+ // C0644 filesize filename - header for a regular file
+ // T time 0 time 0\n - present if perserve time.
+ // D directory - this is the header for a directory.
+ ByteArrayOutputStream stream = new ByteArrayOutputStream();
+ while (true) {
+ int read = in.read();
+ if (read < 0) {
+ return;
+ }
+ if ((byte) read == LINE_FEED) {
+ break;
+ }
+ stream.write(read);
+ }
+ String serverResponse = stream.toString("UTF-8");
+ if (serverResponse.charAt(0) == 'C') {
+ parseAndFetchFile(serverResponse, startFile, out, in);
+ } else if (serverResponse.charAt(0) == 'D') {
+ startFile = parseAndCreateDirectory(serverResponse, startFile);
+ sendAck(out);
+ } else if (serverResponse.charAt(0) == 'E') {
+ startFile = startFile.getParentFile();
+ sendAck(out);
+ } else if (serverResponse.charAt(0) == '\01'
+ || serverResponse.charAt(0) == '\02') {
+ // this indicates an error.
+ throw new IOException(serverResponse.substring(1));
+ }
+ }
+ }
+
+ protected static File parseAndCreateDirectory(String serverResponse,
+ File localFile) {
+ int start = serverResponse.indexOf(" ");
+ // appears that the next token is not used and it's zero.
+ start = serverResponse.indexOf(" ", start + 1);
+ String directoryName = serverResponse.substring(start + 1);
+ if (localFile.isDirectory()) {
+ File dir = new File(localFile, directoryName);
+ dir.mkdir();
+ log.debug("Creating: " + dir);
+ return dir;
+ }
+ return null;
+ }
+
+ protected static void parseAndFetchFile(String serverResponse,
+ File localFile, OutputStream out, InputStream in)
+ throws IOException, SSHException {
+ int start = 0;
+ int end = serverResponse.indexOf(" ", start + 1);
+ start = end + 1;
+ end = serverResponse.indexOf(" ", start + 1);
+ long filesize = Long.parseLong(serverResponse.substring(start, end));
+ String filename = serverResponse.substring(end + 1);
+ log.debug("Receiving: " + filename + " : " + filesize);
+ File transferFile = (localFile.isDirectory()) ? new File(localFile,
+ filename) : localFile;
+ fetchFile(transferFile, filesize, out, in);
+ waitForAck(in);
+ sendAck(out);
+ }
+
+ protected static void fetchFile(File localFile, long filesize,
+ OutputStream out, InputStream in) throws IOException {
+ byte[] buf = new byte[BUFFER_SIZE];
+ sendAck(out);
+
+ // read a content of lfile
+ FileOutputStream fos = new FileOutputStream(localFile);
+ int length;
+ long totalLength = 0;
+
+ // only track progress for files larger than 100kb in verbose mode
+ boolean trackProgress = filesize > HUNDRED_KILOBYTES;
+ // since filesize keeps on decreasing we have to store the
+ // initial filesize
+ long initFilesize = filesize;
+ int percentTransmitted = 0;
+
+ try {
+ while (true) {
+ length = in.read(buf, 0, (BUFFER_SIZE < filesize) ? BUFFER_SIZE
+ : (int) filesize);
+ if (length < 0) {
+ throw new EOFException("Unexpected end of stream.");
+ }
+ fos.write(buf, 0, length);
+ filesize -= length;
+ totalLength += length;
+ if (filesize == 0) {
+ break;
+ }
+
+ if (trackProgress) {
+ percentTransmitted = trackProgress(initFilesize,
+ totalLength, percentTransmitted);
+ }
+ }
+ } finally {
+ fos.flush();
+ fos.close();
+ }
+ }
+
+ protected static void doSingleTransfer(Session session, File localFile,
+ String remoteFilePath) throws IOException, JSchException,
+ SSHException {
+
+ String command = "scp -t \"" + remoteFilePath + "\"";
+ ChannelExec channel = (ChannelExec) session.openChannel("exec");
+ channel.setCommand(command);
+ try {
+
+ OutputStream out = channel.getOutputStream();
+ InputStream in = channel.getInputStream();
+
+ channel.connect();
+
+ waitForAck(in);
+ sendFileToRemote(localFile, in, out);
+ } finally {
+ channel.disconnect();
+ }
+ }
+
+ protected static void sendFileToRemote(File localFile, InputStream in,
+ OutputStream out) throws IOException, SSHException {
+ // send "C0644 filesize filename", where filename should not include '/'
+ long filesize = localFile.length();
+ String command = "C0644 " + filesize + " ";
+ command += localFile.getName();
+ command += "\n";
+
+ out.write(command.getBytes());
+ out.flush();
+
+ waitForAck(in);
+
+ // send a content of lfile
+ FileInputStream fis = new FileInputStream(localFile);
+ byte[] buf = new byte[BUFFER_SIZE];
+ long totalLength = 0;
+
+ // only track progress for files larger than 100kb in verbose mode
+ boolean trackProgress = filesize > HUNDRED_KILOBYTES;
+ // since filesize keeps on decreasing we have to store the
+ // initial filesize
+ long initFilesize = filesize;
+ int percentTransmitted = 0;
+
+ try {
+ while (true) {
+ int len = fis.read(buf, 0, buf.length);
+ if (len <= 0) {
+ break;
+ }
+ out.write(buf, 0, len);
+ totalLength += len;
+
+ if (trackProgress) {
+ percentTransmitted = trackProgress(initFilesize,
+ totalLength, percentTransmitted);
+ }
+ }
+ out.flush();
+ sendAck(out);
+ waitForAck(in);
+ } finally {
+ fis.close();
+ }
+ }
+}
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/ssh/SSHUtils.java
___________________________________________________________________
Name: svn:mergeinfo
+
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-01-23 09:22:36 UTC (rev 1753)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-01-23 17:37:09 UTC (rev 1754)
@@ -18,6 +18,8 @@
Can't\ simulate\ %s=
Check\ state\ of\ local\ repository\:\ %s=
Checkout\ pom.xml\ to\ %s=
+Command\ '%s'\ fail\ to\ execute=
+Control\ thread\ interrupted=
Could\ not\ found\ formule\ type\ %s\ autorised\ type\ are\ %s=
Error\ during\ vcs\ initialisation=
Error\ while\ downloading\ simulation\ control=
@@ -39,8 +41,10 @@
Month\ Gap\ BetweenRepro\ Recruitment=
Normal\ stop\ thread,\ this\ is\ not\ an\ error=
Not\ start\ simulation\ %s\ because\ user\ ask\ stop=
+Process\ template\ error=
Region\ %s\ allready\ exist\ in\ repository.\ Can't\ import=
Region\ %s\ already\ inited=
+Remote\ control\ file\ doen't\ exists\ %s=
Rename\ data\ directory\ to\ %s=
Show\ help=
SimulationExecutor\ started\ with\ %s\ thread\ for\ %s=
@@ -845,8 +849,8 @@
isisfish.simulation.name=Simulation name
isisfish.simulation.remote.message.connection=Connecting to Caparmor
isisfish.simulation.remote.message.downloadresults=Downloading results
-isisfish.simulation.remote.message.launch=Launching simulation
isisfish.simulation.remote.message.upload=Uploading simulation
+isisfish.simulation.remote.message.waitingstart=Waiting for simulation start
isisfish.simulation.title=Simulation launcher
isisfish.simulator.launcher.inprocess=in current process
isisfish.simulator.launcher.remote=on Caparmor server
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-01-23 09:22:36 UTC (rev 1753)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-01-23 17:37:09 UTC (rev 1754)
@@ -18,6 +18,8 @@
Can't\ simulate\ %s=
Check\ state\ of\ local\ repository\:\ %s=
Checkout\ pom.xml\ to\ %s=
+Command\ '%s'\ fail\ to\ execute=
+Control\ thread\ interrupted=
Could\ not\ found\ formule\ type\ %s\ autorised\ type\ are\ %s=
Error\ during\ vcs\ initialisation=
Error\ while\ downloading\ simulation\ control=
@@ -39,8 +41,10 @@
Month\ Gap\ BetweenRepro\ Recruitment=
Normal\ stop\ thread,\ this\ is\ not\ an\ error=
Not\ start\ simulation\ %s\ because\ user\ ask\ stop=
+Process\ template\ error=
Region\ %s\ allready\ exist\ in\ repository.\ Can't\ import=
Region\ %s\ already\ inited=La r\u00E9gion %s a d\u00E9j\u00E0 \u00E9t\u00E9 initialis\u00E9e
+Remote\ control\ file\ doen't\ exists\ %s=
Rename\ data\ directory\ to\ %s=
Show\ help=
SimulationExecutor\ started\ with\ %s\ thread\ for\ %s=
@@ -845,8 +849,8 @@
isisfish.simulation.name=Nom de la simulation
isisfish.simulation.remote.message.connection=Connexion \u00E0 Caparmor
isisfish.simulation.remote.message.downloadresults=T\u00E9l\u00E9chargement des r\u00E9sultats
-isisfish.simulation.remote.message.launch=Lancement de la simulation
isisfish.simulation.remote.message.upload=Upload de la simulation
+isisfish.simulation.remote.message.waitingstart=Attente du d\u00E9marrage de la simulation
isisfish.simulation.title=Lanceur de simulation
isisfish.simulator.launcher.inprocess=dans le m\u00EAme processus
isisfish.simulator.launcher.remote=sur le serveur Caparmor
Added: isis-fish/trunk/src/main/resources/ssh/launch-isis-pxe.seq
===================================================================
--- isis-fish/trunk/src/main/resources/ssh/launch-isis-pxe.seq (rev 0)
+++ isis-fish/trunk/src/main/resources/ssh/launch-isis-pxe.seq 2009-01-23 17:37:09 UTC (rev 1754)
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+cd /home/chatellier/isis-fish-3.2.0.3
+#source /usr/share/modules/init/csh
+#module load java/1.6.0
+
+java -jar isis-fish-3.2.0.3.jar --option launch.ui false --simulateWithSimulation "${simulationid}" "${simulationzip}"
Added: isis-fish/trunk/src/main/resources/ssh/launch-isis.seq
===================================================================
--- isis-fish/trunk/src/main/resources/ssh/launch-isis.seq (rev 0)
+++ isis-fish/trunk/src/main/resources/ssh/launch-isis.seq 2009-01-23 17:37:09 UTC (rev 1754)
@@ -0,0 +1,9 @@
+#!/bin/csh
+
+#PBS -l mem=1000mb
+
+cd /export/home3/smahevas/isis-fish
+source /usr/share/modules/init/csh
+module load java/1.6.0
+
+java -jar isis-fish-3.2.0.3/isis-fish.jar --option launch.ui false --simulateWithSimulation "${simulationid}" "${simulationzip}"
Added: 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 (rev 0)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SshSimulatorLauncherTest.java 2009-01-23 17:37:09 UTC (rev 1754)
@@ -0,0 +1,66 @@
+/* *##%
+ * Copyright (C) 2008 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.simulator.launcher;
+
+import java.io.IOException;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+import freemarker.template.TemplateException;
+
+/**
+ * Test portant sur la classe qui doit lancer des
+ * simulation au travers de SSH.
+ *
+ * @author chatellier
+ * @version $Revision: 1.0 $
+ *
+ * Last update : $Date: 22 janv. 2009 $
+ * By : $Author: chatellier $
+ */
+public class SshSimulatorLauncherTest {
+
+ /**
+ * Test l'instantiation du script qsub (caparmor).
+ *
+ * Le script contient une variable $simulation qui
+ * doit être remplacée.
+ *
+ * @throws IOException when freemarker throws it
+ * @throws TemplateException when freemarker throws it
+ */
+ @Test
+ public void testFreemarkerTemplate() throws IOException, TemplateException {
+
+ final String TEMPLATE = "ssh/launch-isis.seq";
+ final String SIMULATIONID = "testid";
+ final String SIMULATIONZIP = "test.zip";
+
+ SSHSimulatorLauncher launcher = new SSHSimulatorLauncher();
+ String content = launcher.getSimulationScriptLaunchContent(TEMPLATE, SIMULATIONID, SIMULATIONZIP);
+
+ Assert.assertTrue("String \"" + SIMULATIONID + "\" not found in template",
+ content.indexOf(SIMULATIONID) > 0);
+
+ Assert.assertTrue("String \"" + SIMULATIONZIP + "\" not found in template",
+ content.indexOf(SIMULATIONZIP) > 0);
+ }
+}
\ No newline at end of file
1
0
r1753 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish: aspect datastore/update equation map simulator simulator/launcher types ui/input ui/result ui/simulator util vcs
by chatellier@users.labs.libre-entreprise.org 23 Jan '09
by chatellier@users.labs.libre-entreprise.org 23 Jan '09
23 Jan '09
Author: chatellier
Date: 2009-01-23 09:22:36 +0000 (Fri, 23 Jan 2009)
New Revision: 1753
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/aspect/Cache.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/PopulationGrowth.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/PopulationNaturalDeathRate.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/PopulationPrice.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/SelectivityEquation.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/SoVTechnicalEfficiencyEquation.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/StrategyInactivityEquation.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/TargetSpeciesTargetFactorEquation.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/Coordinate.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DataMap.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DataMapInfo.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DefaultDataMap.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DefaultScale.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/IsisMapBean.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/Motif.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/ResultatLayer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/Scale.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/ZoneDelimiterLayer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlan.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlanContext.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/RuleMonitor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationControl.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulatorServer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationExecutor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/package.html
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/types/Date.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/types/Month.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphBean.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphBeanModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphComboRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphEvent.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphListener.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphMatrixNDDataset.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/InfoItemDateListRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/InfoPanelable.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/LegendModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/LegendPanel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/MatrixInfoTableModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultView.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResumePanel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/Docable.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/package.html
Log:
Fix javadoc
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/aspect/Cache.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/aspect/Cache.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/aspect/Cache.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -120,7 +120,7 @@
* dans les traces
*
* @param jp
- * @return
+ * @return ?
* @throws Throwable
*/
protected Object realCall(final JoinPoint jp) throws Throwable {
@@ -137,7 +137,7 @@
* toString, pour que 2 soit bien egal a 2.
*
* @param jp
- * @return
+ * @return ?
*/
protected Object computeKey(JoinPoint jp) {
Method method = ((MethodSignature)jp.getSignature()).getMethod();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -294,7 +294,6 @@
* Converti un fichier XML version 2 en un zip importable en v3
*
* @param xml
- * @return
* @throws Exception
*/
public void importXML(File xml) throws Exception {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/PopulationGrowth.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/PopulationGrowth.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/PopulationGrowth.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -48,7 +48,7 @@
* @param context
* @param age l'age du groupe en mois
* @param group le groupe dont on souhaite avoir la longueur en fonction de l'age
- * @return
+ * @return equation result
*/
@Args({"context", "age", "group"})
public double compute(SimulationContext context, double age, PopulationGroup group) throws Exception;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/PopulationNaturalDeathRate.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/PopulationNaturalDeathRate.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/PopulationNaturalDeathRate.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -54,7 +54,7 @@
* @param zone la zone du groupe pour lequel on souhaite la mortalité natrurelle
* seulement utilisé pour la mortalité naturelle du group des naissances,
* sinon null
- * @return
+ * @return eqaution result
*/
@Args({"context", "pop", "group", "zone"})
public double compute(SimulationContext context,
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/PopulationPrice.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/PopulationPrice.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/PopulationPrice.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -47,7 +47,7 @@
*
* @param context
* @param group le groupe dont on souhaite le poids moyen
- * @return
+ * @return equation result
*/
@Args({"context", "group"})
public double compute(SimulationContext context, PopulationGroup group) throws Exception;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/SelectivityEquation.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/SelectivityEquation.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/SelectivityEquation.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -51,7 +51,7 @@
* @param pop La population pour lequel on souhaite la selectivite de l'engin
* @param group le group pour lequel on souhaite la selectivite de l'engin
* @param metier le metier pour lequel on souhaite la selectivite de l'engin
- * @return
+ * @return eqaution result
*/
@Args({"context", "pop", "group", "metier"})
public double compute(SimulationContext context,
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/SoVTechnicalEfficiencyEquation.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/SoVTechnicalEfficiencyEquation.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/SoVTechnicalEfficiencyEquation.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -38,7 +38,7 @@
* @param context
* @param metier le metier pour lequel on demande le calcul
* @param gear l'engin utilise par le metier
- * @return
+ * @return equation result
*/
@Args({"context", "metier", "gear"})
public double compute(SimulationContext context, Metier metier, Gear gear) throws Exception;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/StrategyInactivityEquation.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/StrategyInactivityEquation.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/StrategyInactivityEquation.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -39,7 +39,7 @@
* @param context
* @param month le mois courant de simulation
* @param info l'objet associe a la strategie pour le mois courant
- * @return
+ * @return equation result
*/
@Args({"context", "month", "info"})
public double compute(SimulationContext context, Month month, StrategyMonthInfo info) throws Exception;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/TargetSpeciesTargetFactorEquation.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/TargetSpeciesTargetFactorEquation.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/equation/TargetSpeciesTargetFactorEquation.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -52,7 +52,7 @@
* @param species l'espece pour lequel on recherche le facteur de ciblage
* @param infoMetier
* @param primaryCatch
- * @return
+ * @return equation result
*/
@Args({"context", "group", "species", "infoMetier", "primaryCatch"})
public double compute(SimulationContext context,
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/Coordinate.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/Coordinate.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/Coordinate.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -1,17 +1,16 @@
package fr.ifremer.isisfish.map;
/**
-* Coordinate.java
-*
-*
-* Created: Mon Apr 22 16:49:52 2002
-*
-* @author <a href="mailto:seb.regnier at free.fr"></a>
-* @version
-*/
-
+ * Coordinate.
+ *
+ * Created: Mon Apr 22 16:49:52 2002
+ *
+ * @author <a href="mailto:seb.regnier at free.fr"></a>
+ * @version $Revision$
+ */
public class Coordinate extends java.awt.geom.Point2D.Float implements java.io.Serializable {
- /** */
+
+ /** serialVersionUID */
private static final long serialVersionUID = 1L;
public Coordinate() {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DataMap.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DataMap.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DataMap.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -3,7 +3,7 @@
import java.io.Serializable;
/**
- * DataMap.java
+ * DataMap.
*
* A DataMap is some data we have to put on the map.
* To do this, we use a motif that tells the layer how to render the data.
@@ -11,9 +11,8 @@
* Created: Mon Apr 22 16:45:38 2002
*
* @author <a href="mailto:seb.regnier at free.fr"></a>
- * @version
+ * @version $Revision$
*/
-
public interface DataMap extends Serializable{
/**
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DataMapInfo.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DataMapInfo.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DataMapInfo.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -7,18 +7,16 @@
import java.util.List;
/**
- * DataMapInfo.java
+ * DataMapInfo.
*
- *
* Created: Mon Apr 22 16:47:31 2002
*
* @author <a href="mailto:seb.regnier at free.fr"></a>
- * @version
+ * @version $Revision$
*/
-
public class DataMapInfo implements Serializable {
- /** */
+ /** serialVersionUID */
private static final long serialVersionUID = -8530276186766231164L;
protected List<String> labels = new ArrayList<String>();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DefaultDataMap.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DefaultDataMap.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DefaultDataMap.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -7,12 +7,12 @@
* A default DataMap implementation. Created: Mon Apr 22 16:39:08 2002
*
* @author <a href="mailto:seb.regnier at free.fr"></a>
- * @version
+ * @version $Revision$
*/
public class DefaultDataMap implements DataMap {
- /** */
+ /** serialVersionUID */
private static final long serialVersionUID = 3277576798583867731L;
protected double value;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DefaultScale.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DefaultScale.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/DefaultScale.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -8,12 +8,12 @@
* Created: Mon Apr 22 16:52:17 2002
*
* @author <a href="mailto:seb.regnier at free.fr"></a>
- * @version
+ * @version $Revision$
*/
public class DefaultScale implements Scale {
- /** */
+ /** serialVersionUID */
private static final long serialVersionUID = -3348731042237607596L;
public double min;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/IsisMapBean.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/IsisMapBean.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/IsisMapBean.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -335,9 +335,8 @@
}
/**
- * init the mServer property value.
- * @return MapServer
- */
+ * init the mServer property value.
+ */
protected void initMap() {
try {
float centerLat = (maxLatitude + minLatitude) / 2f;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/Motif.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/Motif.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/Motif.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -17,12 +17,12 @@
* Created: Mon Apr 22 16:31:39 2002
*
* @author <a href="mailto:seb.regnier at free.fr"></a>
- * @version
+ * @version $Revision$
*/
public class Motif implements Serializable {
- /** */
+ /** serialVersionUID */
private static final long serialVersionUID = -2814583859271654759L;
public static final Color defaultLineColor = new Color(0, true);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/ResultatLayer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/ResultatLayer.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/ResultatLayer.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -296,9 +296,7 @@
* return new String[1] { SelectMouseMode.modeID };
* </pre>
* <code>
- * @see NavMouseMode#modeID
* @see SelectMouseMode#modeID
- * @see NullMouseMode#modeID
*/
public String[] getMouseModeServiceList() {
return new String[] { SelectMouseMode.modeID };
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/Scale.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/Scale.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/Scale.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -3,16 +3,15 @@
import java.io.Serializable;
/**
-* Scale.java
-* This interface allows the user to define a graduation between 0.0 and 1.0
-* whose movement are proportionnal to a bounded value.
-*
-* Created: Mon Apr 22 16:36:05 2002
-*
-* @author <a href="mailto:seb.regnier at free.fr"></a>
-* @version
-*/
-
+ * Scale.
+ * This interface allows the user to define a graduation between 0.0 and 1.0
+ * whose movement are proportionnal to a bounded value.
+ *
+ * Created: Mon Apr 22 16:36:05 2002
+ *
+ * @author <a href="mailto:seb.regnier at free.fr"></a>
+ * @version $Revision$
+ */
public interface Scale extends Serializable{
/** Get the corresponding value between 0.0 and 1.0 */
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/ZoneDelimiterLayer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/ZoneDelimiterLayer.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/map/ZoneDelimiterLayer.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -23,18 +23,16 @@
import fr.ifremer.isisfish.entities.FisheryRegion;
/**
-* ZoneDelimiterLayer.java
-*
-*
-* Created: Wed Apr 17 15:59:09 2002
-*
-* @author <a href="mailto:seb.regnier at free.fr"></a>
-* @version
-*/
+ * ZoneDelimiterLayer.
+ *
+ * Created: Wed Apr 17 15:59:09 2002
+ *
+ * @author <a href="mailto:seb.regnier at free.fr"></a>
+ * @version $Revision$
+ */
+public class ZoneDelimiterLayer extends Layer implements TopiaTransactionListener { //ZoneDelimiterLayer
-public class ZoneDelimiterLayer extends Layer implements TopiaTransactionListener { //TopiaEntityListener {
-
- /** */
+ /** serialVersionUID */
private static final long serialVersionUID = 1127201121371123690L;
/** to use log facility, just put in your code: log.info(\"...\"); */
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlan.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlan.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlan.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -48,7 +48,7 @@
/**
* return plan description
- * @return
+ * @return plan description
* @throws Exception
*/
public String getDescription() throws Exception;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlanContext.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlanContext.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/AnalysePlanContext.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -98,9 +98,6 @@
return this.values.get(key);
}
- /**
- * @param values The values to set.
- */
public void setValue(String key, Object value) {
this.values.put(key, value);
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/RuleMonitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/RuleMonitor.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/RuleMonitor.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -48,16 +48,10 @@
protected MultiKeyMap evalutionCondition = new MultiKeyMap();
- /**
- * @return Returns the lastEvalutionCondition.
- */
public boolean getEvalutionCondition(Date date, Rule rule, Metier metier) {
return (Boolean)this.evalutionCondition.get(date, rule, metier);
}
-
- /**
- * @param lastEvalutionCondition The lastEvalutionCondition to set.
- */
+
public void setEvaluationCondition(Date date, Rule rule, Metier metier, boolean evalutionCondition) {
this.evalutionCondition.put(date, rule, metier, evalutionCondition);
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationContext.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -208,7 +208,7 @@
}
/**
- * @param topiaContext The topiaContext to set.
+ * @param simulation The simulation storage to set.
*/
public void setSimulationStorage(SimulationStorage simulation) {
this.simulation = simulation;
@@ -310,7 +310,7 @@
}
/**
- * @param string
+ * @param message message
*/
public void message(String message) {
log.info(message);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationControl.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationControl.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationControl.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -266,7 +266,7 @@
/**
* Convert current object in hashtable representation, and clear hashtable
* that contains last modified field
- * @return
+ * @return object hashtable representation
*/
public Hashtable<String, Object> getUpdateHashtable() {
Hashtable<String, Object> result = new Hashtable<String, Object>(update);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulatorServer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulatorServer.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulatorServer.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -83,7 +83,7 @@
* @param user le login a utiliser pour pouvoir faire une simulation
* @param password le mot de passe
* @return si la methode est <b>simulate</b> retourne un objet
- * {@link fr.ifremer.db.Simulation} Simulation sous forme XML. Si la
+ * {@link SimulationStorage} Simulation sous forme XML. Si la
* methode est <b>checkPoint</b> retourne le nombre de mois simule.
*/
public Object execute(String method, Vector params, String user,
@@ -148,7 +148,7 @@
* synchronized two SimulationControl (local and remote)
*
* @param params
- * @return
+ * @return ?
* @throws Exception
*/
synchronized protected Object checkPoint(Vector params) throws Exception {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationExecutor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationExecutor.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationExecutor.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -169,7 +169,7 @@
/**
* Change la valeur de la variable pause, si pause est alors vrai
* notifie tous les threads en attente
- * @param autoLaunch The autoLaunch to set.
+ * @param pause pause value to set
*/
public void setPause(boolean pause) {
boolean oldValue = this.pause;
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-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -56,7 +56,6 @@
import java.util.TreeSet;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-import java.util.concurrent.PriorityBlockingQueue;
import org.apache.commons.lang.mutable.MutableInt;
import org.apache.commons.lang.time.DurationFormatUtils;
import org.apache.commons.logging.Log;
@@ -78,10 +77,10 @@
* Il existe une instance unique pour toute l'application
* <p>
* Lors de l'instanciation de la classe, l'ensemble des
- * {@link SimulationLauncher} disponible est recherche dans la configuration
+ * {@link SimulatorLauncher} disponible est recherche dans la configuration
* et un executor est cree pour chaque.
* <p>
- * Si un {@link SimulationLauncher} genere trop d'erreur (RemoteException)
+ * Si un {@link SimulatorLauncher} genere trop d'erreur (RemoteException)
* Il est alors suspendu pour ne plus etre utilise pour les simulations.
*
* @author poussin
@@ -104,7 +103,7 @@
/**
* Retourne l'instance du SimulationService a utiliser
- * @return
+ * @return l'instance a utiliser
*/
static public SimulationService getService() {
return instance;
@@ -377,7 +376,7 @@
* que le launcher de l'executor ne fonctionne plus (il se met en pause
* tout seul)
*
- * @param item l'item a resoumettre
+ * @param job l'item a resoumettre
*/
protected void resubmit(SimulationJob job) {
submit(job);
@@ -484,9 +483,9 @@
/**
* Indique s'il y a encore des simulations dans le plan. Par defaut pour
* Eviter les plans sans fin, le nombre de plan genere par simulation
- * est limite a {@link MAX_PLAN_SIMULATION}
+ * est limite a {@link SimulationService.MAX_PLAN_SIMULATION}
*
- * @return
+ * @return <tt>true</tt> if has next
*/
public boolean hasNext() {
try {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/package.html
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/package.html 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/package.html 2009-01-23 09:22:36 UTC (rev 1753)
@@ -1,4 +1,6 @@
-<h1>Launcher</h1>
+<html>
+ <body>
+ <h1>Launcher</h1>
<h2>To do</h2>
<li> voir pourquoi l'interface de visu des simulations en cours ne se
@@ -116,3 +118,5 @@
SimulationService} ce {@link SimulatorLauncher} n'est plus pris en compte et
n'importe quel {@link SimulatorLauncher} peut faire cette simulation.
</p>
+</body>
+</html>
\ No newline at end of file
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/types/Date.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/types/Date.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/types/Date.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -163,7 +163,7 @@
/**
* @param date2
- * @return
+ * @return month array
*/
public Month[] getMonthBetweenDate(Date date2) {
if(date2.getDate() - getDate() <0) {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/types/Month.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/types/Month.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/types/Month.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -184,7 +184,9 @@
}
/**
- * @return
+ * Get number of days.
+ *
+ * @return number of day
*/
public int getNumbersOfDays() {
int result = NUMBERS_OF_DAYS[getMonthNumber()];
@@ -197,7 +199,7 @@
*
* @param first
* @param last
- * @return
+ * @return month list
*/
static public List<Month> getMonths(Month first, Month last) {
List<Month> result = new ArrayList<Month>();
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-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -144,8 +144,6 @@
* <p/>
* Refresh all ui component where name match "input<entity type without
* package >.*"
- *
- * @return if ok return null else OutView error
*/
public void topiaRemove() {
if (log.isTraceEnabled()) {
@@ -253,8 +251,6 @@
/**
* Cancel all modification on entity (rollback), and force reload it and
* refresh all ui component that name match 'type'Tab
- *
- * @return the roolbacked entity
*/
public void topiaCancel() {
try {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphBean.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphBean.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphBean.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -18,17 +18,18 @@
import com.jrefinery.chart.ui.ChartPropertyEditPanel;
/**
- * GraphBean.java
+ * GraphBean.
*
- *
* Created: Mon Apr 29 17:48:40 2002
*
* @author <a href="mailto:seb.regnier at free.fr"></a>
- * @version
+ * @version $Revision$
*/
-
public class GraphBean extends GraphBeanUI implements GraphBeanUICallback,GraphListener {
+ /** serialVersionUID */
+ private static final long serialVersionUID = -4474836708965453250L;
+
protected GraphBeanModel model;
protected ChartPropertyEditPanel graphPalette;
protected ChartPanel chartPanel;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphBeanModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphBeanModel.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphBeanModel.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -15,15 +15,13 @@
import com.jrefinery.data.CategoryDataset;
/**
-* GraphBeanModel.java
-*
-*
-* Created: Fri May 17 13:29:47 2002
-*
-* @author <a href="mailto:seb.regnier at free.fr"></a>
-* @version
-*/
-
+ * GraphBeanModel.
+ *
+ * Created: Fri May 17 13:29:47 2002
+ *
+ * @author <a href="mailto:seb.regnier at free.fr"></a>
+ * @version $Revision$
+ */
public class GraphBeanModel {
// protected VerticalCategoryPlot verticalCategoryPlot;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphComboRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphComboRenderer.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphComboRenderer.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -17,17 +17,18 @@
import com.jrefinery.chart.VerticalBarRenderer3D;
/**
- * GraphComboRenderer.java
+ * GraphComboRenderer.
*
- *
* Created: Thu Sep 12 19:55:10 2002
*
* @author <a href="mailto:seb.regnier at free.fr"></a>
- * @version
+ * @version $Revision$
*/
-
public class GraphComboRenderer extends DefaultListCellRenderer {
+ /** serialVersionUID */
+ private static final long serialVersionUID = 5439698068065934760L;
+
public GraphComboRenderer (){
super();
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphEvent.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphEvent.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphEvent.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -5,16 +5,17 @@
/**
* GraphEvent.java
*
- *
* Created: Tue May 21 16:42:58 2002
*
* @author <a href="mailto:seb.regnier at free.fr"></a>
- * @version
+ * @version $Revision$
*/
+public class GraphEvent extends EventObject {
+ /** serialVersionUID */
+ private static final long serialVersionUID = 4189617216481564748L;
-public class GraphEvent extends EventObject {
- public GraphEvent (GraphBeanModel gbm){
- super((Object)gbm);
+ public GraphEvent(GraphBeanModel gbm) {
+ super((Object) gbm);
}
-
+
}// GraphEvent
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphListener.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphListener.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphListener.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -3,15 +3,13 @@
import java.util.EventListener;
/**
- * GraphListener.java
+ * GraphListener.
*
- *
* Created: Tue May 21 16:36:39 2002
*
* @author <a href="mailto:seb.regnier at free.fr"></a>
- * @version
+ * @version $Revision$
*/
-
public interface GraphListener extends EventListener {
public void graphChanged(GraphEvent e);
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphMatrixNDDataset.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphMatrixNDDataset.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphMatrixNDDataset.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -11,15 +11,13 @@
import com.jrefinery.data.CategoryDataset;
/**
-* GraphMatrixNDDataset.java
-*
-*
-* Created: Fri May 17 16:26:19 2002
-*
-* @author <a href="mailto:seb.regnier at free.fr"></a>
-* @version
-*/
-
+ * GraphMatrixNDDataset.
+ *
+ * Created: Fri May 17 16:26:19 2002
+ *
+ * @author <a href="mailto:seb.regnier at free.fr"></a>
+ * @version $Revision$
+ */
public class GraphMatrixNDDataset extends AbstractSeriesDataset implements CategoryDataset {//,XYDataset {
/** The series names. */
@@ -55,7 +53,7 @@
*
* @param seriesNames The series names.
* @param categories The categories.
- * @param data The matrice.
+ * @param mat The matrice.
*/
public GraphMatrixNDDataset(List seriesNames, List categories, MatrixND mat) {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/InfoItemDateListRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/InfoItemDateListRenderer.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/InfoItemDateListRenderer.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -8,16 +8,18 @@
import fr.ifremer.isisfish.types.Date;
/**
- * InfoItemDateListRenderer.java
+ * InfoItemDateListRenderer.
*
- *
* Created: Thu Sep 12 20:16:20 2002
*
* @author <a href="mailto:seb.regnier at free.fr"></a>
- * @version
+ * @version $Revision$
*/
+public class InfoItemDateListRenderer extends DefaultListCellRenderer {
+
+ /** serialVersionUID */
+ private static final long serialVersionUID = -3340579108147857972L;
-public class InfoItemDateListRenderer extends DefaultListCellRenderer {
public InfoItemDateListRenderer (){
super();
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/InfoPanelable.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/InfoPanelable.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/InfoPanelable.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -3,15 +3,13 @@
import javax.swing.*;
/**
- * InfoPanelable.java
+ * InfoPanelable.
*
- *
* Created: Mon Jun 3 18:58:09 2002
*
* @author <a href="mailto:seb.regnier at free.fr"></a>
- * @version
+ * @version $Revision$
*/
-
public interface InfoPanelable {
public JLabel getLabel();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/LegendModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/LegendModel.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/LegendModel.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -20,15 +20,13 @@
/**
- * LegendModel.java
+ * LegendModel.
*
- *
* Created: Tue Oct 8 11:31:57 2002
*
* @author <a href="mailto:seb.regnier at free.fr"></a>
- * @version
+ * @version $Revision$
*/
-
public class LegendModel {
protected double min;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/LegendPanel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/LegendPanel.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/LegendPanel.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -31,17 +31,18 @@
import javax.swing.JPanel;
/**
- * LegendPanel.java
+ * LegendPanel.
*
- *
* Created: Tue Oct 8 10:56:14 2002
*
* @author <a href="mailto:seb.regnier at free.fr"></a>
- * @version
+ * @version $Revision$
*/
-
public class LegendPanel extends JPanel {
+ /** serialVersionUID */
+ private static final long serialVersionUID = -6803899655178581165L;
+
private final static int DEFAULT_WIDTH = 110;
private final static int DEFAULT_HEIGHT = 50;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/MatrixInfoTableModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/MatrixInfoTableModel.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/MatrixInfoTableModel.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -6,17 +6,18 @@
import javax.swing.table.AbstractTableModel;
/**
-* MatrixInfoTableModel.java
-*
-*
-* Created: Fri May 31 18:31:20 2002
-*
-* @author <a href="mailto:seb.regnier at free.fr"></a>
-* @version
-*/
-
+ * MatrixInfoTableModel.
+ *
+ * Created: Fri May 31 18:31:20 2002
+ *
+ * @author <a href="mailto:seb.regnier at free.fr"></a>
+ * @version $Revision$
+ */
public class MatrixInfoTableModel extends AbstractTableModel {
+ /** serialVersionUID */
+ private static final long serialVersionUID = 2632133167225155487L;
+
protected MatrixND matrix;
public MatrixInfoTableModel (MatrixND mat){
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultView.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultView.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultView.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -99,21 +99,21 @@
// setSelectedSimulation((Simulation)getSimulation().getSelectedItem());
}
- /**
+ /*
* Get the value of selectedSimulation.
* @return value of selectedSimulation.
- */
- // public Simulation getSelectedSimulation() {
- //return selectedSimulation;
- //}
+ *
+ public Simulation getSelectedSimulation() {
+ return selectedSimulation;
+ }*/
- /**
+ /*
* Set the value of selectedSimulation.
* @param v Value to assign to selectedSimulation.
- */
- //public void setSelectedSimulation(Simulation v) {
- //this.selectedSimulation = v;
- //}
+ *
+ public void setSelectedSimulation(Simulation v) {
+ this.selectedSimulation = v;
+ }*/
public void on_supprimerSimulationButton_clicked(){
String name = (String)getSimulation().getSelectedItem();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResumePanel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResumePanel.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResumePanel.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -2,16 +2,16 @@
/**
-* ResumePanel.java
-*
-*
-*
-* @author <a href="mailto:seb.regnier at free.fr"></a>
-* @version
+ * ResumePanel.
+ *
+ * @author <a href="mailto:seb.regnier at free.fr"></a>
+ * @version $Revision$
*/
-
public class ResumePanel extends ResumePanelUI {
+ /** serialVersionUID */
+ private static final long serialVersionUID = 5424709605082901110L;
+
protected String resume;
// protected Vector vmatInfo;
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-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -241,7 +241,6 @@
* Change region in simulation launcher
*
* @param simulName name of simulation to load
- * @return <code>null</code> if ok, an OutputView otherwise with error
*/
public void loadOldSimulation(String simulName) {
log.debug("call loadOldSimulation: " + simulName);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -81,10 +81,11 @@
private static Method compileMethodWithPrintStream;
/**
- * Recherche tous les fichiers qui un source plus recent que la version compilé
+ * Recherche tous les fichiers qui un source plus recent que la version compilé.
+ *
* @param srcDir
* @param destDir
- * @return
+ * @return File list
*/
static public List<File> searchSrcToCompile(File srcDir, File destDir) {
List<File> result = new ArrayList<File>();
@@ -278,7 +279,7 @@
* @param category
* @param name
* @param javaInterface
- * @return
+ * @return doc
*/
static public String extractDoc(String category, String name, Class javaInterface) {
String content = "";
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/Docable.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/Docable.java 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/Docable.java 2009-01-23 09:22:36 UTC (rev 1753)
@@ -4,8 +4,8 @@
* This is the contract to be realize by any class wich wanted to have a @Doc support.
*
* @author chemit
- * @see @Doc
- * @see @DocHelper
+ * @see Doc
+ * @see DocHelper
*/
public interface Docable {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/package.html
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/package.html 2009-01-22 21:08:00 UTC (rev 1752)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/vcs/package.html 2009-01-23 09:22:36 UTC (rev 1753)
@@ -1,4 +1,5 @@
-Try to keep this classes agnostic about IsisFish specific objects. This permit
+<html>
+ <body>Try to keep this classes agnostic about IsisFish specific objects. This permit
library creation in near futur.
<h1>Politique d'utilisation du VCS pour les datas</h1>
@@ -35,3 +36,5 @@
<li>En lecture (trunk, tag, branch) car reseau indisponible</li>
</ul>
</p>
+</body>
+</html>
\ No newline at end of file
1
0
Author: tchemit
Date: 2009-01-22 21:08:00 +0000 (Thu, 22 Jan 2009)
New Revision: 1752
Modified:
isis-fish/trunk/pom.xml
Log:
remplacement du goal pour assembly quin'existe plus!
ajout d'un todo pour faire une nouvelle passe sur jnlp car on a mieux maintenant :)
Modified: isis-fish/trunk/pom.xml
===================================================================
--- isis-fish/trunk/pom.xml 2009-01-22 00:12:27 UTC (rev 1751)
+++ isis-fish/trunk/pom.xml 2009-01-22 21:08:00 UTC (rev 1752)
@@ -11,7 +11,7 @@
<parent>
<groupId>org.codelutin</groupId>
<artifactId>lutinproject</artifactId>
- <version>3.3</version>
+ <version>3.4-SNAPSHOT</version>
</parent>
<groupId>ifremer</groupId>
@@ -57,7 +57,7 @@
<version>${lutinwidget.version}</version>
<scope>compile</scope>
</dependency>
-
+
<!--Jaxx-->
<dependency>
<groupId>org.codelutin.jaxx</groupId>
@@ -72,7 +72,7 @@
<version>${jaxx.version}</version>
<scope>compile</scope>
</dependency>
-
+
<!--Commons-->
<dependency>
<groupId>commons-jxpath</groupId>
@@ -108,7 +108,7 @@
<version>1.8.0</version>
<scope>compile</scope>
</dependency>
-
+
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
@@ -328,12 +328,13 @@
<lutinwidget.version>0.12</lutinwidget.version>
<lutinmatrix.version>1.2-SNAPSHOT</lutinmatrix.version>
<openmap.version>4.6.4</openmap.version>
-
+
<!--Main class in JAR -->
<maven.jar.main.class>fr.ifremer.isisfish.IsisFish</maven.jar.main.class>
<!-- Ignore failure test for now -->
<maven.test.testFailureIgnore>true</maven.test.testFailureIgnore>
+ <maven.javadoc.skip>true</maven.javadoc.skip>
<!-- jnlp -->
<keystorepath>../../../CodeLutinKeystore</keystorepath>
@@ -506,7 +507,7 @@
<plugins>
<plugin>
-
+ <!-- todo utiliser ce qui a ete refait dans observe ou jaxx par exemple -->
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<!-- Ajout des libs signe par Sun dans un fichier jnlp separe -->
@@ -560,7 +561,7 @@
<execution>
<phase>verify</phase>
<goals>
- <goal>inline</goal>
+ <goal>attached</goal>
</goals>
</execution>
</executions>
@@ -621,6 +622,7 @@
<verbose>false</verbose>
</configuration>
</plugin>
+
</plugins>
</build>
</profile>
1
0
r1751 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input
by tchemit@users.labs.libre-entreprise.org 22 Jan '09
by tchemit@users.labs.libre-entreprise.org 22 Jan '09
22 Jan '09
Author: tchemit
Date: 2009-01-22 00:12:27 +0000 (Thu, 22 Jan 2009)
New Revision: 1751
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/FisheryRegionUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearTabUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoZoneUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierTabUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEquationUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/VesselTypeUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/ZoneUI.jaxx
Log:
- generics on getVerifier().getEntity()
- use Jaxx methods moved to JAXXList and JAXXComboBox
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -72,15 +72,15 @@
public void refresh(){
getVerifier().setSaveButton(save);
getVerifier().setCancelButton(cancel);
- SetOfVessels setOfVessels = (SetOfVessels)getVerifier().getEntity(SetOfVessels.class);
+ SetOfVessels setOfVessels = getVerifier().getEntity(SetOfVessels.class);
setBean((SetOfVesselsImpl) setOfVessels);
if (getBean() != null){
- jaxx.runtime.swing.Utils.fillList(fieldEffortDescriptionMetierList,getRegion().getMetier(), null);
+ fieldEffortDescriptionMetierList.fillList(getRegion().getMetier(), null);
setEffortDescriptionEffortDescriptionList();
}
}
protected void setEffortDescriptionEffortDescriptionList(){
- jaxx.runtime.swing.Utils.fillList(fieldEffortDescriptionEffortDescriptionList,getBean().getPossibleMetiers(), null);
+ fieldEffortDescriptionEffortDescriptionList.fillList(getBean().getPossibleMetiers(), null);
}
protected void add(){
Object value = fieldEffortDescriptionMetierList.getSelectedValue();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/FisheryRegionUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/FisheryRegionUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/FisheryRegionUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -53,7 +53,7 @@
getVerifier().setSaveButton(save, false);
getVerifier().setCancelButton(cancel);
setBean(null);
- FisheryRegion region = (FisheryRegion) getVerifier().getEntity(FisheryRegion.class);
+ FisheryRegion region = getVerifier().getEntity(FisheryRegion.class);
setBean((FisheryRegionImpl)region);
if (region != null){
setFieldMapfilesModel(getBean());
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearTabUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearTabUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearTabUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -68,7 +68,7 @@
getVerifier().setCancelButton(cancel);
getVerifier().setNewButton(create, "Gear");
getVerifier().setDeleteButton(remove);
- Gear gear = (Gear)getVerifier().getEntity(Gear.class);
+ Gear gear = getVerifier().getEntity(Gear.class);
setBean((GearImpl) gear);
}
]]>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -59,7 +59,7 @@
public void refresh() {
getVerifier().setSaveButton(save);
getVerifier().setCancelButton(cancel);
- Metier metier = (Metier)getVerifier().getEntity(Metier.class);
+ Metier metier = getVerifier().getEntity(Metier.class);
setBean((MetierImpl) metier);
getVerifier().addCurrentPanel(targetFactor);
if (getBean() != null){
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoZoneUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoZoneUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoZoneUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -89,7 +89,7 @@
getVerifier().setCancelButton(cancel);
getVerifier().setNewButton(create, "MetierSeasonInfo");
getVerifier().setDeleteButton(remove);
- Metier metier = (Metier)getVerifier().getEntity(Metier.class);
+ Metier metier = getVerifier().getEntity(Metier.class);
setBean((MetierImpl) metier);
if (metier != null){
if (seasonInit){
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierTabUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierTabUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierTabUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -54,7 +54,7 @@
getVerifier().setNewButton(create, "Metier");
getVerifier().setDeleteButton(remove);
try {
- Metier metier = (Metier)getVerifier().getEntity(Metier.class);
+ Metier metier = getVerifier().getEntity(Metier.class);
setBean((MetierImpl) metier);
DefaultComboBoxModel model = new DefaultComboBoxModel(getRegion().getGear().toArray());
fieldMetierGear.setModel(model);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -72,7 +72,7 @@
getVerifier().setCancelButton(cancel);
getVerifier().setNewButton(create, "Population", false);
getVerifier().setDeleteButton(remove);
- Population population = (Population)getVerifier().getEntity(Population.class);
+ Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
if (getBean() != null){
// TODO : Selection equation
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -61,7 +61,7 @@
public void refresh(){
getVerifier().setSaveButton(save);
getVerifier().setCancelButton(cancel);
- Population population = (Population)getVerifier().getEntity(Population.class);
+ Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
fieldPopulationCapturability.addMatrixListener(new MatrixPanelListener() {
@Override
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -46,7 +46,7 @@
public void refresh(){
getVerifier().setSaveButton(save);
getVerifier().setCancelButton(cancel);
- Population population = (Population)getVerifier().getEntity(Population.class);
+ Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
naturalDeathRate.init(_("isisfish.populationEquation.naturalDeathRate"), getBean(), "NaturalDeathRate", "PopulationNaturalDeathRate", fr.ifremer.isisfish.equation.PopulationNaturalDeathRate.class);
meanWeight.init(_("isisfish.populationEquation.meanWeight"), getBean(), "MeanWeight", "PopulationMeanWeight", fr.ifremer.isisfish.equation.PopulationMeanWeight.class);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -71,7 +71,7 @@
public void refresh(){
getVerifier().setSaveButton(save);
getVerifier().setCancelButton(cancel);
- Population population = (Population)getVerifier().getEntity(Population.class);
+ Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
getVerifier().addCurrentEntity(getPopulationGroup());
if (getBean() != null){
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -71,7 +71,7 @@
setPopInfo((PopulationSeasonInfoImpl)pi);
}
public void refresh(){
- Population population = (Population)getVerifier().getEntity(Population.class);
+ Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
setFieldPopulationMigrationMigrationGroupChooserModel();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEquationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEquationUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEquationUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -50,7 +50,7 @@
setPopInfo((PopulationSeasonInfoImpl)pi);
}
public void refresh(){
- Population population = (Population)getVerifier().getEntity(Population.class);
+ Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
migrationEquation.init(_("isisfish.common.migration"), getPopInfo(), "MigrationEquation", "Migration", fr.ifremer.isisfish.equation.MigrationEquation.class);
emigrationEquation.init(_("isisfish.common.emigration"), getPopInfo(), "EmigrationEquation", "Emigration", fr.ifremer.isisfish.equation.EmigrationEquation.class);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -71,7 +71,7 @@
this.popInfo = pi;
}
public void refresh(){
- Population population = (Population)getVerifier().getEntity(Population.class);
+ Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
setFieldPopulationMigrationMigrationGroupChooserModel();
setFieldPopulationMigrationMigrationArrivalZoneChooserModel();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -71,7 +71,7 @@
}
public void refresh(){
popInfo = pi;
- Population population = (Population)getVerifier().getEntity(Population.class);
+ Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
setFieldPopulationMigrationMigrationGroupChooserModel();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -63,7 +63,7 @@
getVerifier().setSaveButton(save);
getVerifier().setCancelButton(cancel);
getVerifier().addCurrentPanel(populationMigrationEquationUI, populationMigrationMigrationUI, populationMigrationImmigrationUI, populationMigrationEmigrationUI);
- Population population = (Population)getVerifier().getEntity(Population.class);
+ Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
if (getBean() != null){
setFieldPopulationMigrationSeasonChooserModel();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -62,7 +62,7 @@
public void refresh() {
getVerifier().setSaveButton(save);
getVerifier().setCancelButton(cancel);
- Population population = (Population)getVerifier().getEntity(Population.class);
+ Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
reproductionEquation.init(_("isisfish.populationRecruitment.reproductionEquation"), getBean(), "ReproductionEquation", "PopulationReproductionEquation", fr.ifremer.isisfish.equation.PopulationGrowth.class);
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-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -88,7 +88,7 @@
getVerifier().setCancelButton(cancel);
getVerifier().setNewButton(create, "PopulationSeasonInfo");
getVerifier().setDeleteButton(remove);
- Population population = (Population)getVerifier().getEntity(Population.class);
+ Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
if (getBean() != null){
jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationSeasonInfoChooser,getBean().getPopulationSeasonInfo(), null);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -64,7 +64,7 @@
public void refresh(){
getVerifier().setSaveButton(save);
getVerifier().setCancelButton(cancel);
- Population population = (Population)getVerifier().getEntity(Population.class);
+ Population population = getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
setPopulationZonesPresenceModel();
setFieldPopulationZonesReproductionModel();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -79,7 +79,7 @@
getVerifier().setCancelButton(cancel);
getVerifier().setNewButton(create, "Port");
getVerifier().setDeleteButton(remove);
- Port port = (Port)getVerifier().getEntity(Port.class);
+ Port port = getVerifier().getEntity(Port.class);
setBean((PortImpl) port);
portMap.setFisheryRegion(getRegion());
if(mapListener == null){
@@ -91,7 +91,7 @@
}
refreshMap();
if (getBean() != null){
- jaxx.runtime.swing.Utils.fillList(portCell, getRegion().getCell(), getBean().getCell());
+ portCell.fillList(getRegion().getCell(), getBean().getCell());
}
}
protected void refreshMap(){
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/VesselTypeUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/VesselTypeUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/VesselTypeUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -70,10 +70,10 @@
getVerifier().setCancelButton(cancel);
getVerifier().setNewButton(create, "VesselType");
getVerifier().setDeleteButton(delete);
- VesselType vesselType = (VesselType)getVerifier().getEntity(VesselType.class);
+ VesselType vesselType = getVerifier().getEntity(VesselType.class);
setBean((VesselTypeImpl) vesselType);
if (getBean() != null){
- jaxx.runtime.swing.Utils.fillList(vesselTypeTripType, getRegion().getTripType(), getBean().getTripType());
+ vesselTypeTripType.fillList(getRegion().getTripType(), getBean().getTripType());
}
}
protected void tripTypeChanged(){
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/ZoneUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/ZoneUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/ZoneUI.jaxx 2009-01-22 00:12:27 UTC (rev 1751)
@@ -64,7 +64,7 @@
// jaxx.runtime.Util.removeDataBinding($InputContentUI0, "fieldZoneName.text", "fieldZoneComment.text");
fieldZoneName.setText("");
fieldZoneComment.setText("");
- //jaxx.runtime.swing.Utils.fillList(zoneCells, getRegion().getCell(), java.util.Collections.EMPTY_LIST);
+ //zoneCells.fillList(getRegion().getCell(), java.util.Collections.EMPTY_LIST);
}
if (evt.getNewValue() != null) {
// add binding on getBean()
@@ -83,7 +83,7 @@
if (log.isDebugEnabled()) {
log.debug("zone nb cells : "+ ( zone==null ? 0 : zone.getCell().size() ) );
}
- jaxx.runtime.swing.Utils.fillList(zoneCells, getRegion().getCell(), getBean() == null ? java.util.Collections.EMPTY_LIST : getBean().getCell());
+ zoneCells.fillList(getRegion().getCell(), getBean() == null ? java.util.Collections.EMPTY_LIST : getBean().getCell());
zoneMap.setFisheryRegion(getRegion());
if (mapListener == null){
zoneMap.setActiveMouseMode(new SelectMouseMode(false));
1
0
r1750 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input
by sletellier@users.labs.libre-entreprise.org 20 Jan '09
by sletellier@users.labs.libre-entreprise.org 20 Jan '09
20 Jan '09
Author: sletellier
Date: 2009-01-20 17:54:50 +0000 (Tue, 20 Jan 2009)
New Revision: 1750
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.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/InputUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SpeciesUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/VesselTypeUI.jaxx
Log:
UI actif work
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -50,6 +50,7 @@
import org.codelutin.topia.persistence.TopiaEntity;
import fr.ifremer.isisfish.entities.EquationDAO;
import fr.ifremer.isisfish.IsisFishDAOHelper;
+import jaxx.runtime.swing.Item;
protected Class clazz;
protected TopiaEntity bean;
@@ -109,7 +110,15 @@
protected void setComboModel(){
java.util.List<Formule> formules = getAction().getFormules(getVerifier().getIsisContext(), name);
if (formules != null){
- jaxx.runtime.swing.Utils.fillComboBox(combo,formules, selectedEquation, "getName");
+ if (selectedEquation != null){
+ java.util.List<Item> items = new ArrayList<Item>();
+ for (Formule f : formules) {
+ System.out.println(selectedEquation.getClass().getName());
+ boolean selected = f.equals(selectedEquation);
+ items.add(new Item(f.getName(), f.getName(), f, selected));
+ }
+ combo.setItems(items);
+ }
}
}
protected void saveModel(){
@@ -133,14 +142,16 @@
}
}
protected void setEditorText(){
- editor.setText(getFormule().getContent());
+ if (getFormule() != null){
+ editor.setText(getFormule().getContent());
+ }
}
]]>
</script>
<Table id='body'>
<row>
<cell fill='horizontal' anchor='east'>
- <JLabel id='lbl' text='{getLblText()}'/>
+ <JLabel id='lbl' text='{getLblText()}' enabled='{isActif()}'/>
</cell>
<cell fill='horizontal' weightx='1.0'>
<JComboBox id="combo" onActionPerformed='setFormule((Formule)combo.getSelectedItem());setEquation(getFormule());setEditorText();' enabled='{isActif()}'/>
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-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputSaveVerifier.java 2009-01-20 17:54:50 UTC (rev 1750)
@@ -34,7 +34,7 @@
*
* @author letellier
*/
-public class InputSaveVerifier implements JAXXAction {
+public class InputSaveVerifier implements JAXXAction, fr.ifremer.isisfish.ui.SaveVerfier {
protected JButton currentNewButton = null;
protected JButton currentDeleteButton = null;
protected JButton currentSaveButton = null;
@@ -92,6 +92,7 @@
throw new UnsupportedOperationException("Not supported yet.");
}
+ @Override
public int checkEdit() {
int responce = JOptionPane.NO_OPTION;
if (editable) {
@@ -287,8 +288,8 @@
protected void refreshAll(){
for (InputContentUI panel : currentPanels){
panel.refresh();
+ panel.setActif(editable);
}
- setPanelsActifs();
}
public void addCurrentEntity(TopiaEntity currentEntity) {
if (currentEntity != null){
@@ -318,8 +319,8 @@
for (InputContentUI ui : panels){
this.currentPanels.add(ui);
ui.refresh();
+ ui.setActif(editable);
}
- setPanelsActifs();
}
public void removeAllPanels(){
currentPanels.clear();
@@ -422,4 +423,5 @@
void setRootPanel(InputUI inputUI) {
this.rootUI = inputUI;
}
+
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -76,7 +76,7 @@
import fr.ifremer.isisfish.entities.FisheryRegion;
import fr.ifremer.isisfish.datastore.RegionStorage;
-getContextValue(WelcomeSaveVerifier.class).setInputVerifier(getVerifier());
+getContextValue(WelcomeSaveVerifier.class).addSaveVerifier(getVerifier());
protected FisheryRegion getRegion(){
return getContextValue(FisheryRegion.class);
}
@@ -111,8 +111,8 @@
getAction().loadRegion(this, name);
}
protected void setTreeModel(){
- String regionName = getRegion().getName();
if (getRegion() != null){
+ String regionName = getRegion().getName();
setContextValue(getRegion());
NavigationTreeModel model = InputNavigationTreeSelectionAdapter.getTreeModel(regionName, getRegion());
navigation.setSelectionModel(navigationSelectionModel);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -61,6 +61,7 @@
getVerifier().setCancelButton(cancel);
Metier metier = (Metier)getVerifier().getEntity(Metier.class);
setBean((MetierImpl) metier);
+ getVerifier().addCurrentPanel(targetFactor);
if (getBean() != null){
if (fieldMetierSeasonInfo.getSelectedIndex() <= 0){
setSeasonModel();
@@ -73,8 +74,7 @@
}
// TODO : Equation selectionne
- targetFactor.init(_("isisfish.metierSeasonInfoSpecies.targetFactor"), null, "", "TargetSpeciesTargetFactorEquation", fr.ifremer.isisfish.equation.TargetSpeciesTargetFactorEquation.class);
- getVerifier().addCurrentPanel(targetFactor);
+ targetFactor.init(_("isisfish.metierSeasonInfoSpecies.targetFactor"), null, "TargetFactor", "TargetSpeciesTargetFactorEquation", fr.ifremer.isisfish.equation.TargetSpeciesTargetFactorEquation.class);
}
else{
DefaultComboBoxModel seasonModel = new DefaultComboBoxModel();
@@ -165,7 +165,7 @@
<Table>
<row>
<cell fill='horizontal' anchor='east'>
- <JLabel text="isisfish.metierSeasonInfoSpecies.selectSeason"/>
+ <JLabel text="isisfish.metierSeasonInfoSpecies.selectSeason" enabled='{isActif()}'/>
</cell>
<cell fill='horizontal' weightx='1.0'>
<JComboBox id="fieldMetierSeasonInfo" onActionPerformed='metierSeasonChanged()' enabled='{isActif()}'/>
@@ -173,7 +173,7 @@
</row>
<row>
<cell fill='horizontal' anchor='east'>
- <JLabel text="isisfish.metierSeasonInfoSpecies.selectSpecies"/>
+ <JLabel text="isisfish.metierSeasonInfoSpecies.selectSpecies" enabled='{isActif()}'/>
</cell>
<cell fill='horizontal' weightx='1.0'>
<JComboBox id="fieldTargetSpecies" enabled='{isActif()}'/>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -66,7 +66,9 @@
fieldPopulationCapturability.addMatrixListener(new MatrixPanelListener() {
@Override
public void matrixChanged(MatrixPanelEvent arg0) {
- getBean().setCapturability(fieldPopulationCapturability.getMatrix());
+ if (getBean() != null){
+ getBean().setCapturability(fieldPopulationCapturability.getMatrix());
+ }
}
});
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -73,8 +73,10 @@
getVerifier().setCancelButton(cancel);
Population population = (Population)getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
- jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationGroupPopulationGroup,getBean().getPopulationGroup(), null);
getVerifier().addCurrentEntity(getPopulationGroup());
+ if (getBean() != null){
+ jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationGroupPopulationGroup,getBean().getPopulationGroup(), null);
+ }
}
]]>
</script>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -74,7 +74,7 @@
Population population = (Population)getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
- setFieldPopulationMigrationMigrationGroupChooserModel();
+ setFieldPopulationMigrationMigrationGroupChooserModel();
setFieldPopulationMigrationMigrationDepartureZoneChooserModel();
populationMigrationEmigrationTable.addMatrixListener(new MatrixPanelListener() {
@@ -85,10 +85,14 @@
});
}
protected void setFieldPopulationMigrationMigrationGroupChooserModel(){
- jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationEmigrationGroupChooser,getBean().getPopulationGroup(), null);
+ if (getBean() != null){
+ jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationEmigrationGroupChooser,getBean().getPopulationGroup(), null);
+ }
}
protected void setFieldPopulationMigrationMigrationDepartureZoneChooserModel(){
- jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationEmigrationDepartureZoneChooser,getBean().getPopulationZone(), null);
+ if (getBean() != null){
+ jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationEmigrationDepartureZoneChooser,getBean().getPopulationZone(), null);
+ }
}
protected void add(){
getContextValue(InputAction.class).addEmigration(
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -75,7 +75,6 @@
setBean((PopulationImpl) population);
setFieldPopulationMigrationMigrationGroupChooserModel();
setFieldPopulationMigrationMigrationArrivalZoneChooserModel();
- populationMigrationImmigrationTable.setMatrix(popInfo.getMigrationMatrix());
populationMigrationImmigrationTable.addMatrixListener(new MatrixPanelListener() {
@Override
@@ -83,12 +82,19 @@
popInfo.setImmigrationMatrix(populationMigrationImmigrationTable.getMatrix());
}
});
+ if (popInfo != null){
+ populationMigrationImmigrationTable.setMatrix(popInfo.getMigrationMatrix());
+ }
}
protected void setFieldPopulationMigrationMigrationGroupChooserModel(){
- jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationImmigrationArrivalZoneChooser,getBean().getPopulationGroup(), null);
+ if (getBean() != null){
+ jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationImmigrationArrivalZoneChooser,getBean().getPopulationGroup(), null);
+ }
}
protected void setFieldPopulationMigrationMigrationArrivalZoneChooserModel(){
- jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationImmigrationArrivalZoneChooser,getBean().getPopulationZone(), null);
+ if (getBean() != null){
+ jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationImmigrationArrivalZoneChooser,getBean().getPopulationZone(), null);
+ }
}
protected void add(){
getContextValue(InputAction.class).addImmigration(popInfo,
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -77,7 +77,6 @@
setFieldPopulationMigrationMigrationGroupChooserModel();
setFieldPopulationMigrationMigrationDepartureZoneChooserModel();
setFieldPopulationMigrationMigrationArrivalZoneChooserModel();
- populationMigrationMigrationTable.setMatrix(popInfo.getMigrationMatrix());
populationMigrationMigrationTable.addMatrixListener(new MatrixPanelListener() {
@Override
@@ -85,15 +84,24 @@
popInfo.setMigrationMatrix(populationMigrationMigrationTable.getMatrix());
}
});
+ if (popInfo != null){
+ populationMigrationMigrationTable.setMatrix(popInfo.getMigrationMatrix());
+ }
}
protected void setFieldPopulationMigrationMigrationGroupChooserModel(){
- jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationMigrationGroupChooser,getBean().getPopulationGroup(), null);
+ if (getBean() != null){
+ jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationMigrationGroupChooser,getBean().getPopulationGroup(), null);
+ }
}
protected void setFieldPopulationMigrationMigrationDepartureZoneChooserModel(){
- jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationMigrationGroupChooser,getBean().getPopulationZone(), null);
+ if (getBean() != null){
+ jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationMigrationGroupChooser,getBean().getPopulationZone(), null);
+ }
}
protected void setFieldPopulationMigrationMigrationArrivalZoneChooserModel(){
- jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationMigrationGroupChooser,getBean().getPopulationZone(), null);
+ if (getBean() != null){
+ jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationMigrationMigrationGroupChooser,getBean().getPopulationZone(), null);
+ }
}
protected void add(){
getAction().addMigration(popInfo,
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -65,7 +65,9 @@
getVerifier().addCurrentPanel(populationMigrationEquationUI, populationMigrationMigrationUI, populationMigrationImmigrationUI, populationMigrationEmigrationUI);
Population population = (Population)getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
- setFieldPopulationMigrationSeasonChooserModel();
+ if (getBean() != null){
+ setFieldPopulationMigrationSeasonChooserModel();
+ }
PopulationSeasonInfo selected = getPopulationSeasonInfo();
if (selected != null){
fieldUseEquationMigration.setSelected(selected.getUseEquationMigration());
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-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -90,7 +90,9 @@
getVerifier().setDeleteButton(remove);
Population population = (Population)getVerifier().getEntity(Population.class);
setBean((PopulationImpl) population);
- jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationSeasonInfoChooser,getBean().getPopulationSeasonInfo(), null);
+ if (getBean() != null){
+ jaxx.runtime.swing.Utils.fillComboBox(fieldPopulationSeasonInfoChooser,getBean().getPopulationSeasonInfo(), null);
+ }
// Model instanciation
Interval interval = new Interval();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -82,18 +82,26 @@
getBean().setMappingZoneReproZoneRecru(fieldPopulationMappingZoneReproZoneRecru.getMatrix());
}
protected void setFieldPopulationMappingZoneReproZoneRecru(){
- if (getBean().getMappingZoneReproZoneRecru() != null){
- fieldPopulationMappingZoneReproZoneRecru.setMatrix(getBean().getMappingZoneReproZoneRecru().copy());
+ if (getBean() != null){
+ if (getBean().getMappingZoneReproZoneRecru() != null){
+ fieldPopulationMappingZoneReproZoneRecru.setMatrix(getBean().getMappingZoneReproZoneRecru().copy());
+ }
}
}
protected void setPopulationZonesPresenceModel(){
- setModel(getBean().getPopulationZone(), populationZonesPresence);
+ if (getBean() != null){
+ setModel(getBean().getPopulationZone(), populationZonesPresence);
+ }
}
protected void setFieldPopulationZonesReproductionModel(){
- setModel(getBean().getReproductionZone(), fieldPopulationZonesReproduction);
+ if (getBean() != null){
+ setModel(getBean().getReproductionZone(), fieldPopulationZonesReproduction);
+ }
}
protected void setFieldPopulationZonesRecruitmentModel(){
- setModel(getBean().getRecruitmentZone(), fieldPopulationZonesRecruitment);
+ if (getBean() != null){
+ setModel(getBean().getRecruitmentZone(), fieldPopulationZonesRecruitment);
+ }
}
protected void setModel(java.util.List<Zone> selected, JAXXList componant){
DefaultListModel model = new DefaultListModel();
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -81,7 +81,6 @@
getVerifier().setDeleteButton(remove);
Port port = (Port)getVerifier().getEntity(Port.class);
setBean((PortImpl) port);
- jaxx.runtime.swing.Utils.fillList(portCell, getRegion().getCell(), getBean().getCell());
portMap.setFisheryRegion(getRegion());
if(mapListener == null){
portMap.setSelectionMode(CellSelectionLayer.SINGLE_SELECTION);
@@ -91,6 +90,9 @@
setMapListener();
}
refreshMap();
+ if (getBean() != null){
+ jaxx.runtime.swing.Utils.fillList(portCell, getRegion().getCell(), getBean().getCell());
+ }
}
protected void refreshMap(){
java.util.List<Cell> cells = new ArrayList<Cell>();
@@ -141,7 +143,7 @@
<row>
<cell columns='2' fill='both' weighty='0.7' weightx='1.0'>
<JScrollPane>
- <JList id="portCell" selectionMode="0" onMouseClicked='getBean().setCell((Cell)portCell.getSelectedValue())' enabled='{isActif()}'/>
+ <JList id="portCell" selectionMode="0" onMouseClicked='getBean().setCell((Cell)portCell.getSelectedValue());refreshMap();' enabled='{isActif()}'/>
</JScrollPane>
</cell>
</row>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SpeciesUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SpeciesUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SpeciesUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -69,7 +69,9 @@
getVerifier().setDeleteButton(delete);
Species species = (Species)getVerifier().getEntity(Species.class);
setBean((SpeciesImpl) species);
- setNextPath("$root/$species/" + getBean().getTopiaId() + "/$populations");
+ if (getBean() != null){
+ setNextPath("$root/$species/" + getBean().getTopiaId() + "/$populations");
+ }
}
]]>
</script>
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-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -78,8 +78,12 @@
public void refresh() {
Strategy strategy = (Strategy)getVerifier().getEntity(Strategy.class);
setBean((StrategyImpl) strategy);
- setStrategyMonthInfo((StrategyMonthInfoImpl)getBean().getStrategyMonthInfo(month));
- jaxx.runtime.swing.Utils.fillComboBox(fieldStrategyMonthInfoTripType,getRegion().getTripType(), getStrategyMonthInfo().getTripType());
+ if (getBean() != null){
+ setStrategyMonthInfo((StrategyMonthInfoImpl)getBean().getStrategyMonthInfo(month));
+ }
+ if (getStrategyMonthInfo() != null){
+ jaxx.runtime.swing.Utils.fillComboBox(fieldStrategyMonthInfoTripType,getRegion().getTripType(), getStrategyMonthInfo().getTripType());
+ }
}
public void init(Month m){
month = m;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/VesselTypeUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/VesselTypeUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/VesselTypeUI.jaxx 2009-01-20 17:54:50 UTC (rev 1750)
@@ -72,7 +72,9 @@
getVerifier().setDeleteButton(delete);
VesselType vesselType = (VesselType)getVerifier().getEntity(VesselType.class);
setBean((VesselTypeImpl) vesselType);
- jaxx.runtime.swing.Utils.fillList(vesselTypeTripType, getRegion().getTripType(), getBean().getTripType());
+ if (getBean() != null){
+ jaxx.runtime.swing.Utils.fillList(vesselTypeTripType, getRegion().getTripType(), getBean().getTripType());
+ }
}
protected void tripTypeChanged(){
Object[] values = vesselTypeTripType.getSelectedValues();
1
0
r1749 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui
by sletellier@users.labs.libre-entreprise.org 20 Jan '09
by sletellier@users.labs.libre-entreprise.org 20 Jan '09
20 Jan '09
Author: sletellier
Date: 2009-01-20 17:53:42 +0000 (Tue, 20 Jan 2009)
New Revision: 1749
Added:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/SaveVerfier.java
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomePanelUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeSaveVerifier.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx
Log:
Multi save verifier
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/SaveVerfier.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/SaveVerfier.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/SaveVerfier.java 2009-01-20 17:53:42 UTC (rev 1749)
@@ -0,0 +1,14 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package fr.ifremer.isisfish.ui;
+
+/**
+ *
+ * @author letellier
+ */
+public interface SaveVerfier {
+ public int checkEdit();
+}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomePanelUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomePanelUI.jaxx 2009-01-20 17:34:19 UTC (rev 1748)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomePanelUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
@@ -33,12 +33,24 @@
<JPanel id='welcomePanelUI' layout='{new BorderLayout()}'>
<script>
<![CDATA[
+ import fr.ifremer.isisfish.IsisFish;
public void setContent(Container c){
this.add(c, BorderLayout.CENTER);
}
public void setInfoText(String s){
statusBar.getLabelStatus().setText(s);
}
+ public void close() {
+ if (getVerifier().allIsSaved()){
+ exit();
+ }
+ }
+ protected void exit(){
+ IsisFish.quit();
+ }
+ protected WelcomeSaveVerifier getVerifier(){
+ return getContextValue(WelcomeSaveVerifier.class);
+ }
]]>
</script>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeSaveVerifier.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeSaveVerifier.java 2009-01-20 17:34:19 UTC (rev 1748)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeSaveVerifier.java 2009-01-20 17:53:42 UTC (rev 1749)
@@ -6,26 +6,26 @@
package fr.ifremer.isisfish.ui;
import fr.ifremer.isisfish.ui.input.InputSaveVerifier;
+import java.util.ArrayList;
+import java.util.List;
import javax.swing.JOptionPane;
-
/**
*
* @author letellier
*/
public class WelcomeSaveVerifier {
- protected InputSaveVerifier inputVerifier = null;
+ protected List<fr.ifremer.isisfish.ui.SaveVerfier> verifiers = new ArrayList<fr.ifremer.isisfish.ui.SaveVerfier>();
- public void setInputVerifier(InputSaveVerifier inputVerifier) {
- this.inputVerifier = inputVerifier;
+ public void addSaveVerifier(InputSaveVerifier inputVerifier) {
+ verifiers.add(inputVerifier);
}
- public InputSaveVerifier getInputVerifier() {
- return inputVerifier;
- }
-
public boolean allIsSaved(){
boolean exit = true;
- int responce = inputVerifier.checkEdit();
+ int responce = JOptionPane.CANCEL_OPTION;
+ for (fr.ifremer.isisfish.ui.SaveVerfier s : verifiers){
+ responce = s.checkEdit();
+ }
//boolean exit = checkEdit(event, component);
if (responce == JOptionPane.OK_OPTION){
}
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx 2009-01-20 17:34:19 UTC (rev 1748)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
@@ -49,7 +49,7 @@
<fr.ifremer.isisfish.ui.result.ResultView/>
</tab>
<tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/book.gif"))}'>
- <fr.ifremer.isisfish.ui.input.InputUI constructorParams='new JAXXInitialContext().add(getContextValue(WelcomeSaveVerifier.class)).add(new InputAction()).add(new InputSaveVerifier())'/>
+ <fr.ifremer.isisfish.ui.input.InputUI constructorParams='new JAXXInitialContext().add(getContextValue(WelcomeSaveVerifier.class)).add(new InputAction()).add(new InputSaveVerifier()).add(this)'/>
</tab>
<tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/bookPage.gif"))}'>
<fr.ifremer.isisfish.ui.script.ScriptUI/>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx 2009-01-20 17:34:19 UTC (rev 1748)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749)
@@ -49,16 +49,52 @@
import jaxx.runtime.JAXXInitialContext;
import fr.ifremer.isisfish.ui.input.InputSaveVerifier;
+ java.util.Map <JFrame, WelcomePanelUI> allFrameOpened;
+
setContextValue(new WelcomeSaveVerifier());
+ allFrameOpened = new java.util.HashMap <JFrame, WelcomePanelUI> ();
welcomePanelUI.setContent(new WelcomeTabUI(new JAXXInitialContext().add(getVerifier())));
protected void openFrame(Container c, String title){
JFrame f = new JFrame();
f.setLayout(new BorderLayout());
- WelcomePanelUI welcome = new WelcomePanelUI(this);
+ WelcomePanelUI welcome = new WelcomePanelUI(new JAXXInitialContext().add(getContextValue(WelcomeSaveVerifier.class)).add(this));
welcome.setContent(c);
f.add(welcome, BorderLayout.CENTER);
f.setTitle(title);
f.setSize(new Dimension(800, 600));
+ f.setDefaultCloseOperation(f.DO_NOTHING_ON_CLOSE);
+ allFrameOpened.put(f, welcome);
+ f.addWindowListener(new WindowListener() {
+
+ @Override
+ public void windowOpened(WindowEvent e) {
+ }
+
+ @Override
+ public void windowClosing(WindowEvent e) {
+ allFrameOpened.get((JFrame) e.getSource()).close();
+ }
+
+ @Override
+ public void windowClosed(WindowEvent e) {
+ }
+
+ @Override
+ public void windowIconified(WindowEvent e) {
+ }
+
+ @Override
+ public void windowDeiconified(WindowEvent e) {
+ }
+
+ @Override
+ public void windowActivated(WindowEvent e) {
+ }
+
+ @Override
+ public void windowDeactivated(WindowEvent e) {
+ }
+ });
f.setVisible(true);
}
public void close() {
@@ -122,7 +158,7 @@
<JMenu text="isisfish.welcome.menu.frame">
<JMenuItem text="isisfish.welcome.menu.simulation" onActionPerformed='openFrame(new SimulUI(new SimulAction()), _("isisfish.simulation.title"))'/>
<JMenuItem text="isisfish.welcome.menu.result" onActionPerformed='openFrame(new ResultView(), _("isisfish.result.title"))'/>
- <JMenuItem text="isisfish.welcome.menu.input" onActionPerformed='openFrame(new InputUI(new JAXXInitialContext().add(this).add(new InputAction()).add(new InputSaveVerifier())), _("isisfish.input.title"))'/>
+ <JMenuItem text="isisfish.welcome.menu.input" onActionPerformed='openFrame(new InputUI(new JAXXInitialContext().add(getContextValue(WelcomeSaveVerifier.class)).add(new InputAction()).add(new InputSaveVerifier())), _("isisfish.input.title"))'/>
<JMenuItem text="isisfish.welcome.menu.script" onActionPerformed='openFrame(new ScriptUI(), _("isisfish.script.title"))'/>
<JSeparator/>
<JMenuItem text="isisfish.welcome.menu.queue" onActionPerformed='openFrame(new QueueUI(), _("isisfish.queue.title"))'/>
1
0
r1748 - in isis-fish/trunk/src/main: java/fr/ifremer/isisfish/ui/simulator resources/i18n
by chatellier@users.labs.libre-entreprise.org 20 Jan '09
by chatellier@users.labs.libre-entreprise.org 20 Jan '09
20 Jan '09
Author: chatellier
Date: 2009-01-20 17:34:19 +0000 (Tue, 20 Jan 2009)
New Revision: 1748
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.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:
Translation
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-01-20 10:18:43 UTC (rev 1747)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx 2009-01-20 17:34:19 UTC (rev 1748)
@@ -127,7 +127,7 @@
<JButton id="showLogButton" text="isisfish.queue.showLog" onActionPerformed='viewLog()'/>
</cell>
<cell fill="horizontal" weightx="0.3">
- <JButton id="clearDoneJobsButton" text="Clear done jobs" onActionPerformed='clearDoneJobs()'/>
+ <JButton id="clearDoneJobsButton" text="isisfish.queue.clearDone" onActionPerformed='clearDoneJobs()'/>
</cell>
</row>
</Table>
\ No newline at end of file
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-01-20 10:18:43 UTC (rev 1747)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-01-20 17:34:19 UTC (rev 1748)
@@ -18,7 +18,6 @@
Can't\ simulate\ %s=
Check\ state\ of\ local\ repository\:\ %s=
Checkout\ pom.xml\ to\ %s=
-Clear\ done\ jobs=
Could\ not\ found\ formule\ type\ %s\ autorised\ type\ are\ %s=
Error\ during\ vcs\ initialisation=
Error\ while\ downloading\ simulation\ control=
@@ -210,7 +209,7 @@
isisfish.error.check.region=
isisfish.error.compile.script=Can't compile script\: %1$s
isisfish.error.compiled.parameter=Can't get rule parameter from compiled class
-isisfish.error.conversion.data=Erreur lors de la conversion du fichier de donn\u00e9es
+isisfish.error.conversion.data=Erreur lors de la conversion du fichier de donn\u00E9es
isisfish.error.create.equation=Can't create equation
isisfish.error.delete.database=Can't delete database
isisfish.error.delete.file=could not delete file %1$s
@@ -244,12 +243,12 @@
isisfish.error.immigration.negative=immigration negative
isisfish.error.import.convertible=Erreur lors de l'import, la version du fichier que vous souhaitez importer n'est pas transformable en une version importable.
isisfish.error.import.file=Can't import file %1$s
-isisfish.error.import.recent.files=Erreur lors de l'import, la version du fichier que vous souhaitez importer est plus r\u00e9cente que la version souhait\u00e9e.
+isisfish.error.import.recent.files=Erreur lors de l'import, la version du fichier que vous souhaitez importer est plus r\u00E9cente que la version souhait\u00E9e.
isisfish.error.init.map=Can't init map.
isisfish.error.init.remove.button=could not init remove button (button or list is null) button \: %1$s, list \: %2$s
isisfish.error.instanciate=Can't instanciate %1$s
isisfish.error.instanciate.export=Can't instanciate export %1$s
-isisfish.error.invalid.costs.fix=les co\u00fbts fixes sont invalides
+isisfish.error.invalid.costs.fix=les co\u00FBts fixes sont invalides
isisfish.error.invalid.distribution.recruitment=distribution de recrutement invalide
isisfish.error.invalid.equation=Equation invalid
isisfish.error.invalid.equation.name=Invalid equation name
@@ -270,7 +269,7 @@
isisfish.error.log.console.dispose=Une erreur est survenue pendant la fermeture de la console %1$s de log, raison %2$s
isisfish.error.log.createAppender=could not create appender [%1$s] \: %2$s for reason %3$s
isisfish.error.log.foundAppender=\=could not found log appender %1$s for category %2$s
-isisfish.error.matrix.more.2d=Matrice de plus de 2 dimensions\!\!\nS\u00e9lectionnez moins d'\u00e9l\u00e9ments ou utilisez l'op\u00e9rateur somme.
+isisfish.error.matrix.more.2d=Matrice de plus de 2 dimensions\!\!\nS\u00E9lectionnez moins d'\u00E9l\u00E9ments ou utilisez l'op\u00E9rateur somme.
isisfish.error.migration.negative=Migration negative
isisfish.error.no.matrix=No matrix for\:
isisfish.error.no.null.time.step=Error, the time step should not be null
@@ -285,7 +284,7 @@
isisfish.error.not.null.class.grown=classe mature vaut nul
isisfish.error.not.null.mean.weight=poids moyen nul
isisfish.error.not.null.natiral.death=natural mortality null
-isisfish.error.not.possible.metier=Pas de m\u00e9tier possible
+isisfish.error.not.possible.metier=Pas de m\u00E9tier possible
isisfish.error.not.support.class=this class does not support
isisfish.error.number.classes.upper.zero=Error, the number of classes must be upper than 0
isisfish.error.obtain.analyseplan=Can't obtain description of AnalysePlan
@@ -551,7 +550,7 @@
isisfish.message.remove.finished=Remove finished
isisfish.message.remove.unnecessary.cells=
isisfish.message.removing.region=Removing region %1$s ...
-isisfish.message.result.verif.region=R\u00e9sultat de la v\u00e9rification de la r\u00e9gion
+isisfish.message.result.verif.region=R\u00E9sultat de la v\u00E9rification de la r\u00E9gion
isisfish.message.save.finished=Save finished
isisfish.message.saveModel.finished=Save model finished
isisfish.message.setting.cache.aspects=Setting Cache aspects
@@ -602,7 +601,7 @@
isisfish.params.ruleParameters=Rule's parameters
isisfish.params.simulationName=Simulation name
isisfish.params.title=Parameters
-isisfish.params.toString.fishery=P\u00eacherie\: %1$s\n\n
+isisfish.params.toString.fishery=P\u00EAcherie\: %1$s\n\n
isisfish.params.toString.lib.logger.level=Level of libraries' logger %1$s
isisfish.params.toString.number.years=Number of years\: %1$s\n\n
isisfish.params.toString.plan=Plan\: %1$s
@@ -613,7 +612,7 @@
isisfish.params.toString.script.presimulation=Script de presimulation
isisfish.params.toString.simul.logger.level=Level of simulator's logger %1$s
isisfish.params.toString.simulation.done=Simulation done with %1$s\:
-isisfish.params.toString.strategies=Strat\u00e9gies d'exploitation\:
+isisfish.params.toString.strategies=Strat\u00E9gies d'exploitation\:
isisfish.params.useAnalysePlan=Use analyse plan
isisfish.params.usePreSimulationScript=Use pre simulation script
isisfish.population.capturability=Capturability
@@ -691,6 +690,7 @@
isisfish.port.name=Name
isisfish.preScript.backParameter=Back to parameter tab
isisfish.preScript.title=Pre simulation script
+isisfish.queue.clearDone=Clear done jobs
isisfish.queue.id=Id
isisfish.queue.launcher=Simulation launcher
isisfish.queue.plan=Plan
@@ -737,7 +737,7 @@
isisfish.result.statusBar=defaultToolTip-fr.ifremer.resultat.ResultatEdit.statusbar1
isisfish.result.statusImage=defaultToolTip-fr.ifremer.resultat.ResultatEdit.statusImage
isisfish.result.stress.metier=Effort par metier
-isisfish.result.summary=R\u00e9sum\u00e9
+isisfish.result.summary=R\u00E9sum\u00E9
isisfish.result.summaryRadioButton=defaultToolTip-fr.ifremer.resultat.ResultatEdit.resumeRadioButton
isisfish.result.table=defaultToolTip-fr.ifremer.resultat.ResultatView.table33
isisfish.result.title=Resultat
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-01-20 10:18:43 UTC (rev 1747)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-01-20 17:34:19 UTC (rev 1748)
@@ -18,7 +18,6 @@
Can't\ simulate\ %s=
Check\ state\ of\ local\ repository\:\ %s=
Checkout\ pom.xml\ to\ %s=
-Clear\ done\ jobs=
Could\ not\ found\ formule\ type\ %s\ autorised\ type\ are\ %s=
Error\ during\ vcs\ initialisation=
Error\ while\ downloading\ simulation\ control=
@@ -41,7 +40,7 @@
Normal\ stop\ thread,\ this\ is\ not\ an\ error=
Not\ start\ simulation\ %s\ because\ user\ ask\ stop=
Region\ %s\ allready\ exist\ in\ repository.\ Can't\ import=
-Region\ %s\ already\ inited=La r\u00e9gion %s a d\u00e9j\u00e0 \u00e9t\u00e9 initialis\u00e9e
+Region\ %s\ already\ inited=La r\u00E9gion %s a d\u00E9j\u00E0 \u00E9t\u00E9 initialis\u00E9e
Rename\ data\ directory\ to\ %s=
Show\ help=
SimulationExecutor\ started\ with\ %s\ thread\ for\ %s=
@@ -68,22 +67,22 @@
directory\ %s\ must\ be\ a\ directory=
filter\ loaded\ in\ %1$s\ ms\ \:\ found\ %2$s\ lines.=filter loaded in %1$s ms \: found %2$s lines.
isisfish.about.abouthtmltext=<html><b>Isis-Fish (%s)</b><br /><br />Copyright IFREMER-MAERHA 2000-2008.<br /><br /><a href\="http\://isis-fish.labs.libre-entreprise.org">http\://isis-fish.labs.libre-entreprise.org</a><br /><br />Merci de rapporter les bugs.<html>
-isisfish.about.licensetext=Vous pouvez modifier et redistribuer ce programme sous les conditions \u00e9nonc\u00e9es par la licence GNU GPL (version 2 ou ult\u00e9rieure). Une copie de la licence GPL est dans le fichier \u00ab\u00a0LICENSE.txt\u00a0\u00bb fourni avec Isis-Fish. Tous droits r\u00e9serv\u00e9s. Aucune garantie n'est fournie pour l'utilisation de ce programme.
-isisfish.about.title=\u00c0 propos de Isis-Fish...
-isisfish.advancedParameters.title=Param\u00e8tres avanc\u00e9s
-isisfish.advancedParams.freeParameters=Param\u00e8tres libres
+isisfish.about.licensetext=Vous pouvez modifier et redistribuer ce programme sous les conditions \u00E9nonc\u00E9es par la licence GNU GPL (version 2 ou ult\u00E9rieure). Une copie de la licence GPL est dans le fichier \u00AB\u00A0LICENSE.txt\u00A0\u00BB fourni avec Isis-Fish. Tous droits r\u00E9serv\u00E9s. Aucune garantie n'est fournie pour l'utilisation de ce programme.
+isisfish.about.title=\u00C0 propos de Isis-Fish...
+isisfish.advancedParameters.title=Param\u00E8tres avanc\u00E9s
+isisfish.advancedParams.freeParameters=Param\u00E8tres libres
isisfish.advancedParams.libLevelLogger=Niveau de tracage des librairies
isisfish.advancedParams.scriptLevelLogger=Niveau de tracage des scripts
isisfish.advancedParams.simulLevelLogger=Niveau de tracage du simulateur
isisfish.advancedParams.simulationCache=Simulation cache
isisfish.advancedParams.simulationStatistique=Simulation statistique
-isisfish.advancedParams.simulatorUse=Simulateur \u00e0 utiliser
+isisfish.advancedParams.simulatorUse=Simulateur \u00E0 utiliser
isisfish.cell.comments=Commentaires
isisfish.cell.land=Land
isisfish.cell.latitude=Latitude
isisfish.cell.longitude=Longitude
isisfish.cell.name=Nom
-isisfish.change.equation=Ne peut pas changer l'\u00e9quation
+isisfish.change.equation=Ne peut pas changer l'\u00E9quation
isisfish.commit.message=Entrer un message de commit
isisfish.common.add=Ajouter
isisfish.common.add.short=Aj.
@@ -91,12 +90,12 @@
isisfish.common.apply=Appliquer
isisfish.common.blank=\
isisfish.common.cancel=Annuler
-isisfish.common.check=V\u00e9rifier
+isisfish.common.check=V\u00E9rifier
isisfish.common.clear=Effacer
isisfish.common.date=Date
isisfish.common.debug=Debug
isisfish.common.ellipsis=...
-isisfish.common.emigration=\u00e9migration
+isisfish.common.emigration=\u00E9migration
isisfish.common.empty=vide
isisfish.common.error=Erreur
isisfish.common.finish=Terminer
@@ -109,49 +108,49 @@
isisfish.common.newMatrix=Nouvelle matrice
isisfish.common.next=Suivant
isisfish.common.ok=Ok
-isisfish.common.openEditor=Ouvrir l'\u00e9diteur
+isisfish.common.openEditor=Ouvrir l'\u00E9diteur
isisfish.common.populationGroup=Groupe de population
isisfish.common.populations=Populations
isisfish.common.port=port
-isisfish.common.prev=Pr\u00e9c\u00e9dent
-isisfish.common.previous=Pr\u00e9c\u00e9dent
-isisfish.common.region=R\u00e9gion
+isisfish.common.prev=Pr\u00E9c\u00E9dent
+isisfish.common.previous=Pr\u00E9c\u00E9dent
+isisfish.common.region=R\u00E9gion
isisfish.common.remove=Supprimer
isisfish.common.reset=reset
-isisfish.common.rules=R\u00e8gles
+isisfish.common.rules=R\u00E8gles
isisfish.common.save=Sauver
-isisfish.common.saveModel=Sauver comme mod\u00e8le
+isisfish.common.saveModel=Sauver comme mod\u00E8le
isisfish.common.saveNextSimulation=Sauver pour la prochaine simulation
isisfish.common.season=Saison
isisfish.common.setOfVessels=Ensemble de navires
isisfish.common.simulate=Simuler
-isisfish.common.stop=Arr\u00eater
-isisfish.common.strategies=Strat\u00e9gies
+isisfish.common.stop=Arr\u00EAter
+isisfish.common.strategies=Strat\u00E9gies
isisfish.common.sum=somme
isisfish.common.tag=Tag
isisfish.common.tripType=Type de trajet
isisfish.common.value=Valeur
isisfish.common.warn=Warn
-isisfish.common.year=ann\u00e9e
+isisfish.common.year=ann\u00E9e
isisfish.common.zone=Zone
-isisfish.config.main.compileDirectory.description=le r\u00e9pertoire o\u00f9 sont compil\u00e9s les scripts
-isisfish.config.main.configFileName.description=le fichier de configuration \u00e0 utiliser
-isisfish.config.main.defaultBackupDirectory.description=le r\u00e9pertoire o\u00f9 stocker les backups des donn\u00e9es
-isisfish.config.main.defaultExportDirectory.description=le r\u00e9pertoire o\u00f9 exporter les r\u00e9sultats des simulations
-isisfish.config.main.defaultExportNames.description=les noms des exports \u00e0 effectuer apr\u00e8s une simulation
+isisfish.config.main.compileDirectory.description=le r\u00E9pertoire o\u00F9 sont compil\u00E9s les scripts
+isisfish.config.main.configFileName.description=le fichier de configuration \u00E0 utiliser
+isisfish.config.main.defaultBackupDirectory.description=le r\u00E9pertoire o\u00F9 stocker les backups des donn\u00E9es
+isisfish.config.main.defaultExportDirectory.description=le r\u00E9pertoire o\u00F9 exporter les r\u00E9sultats des simulations
+isisfish.config.main.defaultExportNames.description=les noms des exports \u00E0 effectuer apr\u00E8s une simulation
isisfish.config.main.defaultMapFile.description=TODO
-isisfish.config.main.defaultResultNames.description=les noms des r\u00e9sultats \u00e0 traiter apr\u00e8s une simulation
-isisfish.config.main.defaultSimulator.description=le nom du simulateur par d\u00e9faut \u00e0 utiliser lors d'une simulation
+isisfish.config.main.defaultResultNames.description=les noms des r\u00E9sultats \u00E0 traiter apr\u00E8s une simulation
+isisfish.config.main.defaultSimulator.description=le nom du simulateur par d\u00E9faut \u00E0 utiliser lors d'une simulation
isisfish.config.main.defaultTagValue.description=TODO
-isisfish.config.main.encoding.description=l'encoding du syst\u00e8me
+isisfish.config.main.encoding.description=l'encoding du syst\u00E8me
isisfish.config.main.javadocURL.description=l'url de la javadoc des scripts
isisfish.config.main.launchUI.description=
-isisfish.config.main.localSimulator.description=pour indiquer si les simulations sont \u00e0 effectuer localement
+isisfish.config.main.localSimulator.description=pour indiquer si les simulations sont \u00E0 effectuer localement
isisfish.config.main.locale.description=la locale utilisateur
isisfish.config.main.login.description=le login pour se connecter au serveur de simulations distant
isisfish.config.main.password.description=le mot de passe pour se connecter au serveur de simulations distant
isisfish.config.main.projectName.description=le nom du projet
-isisfish.config.main.regionMap.description=le nom du r\u00e9pertoire contenant les maps d'une r\u00e9gion
+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.ssh.datapath.description=
@@ -159,22 +158,22 @@
isisfish.config.main.simulation.ssh.login.description=
isisfish.config.main.simulation.ssh.server.description=
isisfish.config.main.simulationServer.description=l'url du serveur de simulations distant
-isisfish.config.main.simulationShowOnlyError.description=pour indiquer si l'on doit conserver dans l'UI des simulations termin\u00e9es uniquement celles avec erreur
-isisfish.config.main.simulationShowOnlyQueue.description=pour indiquer si l'on doit conserver dans l'UI des simulations termin\u00e9es uniquement celles effectu\u00e9es localement
-isisfish.config.main.smtpServer.description=le nom du serveur smpt \u00e0 utiliser pour envoyer les courriels
-isisfish.config.main.subSimulator.description=pour indiquer si les simulations sont \u00e0 effectuer localement dans un sous process
+isisfish.config.main.simulationShowOnlyError.description=pour indiquer si l'on doit conserver dans l'UI des simulations termin\u00E9es uniquement celles avec erreur
+isisfish.config.main.simulationShowOnlyQueue.description=pour indiquer si l'on doit conserver dans l'UI des simulations termin\u00E9es uniquement celles effectu\u00E9es localement
+isisfish.config.main.smtpServer.description=le nom du serveur smpt \u00E0 utiliser pour envoyer les courriels
+isisfish.config.main.subSimulator.description=pour indiquer si les simulations sont \u00E0 effectuer localement dans un sous process
isisfish.config.main.userMail.description=le courriel de l'utilisateur
-isisfish.config.main.userName.description=le nom - pr\u00e9nom de l'utilisateur
-isisfish.config.vcs.hostName.description=le nom du serveur vcs \u00e0 utiliser
-isisfish.config.vcs.keyFile.description=le chemin complet du fichier de clef priv\u00e9e ssh2 \u00e0 utiliser lors d'une connexion s\u00e9curis\u00e9e
+isisfish.config.main.userName.description=le nom - pr\u00E9nom de l'utilisateur
+isisfish.config.vcs.hostName.description=le nom du serveur vcs \u00E0 utiliser
+isisfish.config.vcs.keyFile.description=le chemin complet du fichier de clef priv\u00E9e ssh2 \u00E0 utiliser lors d'une connexion s\u00E9curis\u00E9e
isisfish.config.vcs.localDatabasePath.description=
-isisfish.config.vcs.noPassPhrase.description=pour indiquer si la clef priv\u00e9e ssh2 utilis\u00e9e pour communiquer avec le serveur vcs contient est prot\u00e9g\u00e9 par une passe-phrase
-isisfish.config.vcs.passphrase.description=la passe-phrase utilis\u00e9e pour prot\u00e9ger la clef priv\u00e9e ssh
-isisfish.config.vcs.remoteDatabase.description=le nom du module de donn\u00e9es sur le serveur vcs
-isisfish.config.vcs.remotePath.description=le chemin jusqu'au parent du module de donn\u00e9es sur le serveur vcs
-isisfish.config.vcs.type.description=le type de communication vcs utilis\u00e9
-isisfish.config.vcs.typeRepo.description=le type de r\u00e9pository vcs utilis\u00e9
-isisfish.config.vcs.useSshConnexion.description=pour indiquer si l'on utilise une connexion s\u00e9curis\u00e9e pour communiquer avec le serveur vcs (ssh2)
+isisfish.config.vcs.noPassPhrase.description=pour indiquer si la clef priv\u00E9e ssh2 utilis\u00E9e pour communiquer avec le serveur vcs contient est prot\u00E9g\u00E9 par une passe-phrase
+isisfish.config.vcs.passphrase.description=la passe-phrase utilis\u00E9e pour prot\u00E9ger la clef priv\u00E9e ssh
+isisfish.config.vcs.remoteDatabase.description=le nom du module de donn\u00E9es sur le serveur vcs
+isisfish.config.vcs.remotePath.description=le chemin jusqu'au parent du module de donn\u00E9es sur le serveur vcs
+isisfish.config.vcs.type.description=le type de communication vcs utilis\u00E9
+isisfish.config.vcs.typeRepo.description=le type de r\u00E9pository vcs utilis\u00E9
+isisfish.config.vcs.useSshConnexion.description=pour indiquer si l'on utilise une connexion s\u00E9curis\u00E9e pour communiquer avec le serveur vcs (ssh2)
isisfish.config.vcs.userName.description=le login de l'utilisateur sur le serveur vcs
isisfish.config.vcs.userPassword.description=
isisfish.dataResult.descriptionLabel=defaultToolTip-fr.ifremer.resultat.DataResult.descriptionLabel
@@ -185,54 +184,54 @@
isisfish.dataResult.scrolledwindow2=defaultToolTip-fr.ifremer.resultat.DataResult.scrolledwindow2
isisfish.dataResult.table2=defaultToolTip-fr.ifremer.resultat.DataResult.table2
isisfish.date.toString=%1$s %2$s
-isisfish.effortDescription.crewFoodCost=Co\u00fbt de l'alimentation pour l'\u00e9quipage
-isisfish.effortDescription.crewShareRate=Taux de partage de l'\u00e9quipage
-isisfish.effortDescription.crewSize=Taille de l'\u00e9quipage
-isisfish.effortDescription.fishingOperation=Op\u00e9ration de p\u00eache
-isisfish.effortDescription.fishingOperationDuration=Dur\u00e9e de la p\u00eache
-isisfish.effortDescription.fixedCrewSalary=Salaire d'\u00e9quipage fixe
-isisfish.effortDescription.gearsNumberPerOperation=Nombre d'engins par op\u00e9ration
+isisfish.effortDescription.crewFoodCost=Co\u00FBt de l'alimentation pour l'\u00E9quipage
+isisfish.effortDescription.crewShareRate=Taux de partage de l'\u00E9quipage
+isisfish.effortDescription.crewSize=Taille de l'\u00E9quipage
+isisfish.effortDescription.fishingOperation=Op\u00E9ration de p\u00EAche
+isisfish.effortDescription.fishingOperationDuration=Dur\u00E9e de la p\u00EAche
+isisfish.effortDescription.fixedCrewSalary=Salaire d'\u00E9quipage fixe
+isisfish.effortDescription.gearsNumberPerOperation=Nombre d'engins par op\u00E9ration
isisfish.effortDescription.landingCosts=landingCosts
-isisfish.effortDescription.otherRunningCost=Autres co\u00fbts
+isisfish.effortDescription.otherRunningCost=Autres co\u00FBts
isisfish.effortDescription.repairAndMaintenanceGearCost=repairAndMaintenanceGearCost
isisfish.effortDescription.title=inputEffortDescription
isisfish.effortDescription.toString=EffortDescription for %1$s with %2$s
-isisfish.effortDescription.unitCostOfFishing=Co\u00fbt unitaire de la p\u00eache
-isisfish.equation.editor.title=Editeur d'\u00e9quation
+isisfish.effortDescription.unitCostOfFishing=Co\u00FBt unitaire de la p\u00EAche
+isisfish.equation.editor.title=Editeur d'\u00E9quation
isisfish.error.acceptable.population=New value isn't acceptable value for this population
-isisfish.error.add.card=Erreur lors de l'ajout du r\u00e9sultat \u00e0 la carte.
+isisfish.error.add.card=Erreur lors de l'ajout du r\u00E9sultat \u00E0 la carte.
isisfish.error.add.logger.simulation\ =isisfish.error.add.logger.simulation
-isisfish.error.add.result.data=Erreur lors de l'ajout du r\u00e9sultat au data.
-isisfish.error.add.result.graph=Erreur lors de l'ajout du r\u00e9sultat au graph.
+isisfish.error.add.result.data=Erreur lors de l'ajout du r\u00E9sultat au data.
+isisfish.error.add.result.graph=Erreur lors de l'ajout du r\u00E9sultat au graph.
isisfish.error.add.tray=Impossible d'ajouter une icone de notification
isisfish.error.change.classloader=Can't change classloader because can't create URL from file %1$s
isisfish.error.change.equation=Can't change equation
isisfish.error.check.region=
isisfish.error.compile.script=Can't compile script\: %1$s
isisfish.error.compiled.parameter=Can't get rule parameter from compiled class
-isisfish.error.conversion.data=Erreur lors de la conversion du fichier de donn\u00e9es
+isisfish.error.conversion.data=Erreur lors de la conversion du fichier de donn\u00E9es
isisfish.error.create.equation=Can't create equation
isisfish.error.delete.database=Can't delete database
isisfish.error.delete.file=could not delete file %1$s
isisfish.error.delete.vcs.files=Can't delete vcs files
-isisfish.error.dialog.message=Une erreur a \u00e9t\u00e9 d\u00e9tect\u00e9e
+isisfish.error.dialog.message=Une erreur a \u00E9t\u00E9 d\u00E9tect\u00E9e
isisfish.error.dialog.title=Erreur
isisfish.error.during.simulation=Error during simulation
isisfish.error.emigration.negative=emigration negative
isisfish.error.empty.code.rubbin=le code rubbin est vide
isisfish.error.empty.emigration=emigration vide
-isisfish.error.empty.id.geographic=l'identifiant g\u00e9ographique est vide
+isisfish.error.empty.id.geographic=l'identifiant g\u00E9ographique est vide
isisfish.error.empty.immigration=immigration vide
isisfish.error.empty.migration=Migration vide
isisfish.error.empty.name=le nom est vide
-isisfish.error.empty.params.name=le nom du param\u00e8tre est vide
+isisfish.error.empty.params.name=le nom du param\u00E8tre est vide
isisfish.error.empty.population=Population est vide
isisfish.error.empty.scientific.name=le nom scientifique est vide
isisfish.error.empty.season=info saison vide
-isisfish.error.empty.selectivity=s\u00e9lectivit\u00e9 est vide
+isisfish.error.empty.selectivity=s\u00E9lectivit\u00E9 est vide
isisfish.error.empty.species=espece capturable vide
isisfish.error.empty.species.name=le nom d'espece est vide
-isisfish.error.empty.unit=l'unit\u00e9 de mesure est vide
+isisfish.error.empty.unit=l'unit\u00E9 de mesure est vide
isisfish.error.emty.emigration=emigration vide
isisfish.error.emty.migration=Migration vide
isisfish.error.equation.retun.number=EquationImpl must retun a number\: %1$s
@@ -244,22 +243,22 @@
isisfish.error.immigration.negative=immigration negative
isisfish.error.import.convertible=Erreur lors de l'import, la version du fichier que vous souhaitez importer n'est pas transformable en une version importable.
isisfish.error.import.file=Can't import file %1$s
-isisfish.error.import.recent.files=Erreur lors de l'import, la version du fichier que vous souhaitez importer est plus r\u00e9cente que la version souhait\u00e9e.
+isisfish.error.import.recent.files=Erreur lors de l'import, la version du fichier que vous souhaitez importer est plus r\u00E9cente que la version souhait\u00E9e.
isisfish.error.init.map=Can't init map.
isisfish.error.init.remove.button=could not init remove button (button or list is null) button \: %1$s, list \: %2$s
isisfish.error.instanciate=Can't instanciate %1$s
isisfish.error.instanciate.export=Can't instanciate export %1$s
-isisfish.error.invalid.costs.fix=les co\u00fbts fixes sont invalides
+isisfish.error.invalid.costs.fix=les co\u00FBts fixes sont invalides
isisfish.error.invalid.distribution.recruitment=distribution de recrutement invalide
isisfish.error.invalid.equation=Equation invalide
-isisfish.error.invalid.equation.name=Nom d'\u00e9quation invalide
+isisfish.error.invalid.equation.name=Nom d'\u00E9quation invalide
isisfish.error.invalid.file.name=Le nom du script %1$s n'est pas valide.
isisfish.error.invalid.interval.reproduction.recruitment=interval entre la reproduction et le recrutement invalide
isisfish.error.invalid.mean.weight=poids moyen invalide
-isisfish.error.invalid.natural.death=mortalit\u00e9 naturelle sur les classes naissantes invalide
+isisfish.error.invalid.natural.death=mortalit\u00E9 naturelle sur les classes naissantes invalide
isisfish.error.invalid.number=le nombre est invalide
isisfish.error.invalid.range=La gamme possible n'a pas de valeur acceptable
-isisfish.error.invalid.values.params=Param\u00e8tre controlable hors valeurs possibles
+isisfish.error.invalid.values.params=Param\u00E8tre controlable hors valeurs possibles
isisfish.error.invalidate.natural.death=mortalite naturelle invalide
isisfish.error.invoke.method=Can't invoke method '%1$s' for class %2$s
isisfish.error.load.class=Can't load class\: %1$s
@@ -270,11 +269,11 @@
isisfish.error.log.console.dispose=Une erreur est survenue pendant la fermeture de la console %1$s de log, raison %2$s
isisfish.error.log.createAppender=n'a pas pu creer l'appender [%1$s] \: %2$s pour la raison %3$s
isisfish.error.log.foundAppender=n'a pas trouve l'appender %1$s pour la categorie %2$s
-isisfish.error.matrix.more.2d=Matrice de plus de 2 dimensions\!\!\nS\u00e9lectionnez moins d'\u00e9l\u00e9ments ou utilisez l'op\u00e9rateur somme.
+isisfish.error.matrix.more.2d=Matrice de plus de 2 dimensions\!\!\nS\u00E9lectionnez moins d'\u00E9l\u00E9ments ou utilisez l'op\u00E9rateur somme.
isisfish.error.migration.negative=Migration negative
isisfish.error.no.matrix=No matrix for\:
isisfish.error.no.null.time.step=Error, the time step should not be null
-isisfish.error.no.sector=il n'y a pas de secteur de d\u00e9finit
+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
@@ -285,7 +284,7 @@
isisfish.error.not.null.class.grown=classe mature vaut nul
isisfish.error.not.null.mean.weight=poids moyen nul
isisfish.error.not.null.natiral.death=mortalite naturelle nulle
-isisfish.error.not.possible.metier=Pas de m\u00e9tier possible
+isisfish.error.not.possible.metier=Pas de m\u00E9tier possible
isisfish.error.not.support.class=La classe %s ne supporte pas les descritions
isisfish.error.number.classes.upper.zero=Error, the number of classes must be upper than 0
isisfish.error.obtain.analyseplan=Can't obtain description of AnalysePlan
@@ -302,9 +301,9 @@
isisfish.error.prepare.data=Can't prepare data
isisfish.error.prepare.information.simulation=Can't prepare information for simulation
isisfish.error.read.simulation=Can't read simulation information %1$s
-isisfish.error.read.simulation.parameters=Impossible de lire les param\u00eatres du fichier \: %1$s
-isisfish.error.region.already.exists=Cette r\u00e9gion existe d\u00e9j\u00e0
-isisfish.error.region.name.empty=Le nom de la R\u00e9gion est vide
+isisfish.error.read.simulation.parameters=Impossible de lire les param\u00EAtres du fichier \: %1$s
+isisfish.error.region.already.exists=Cette r\u00E9gion existe d\u00E9j\u00E0
+isisfish.error.region.name.empty=Le nom de la R\u00E9gion est vide
isisfish.error.remove.directory=Can't remove directory %1$s
isisfish.error.rename.region=Can't rename region to %1$s
isisfish.error.save.checkSum.compilation=Can't save checkSum to compilation\: %1$s
@@ -324,28 +323,28 @@
isisfish.error.simulation.resultXml.write=Can't write simulation result XML for reason %1$s
isisfish.error.source.parameter=Can't get parameter from source
isisfish.error.strategy.order=Strategy %1$s don't have 12 StrategyMonthInfo but %2$s. Recreate them
-isisfish.error.undefined.classes=pas de classes d\u00e9finies
+isisfish.error.undefined.classes=pas de classes d\u00E9finies
isisfish.error.undefined.correspondence.zones.reproduction.recruitment=pas de correspondance entre les zones de reproduction et les zones de recrutement
-isisfish.error.undefined.gear=l'engin n'est pas d\u00e9fini
-isisfish.error.undefined.mesh=aucune maille de d\u00e9fini
+isisfish.error.undefined.gear=l'engin n'est pas d\u00E9fini
+isisfish.error.undefined.mesh=aucune maille de d\u00E9fini
isisfish.error.undefined.mesh.sector=aucune maille dans le secteur
-isisfish.error.undefined.meta.population=aucune meta population de d\u00e9fini
-isisfish.error.undefined.natural.death=pas de mortalit\u00e9 naturelle sur les classes naissantes
-isisfish.error.undefined.sector=aucun secteur de d\u00e9fini
-isisfish.error.undefined.stategy=aucune strat\u00e9gie de d\u00e9fini
-isisfish.error.undefined.stategy.months=La strat\u00e9gie n'est pas d\u00e9finie pour certain mois
-isisfish.error.undefined.zone.population=il n'y a pas de zone de population de d\u00e9finit
-isisfish.error.undefined.zone.recruitment=il n'y a pas de zone de recrutement de d\u00e9finit
-isisfish.error.undefined.zone.reproduction=il n'y a pas de zone de reproduction de d\u00e9finit
+isisfish.error.undefined.meta.population=aucune meta population de d\u00E9fini
+isisfish.error.undefined.natural.death=pas de mortalit\u00E9 naturelle sur les classes naissantes
+isisfish.error.undefined.sector=aucun secteur de d\u00E9fini
+isisfish.error.undefined.stategy=aucune strat\u00E9gie de d\u00E9fini
+isisfish.error.undefined.stategy.months=La strat\u00E9gie n'est pas d\u00E9finie pour certain mois
+isisfish.error.undefined.zone.population=il n'y a pas de zone de population de d\u00E9finit
+isisfish.error.undefined.zone.recruitment=il n'y a pas de zone de recrutement de d\u00E9finit
+isisfish.error.undefined.zone.reproduction=il n'y a pas de zone de reproduction de d\u00E9finit
isisfish.error.unsupported.equation.langage=unsupported langage '%1$s' for equation\: %2$s
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.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
+isisfish.export.saved=Exports des r\u00E9sultats sauvegard\u00E9s
+isisfish.export.title=Export des r\u00E9sultats
isisfish.filter=Filtrer
isisfish.filter.apply=Appliquer le filtre
isisfish.filter.cancel=Annuler
@@ -355,37 +354,37 @@
isisfish.filter.log.levelInfo=info
isisfish.filter.log.levelTrace=trace
isisfish.filter.log.levelWarn=warning
-isisfish.filter.log.tooltip.levelDebug=s\u00e9lectionner pour filtrer ce niveau
-isisfish.filter.log.tooltip.levelError=s\u00e9lectionner pour filtrer ce niveau
-isisfish.filter.log.tooltip.levelFatal=s\u00e9lectionner pour filtrer ce niveau
-isisfish.filter.log.tooltip.levelInfo=s\u00e9lectionner pour filtrer ce niveau
-isisfish.filter.log.tooltip.levelTrace=s\u00e9lectionner pour filtrer ce niveau
-isisfish.filter.log.tooltip.levelWarn=s\u00e9lectionner pour filtrer ce niveau
-isisfish.filter.log.tooltip.message=Entrer un terme \u00e0 rechercher et appuyer sur Entr\u00e9e
-isisfish.filter.reset=R\u00e9initialiser
-isisfish.filter.result=R\u00e9sultats
-isisfish.filter.result.found=R\u00e9sultats (%d/%d)
-isisfish.filter.select=S\u00e9lectionner
-isisfish.filter.select.simulation=S\u00e9lectionner une simulation
+isisfish.filter.log.tooltip.levelDebug=s\u00E9lectionner pour filtrer ce niveau
+isisfish.filter.log.tooltip.levelError=s\u00E9lectionner pour filtrer ce niveau
+isisfish.filter.log.tooltip.levelFatal=s\u00E9lectionner pour filtrer ce niveau
+isisfish.filter.log.tooltip.levelInfo=s\u00E9lectionner pour filtrer ce niveau
+isisfish.filter.log.tooltip.levelTrace=s\u00E9lectionner pour filtrer ce niveau
+isisfish.filter.log.tooltip.levelWarn=s\u00E9lectionner pour filtrer ce niveau
+isisfish.filter.log.tooltip.message=Entrer un terme \u00E0 rechercher et appuyer sur Entr\u00E9e
+isisfish.filter.reset=R\u00E9initialiser
+isisfish.filter.result=R\u00E9sultats
+isisfish.filter.result.found=R\u00E9sultats (%d/%d)
+isisfish.filter.select=S\u00E9lectionner
+isisfish.filter.select.simulation=S\u00E9lectionner une simulation
isisfish.filter.simulation=Filtrer les simulations
-isisfish.filter.simulation.analysePlanNumber=num\u00e9ro d'analyse
+isisfish.filter.simulation.analysePlanNumber=num\u00E9ro d'analyse
isisfish.filter.simulation.description=description
isisfish.filter.simulation.local=locale
-isisfish.filter.simulation.numberOfYear=nombre d'ann\u00e9e(s)
-isisfish.filter.simulation.regionName=nom de r\u00e9gion
+isisfish.filter.simulation.numberOfYear=nombre d'ann\u00E9e(s)
+isisfish.filter.simulation.regionName=nom de r\u00E9gion
isisfish.filter.simulation.simulationEnd=date de fin (dd/MM/yyyy)
isisfish.filter.simulation.simulationName=nom de simulation
-isisfish.filter.simulation.simulationStart=date de d\u00e9but (dd/MM/yyyy)
+isisfish.filter.simulation.simulationStart=date de d\u00E9but (dd/MM/yyyy)
isisfish.filter.simulation.simulatorName=nom du simulateur
-isisfish.filter.simulation.tooltip.analysePlanNumber=filter sur le num\u00e9ro d'analyse (uniquement pour les simulations avec plan d'analyse)
+isisfish.filter.simulation.tooltip.analysePlanNumber=filter sur le num\u00E9ro d'analyse (uniquement pour les simulations avec plan d'analyse)
isisfish.filter.simulation.tooltip.description=filtrer sur la description (format regex)
isisfish.filter.simulation.tooltip.local=filter uniquement les simulations locales
-isisfish.filter.simulation.tooltip.numberOfYear=filter sur le nombre d'ann\u00e9e(s) (recherche extacte)
-isisfish.filter.simulation.tooltip.regionName=filtrer sur le nom de la r\u00e9gion (format regex)
+isisfish.filter.simulation.tooltip.numberOfYear=filter sur le nombre d'ann\u00E9e(s) (recherche extacte)
+isisfish.filter.simulation.tooltip.regionName=filtrer sur le nom de la r\u00E9gion (format regex)
isisfish.filter.simulation.tooltip.simulationEnd=filtrer sur la date de fin de simulation (format dd/MM/yyyy)
isisfish.filter.simulation.tooltip.simulationName=filtrer sur le nom de simulation (format regex)
-isisfish.filter.simulation.tooltip.simulationStart=filtrer sur la date de d\u00e9but de simulation (format dd/MM/yyyy)
-isisfish.filter.simulation.tooltip.simulatorName=filter sur le nom du simulateur utilis\u00e9 (format regex)
+isisfish.filter.simulation.tooltip.simulationStart=filtrer sur la date de d\u00E9but de simulation (format dd/MM/yyyy)
+isisfish.filter.simulation.tooltip.simulatorName=filter sur le nom du simulateur utilis\u00E9 (format regex)
isisfish.filter.simulation.tooltip.useAnalysePlan=filter uniquement les simulations avec plan d'analyse
isisfish.filter.simulation.tooltip.useOptimization=filter uniquement les simulations avec optimisation
isisfish.filter.simulation.tooltip.usePreScript=filter uniquement les simulations avec Prescript
@@ -395,7 +394,7 @@
isisfish.filter.simulation.usePreScript=prescript
isisfish.filter.simulation.useStatistic=statistiques
isisfish.fisheryRegion.addMap=Ajouter une carte
-isisfish.fisheryRegion.area=Extr\u00e9mit\u00e9s de la zone de p\u00eache
+isisfish.fisheryRegion.area=Extr\u00E9mit\u00E9s de la zone de p\u00EAche
isisfish.fisheryRegion.comments=Commentaires
isisfish.fisheryRegion.delMap=Supprimer la carte
isisfish.fisheryRegion.latitude=Lat.
@@ -404,12 +403,12 @@
isisfish.fisheryRegion.longitude=Long.
isisfish.fisheryRegion.longitude.max=Long. max.
isisfish.fisheryRegion.longitude.min=Long. min.
-isisfish.fisheryRegion.name=Nom de la r\u00e9gion
+isisfish.fisheryRegion.name=Nom de la r\u00E9gion
isisfish.fisheryRegion.ofCells=de mailles (option)
-isisfish.fisheryRegion.selectFile=S\u00e9lectionnez un fichier
-isisfish.fisheryRegion.spatial=R\u00e9solution spatiale
+isisfish.fisheryRegion.selectFile=S\u00E9lectionnez un fichier
+isisfish.fisheryRegion.spatial=R\u00E9solution spatiale
isisfish.gear.comments=Commentaires
-isisfish.gear.effortUnit=Unit\u00e9 d'effort
+isisfish.gear.effortUnit=Unit\u00E9 d'effort
isisfish.gear.name=Nom
isisfish.gear.rangeValues=Range of values
isisfish.gear.standardisationFactor=Facteur de standardisation
@@ -437,48 +436,48 @@
isisfish.infoItem.list=defaultToolTip-fr.ifremer.resultat.InfoItem.list
isisfish.infoItem.scrolledwindow=defaultToolTip-fr.ifremer.resultat.InfoItem.scrolledwindow1
isisfish.infoItem.sum=defaultToolTip-fr.ifremer.resultat.InfoItemDate.sumButton
-isisfish.infoItem.sum.year=Somme de \u00e9l\u00e9ment par ann\u00e9e
+isisfish.infoItem.sum.year=Somme de \u00E9l\u00E9ment par ann\u00E9e
isisfish.infoItem.table=defaultToolTip-fr.ifremer.resultat.InfoItem.table30
isisfish.input.continuePorts=Continuer vers les ports
isisfish.input.continueZones=Continuer vers les zones
-isisfish.input.menu.addRegion=Ajouter une r\u00e9gion
+isisfish.input.menu.addRegion=Ajouter une r\u00E9gion
isisfish.input.menu.commit=Sauvegarder les changements
-isisfish.input.menu.copyRegion=Copier r\u00e9gion
-isisfish.input.menu.exportRegion=Exporter la r\u00e9gion
-isisfish.input.menu.importRegion=Importer une r\u00e9gion
-isisfish.input.menu.importRegionSimulation=Importer la r\u00e9gion d'une simulation
-isisfish.input.menu.importRegionV2=Importer une r\u00e9gion de la v2 d'IsisFish
-isisfish.input.menu.importRenameRegion=Importer une r\u00e9gion et la renommer
+isisfish.input.menu.copyRegion=Copier r\u00E9gion
+isisfish.input.menu.exportRegion=Exporter la r\u00E9gion
+isisfish.input.menu.importRegion=Importer une r\u00E9gion
+isisfish.input.menu.importRegionSimulation=Importer la r\u00E9gion d'une simulation
+isisfish.input.menu.importRegionV2=Importer une r\u00E9gion de la v2 d'IsisFish
+isisfish.input.menu.importRenameRegion=Importer une r\u00E9gion et la renommer
isisfish.input.menu.removeLocaly=Supprimer localement
-isisfish.input.menu.removeLocalyRemotely=Supprimer localement et \u00e0 distance
+isisfish.input.menu.removeLocalyRemotely=Supprimer localement et \u00E0 distance
isisfish.input.menu.server=Serveur
-isisfish.input.newRegion=Nouvelle r\u00e9gion
-isisfish.input.selectNodeTree=S\u00e9lectionnez un noeud de l'arbre
-isisfish.input.title=Saisie de la p\u00eacherie
+isisfish.input.newRegion=Nouvelle r\u00E9gion
+isisfish.input.selectNodeTree=S\u00E9lectionnez un noeud de l'arbre
+isisfish.input.title=Saisie de la p\u00EAcherie
isisfish.launch.anonymous=lecture seule
isisfish.launch.debugMode=debug mode
isisfish.launch.email=courriel
isisfish.launch.firstname=nom
isisfish.launch.init.done=init done in %1$s.
-isisfish.launch.lasstname=pr\u00e9nom
-isisfish.launch.server.authenticationMethod=droit d'acc\u00e8s au serveur
+isisfish.launch.lasstname=pr\u00E9nom
+isisfish.launch.server.authenticationMethod=droit d'acc\u00E8s au serveur
isisfish.launch.server.login=nom utilisateur
isisfish.launch.server.ssh.confirm.passphrase=confirmer la passphrase
isisfish.launch.server.ssh.key.change=Changer la clef ssh
-isisfish.launch.server.ssh.key.generate=G\u00e9n\u00e9rer la clef ssh
+isisfish.launch.server.ssh.key.generate=G\u00E9n\u00E9rer la clef ssh
isisfish.launch.server.ssh.no.passphrase=pas de passphrase
isisfish.launch.server.ssh.passphrase=passphrase
-isisfish.launch.server.ssh.privateKeyFile=clef priv\u00e9e ssh
+isisfish.launch.server.ssh.privateKeyFile=clef priv\u00E9e ssh
isisfish.launch.server.ssh.publicKeyFile=clef publique ssh
-isisfish.launch.ssh=lecture-\u00e9criture (ssh)
+isisfish.launch.ssh=lecture-\u00E9criture (ssh)
isisfish.launch.start=Lancement Isis-fish... %1$s
isisfish.launch.stop=Stopping simulation...
isisfish.launching=after init done in %1$s.
isisfish.log.addAppender=ajoute un appender [%1$s]
-isisfish.log.body=Message \u00e0 joindre
+isisfish.log.body=Message \u00E0 joindre
isisfish.log.closeAppender=ferme l'appender [%1$s] pour la categorie %2$s
isisfish.log.mail.failed=Impossible d'envoyer le rapport par courriel. Le serveur smtp fonctionne ? (J'essaye de contacter < %1$s > smtp server)
-isisfish.log.mail.send=Un rapport a \u00e9t\u00e9 envoy\u00e9 \u00e0 %1$s
+isisfish.log.mail.send=Un rapport a \u00E9t\u00E9 envoy\u00E9 \u00E0 %1$s
isisfish.log.mail.send.title=Send simulation %1$s by email
isisfish.log.mailTo=Adresse du destinataire
isisfish.log.removeAppender=supprime l'appender [%1$s]
@@ -487,101 +486,101 @@
isisfish.log.sendMail=Envoyer par email
isisfish.log.simulation.name=IsisFish simulation %1$s
isisfish.log.swapLogLevel=permute le niveau du logger %1$s du niveau %2$s au niveau %3$s
-isisfish.log.tooltip.body=Le message saisi sera joint au courriel envoy\u00e9
+isisfish.log.tooltip.body=Le message saisi sera joint au courriel envoy\u00E9
isisfish.log.tooltip.mailTo=Entrer l'adresse du destinataire du courriel
isisfish.log.tooltip.sendAll=Envoyer toute la simulation, ou uniquement le fichier de log
isisfish.log.tooltip.sendMail=Cliquer pour envoyer le courriel contentant les fichiers
-isisfish.message.add.objets.simulation=Ajout des nouveaux objets cr\u00e9\u00e9s durant la simulation
+isisfish.message.add.objets.simulation=Ajout des nouveaux objets cr\u00E9\u00E9s durant la simulation
isisfish.message.backup.database.finished=backup database finished
isisfish.message.backup.database.progress=backup database in progress
isisfish.message.cancel.finished=Cancel finished
-isisfish.message.check.finished=v\u00e9rification termin\u00e9e
+isisfish.message.check.finished=v\u00E9rification termin\u00E9e
isisfish.message.check.region=
isisfish.message.checking.cell=
isisfish.message.choose.archive=choose archive file or directory
isisfish.message.commit=
-isisfish.message.commit.cancelled=commit annul\u00e9
-isisfish.message.commit.finished=commit termin\u00e9
-isisfish.message.commit.region.canceled=Commit de la r\u00e9gion annul\u00e9
-isisfish.message.commiting.region=En train de commiter la r\u00e9gion %1$s ...
+isisfish.message.commit.cancelled=commit annul\u00E9
+isisfish.message.commit.finished=commit termin\u00E9
+isisfish.message.commit.region.canceled=Commit de la r\u00E9gion annul\u00E9
+isisfish.message.commiting.region=En train de commiter la r\u00E9gion %1$s ...
isisfish.message.compilation.time=Temps de compilation %1$ss
isisfish.message.confirm.delete.object=Voulez-vous vraiment supprimer l'objet %1$s
-isisfish.message.confirm.remove.region=Voulez-vous vraiement supprimer la r\u00e9gion %1$s ?
+isisfish.message.confirm.remove.region=Voulez-vous vraiement supprimer la r\u00E9gion %1$s ?
isisfish.message.confirm.remove.script=Voulez-vous vraiment supprimer le script '%1$s' ?
-isisfish.message.copy.finished=Copie termin\u00e9e
-isisfish.message.copy.region=Copier la r\u00e9gion vers %1$s
-isisfish.message.creating.region=En train de cr\u00e9er la r\u00e9gion %1$s
-isisfish.message.creation.done=cr\u00e9ation termin\u00e9e %1$s
-isisfish.message.creation.finished=Cr\u00e9ation termin\u00e9e
-isisfish.message.delete.canceled=supression annul\u00e9e
-isisfish.message.delete.entities=Supprimer les entit\u00e9s
-isisfish.message.delete.entity=Supprimer l'entit\u00e9
-isisfish.message.delete.finished=Suppression termin\u00e9e
-isisfish.message.delete.object=Pour supprimer l'objet %1$s, tous les objets suivants seront aussi supprim\u00e9s \n\n
-isisfish.message.evaluation.finished=\u00e9valuation termin\u00e9e
-isisfish.message.export.done=Export termin\u00e9
+isisfish.message.copy.finished=Copie termin\u00E9e
+isisfish.message.copy.region=Copier la r\u00E9gion vers %1$s
+isisfish.message.creating.region=En train de cr\u00E9er la r\u00E9gion %1$s
+isisfish.message.creation.done=cr\u00E9ation termin\u00E9e %1$s
+isisfish.message.creation.finished=Cr\u00E9ation termin\u00E9e
+isisfish.message.delete.canceled=supression annul\u00E9e
+isisfish.message.delete.entities=Supprimer les entit\u00E9s
+isisfish.message.delete.entity=Supprimer l'entit\u00E9
+isisfish.message.delete.finished=Suppression termin\u00E9e
+isisfish.message.delete.object=Pour supprimer l'objet %1$s, tous les objets suivants seront aussi supprim\u00E9s \n\n
+isisfish.message.evaluation.finished=\u00E9valuation termin\u00E9e
+isisfish.message.export.done=Export termin\u00E9
isisfish.message.export.zip=Exporter dans le fichier zip %1$s
-isisfish.message.file.overwrite=Le fichier existe, Voulez-vous l'\u00e9craser ?
+isisfish.message.file.overwrite=Le fichier existe, Voulez-vous l'\u00E9craser ?
isisfish.message.import=Importer %1$s
-isisfish.message.import.equation.convert=Conversion manuelle de l'\u00e9quation
-isisfish.message.import.finished=Import termin\u00e9
-isisfish.message.import.region.name=Entre le nom de la r\u00e9egion \u00e0 importer
-isisfish.message.import.region.xml=R\u00e9gion XML (Isis-Fish V2.x)
+isisfish.message.import.equation.convert=Conversion manuelle de l'\u00E9quation
+isisfish.message.import.finished=Import termin\u00E9
+isisfish.message.import.region.name=Entre le nom de la r\u00E9egion \u00E0 importer
+isisfish.message.import.region.xml=R\u00E9gion XML (Isis-Fish V2.x)
isisfish.message.import.region.zipped=Zipped Region
-isisfish.message.import.scripts.file.cancelled=Importation des scripts annul\u00e9
+isisfish.message.import.scripts.file.cancelled=Importation des scripts annul\u00E9
isisfish.message.import.xml.v2.file=Import xml v2 file
isisfish.message.import.zip=Import zip file
isisfish.message.launchui.notlaunch=
-isisfish.message.load.finished=Chargement termin\u00e9
+isisfish.message.load.finished=Chargement termin\u00E9
isisfish.message.load.map=Chargement de la carte \: %1$s (%2$s, %3$s)
isisfish.message.loading.old.simulation=Chargement d'une ancienne simulation ...
-isisfish.message.loading.region=Chargement de la r\u00e9gion
-isisfish.message.name.imported.region=Entrez le nom de la r\u00e9gion \u00e0 importer
-isisfish.message.new.filename=Entrer le nom du nouveau du fichier.\n\t (utiliser uniquemment des caract\u00e8res et _ en commencant avec une majuscule)
-isisfish.message.new.region.name=Entrer le nom de la nouvell r\u00e9gion
-isisfish.message.old.simulation.loaded=Ancienne simulation charg\u00e9e
-isisfish.message.page.modified=Cette page a \u00e9t\u00e9 modifi\u00e9, voulez-vous la sauvegarder ?
-isisfish.message.presimulation.script.execution=Ex\u00e9cution des scripts de Presimulation
+isisfish.message.loading.region=Chargement de la r\u00E9gion
+isisfish.message.name.imported.region=Entrez le nom de la r\u00E9gion \u00E0 importer
+isisfish.message.new.filename=Entrer le nom du nouveau du fichier.\n\t (utiliser uniquemment des caract\u00E8res et _ en commencant avec une majuscule)
+isisfish.message.new.region.name=Entrer le nom de la nouvell r\u00E9gion
+isisfish.message.old.simulation.loaded=Ancienne simulation charg\u00E9e
+isisfish.message.page.modified=Cette page a \u00E9t\u00E9 modifi\u00E9, voulez-vous la sauvegarder ?
+isisfish.message.presimulation.script.execution=Ex\u00E9cution des scripts de Presimulation
isisfish.message.recruitment.number.month=Input the number of month of recruitment
-isisfish.message.region.commited=R\u00e9gion commit\u00e9e
-isisfish.message.region.loaded=R\u00e9gion charg\u00e9e
-isisfish.message.region.remove.canceled=Suppression de r\u00e9gion annul\u00e9
-isisfish.message.region.removed=R\u00e9gion supprim\u00e9e
-isisfish.message.remove.canceled=Suppression annul\u00e9e
-isisfish.message.remove.finished=Suppresison termin\u00e9
+isisfish.message.region.commited=R\u00E9gion commit\u00E9e
+isisfish.message.region.loaded=R\u00E9gion charg\u00E9e
+isisfish.message.region.remove.canceled=Suppression de r\u00E9gion annul\u00E9
+isisfish.message.region.removed=R\u00E9gion supprim\u00E9e
+isisfish.message.remove.canceled=Suppression annul\u00E9e
+isisfish.message.remove.finished=Suppresison termin\u00E9
isisfish.message.remove.unnecessary.cells=
-isisfish.message.removing.region=Suppression de lar\u00e9gion %1$s ...
-isisfish.message.result.verif.region=R\u00e9sultat de la v\u00e9rification de la r\u00e9gion
-isisfish.message.save.finished=Sauvegarde termin\u00e9e
-isisfish.message.saveModel.finished=Sauvegarde du mod\u00e8le termin\u00e9e
+isisfish.message.removing.region=Suppression de lar\u00E9gion %1$s ...
+isisfish.message.result.verif.region=R\u00E9sultat de la v\u00E9rification de la r\u00E9gion
+isisfish.message.save.finished=Sauvegarde termin\u00E9e
+isisfish.message.saveModel.finished=Sauvegarde du mod\u00E8le termin\u00E9e
isisfish.message.setting.cache.aspects=Mise en place des aspects Cache
isisfish.message.setting.trace.aspects=Mise en place des aspects Trace
-isisfish.message.simulation.ended=Simulation termin\u00e9e
+isisfish.message.simulation.ended=Simulation termin\u00E9e
isisfish.message.simulation.execution=Simulation execution
-isisfish.message.simulation.prepare=Pr\u00e9paration de la simulation
-isisfish.message.tray.disabled=Icone de notification d\u00e9sactiv\u00e9e
-isisfish.message.update.finished=Mise \u00e0 jour termin\u00e9e
+isisfish.message.simulation.prepare=Pr\u00E9paration de la simulation
+isisfish.message.tray.disabled=Icone de notification d\u00E9sactiv\u00E9e
+isisfish.message.update.finished=Mise \u00E0 jour termin\u00E9e
isisfish.metier.comments=Commentaires
isisfish.metier.name=Nom
isisfish.metier.rangeValues=Range of values
-isisfish.metier.title=M\u00e9tier
-isisfish.metierMonitor.metiers=M\u00e9tiers
-isisfish.metierMonitor.strategies=Strat\u00e9gies
+isisfish.metier.title=M\u00E9tier
+isisfish.metierMonitor.metiers=M\u00E9tiers
+isisfish.metierMonitor.strategies=Strat\u00E9gies
isisfish.metierSeasonInfo.toString=%1$s saison %2$s-%3$s
-isisfish.metierSeasonInfoSpecies.mainSpecies=Esp\u00e8ces principales pour le m\u00e9tier
-isisfish.metierSeasonInfoSpecies.selectSeason=S\u00e9lectionnez une saison
-isisfish.metierSeasonInfoSpecies.selectSpecies=Choix de l'esp\u00e8ce
+isisfish.metierSeasonInfoSpecies.mainSpecies=Esp\u00E8ces principales pour le m\u00E9tier
+isisfish.metierSeasonInfoSpecies.selectSeason=S\u00E9lectionnez une saison
+isisfish.metierSeasonInfoSpecies.selectSpecies=Choix de l'esp\u00E8ce
isisfish.metierSeasonInfoSpecies.targetFactor=Facteur cible
-isisfish.metierSeasonInfoSpecies.title=Esp\u00e8ces capturables
+isisfish.metierSeasonInfoSpecies.title=Esp\u00E8ces capturables
isisfish.metierSeasonInfoZone.comments=Commentaires
isisfish.metierSeasonInfoZone.season=Saison
-isisfish.metierSeasonInfoZone.selectSeason=S\u00e9lectionnez une saison
+isisfish.metierSeasonInfoZone.selectSeason=S\u00E9lectionnez une saison
isisfish.metierSeasonInfoZone.title=Saison / Zones
isisfish.monitor.title=Application Monitor
isisfish.month.april=avril
-isisfish.month.august=ao\u00fbt
-isisfish.month.december=d\u00e9cembre
-isisfish.month.february=f\u00e9vrier
+isisfish.month.august=ao\u00FBt
+isisfish.month.december=d\u00E9cembre
+isisfish.month.february=f\u00E9vrier
isisfish.month.january=janvier
isisfish.month.july=juillet
isisfish.month.june=juin
@@ -596,15 +595,15 @@
isisfish.params.filter=Filtrer
isisfish.params.lblLauncher=Lanceur de simulation
isisfish.params.loadOldSimulation=Charger une ancienne simulation
-isisfish.params.numberYear=Nombre d'ann\u00e9es
+isisfish.params.numberYear=Nombre d'ann\u00E9es
isisfish.params.onlyExportSimulation=Exporter uniquement des simulations
-isisfish.params.populationNumbers=Donn\u00e9es de population
-isisfish.params.ruleParameters=Param\u00e8tres des r\u00e8gles
+isisfish.params.populationNumbers=Donn\u00E9es de population
+isisfish.params.ruleParameters=Param\u00E8tres des r\u00E8gles
isisfish.params.simulationName=Nom de la simulation
-isisfish.params.title=Param\u00e8tres
-isisfish.params.toString.fishery=P\u00eacherie\: %1$s\n\n
+isisfish.params.title=Param\u00E8tres
+isisfish.params.toString.fishery=P\u00EAcherie\: %1$s\n\n
isisfish.params.toString.lib.logger.level=niveau du logger de librairies %1$s
-isisfish.params.toString.number.years=Nombre d'ann\u00e9\u00e9s \: %1$s\n\n
+isisfish.params.toString.number.years=Nombre d'ann\u00E9\u00E9s \: %1$s\n\n
isisfish.params.toString.plan=Plan\: %1$s
isisfish.params.toString.plan.number=Analyse plan sequence number\: %1$s\n\n
isisfish.params.toString.populations=Populations\:
@@ -612,11 +611,11 @@
isisfish.params.toString.script.logger.level=niveau du logger de scripts %1$s
isisfish.params.toString.script.presimulation=Script de presimulation
isisfish.params.toString.simul.logger.level=niveau du logger de simulateur %1$s
-isisfish.params.toString.simulation.done=Simulation r\u00e9alis\u00e9e avec %1$s\:
-isisfish.params.toString.strategies=Strat\u00e9gies d'exploitation\:
+isisfish.params.toString.simulation.done=Simulation r\u00E9alis\u00E9e avec %1$s\:
+isisfish.params.toString.strategies=Strat\u00E9gies d'exploitation\:
isisfish.params.useAnalysePlan=Utiliser le plan d'analyse
-isisfish.params.usePreSimulationScript=Utiliser un script de pr\u00e9-simulation
-isisfish.population.capturability=Capturabilit\u0e009e
+isisfish.params.usePreSimulationScript=Utiliser un script de pr\u00E9-simulation
+isisfish.population.capturability=Capturabilit\u0E009e
isisfish.population.comments=Commentaires
isisfish.population.group=Groupe
isisfish.population.groups=Groupes
@@ -627,48 +626,48 @@
isisfish.population.reproduction=Reproduction
isisfish.population.season=Saison
isisfish.population.zones=Zones
-isisfish.populationBasics.geographicID=Identifiant g\u00e9ographique
+isisfish.populationBasics.geographicID=Identifiant g\u00E9ographique
isisfish.populationBasics.growth=Croissance
isisfish.populationBasics.growthReverse=Croissance inverse
-isisfish.populationBasics.maturityGroup=Groupe de maturit\u00e9
+isisfish.populationBasics.maturityGroup=Groupe de maturit\u00E9
isisfish.populationBasics.name=nom
isisfish.populationBasics.numberGroup=Nombre de groupes
isisfish.populationBasics.plusGroup=plusGroup
isisfish.populationBasics.recreateClasses=Recruter les classes
isisfish.populationBasics.title=Saisie des Populations
isisfish.populationCapturability.comments=Commentaires
-isisfish.populationCapturability.selectCoefficient=S\u00e9lectionnez un coefficient par saison et par classe
-isisfish.populationCapturability.title=Saisie de la capturabilit\u00e9
+isisfish.populationCapturability.selectCoefficient=S\u00E9lectionnez un coefficient par saison et par classe
+isisfish.populationCapturability.title=Saisie de la capturabilit\u00E9
isisfish.populationEquation.meanWeight=Poids principal
-isisfish.populationEquation.naturalDeathRate=Taux de mortalit\u00e9 naturelle
+isisfish.populationEquation.naturalDeathRate=Taux de mortalit\u00E9 naturelle
isisfish.populationEquation.price=Prix
isisfish.populationEquation.title=inputPopulationEquation
isisfish.populationGroup.age=age
isisfish.populationGroup.comments=Commentaires
isisfish.populationGroup.length=longueur
isisfish.populationGroup.meanWeigth=Poids principal
-isisfish.populationGroup.naturalDeathRate=Taux de mortalit\u00e9 naturelle
+isisfish.populationGroup.naturalDeathRate=Taux de mortalit\u00E9 naturelle
isisfish.populationGroup.price=prix
isisfish.populationGroup.reproductionRate=Taux de reproduction
isisfish.populationGroup.title=Saisie des groupes de population
isisfish.populationGroup.toString=%1$s Groupe %2$s
isisfish.populationMigration.comments=Commentaires
-isisfish.populationMigration.selectSeason=S\u00e9lectionnez une saison
+isisfish.populationMigration.selectSeason=S\u00E9lectionnez une saison
isisfish.populationMigration.title=Migration
-isisfish.populationMigration.useEquation=Utiliser l'\u00e9quation
+isisfish.populationMigration.useEquation=Utiliser l'\u00E9quation
isisfish.populationMigrationEmigration.coefficient=Coefficient
-isisfish.populationMigrationEmigration.departureZone=Zone de d\u00e9part
-isisfish.populationMigrationImmigration.arrivalZone=Zone d'arriv\u00e9e
+isisfish.populationMigrationEmigration.departureZone=Zone de d\u00E9part
+isisfish.populationMigrationImmigration.arrivalZone=Zone d'arriv\u00E9e
isisfish.populationMigrationImmigration.coefficient=Coefficient
-isisfish.populationMigrationMigration.arrivalZone=Zone d'arriv\u00e9e
+isisfish.populationMigrationMigration.arrivalZone=Zone d'arriv\u00E9e
isisfish.populationMigrationMigration.coefficient=Coefficient
-isisfish.populationMigrationMigration.departureZone=Zone de d\u00e9part
+isisfish.populationMigrationMigration.departureZone=Zone de d\u00E9part
isisfish.populationRecruitment.comments=Commentaires
isisfish.populationRecruitment.recruitmentDistribution=Distribution du recrutement
isisfish.populationRecruitment.reproductionEquation=Equation de reproduction
isisfish.populationRecruitment.title=Saisie des recrutements
-isisfish.populationSeasonInfo.arrival=Arriv\u00e9e
-isisfish.populationSeasonInfo.departure=D\u00e9part
+isisfish.populationSeasonInfo.arrival=Arriv\u00E9e
+isisfish.populationSeasonInfo.departure=D\u00E9part
isisfish.populationSeasonInfo.distributionSpawing=Distribution of spawing
isisfish.populationSeasonInfo.emigration=Emigration
isisfish.populationSeasonInfo.group=Groupe
@@ -678,35 +677,36 @@
isisfish.populationSeasonInfo.toString=%1$s saison %2$s-%3$s
isisfish.populationSeasons.changeGroup=Changement de groupe
isisfish.populationSeasons.comments=Commentaires
-isisfish.populationSeasons.distributionSpawning=R\u00e9partition des apparitions
-isisfish.populationSeasons.selectSeason=S\u00e9lectionnez une saison
+isisfish.populationSeasons.distributionSpawning=R\u00E9partition des apparitions
+isisfish.populationSeasons.selectSeason=S\u00E9lectionnez une saison
isisfish.populationSeasons.title=Saisons
isisfish.populationZones.betweenSpawningRecruitmentAreas=Correspondance entre les zones d'apparitions et de recrutement
-isisfish.populationZones.selectPopulationAreas=S\u00e9lectionnez les zones des populations
-isisfish.populationZones.selectRecruitmentAreas=S\u00e9lectionnez les zones de recrutement
-isisfish.populationZones.selectSpawningAreas=S\u00e9lectionnez les zones d'apparition
+isisfish.populationZones.selectPopulationAreas=S\u00E9lectionnez les zones des populations
+isisfish.populationZones.selectRecruitmentAreas=S\u00E9lectionnez les zones de recrutement
+isisfish.populationZones.selectSpawningAreas=S\u00E9lectionnez les zones d'apparition
isisfish.populationZones.title=Zones
isisfish.port.cell=Maille du port
isisfish.port.comments=Commentaires
isisfish.port.name=Nom
-isisfish.preScript.backParameter=Retour aux param\u00e8tres
-isisfish.preScript.title=Script de pr\u00e9-simulation
+isisfish.preScript.backParameter=Retour aux param\u00E8tres
+isisfish.preScript.title=Script de pr\u00E9-simulation
+isisfish.queue.clearDone=Retirer les simulations termin\u00E9es
isisfish.queue.id=Identifiant
isisfish.queue.launcher=Lanceur de simulation
isisfish.queue.plan=Plan
isisfish.queue.progression=Progression
isisfish.queue.showLog=Voir les logs de la simulation
isisfish.queue.simulationLaunch=Lanceur de la queue des simulations
-isisfish.queue.status=\u00c9tat
-isisfish.queue.stopSimulation=Arr\u00eater la simulation
+isisfish.queue.status=\u00C9tat
+isisfish.queue.stopSimulation=Arr\u00EAter la simulation
isisfish.queue.title=Queue
isisfish.result.abundance=Abondance
-isisfish.result.add=Ajouter un r\u00e9sultat
-isisfish.result.begin.simulation=En d\u00e9but de simulation\:
+isisfish.result.add=Ajouter un r\u00E9sultat
+isisfish.result.begin.simulation=En d\u00E9but de simulation\:
isisfish.result.capture=Capturer
-isisfish.result.capture.metier=Capturer par m\u00e9tier
+isisfish.result.capture.metier=Capturer par m\u00E9tier
isisfish.result.choose.simulation=Choisir une simulation
-isisfish.result.datas=Donn\u00e9es
+isisfish.result.datas=Donn\u00E9es
isisfish.result.datasRadioButton=defaultToolTip-fr.ifremer.resultat.ResultatEdit.donneeRadioButton
isisfish.result.desktopPane=defaultToolTip-fr.ifremer.resultat.ResultatView.desktopPane
isisfish.result.dimension=Dimension
@@ -724,7 +724,7 @@
isisfish.result.menuExport=defaultToolTip-fr.ifremer.resultat.ResultatEdit.menuExport
isisfish.result.menubar=defaultToolTip-fr.ifremer.resultat.ResultatView.menubar1
isisfish.result.menuitem=defaultToolTip-fr.ifremer.resultat.ResultatView.menuitem2
-isisfish.result.new.window=Ouvrir une nouvelle fen\u00eatre
+isisfish.result.new.window=Ouvrir une nouvelle fen\u00EAtre
isisfish.result.openWindowButton=defaultToolTip-fr.ifremer.resultat.ResultatView.openWindowButton
isisfish.result.quit=Quitter
isisfish.result.reject.metier=Rejet par metier
@@ -737,49 +737,49 @@
isisfish.result.statusBar=defaultToolTip-fr.ifremer.resultat.ResultatEdit.statusbar1
isisfish.result.statusImage=defaultToolTip-fr.ifremer.resultat.ResultatEdit.statusImage
isisfish.result.stress.metier=Effort par metier
-isisfish.result.summary=R\u00e9sum\u00e9
+isisfish.result.summary=R\u00E9sum\u00E9
isisfish.result.summaryRadioButton=defaultToolTip-fr.ifremer.resultat.ResultatEdit.resumeRadioButton
isisfish.result.table=defaultToolTip-fr.ifremer.resultat.ResultatView.table33
-isisfish.result.title=R\u00e9sultat
+isisfish.result.title=R\u00E9sultat
isisfish.result.tooltip.show.simulation.log=Cliquer pour afficher la console des logs de la simulation
isisfish.result.unload.metier=Debarquement par metier
isisfish.result.vbox=defaultToolTip-fr.ifremer.resultat.ResultatView.vbox1
isisfish.result.viewPanel=defaultToolTip-fr.ifremer.resultat.ResultatEdit.viewPanel
-isisfish.resultChoice.save=R\u00e9sultats \u00e0 sauvegarder
-isisfish.resultChoice.saved=R\u00e9sultats sauvegard\u00e9
-isisfish.resultChoice.title=Choix de r\u00e9sultats
+isisfish.resultChoice.save=R\u00E9sultats \u00E0 sauvegarder
+isisfish.resultChoice.saved=R\u00E9sultats sauvegard\u00E9
+isisfish.resultChoice.title=Choix de r\u00E9sultats
isisfish.resume.matrixInfoGrid=defaultToolTip-fr.ifremer.resultat.ResumePanel.matriceInfoGrid
isisfish.resume.resumeTextArea=defaultToolTip-fr.ifremer.resultat.ResumePanel.resumeTextArea
isisfish.resume.scrolledwindow=defaultToolTip-fr.ifremer.resultat.ResumePanel.scrolledwindow2
isisfish.resume.table=defaultToolTip-fr.ifremer.resultat.ResumePanel.table1
-isisfish.script.check=V\u00e9rifier
+isisfish.script.check=V\u00E9rifier
isisfish.script.commit=Commit
isisfish.script.copy=Copier
isisfish.script.cut=Couper
-isisfish.script.evaluate=\u00c9valuer
+isisfish.script.evaluate=\u00C9valuer
isisfish.script.export=Exporter des scripts dans une archive zip
isisfish.script.export.cancel=annuler
isisfish.script.export.checkAll=(de)-select tout
isisfish.script.export.chooseDir=...
isisfish.script.export.ok=exporter
-isisfish.script.export.tooltip.checkAll=(D\u00e9-)S\u00e9lectionner tous les scripts \u00e0 exporter
-isisfish.script.export.tooltip.chooseDir=Choisir le r\u00e9pertoire o\u00f9 exporter les scripts
+isisfish.script.export.tooltip.checkAll=(D\u00E9-)S\u00E9lectionner tous les scripts \u00E0 exporter
+isisfish.script.export.tooltip.chooseDir=Choisir le r\u00E9pertoire o\u00F9 exporter les scripts
isisfish.script.import=Importer des scripts depuis une archive zip
isisfish.script.import.cancel=annuler
isisfish.script.import.checkAll=(de)-select tout
-isisfish.script.import.labelAdd=Le(s) fichier(s) suivant(s) sera(ont) ajout\u00e9(s), Confirmer l'ajout
-isisfish.script.import.labelOverwrite=Le(s) fichier(s) suivant(s) existe(nt) d\u00e9j\u00e0, Confirmer pour l'\u00e9crasement
+isisfish.script.import.labelAdd=Le(s) fichier(s) suivant(s) sera(ont) ajout\u00E9(s), Confirmer l'ajout
+isisfish.script.import.labelOverwrite=Le(s) fichier(s) suivant(s) existe(nt) d\u00E9j\u00E0, Confirmer pour l'\u00E9crasement
isisfish.script.import.ok=importer
-isisfish.script.import.tooltip.checkAll=(D\u00e9-)S\u00e9lectionner tous les scripts \u00e0 importer
-isisfish.script.menu.checkSyntax=V\u00e9rifier la syntaxe
+isisfish.script.import.tooltip.checkAll=(D\u00E9-)S\u00E9lectionner tous les scripts \u00E0 importer
+isisfish.script.menu.checkSyntax=V\u00E9rifier la syntaxe
isisfish.script.menu.code=Code
isisfish.script.menu.commit=Commiter des scripts sur le serveur
isisfish.script.menu.copy=Copier
isisfish.script.menu.cut=Couper
isisfish.script.menu.deleteLocaly=Supprimer localement
isisfish.script.menu.deleteLocalyServer=Supprimer localement et sur le serveur
-isisfish.script.menu.diff=Voir les diff\u00e9rences avec la version du serveur
-isisfish.script.menu.edit=\u00c9dition
+isisfish.script.menu.diff=Voir les diff\u00E9rences avec la version du serveur
+isisfish.script.menu.edit=\u00C9dition
isisfish.script.menu.evaluate=Evaluer
isisfish.script.menu.file=Fichier
isisfish.script.menu.new=Nouveau
@@ -793,7 +793,7 @@
isisfish.script.menu.txtNewAnalysePlan=Nouveau plan d'analyse
isisfish.script.menu.txtNewEquationModel=Nouvelle formule
isisfish.script.menu.txtNewExport=Nouveau script d'export
-isisfish.script.menu.txtNewRule=Nouvelle r\u00e8gle
+isisfish.script.menu.txtNewRule=Nouvelle r\u00E8gle
isisfish.script.menu.txtNewScript=Nouveau Script
isisfish.script.menu.txtNewSimulator=Nouveau Simulateur
isisfish.script.menu.txtVCS=Serveur
@@ -805,10 +805,10 @@
isisfish.script.txtExport=Exporter
isisfish.season.toString=saison %1$s-%2$s
isisfish.selectivity.equation=Equation
-isisfish.selectivity.selectPopulation=S\u00e9lectionnez une population
-isisfish.selectivity.title=S\u00e9lectivit\u00e9
-isisfish.sens.backParameter=Retour aux param\u00e8tres
-isisfish.sens.title=Analyse de sensibilit\u00e9
+isisfish.selectivity.selectPopulation=S\u00E9lectionnez une population
+isisfish.selectivity.title=S\u00E9lectivit\u00E9
+isisfish.sens.backParameter=Retour aux param\u00E8tres
+isisfish.sens.title=Analyse de sensibilit\u00E9
isisfish.sensWizardPanels.add=Ajouter
isisfish.sensWizardPanels.clear=Effacer
isisfish.sensWizardPanels.down=Bas
@@ -818,19 +818,19 @@
isisfish.sensWizardPanels.object=Objet
isisfish.sensWizardPanels.remove=Supprimer
isisfish.sensWizardPanels.scripts=Liste des scripts
-isisfish.sensWizardPanels.selectType=Selectionner le type \u00e0 ajouter
+isisfish.sensWizardPanels.selectType=Selectionner le type \u00E0 ajouter
isisfish.sensWizardPanels.type=Type
isisfish.sensWizardPanels.up=Haut
isisfish.sensWizardPanels.validate=Valider
isisfish.sensWizardPanels.values=Valeurs
isisfish.sensibilityWizard.title=Sensibility Wizard
-isisfish.server.ssh.generateKey.title=G\u00e9n\u00e9rer une cl\u00e9 SSH
+isisfish.server.ssh.generateKey.title=G\u00E9n\u00E9rer une cl\u00E9 SSH
isisfish.setOfVessels.comments=Commentaires
-isisfish.setOfVessels.fixedCosts=Co\u00fbts fixes
+isisfish.setOfVessels.fixedCosts=Co\u00FBts fixes
isisfish.setOfVessels.name=Nom
isisfish.setOfVessels.numberOfVessels=Nombre de navires
isisfish.setOfVessels.technicalEfficiency=
-isisfish.setOfVessels.title=Caract\u00e9ristiques
+isisfish.setOfVessels.title=Caract\u00E9ristiques
isisfish.setOfVessels.vesselType=Type de navire
isisfish.simpleResult.legendPanel=defaultToolTip-fr.ifremer.isisfish.map.SimpleIsisMapBeanBean.legendPanel
isisfish.simpleResult.more.information=Cliquer sur une cellule pour plus d'informations...
@@ -839,35 +839,35 @@
isisfish.simpleResult.table=defaultToolTip-fr.ifremer.isisfish.map.SimpleResultatMapBean.table12
isisfish.simulation.log.console.title=Console de log simulation '%1$s'
isisfish.simulation.log.showConsole=affichage de la console de log pour la simulation %1$s
-isisfish.simulation.menu.import=Restaurer les param\u00e9tres d'une simulation
-isisfish.simulation.menu.save=Sauver les param\u00e8tres de la simulation
+isisfish.simulation.menu.import=Restaurer les param\u00E9tres d'une simulation
+isisfish.simulation.menu.save=Sauver les param\u00E8tres de la simulation
isisfish.simulation.menu.simulation=Simulation
isisfish.simulation.name=Nom de la simulation
-isisfish.simulation.remote.message.connection=Connexion \u00e0 Caparmor
-isisfish.simulation.remote.message.downloadresults=T\u00e9l\u00e9chargement des r\u00e9sultats
+isisfish.simulation.remote.message.connection=Connexion \u00E0 Caparmor
+isisfish.simulation.remote.message.downloadresults=T\u00E9l\u00E9chargement des r\u00E9sultats
isisfish.simulation.remote.message.launch=Lancement de la simulation
isisfish.simulation.remote.message.upload=Upload de la simulation
isisfish.simulation.title=Lanceur de simulation
-isisfish.simulator.launcher.inprocess=dans le m\u00eame processus
+isisfish.simulator.launcher.inprocess=dans le m\u00EAme processus
isisfish.simulator.launcher.remote=sur le serveur Caparmor
isisfish.simulator.launcher.subprocess=dans un sous processus
-isisfish.simulator.simulaction.badid=Impossible de lancer la simulation '%s' \: l'identifiant existe d\u00e9j\u00e0 \!
+isisfish.simulator.simulaction.badid=Impossible de lancer la simulation '%s' \: l'identifiant existe d\u00E9j\u00E0 \!
isisfish.simulator.subprocess.readoutput.error=
isisfish.species.age=Age
isisfish.species.cee=CEE
isisfish.species.comments=Commentaires
isisfish.species.length=Longueur
-isisfish.species.name=Nom des esp\u00e8ces
+isisfish.species.name=Nom des esp\u00E8ces
isisfish.species.rubbinCode=Code Rubbin
isisfish.species.scientificName=Scientific name
-isisfish.species.structured=Structur\u00e9
+isisfish.species.structured=Structur\u00E9
isisfish.strategy.comments=Commentaires
-isisfish.strategy.inactivityEquationUsed=Utiliser une \u00e9quation d'inactivit\u00e9
+isisfish.strategy.inactivityEquationUsed=Utiliser une \u00E9quation d'inactivit\u00E9
isisfish.strategy.name=Nom
isisfish.strategy.proportionSetOfVessels=Proportion des ensembles de navires
-isisfish.strategy.title=Caract\u00e9ristiques
-isisfish.strategyMonthInfo.metier=M\u00e9tier
-isisfish.strategyMonthInfo.minInactivityDays=Jour minimums d'inactivit\u00e9
+isisfish.strategy.title=Caract\u00E9ristiques
+isisfish.strategyMonthInfo.metier=M\u00E9tier
+isisfish.strategyMonthInfo.minInactivityDays=Jour minimums d'inactivit\u00E9
isisfish.strategyMonthInfo.numberOfTrips=Nombre de trajets
isisfish.strategyMonthInfo.proportion=Proportion
isisfish.strategyMonthInfo.title=StrategyMonthInfo
@@ -877,7 +877,7 @@
isisfish.tray.simulation=Isis-fish - %1$s \: %2$s/%3$s
isisfish.tray.simulation.no=Isis-fish - Pas de simulation
isisfish.tripType.comments=Commentaires
-isisfish.tripType.duration=Dur\u00e9e
+isisfish.tripType.duration=Dur\u00E9e
isisfish.tripType.minTime=Temps minimal entre deux voyages
isisfish.tripType.name=Nom
isisfish.vcs.ask.passphrase=Entrez votre passe phrase (si votre clef ssh en contient une).
@@ -886,97 +886,97 @@
isisfish.vcs.commit.cancel=annuler
isisfish.vcs.commit.label=Entrer quelques mots concernant la modification des scripts
isisfish.vcs.commit.ok=confirmer
-isisfish.vcs.init.notfoundcantdownload=La base de donn\u00e9es pour la version %s n'a ni pu \u00eatre trouv\u00e9e, ni t\u00e9l\u00e9charg\u00e9e.\nVous devez la t\u00e9l\u00e9charger manullement \u00e0 partir du site d'Isis-Fish.
-isisfish.vcs.init.wrongprotocol=Votre base de donn\u00e9es locale \: %s n'utilise pas un protocole correct.\nVoulez-vous faire une sauvegarde de cette base et r\u00e9cup\u00e9rer une meilleure version ?
-isisfish.vcs.switchprotocol.confirm=Le protocole d'acc\u00e8s au d\u00e9p\u00f4t des scripts a chang\u00e9.\nVoulez-vous changer vers le nouveau d\u00e9p\u00f4t ?
-isisfish.vcs.switchtag.warningconflict=Votre base de donn\u00e9es a \u00e9t\u00e9 mise \u00e0 jour\nmais les fichiers suivants sont en conflit, merci de les v\u00e9rifier \:\n%s
-isisfish.vcs.switchversion.confirm=Vous n'utilisez pas le d\u00e9p\u00f4t correct pour votre version d'Isis-Fish \: %s.\nVoulez-vous changer de d\u00e9p\u00f4t ?
-isisfish.vcs.update=R\u00e9sultats de la synchronisation avec le serveur
+isisfish.vcs.init.notfoundcantdownload=La base de donn\u00E9es pour la version %s n'a ni pu \u00EAtre trouv\u00E9e, ni t\u00E9l\u00E9charg\u00E9e.\nVous devez la t\u00E9l\u00E9charger manullement \u00E0 partir du site d'Isis-Fish.
+isisfish.vcs.init.wrongprotocol=Votre base de donn\u00E9es locale \: %s n'utilise pas un protocole correct.\nVoulez-vous faire une sauvegarde de cette base et r\u00E9cup\u00E9rer une meilleure version ?
+isisfish.vcs.switchprotocol.confirm=Le protocole d'acc\u00E8s au d\u00E9p\u00F4t des scripts a chang\u00E9.\nVoulez-vous changer vers le nouveau d\u00E9p\u00F4t ?
+isisfish.vcs.switchtag.warningconflict=Votre base de donn\u00E9es a \u00E9t\u00E9 mise \u00E0 jour\nmais les fichiers suivants sont en conflit, merci de les v\u00E9rifier \:\n%s
+isisfish.vcs.switchversion.confirm=Vous n'utilisez pas le d\u00E9p\u00F4t correct pour votre version d'Isis-Fish \: %s.\nVoulez-vous changer de d\u00E9p\u00F4t ?
+isisfish.vcs.update=R\u00E9sultats de la synchronisation avec le serveur
isisfish.vcs.update.cancel=annuler
isisfish.vcs.update.checkAll=(de)-select tout
isisfish.vcs.update.local=Systeme local
-isisfish.vcs.update.local.modified=Fichiers modifi\u00e9s
-isisfish.vcs.update.local.outofdateAndModified=Fichiers localement modifi\u00e9s en conflit avec le serveur
-isisfish.vcs.update.local.tooltip.modified=Fichiers localement modifi\u00e9s \n(confirmer pour revenir \u00e0 la version avant modification ou soum\u00eatre au serveur)
-isisfish.vcs.update.local.tooltip.outofdateAndModified=Fichiers localement modifi\u00e9s mais ayant une version plus r\u00e9cente sur le serveur\n (confirmer pour revenir \u00e0 la version avant modification ou r\u00e9cup\u00e9rer la nouvelle version du serveur)
-isisfish.vcs.update.local.tooltip.unversionned=Fichiers uniquement pr\u00e9sents sur votre systeme \n(confirmer pour les enregister sur le serveur)
+isisfish.vcs.update.local.modified=Fichiers modifi\u00E9s
+isisfish.vcs.update.local.outofdateAndModified=Fichiers localement modifi\u00E9s en conflit avec le serveur
+isisfish.vcs.update.local.tooltip.modified=Fichiers localement modifi\u00E9s \n(confirmer pour revenir \u00E0 la version avant modification ou soum\u00EAtre au serveur)
+isisfish.vcs.update.local.tooltip.outofdateAndModified=Fichiers localement modifi\u00E9s mais ayant une version plus r\u00E9cente sur le serveur\n (confirmer pour revenir \u00E0 la version avant modification ou r\u00E9cup\u00E9rer la nouvelle version du serveur)
+isisfish.vcs.update.local.tooltip.unversionned=Fichiers uniquement pr\u00E9sents sur votre systeme \n(confirmer pour les enregister sur le serveur)
isisfish.vcs.update.local.unversionned=Nouveaux fichiers
isisfish.vcs.update.ok=continuer
isisfish.vcs.update.remote=Serveur distant
isisfish.vcs.update.remote.missing=Nouveaux fichiers
-isisfish.vcs.update.remote.outofdate=Fichiers plus r\u00e9cents sur le serveur
-isisfish.vcs.update.remote.tooltip.missing=Nouveaux fichiers uniquement pr\u00e9sents sur le serveur \n(confirmer pour les r\u00e9cup\u00e9rer)
-isisfish.vcs.update.remote.tooltip.outofdate=Fichiers dont il existe une version plus r\u00e9cente sur le serveur \n(confirmer pour les r\u00e9cup\u00e9rer)
-isisfish.vcs.update.tooltip.checkAll=(D\u00e9-)S\u00e9lectionner tous les fichiers (\u00e0 action unique) que vous voulez traiter
+isisfish.vcs.update.remote.outofdate=Fichiers plus r\u00E9cents sur le serveur
+isisfish.vcs.update.remote.tooltip.missing=Nouveaux fichiers uniquement pr\u00E9sents sur le serveur \n(confirmer pour les r\u00E9cup\u00E9rer)
+isisfish.vcs.update.remote.tooltip.outofdate=Fichiers dont il existe une version plus r\u00E9cente sur le serveur \n(confirmer pour les r\u00E9cup\u00E9rer)
+isisfish.vcs.update.tooltip.checkAll=(D\u00E9-)S\u00E9lectionner tous les fichiers (\u00E0 action unique) que vous voulez traiter
isisfish.vcs.update.tooltip.local=vcs.update.tooltip.local
isisfish.vcs.update.tooltip.remote=vcs.update.tooltip.remote
-isisfish.vcs.updateconfirm=Confirmation des ope\u00e9rations de synchronisation avec le serveur
+isisfish.vcs.updateconfirm=Confirmation des ope\u00E9rations de synchronisation avec le serveur
isisfish.vcs.updateconfirm.cancel=annuler
isisfish.vcs.updateconfirm.checkAll=(de)-select tout
-isisfish.vcs.updateconfirm.label=Confirmer les op\u00e9rations qui pourraient \u00e9craser vos fichiers
-isisfish.vcs.updateconfirm.label2='Etes vous sur de vouloir effectuer ces op\u00e9rations ?'
+isisfish.vcs.updateconfirm.label=Confirmer les op\u00E9rations qui pourraient \u00E9craser vos fichiers
+isisfish.vcs.updateconfirm.label2='Etes vous sur de vouloir effectuer ces op\u00E9rations ?'
isisfish.vcs.updateconfirm.ok=confirmer
-isisfish.vcs.updateconfirm.tooltip.checkAll=(D\u00e9-)S\u00e9lectionner tous les scripts que vous voulez traiter
-isisfish.vcs.updaterepository.confirm=Votre d\u00e9p\u00f4t des scripts n'est pas \u00e0 jour.\nVoulez-vous mettre \u00e0 jour votre d\u00e9p\u00f4t ?\n\nLes fichiers modifi\u00e9s sont \:\n%s
+isisfish.vcs.updateconfirm.tooltip.checkAll=(D\u00E9-)S\u00E9lectionner tous les scripts que vous voulez traiter
+isisfish.vcs.updaterepository.confirm=Votre d\u00E9p\u00F4t des scripts n'est pas \u00E0 jour.\nVoulez-vous mettre \u00E0 jour votre d\u00E9p\u00F4t ?\n\nLes fichiers modifi\u00E9s sont \:\n%s
isisfish.vcs.vcssvn.add.error=Impossible d'ajouter un fichier
-isisfish.vcs.vcssvn.add.errorreadonly=Vous ne pouver pas ajouter de fichier, ce d\u00e9p\u00f4t est en lecture seule \!
-isisfish.vcs.vcssvn.checkProtocol.error=Impossible d'obtenir l'adresse correspondant au d\u00e9p\u00f4t local
-isisfish.vcs.vcssvn.checkProtocol.relocate=Transfert du d\u00e9p\u00f4t %s de %s vers %s
-isisfish.vcs.vcssvn.checkout.error=Impossible de mettre \u00e0 jour
+isisfish.vcs.vcssvn.add.errorreadonly=Vous ne pouver pas ajouter de fichier, ce d\u00E9p\u00F4t est en lecture seule \!
+isisfish.vcs.vcssvn.checkProtocol.error=Impossible d'obtenir l'adresse correspondant au d\u00E9p\u00F4t local
+isisfish.vcs.vcssvn.checkProtocol.relocate=Transfert du d\u00E9p\u00F4t %s de %s vers %s
+isisfish.vcs.vcssvn.checkout.error=Impossible de mettre \u00E0 jour
isisfish.vcs.vcssvn.commit.error=Impossible de commiter
-isisfish.vcs.vcssvn.commit.errorreadonly=Vous ne pouvez pas commiter, le d\u00e9p\u00f4t est en lecture seule
+isisfish.vcs.vcssvn.commit.errorreadonly=Vous ne pouvez pas commiter, le d\u00E9p\u00F4t est en lecture seule
isisfish.vcs.vcssvn.delete.error=Impossible de supprimer des fichiers
-isisfish.vcs.vcssvn.delete.errorreadonly=Vous ne pouvez pas supprimer ce fichier, le d\u00e9p\u00f4t est en lecture seule
+isisfish.vcs.vcssvn.delete.errorreadonly=Vous ne pouvez pas supprimer ce fichier, le d\u00E9p\u00F4t est en lecture seule
isisfish.vcs.vcssvn.diff.error=Impossible d'obtenir le diff
-isisfish.vcs.vcssvn.gettag.error=Erreur lors de la r\u00e9cup\u00e9ration de l'adresse du d\u00e9p\u00f4t local
+isisfish.vcs.vcssvn.gettag.error=Erreur lors de la r\u00E9cup\u00E9ration de l'adresse du d\u00E9p\u00F4t local
isisfish.vcs.vcssvn.getupdate.error=Impossible d'obtenir le statut des fichiers
isisfish.vcs.vcssvn.global.filelocalandremotestatus=Le statut du fichier %s est (l\:%s/d\:%s)
isisfish.vcs.vcssvn.global.filestatus=Le statut de %s est %s
-isisfish.vcs.vcssvn.global.foundUpdatedFile=Ajout de %s comme fichier mis \u00e0 jour
-isisfish.vcs.vcssvn.global.torevision=\u00c0 la r\u00e9vision \: %d
-isisfish.vcs.vcssvn.isconnected.switchoff=Impossible de se connecter au serveur, passage en mode d\u00e9connect\u00e9 \: %s
-isisfish.vcs.vcssvn.isconnected.switchto=Connexion au serveur disponible, passage en mode connect\u00e9 \: %s
+isisfish.vcs.vcssvn.global.foundUpdatedFile=Ajout de %s comme fichier mis \u00E0 jour
+isisfish.vcs.vcssvn.global.torevision=\u00C0 la r\u00E9vision \: %d
+isisfish.vcs.vcssvn.isconnected.switchoff=Impossible de se connecter au serveur, passage en mode d\u00E9connect\u00E9 \: %s
+isisfish.vcs.vcssvn.isconnected.switchto=Connexion au serveur disponible, passage en mode connect\u00E9 \: %s
isisfish.vcs.vcssvn.isonremote.error=Le fichier %s n'est pas sur le serveur
isisfish.vcs.vcssvn.istag.notexist=Le tag %s n'existe pas
isisfish.vcs.vcssvn.isuptodate.error=Impossible d'obtenir le statut de fichier
isisfish.vcs.vcssvn.list.error=Impossible de lister
isisfish.vcs.vcssvn.localstatus.error=Impossible d'obtenir le statut local de fichier
isisfish.vcs.vcssvn.remotestatus.error=Impossible d'obtenir le statut distant de fichier
-isisfish.vcs.vcssvn.setTag.error=Erreur lors de la r\u00e9cup\u00e9ration de l'adresse du d\u00e9p\u00f4t local
-isisfish.vcs.vcssvn.settag.switchfromto=Switch du tag du d\u00e9p\u00f4t de %s \u00e0 %s
-isisfish.vcs.vcssvn.update.error=Impossible de mettre \u00e0 jour
-isisfish.vcs.vcssvn.update.notinlocal=Impossible de mettre \u00e0 jour des fichiers qui ne sont pas pas dans le d\u00e9p\u00f4t
-isisfish.versionStorage.removed=Supprim\u00e9
-isisfish.vesselType.activityRange=Intervalle d'activit\u00e9
+isisfish.vcs.vcssvn.setTag.error=Erreur lors de la r\u00E9cup\u00E9ration de l'adresse du d\u00E9p\u00F4t local
+isisfish.vcs.vcssvn.settag.switchfromto=Switch du tag du d\u00E9p\u00F4t de %s \u00E0 %s
+isisfish.vcs.vcssvn.update.error=Impossible de mettre \u00E0 jour
+isisfish.vcs.vcssvn.update.notinlocal=Impossible de mettre \u00E0 jour des fichiers qui ne sont pas pas dans le d\u00E9p\u00F4t
+isisfish.versionStorage.removed=Supprim\u00E9
+isisfish.vesselType.activityRange=Intervalle d'activit\u00E9
isisfish.vesselType.comments=Commentaires
-isisfish.vesselType.fuelCost=Co\u00fbt d'un trajet en fuel
+isisfish.vesselType.fuelCost=Co\u00FBt d'un trajet en fuel
isisfish.vesselType.length=Longueur
-isisfish.vesselType.maxDuration=Dur\u00e9e maximale du trajet
-isisfish.vesselType.miniCrew=Taille minimale d'\u00e9quipage
+isisfish.vesselType.maxDuration=Dur\u00E9e maximale du trajet
+isisfish.vesselType.miniCrew=Taille minimale d'\u00E9quipage
isisfish.vesselType.name=Nom
isisfish.vesselType.speed=Vitesse
-isisfish.welcome.menu.about=\u00c0 propos
+isisfish.welcome.menu.about=\u00C0 propos
isisfish.welcome.menu.close=Fermer
isisfish.welcome.menu.configuration=Configuration
isisfish.welcome.menu.file=Fichier
-isisfish.welcome.menu.frame=Fen\u00eatre
+isisfish.welcome.menu.frame=Fen\u00EAtre
isisfish.welcome.menu.help=Aide
isisfish.welcome.menu.input=Saisie
-isisfish.welcome.menu.monitor=Fen\u00eatre de logs
+isisfish.welcome.menu.monitor=Fen\u00EAtre de logs
isisfish.welcome.menu.queue=Liste des simulations
-isisfish.welcome.menu.result=R\u00e9sultat
+isisfish.welcome.menu.result=R\u00E9sultat
isisfish.welcome.menu.script=Script
isisfish.welcome.menu.simulation=Lanceur de simulations
isisfish.welcome.menu.synchro=Synchronisation Serveur
isisfish.welcome.menu.vcs.configuration=Configuration vcs
isisfish.welcome.title=Simulation Ifremer
-isisfish.wizardGroupCreation.allGroupsSameSize=Tous les groupes ont la m\u00eame taille
+isisfish.wizardGroupCreation.allGroupsSameSize=Tous les groupes ont la m\u00EAme taille
isisfish.wizardGroupCreation.allValues=Input all the values
-isisfish.wizardGroupCreation.computedGrowthCurve=Calcul\u00e9 par une courbe de croissance
+isisfish.wizardGroupCreation.computedGrowthCurve=Calcul\u00E9 par une courbe de croissance
isisfish.wizardGroupCreation.firstAge=Premier age
isisfish.wizardGroupCreation.firstAgeHelp=First age \= minimal age
isisfish.wizardGroupCreation.firstGroup=Premier groupe
-isisfish.wizardGroupCreation.firstLength=Premi\u00e8re taille
+isisfish.wizardGroupCreation.firstLength=Premi\u00E8re taille
isisfish.wizardGroupCreation.firstLengthHelp=First length \= minimal length of first group
isisfish.wizardGroupCreation.gapBetweenGroupsHelp=gap between to group is 1 year.
isisfish.wizardGroupCreation.groupNumberHelp=number of Group \= number of group wanted
@@ -991,7 +991,7 @@
isisfish.wizardGroupCreation.populationCharacteristics=Input the population characteristics
isisfish.wizardGroupCreation.selectGroupLengthType=Choisir la longueur du groupe
isisfish.wizardGroupCreation.timeStep=Pas de temps (en mois)
-isisfish.wizardGroupCreation.title=Cr\u00e9ation du groupe
+isisfish.wizardGroupCreation.title=Cr\u00E9ation du groupe
isisfish.zone.cells=cellules de la Zone
isisfish.zone.comments=Commentaires
isisfish.zone.name=Nom
1
0