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
- 3175 discussions
Author: chatellier
Date: 2009-01-27 15:21:13 +0000 (Tue, 27 Jan 2009)
New Revision: 1759
Modified:
isis-fish/trunk/pom.xml
Log:
Ass missing runtime dep for xmlrpc
Modified: isis-fish/trunk/pom.xml
===================================================================
--- isis-fish/trunk/pom.xml 2009-01-27 15:20:44 UTC (rev 1758)
+++ isis-fish/trunk/pom.xml 2009-01-27 15:21:13 UTC (rev 1759)
@@ -151,6 +151,13 @@
<version>2.0</version>
<scope>compile</scope>
</dependency>
+
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>1.3</version>
+ <scope>runtime</scope>
+ </dependency>
<!-- encore utilise pour les pre-scripts -->
<dependency>
1
0
r1758 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator
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 15:20:44 +0000 (Tue, 27 Jan 2009)
New Revision: 1758
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulatorServer.java
Log:
start serveur
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-27 14:46:47 UTC (rev 1757)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulatorServer.java 2009-01-27 15:20:44 UTC (rev 1758)
@@ -213,6 +213,8 @@
webserver.addHandler("$default", new SimulatorServer());
System.err.println("started web server on port " + p);
+
+ webserver.start();
} catch (Exception x) {
System.err.println("Error creating web server: " + x);
}
1
0
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