Isis-fish-commits
Threads by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
September 2008
- 2 participants
- 15 discussions
r1339 - in trunk/isis-fish: . src/java/fr/ifremer/isisfish/simulator/launcher src/resources/i18n
by bpoussin@users.labs.libre-entreprise.org Sept. 24, 2008
by bpoussin@users.labs.libre-entreprise.org Sept. 24, 2008
Sept. 24, 2008
Author: bpoussin
Date: 2008-09-24 14:39:29 +0000 (Wed, 24 Sep 2008)
New Revision: 1339
Modified:
trunk/isis-fish/.cvsignore
trunk/isis-fish/changelog
trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java
trunk/isis-fish/src/resources/i18n/isis-fish-en_GB.properties
trunk/isis-fish/src/resources/i18n/isis-fish-fr_FR.properties
Log:
commit avant refactoring du repo (utf, mvn structure)
Modified: trunk/isis-fish/.cvsignore
===================================================================
--- trunk/isis-fish/.cvsignore 2008-09-12 15:37:10 UTC (rev 1338)
+++ trunk/isis-fish/.cvsignore 2008-09-24 14:39:29 UTC (rev 1339)
@@ -7,3 +7,4 @@
isis-fish.iws
isis-fish.iml
.settings
+__poubelle__
Modified: trunk/isis-fish/changelog
===================================================================
--- trunk/isis-fish/changelog 2008-09-12 15:37:10 UTC (rev 1338)
+++ trunk/isis-fish/changelog 2008-09-24 14:39:29 UTC (rev 1339)
@@ -3,6 +3,9 @@
* complete refactoring option, vcs
* complete refactoring simulation engin
* new launcher type (subprocess, caparmor ...) in progress
+ * modify script to use cell and not zone in some computation
+ * add TechnicalEfficiency equation
+ * add Inactivity equation support
isis-fish (3.1.3) stable; urgency=high
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2008-09-12 15:37:10 UTC (rev 1338)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2008-09-24 14:39:29 UTC (rev 1339)
@@ -51,6 +51,7 @@
return "Sub process";
}
+ @Override
public SimulationStorage simulate(SimulationService simulationService,
SimulationControl control, File simulationZip) throws RemoteException {
String simulationId = control.getId();
@@ -70,7 +71,9 @@
}
+ @Override
public int maxSimulationThread() {
+ // TODO rendre configurable le nombre de processeurs a utiliser
int result = Runtime.getRuntime().availableProcessors();
return result;
}
Modified: trunk/isis-fish/src/resources/i18n/isis-fish-en_GB.properties
===================================================================
--- trunk/isis-fish/src/resources/i18n/isis-fish-en_GB.properties 2008-09-12 15:37:10 UTC (rev 1338)
+++ trunk/isis-fish/src/resources/i18n/isis-fish-en_GB.properties 2008-09-24 14:39:29 UTC (rev 1339)
@@ -1,7 +1,7 @@
Can't\ add\ result\ '%1$s'\ at\ date\ %2$s=Can't add result '%1$s' at date %2$s
+Can't\ create\ simulation\ logger=Can't create simulation logger
Can't\ evaluate\ simulation\ prescript=Can't evaluate simulation prescript
Can't\ get\ result\:\ %1$s=Can't get result\: %1$s
-Can't\ create\ simulation\ logger=Can't create simulation logger
Can't\ instanciate\ export\ %1$s=Can't instanciate export %1$s
Checkout\ pom.xml\ to\ %1$s=
Info=Info
@@ -230,7 +230,7 @@
isisfish.error.import.recent.files=Erreur lors de l'import, la version du fichier que vous souhaitez importer est plus r\u00E9cente que la version souhait\u00E9e.
isisfish.error.import.scripts.force=Some files already exist, you MUST use option [force] pour force overwrite.
isisfish.error.init.map=Can't init map.
-isisfish.error.init.remove.button=could not init remove button (button or list is null) button : %1$s, list : %2$s
+isisfish.error.init.remove.button=could not init remove button (button or list is null) button \: %1$s, list \: %2$s
isisfish.error.instanciate=Can't instanciate %1$s
isisfish.error.instanciate.export=Can't instanciate export %1$s
isisfish.error.integer.positif=Your input must be a positif integer (>1)
Modified: trunk/isis-fish/src/resources/i18n/isis-fish-fr_FR.properties
===================================================================
--- trunk/isis-fish/src/resources/i18n/isis-fish-fr_FR.properties 2008-09-12 15:37:10 UTC (rev 1338)
+++ trunk/isis-fish/src/resources/i18n/isis-fish-fr_FR.properties 2008-09-24 14:39:29 UTC (rev 1339)
@@ -1,7 +1,7 @@
Can't\ add\ result\ '%1$s'\ at\ date\ %2$s=Can't add result '%1$s' at date %2$s
+Can't\ create\ simulation\ logger=Can't create simulation logger
Can't\ evaluate\ simulation\ prescript=Can't evaluate simulation prescript
Can't\ get\ result\:\ %1$s=Can't get result\: %1$s
-Can't\ create\ simulation\ logger=Can't create simulation logger
Can't\ instanciate\ export\ %1$s=Can't instanciate export %1$s
Checkout\ pom.xml\ to\ %1$s=
Info=Info
@@ -230,7 +230,7 @@
isisfish.error.import.recent.files=Erreur lors de l'import, la version du fichier que vous souhaitez importer est plus r\u00E9cente que la version souhait\u00E9e.
isisfish.error.import.scripts.force=Certains fichiers existent, vous devez utiliser l'option [force] pour forcer l'\u00E9crasement.
isisfish.error.init.map=Can't init map.
-isisfish.error.init.remove.button=could not init remove button (button or list is null) button : %1$s, list : %2$s
+isisfish.error.init.remove.button=could not init remove button (button or list is null) button \: %1$s, list \: %2$s
isisfish.error.instanciate=Can't instanciate %1$s
isisfish.error.instanciate.export=Can't instanciate export %1$s
isisfish.error.integer.positif=Your input must be a positif integer (>1)
1
0
r1338 - branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
Sept. 12, 2008
Author: sletellier
Date: 2008-09-12 15:37:10 +0000 (Fri, 12 Sep 2008)
New Revision: 1338
Added:
branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx
branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx
branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensWizardPannelsUI.jaxx
branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensWizardUI.jaxx
branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SimulQueueUI.jaxx
branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SimulUI.jaxx
Log:
Interface JAXX
Copied: branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx (from rev 1313, branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/ResultChoice2.jaxx)
===================================================================
--- branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx (rev 0)
+++ branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx 2008-09-12 15:37:10 UTC (rev 1338)
@@ -0,0 +1,32 @@
+<JPanel id="ResultChoice" name="isisfish.resultChoice.title" layout='{new BorderLayout()}'>
+
+<!-- Fixme : ContextDataSource
+ <ContextDataSource id="ResultNames" context="current" source="ResultNames"/>
+-->
+ <!--
+ |
+ | Result enabled
+ |
+ +-->
+
+ <JLabel text="isisfish.resultChoice.save" horizontalAlignment="0" constraints='BorderLayout.NORTH'/>
+ <JScrollPane constraints='BorderLayout.CENTER'>
+ <!--list id="listResultNames" SelectionMode="2" renderer="org.codelutin.i18n.I18n._(.)"-->
+ <JList id="listResultNames" selectionMode="2">
+<!-- Fixme : ListModel, ListSelectionEvents and listRender
+ origin="$SimulationParameter/resultEnabled"
+ <ListModel origin="$ResultNames"/>
+ <ListSelectionEvents onValueChanged="Update($listResultNames/selectedValues, $SimulationParameter/resultEnabled)"/>
+ <ListRenderer>
+ <SimpleToolTipListRenderer origin='fr.ifremer.isisfish.ui.simulator.ToolTipListModelFactory.createResultFieldsModel($ResultNames)'/>
+ </ListRenderer>
+-->
+ </JList>
+ </JScrollPane>
+
+ <JButton constraints='BorderLayout.SOUTH' text="isisfish.common.saveNextSimulation"/>
+<!--
+ actionCommand="simulator.SimulatorAction.saveResultNames($listResultNames/selectedValues)"
+-->
+</JPanel>
+
Copied: branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx (from rev 1313, branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/Sens2.jaxx)
===================================================================
--- branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx (rev 0)
+++ branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx 2008-09-12 15:37:10 UTC (rev 1338)
@@ -0,0 +1,77 @@
+<JPanel id="simulSens" name="isisfish.sens.title">
+
+<!-- Fixme : ContextDataSource
+ <ContextDataSource id="AnalysePlanNames" context="current" source="AnalysePlanNames"/>
+-->
+ <!--JScrollPane constraints='"labelSimulParamsAnalysePlans"'>
+ <JTextArea id="AnalysePlanDescription" editable="false" text="isisfish.sens.planAdd"/>
+ </JScrollPane-->
+ <JComboBox id="fieldSimulParamsAnalysePlansSelect">
+<!-- Fixme : ComboBoxModel and ComboBoxRenderer
+origin=""
+ <ComboBoxModel origin="$AnalysePlanNames"/>
+ <ComboBoxRenderer>
+ <SimpleToolTipComboBoxRenderer origin='fr.ifremer.isisfish.ui.simulator.ToolTipListModelFactory.createAnalysePlanDescriptionsModel($AnalysePlanNames)'/>
+ </ComboBoxRenderer>
+-->
+ </JComboBox>
+ <JScrollPane>
+ <JList id="listSimulParamsAnalysePlansList" selectionMode="0">
+<!-- Fixme : ListModel, ListSelectionEvents and ListRenderer
+origin=""
+renderer="fr.ifremer.isisfish.datastore.AnalysePlanStorage.getName(/)"
+toolTipTextPropertyName="description"
+ <ListModel origin="$SimulationParameter/analysePlans"/>
+ <ListSelectionEvents onValueChanged="refreshView($simulParamsAnalysePlans)"/>
+-->
+ <!--ListSelectionEvents onValueChanged="xpath:setText($AnalysePlanDescription, $listSimulParamsAnalysePlansList/selectedValue/description)"/-->
+<!-- <ListRenderer>
+ <SimpleToolTipListRenderer origin='fr.ifremer.isisfish.ui.simulator.ToolTipListModelFactory.createAnalysePlanDescriptionsModel2($SimulationParameter/analysePlans,$buttonSimulParamsAnalysePlansClear,$listSimulParamsAnalysePlansList)'/>
+ </ListRenderer>
+-->
+ </JList>
+ </JScrollPane>
+
+ <JButton id="buttonSimulParamsAnalysePlansAdd" text="isisfish.common.add"/>
+<!--
+actionCommand="xpath:addAnalysePlan($SimulationParameter, getNewAnalysePlanInstance(fr.ifremer.isisfish.datastore.AnalysePlanStorage.getAnalysePlan($fieldSimulParamsAnalysePlansSelect/selectedItem)));refreshView($listSimulParamsAnalysePlansList)"
+-->
+ <JButton id="buttonSimulParamsAnalysePlansRemove" text="isisfish.common.remove"/>
+<!--
+ actionCommand="xpath:removeAnalysePlan($SimulationParameter, $listSimulParamsAnalysePlansList/selectedValue);refreshView($listSimulParamsAnalysePlansList)"
+-->
+ <JButton id="buttonSimulParamsAnalysePlansClear" text="isisfish.common.clear"/>
+<!--
+actionCommand="xpath:clearPlans($SimulationParameter);refreshView($listSimulParamsAnalysePlansList,$simulParamsAnalysePlans)"
+-->
+ <!--TODO Doest not work! when calling use an AbstractCollection with no clear implementation text="Clear" actionCommand="xpath:clear($SimulationParameter/analysePlans);refreshView($listSimulParamsAnalysePlansList)"/>-->
+
+ <JScrollPane>
+ <JTable id="simulParamsAnalysePlans" name="isisfish.sens.planParameters">
+<!-- Fixme : JTableModel
+ <tableModel origin="fr.ifremer.isisfish.datastore.AnalysePlanStorage.getParameterNames($listSimulParamsAnalysePlansList/selectedValue)">
+ <column title="Name" property="/" renderer="key">
+ <tableColumnRenderer>
+ <SimpleToolTipTableColumnRenderer origin='fr.ifremer.isisfish.ui.simulator.ToolTipListModelFactory.createAnalysePlanParamsModel($listSimulParamsAnalysePlansList/selectedValue)'/>
+ </tableColumnRenderer>
+ </column>
+ <column title="Value" editable="true"
+ property="fr.ifremer.isisfish.datastore.AnalysePlanStorage.getParameterValue($listSimulParamsAnalysePlansList/selectedValue, /key)"
+ actionEdit="fr.ifremer.isisfish.datastore.AnalysePlanStorage.setParameterValue($listSimulParamsAnalysePlansList/selectedValue, $e/object/key, $e/value)">
+ <tableColumnEditor><ParameterColumnEditor origin="$RegionStorage"/></tableColumnEditor>
+ <tableColumnRenderer>
+ <SimpleToolTipTableColumnRenderer origin=''/>
+ </tableColumnRenderer>
+ </column>
+ </tableModel>
+-->
+ </JTable>
+ </JScrollPane>
+
+ <JButton text="isisfish.sens.backParameter"/>
+<!--
+actionCommand="simulator.SimulatorAction.selectTab($simulTabs, 'true', '0')"
+-->
+
+</JPanel>
+
Copied: branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensWizardPannelsUI.jaxx (from rev 1313, branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensWizardPannels2.jaxx)
===================================================================
--- branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensWizardPannelsUI.jaxx (rev 0)
+++ branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensWizardPannelsUI.jaxx 2008-09-12 15:37:10 UTC (rev 1338)
@@ -0,0 +1,64 @@
+<JPanel name="isisfish.sensWizardPanels.title" id="sensWizardPanels" visible="true"
+ layout='{new XMLGridLayout("fr/ifremer/isisfish/ui/simulator/SensWizardPanels.xgl")}'>
+ <script>
+ import org.codelutin.widget.XMLGridLayout;
+ </script>
+ <JTabbedPane id="wizardTabPane" constraints='"wizardTabPane"'>
+ <tab title="isisfish.sensWizardPanels.type">
+ <JPanel name="isisfish.sensWizardPanels.type" layout='{new XMLGridLayout("fr/ifremer/isisfish/ui/simulator/SensWizardPanels.xgl")}'>
+ <JLabel constraints='"typeSensWizardLabel"' text="isisfish.sensWizardPanels.selectType"/>
+ <JRadioButton constraints='"buttonSimulSensWizardValuesList"' text="isisfish.sensWizardPanels.values" selected="true" buttonGroup="sensWizardPanelsGroup"/>
+ <JRadioButton constraints='"buttonSimulSensWizardScriptsList"' text="isisfish.sensWizardPanels.scripts" buttonGroup="sensWizardPanelsGroup"/>
+ </JPanel>
+ </tab>
+ <tab title="isisfish.sensWizardPanels.values">
+ <JPanel name="isisfish.sensWizardPanels.values" layout='{new XMLGridLayout("fr/ifremer/isisfish/ui/simulator/SensWizardPanels.xgl")}'>
+ <JPanel constraints='"valuesSensWizardLabelPanel"'>
+ <JLabel constraints='"valuesSensWizardObjectLabel"' text="isisfish.sensWizardPanels.object"/>
+ <JTextField constraints='"valuesSensWizardObjectField"' editable="false"/>
+<!--
+origin=""
+-->
+ <JLabel constraints='"valuesSensWizardFieldLabel"' text="isisfish.sensWizardPanels.field"/>
+ <JTextField constraints='"valuesSensWizardFieldField"' editable="false"/>
+<!--
+origin=""
+-->
+ <JLabel constraints='"valuesSensWizardTypeLabel"' text="isisfish.sensWizardPanels.type"/>
+ <JTextField constraints='"valuesSensWizardTypeField"' editable="false"/>
+<!--
+origin=""
+-->
+ </JPanel>
+ <JPanel constraints='"valuesSensWizardNewValuePanel"'>
+<!--
+text="New Value"
+-->
+ <JTextArea text="isisfish.common.blabla"/> <!-- TODO Peut dependre du type de l'obet -->
+<!--
+origin=""
+-->
+ </JPanel>
+ <JButton constraints='"buttonValuesSensWizardAdd"' id="buttonValuesSensWizardAdd" text="isisfish.sensWizardPanels.add" actionCommand=""/>
+ <JButton constraints='"buttonValuesSensWizardModify"' id="buttonValuesSensWizardModify" text="isisfish.sensWizardPanels.modify" actionCommand=""/>
+ <JButton constraints='"buttonValuesSensWizardRemove"' id="buttonValuesSensWizardRemove" text="isisfish.sensWizardPanels.remove" actionCommand=""/>
+ <JButton constraints='"buttonValuesSensWizardUp"' id="buttonValuesSensWizardUp" text="isisfish.sensWizardPanels.up" actionCommand=""/>
+ <JButton constraints='"buttonValuesSensWizardDown"' id="buttonValuesSensWizardDown" text="isisfish.sensWizardPanels.down" actionCommand=""/>
+ <JButton constraints='"buttonValuesSensWizardClear"' id="buttonValuesSensWizardClear" text="isisfish.sensWizardPanels.clear" actionCommand=""/>
+ <JScrollPane constraints='"fieldSensWizardList"'>
+ <JList id="listSensWizardList">
+<!-- Fixme : ListModel
+origin="" SelectionMode="1" iterate="false"
+ <ListModel origin=""/>
+-->
+ </JList>
+ </JScrollPane>
+ </JPanel>
+ </tab>
+ <tab title="isisfish.sensWizardPanels.validate">
+ <JPanel name="isisfish.sensWizardPanels.validate" layout='{new XMLGridLayout("fr/ifremer/isisfish/ui/simulator/SensWizardPanels.xgl")}'>
+ <JLabel constraints='"typeSensWizardLabel"' text="isisfish.sensWizardPanels.finish"/>
+ </JPanel>
+ </tab>
+ </JTabbedPane>
+</JPanel>
\ No newline at end of file
Copied: branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensWizardUI.jaxx (from rev 1313, branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensWizard2.jaxx)
===================================================================
--- branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensWizardUI.jaxx (rev 0)
+++ branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SensWizardUI.jaxx 2008-09-12 15:37:10 UTC (rev 1338)
@@ -0,0 +1,34 @@
+<JFrame id="sensWizard" visible="true" size='{new Dimension(400,400)}' title="isisfish.sensibilityWizard.title"
+ layout='{new XMLGridLayout("fr/ifremer/isisfish/ui/simulator/SensWizard.xgl")}'>
+<!--
+bundle="org.codelutin.i18n.I18nBundleBridge"
+-->
+ <script>
+ import org.codelutin.widget.XMLGridLayout;
+ </script>
+ <JPanel constraints='"sensWizardPanel"' layout='{new XMLGridLayout("fr/ifremer/isisfish/ui/simulator/SensWizard.xgl")}'>
+ <!--JPanel constraints='"sensWizardPanelContent"'-->
+<!-- Fixme : WizardPanel
+ <WizardPanel id="wizpnl" constraints="sensWizardPanelContentPanel" xml="simulator/SensWizardPanels.xml" onChange="simulator.SensWizard.newTab($wizardPrev, $wizardNext, $wizardFinish, $wizardTabPane)"/>
+-->
+ <!--/panel-->
+ <JPanel constraints='"sensWizardPanelButtons"'>
+ <JButton id="wizardPrev" text="isisfish.common.previous" enabled="false"/>
+<!--
+actionCommand="prev"
+-->
+ <JButton id="wizardNext" text="isisfish.common.next"/>
+<!--
+actionCommand="next"
+-->
+ <JButton id="wizardFinish" text="isisfish.common.finish" enabled="false"/>
+<!--
+actionCommand="finishSensWizard"
+-->
+ <JButton text="isisfish.common.cancel"/>
+<!--
+actionCommand="cancel"
+-->
+ </JPanel>
+ </JPanel>
+</JFrame>
\ No newline at end of file
Copied: branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SimulQueueUI.jaxx (from rev 1313, branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SimulQueue2.jaxx)
===================================================================
--- branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SimulQueueUI.jaxx (rev 0)
+++ branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SimulQueueUI.jaxx 2008-09-12 15:37:10 UTC (rev 1338)
@@ -0,0 +1,9 @@
+<JFrame visible="true" size='{new Dimension(400,400)}' title="isisfish.simulationQueue.title"
+ layout='{new BorderLayout()}'>
+
+<!--
+bundle="org.codelutin.i18n.I18nBundleBridge"
+<xpanel xml="simulator/Queue.xml"/>
+-->
+
+</JFrame>
Copied: branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SimulUI.jaxx (from rev 1313, branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/Simul2.jaxx)
===================================================================
--- branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SimulUI.jaxx (rev 0)
+++ branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/SimulUI.jaxx 2008-09-12 15:37:10 UTC (rev 1338)
@@ -0,0 +1,51 @@
+<JPanel size='{new Dimension(800,600)}' id="simul" layout='{new BorderLayout()}'>
+<!--
+title="isisfish.simulation.title"
+visible="true" size='{new Dimension(700,500)}' location='{new Point(0,139)}'
+-->
+ <!--onOpened="simulator.SimulatorAction.opened($simulTabs)"-->
+<!--
+ <WindowEvents id="events"
+ onOpened="simulator.SimulatorAction.opened($simulTabs,$buttonSimulQueueStart,$buttonSimulQueueRemove,$buttonSimulQueueShowLog,$queueTable,$queueTableDone,$buttonSimulParamsAnalysePlansRemove,$listSimulParamsAnalysePlansList,$buttonSimulParamsMesuresRemove,$listSimulParamsMesuresList)"
+ onClosing="UIHelper.closeContext()" />
+
+ <ContextDataSource id="OldSimulationName" context="current" source="OldSimulationName"/>
+ <ContextDataSource id="SimulationFilterModel" context="current" source="SimulationFilterModel"/>
+ <ContextDataSource id="SimulationParameter" context="current" source="SimulationParameter"/>
+ <ContextDataSource id="RegionStorage" context="current" source="RegionStorage"/>
+-->
+<!--
+ <JMenuBar>
+ <JMenu text="isisfish.simulation.menu.file">
+ <JMenuItem name="miClose" text="isisfish.simulation.menu.close" accelerator="accClose"/>
+ </JMenu>
+
+ <JMenu text="txtSimulation" mnemonic="mnSimulation">
+ <JMenuItem name="miSimulate" text="txtSimulate" icon="imgSimulate"
+ mnemonic="mnSimulate" ActionCommand="simulate" accelerator="accSimulate"/>
+ <JMenuItem name="miQueue" text="txtQueue" icon="imgQueue"
+ mnemonic="mnQueue" ActionCommand="queue" accelerator="accQueue"/>
+ </JMenu>
+
+ <JMenu text="isisfish.simulation.menu.help">
+ <JMenuItem name="miAbout" text="isisfish.simulation.menu.about" accelerator="accAbout"/>
+ </JMenu>
+ </JMenuBar>
+-->
+
+ <JTabbedPane id="simulTabs" constraints='BorderLayout.CENTER'>
+ <tab title='isisfish.Params.title'><ParamsUI/></tab>
+ <tab title='isisfish.PreScripts.title'><PreScriptsUI/></tab>
+ <tab title='isisfish.Sens.title'><SensUI/></tab>
+ <tab title='isisfish.Export.title'><ExportUI/></tab>
+ <tab title='isisfish.ResultChoice.title'><ResultChoiceUI/></tab>
+ <tab title='isisfish.advancedParameters.title'><AdvancedParamsUI/></tab>
+ <tab title='isisfish.Queue.title'><QueueUI/></tab>
+ </JTabbedPane>
+
+
+<!--
+ <StatutBar2 constraints='"statusBar"'/>
+ <JLabel icon="images/fish.jpg" constraints='"fishIcon"'/>
+-->
+</JPanel>
\ No newline at end of file
1
0
r1337 - branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
Sept. 12, 2008
Author: sletellier
Date: 2008-09-12 15:36:54 +0000 (Fri, 12 Sep 2008)
New Revision: 1337
Added:
branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx
Log:
Interface JAXX
Copied: branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx (from rev 1313, branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/Queue2.jaxx)
===================================================================
--- branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx (rev 0)
+++ branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx 2008-09-12 15:36:54 UTC (rev 1337)
@@ -0,0 +1,51 @@
+<Table>
+ <row>
+ <cell columns="3" fill="both" weightx="1.0" weighty="0.5">
+ <JScrollPane>
+ <JTable id="queueTable">
+<!-- Fixme : TableModel a implemanter
+ <tableModel>
+ <SimulationQueueModel id="queueModel"/>
+ </tableModel>
+-->
+ </JTable>
+ </JScrollPane>
+ </cell>
+ </row>
+ <row>
+ <cell columns="3" fill="both" weightx="1.0" weighty="0.5">
+ <JScrollPane>
+ <JTable id="queueTableDone">
+<!--
+ <tableModel>
+ <SimulationDoneQueueModel id="queueModelDone"/>
+ </tableModel>
+-->
+ </JTable>
+ </JScrollPane>
+ </cell>
+ </row>
+ <row>
+ <cell fill="horizontal" weightx="0.3">
+ <JButton id="buttonSimulQueueStart" text="isisfish.queue.simulationLaunch"/>
+<!--
+actionCommand="xpath:setAutoLaunch(fr.ifremer.isisfish.simulator.SimulationManager.getInstance(), 'true')"
+-->
+ </cell>
+ <cell fill="horizontal" weightx="0.3">
+ <!--TODO ne fonctionne pas init="simulator.SimulatorAction.initButtonSimulQueueStart($buttonSimulQueueStart)"-->
+ <JButton id="buttonSimulQueueRemove" text="isisfish.queue.stopSimulation"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.3">
+<!--
+ actionCommand="xpath:setStopSimulationRequest(getSimulationControl($queueModel, $queueTable/selectedRow), 'true')"
+-->
+ <JButton id="buttonSimulQueueShowLog" text="isisfish.queue.showLog"/>
+<!--
+actionCommand="fr.ifremer.isisfish.ui.simulator.SimulatorAction.showLog($queueTableDone,$queueModelDone,$queueTableDone/selectedRow)"
+-->
+ <!--TODO ne fonctionne pas init="simulator.SimulatorAction.initButtonSimulQueue($buttonSimulQueueShowLog,$queueTableDone)"-->
+ <!--TODO ne fonctionne pas non plusorigin="$queueTableDone/selectedRow!=-1"-->
+ </cell>
+ </row>
+</Table>
\ No newline at end of file
1
0
r1336 - branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
Sept. 12, 2008
Author: sletellier
Date: 2008-09-12 15:36:47 +0000 (Fri, 12 Sep 2008)
New Revision: 1336
Added:
branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/PreScriptsUI.jaxx
Log:
Interface JAXX
Copied: branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/PreScriptsUI.jaxx (from rev 1313, branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/PreScripts2.jaxx)
===================================================================
--- branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/PreScriptsUI.jaxx (rev 0)
+++ branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/PreScriptsUI.jaxx 2008-09-12 15:36:47 UTC (rev 1336)
@@ -0,0 +1,16 @@
+<JPanel id="simulPreScripts" layout='{new BorderLayout()}'>
+ <JScrollPane constraints='BorderLayout.CENTER'>
+ <JTextArea id="fieldSimulPreScript">
+<!-- Fixme : DocmumentEvents
+origin="$SimulationParameter/preScript"
+ <DocumentEvents onModified="Update($fieldSimulPreScript/text, $SimulationParameter/preScript)"/>
+-->
+ </JTextArea>
+ </JScrollPane>
+
+ <JButton constraints='BorderLayout.SOUTH' text="isisfish.preScript.backParameter"/>
+<!--
+actionCommand="simulator.SimulatorAction.selectTab($simulTabs, 'true', '0')"
+-->
+
+</JPanel>
\ No newline at end of file
1
0
r1335 - branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
Sept. 12, 2008
Author: sletellier
Date: 2008-09-12 15:36:41 +0000 (Fri, 12 Sep 2008)
New Revision: 1335
Added:
branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
Log:
Interface JAXX
Copied: branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx (from rev 1313, branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/Params2.jaxx)
===================================================================
--- branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx (rev 0)
+++ branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2008-09-12 15:36:41 UTC (rev 1335)
@@ -0,0 +1,224 @@
+<!-- <JPanel id="simulParams" name="isisfish.params.title" layout='{new BorderLayout()}'> -->
+<Table insets='0,0,0,0'>
+ <row>
+ <cell fill="horizontal" weightx="1.0">
+ <Table>
+ <row>
+ <cell columns="4" fill="horizontal">
+ <JLabel text="isisfish.params.loadOldSimulation"/>
+ </cell>
+ </row>
+ <row>
+ <cell columns="2" fill="horizontal" weightx="1.0">
+ <JComboBox id="fieldSimulParamsSelect"/>
+ </cell>
+ <cell>
+ <JButton text="isisfish.params.filter" id="buttonSimulParamsSelectFilter"/>
+ </cell>
+ <cell>
+ <JButton text="isisfish.params.clearFilter" id="buttonSimulParamsSelectClearFilter"/>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ </row>
+ <row>
+ <cell fill="both" weightx="1.0" weighty="1.0">
+ <Table>
+ <row>
+ <cell columns="2" fill="horizontal" weightx="0.5">
+ <Table>
+ <row>
+ <cell fill="horizontal">
+ <JLabel text="isisfish.params.simulationName" minimumSize='{new Dimension(140,25)}' preferredSize='{new Dimension(140,25)}'/>
+ </cell>
+ <cell fill="both" weightx="1.0">
+ <JTextField id="fieldSimulParamsName"/>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ <cell columns="2" fill="horizontal" weightx="0.5">
+ <Table>
+ <row>
+ <cell columns="2" fill="horizontal">
+ <JLabel text="isisfish.common.region"/>
+ </cell>
+ <cell fill="horizontal" weightx="1.0">
+ <JComboBox id="fieldSimulParamsRegion"/>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ </row>
+ <row>
+ <cell columns="4" fill="horizontal" weightx="1.0">
+ <Table>
+ <row>
+ <cell>
+ <JLabel text="isisfish.params.description"/>
+ </cell>
+ <cell fill="horizontal" weightx="1.0">
+ <JPanel/>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ </row>
+ <row>
+ <cell columns="4" fill="both" weightx="1.0" weighty="0.3">
+ <JScrollPane minimumSize='{new Dimension(0,0)}' preferredSize='{new Dimension(0,0)}'>
+ <JTextArea id="fieldSimulParamsDesc"/>
+ </JScrollPane>
+ </cell>
+ </row>
+ <row>
+ <cell columns="2" fill="horizontal" weightx="0.5">
+ <Table>
+ <row>
+ <cell fill="horizontal">
+ <JLabel text="isisfish.params.numberYear" minimumSize='{new Dimension(140,25)}' preferredSize='{new Dimension(140,25)}'/>
+ </cell>
+ <cell fill="both" weightx="1.0">
+ <JTextField id="fieldSimulParamsNbAnnees"/>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ <cell columns="2" fill="horizontal" weightx="0.5">
+ <JPanel/>
+ </cell>
+ </row>
+ <row>
+ <cell fill="both" weightx="0.2" weighty="0.1">
+ <Table>
+ <row>
+ <cell fill="horizontal">
+ <JLabel text="isisfish.common.strategies"/>
+ </cell>
+ </row>
+ <row>
+ <cell fill="both" weightx="1.0" weighty="1.0">
+ <JScrollPane minimumSize='{new Dimension(0,0)}' preferredSize='{new Dimension(0,0)}'>
+ <JList id="listSimulParamsStrategies" selectionMode="2"/>
+ </JScrollPane>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ <cell fill="both" weightx="0.4" weighty="0.1">
+ <Table>
+ <row>
+ <cell fill="horizontal">
+ <JLabel text="isisfish.common.populations"/>
+ </cell>
+ </row>
+ <row>
+ <cell fill="both" weightx="1.0" weighty="1.0">
+ <JScrollPane minimumSize='{new Dimension(0,0)}' preferredSize='{new Dimension(0,0)}'>
+ <JList id="listSimulParamsPopulations" selectionMode="2"/>
+ </JScrollPane>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ <cell fill="both" weightx="0.4" weighty="0.1">
+ <Table>
+ <row>
+ <cell fill="horizontal">
+ <JLabel text="isisfish.common.rules"/>
+ </cell>
+ </row>
+ <row>
+ <cell fill="horizontal">
+ <JComboBox id="fieldSimulParamsMesuresSelect"/>
+ </cell>
+ </row>
+ <row>
+ <cell fill="both" weightx="1.0" weighty="1.0">
+ <JScrollPane minimumSize='{new Dimension(0,0)}' preferredSize='{new Dimension(0,0)}'>
+ <JList id="listSimulParamsMesuresList" selectionMode="0"/>
+ </JScrollPane>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ <cell fill="both" weighty="0.1">
+ <Table>
+ <row>
+ <cell fill="horizontal">
+ <JLabel text=" " minimumSize='{new Dimension(2,15)}' preferredSize='{new Dimension(2,15)}'/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal'>
+ <JButton id="buttonSimulParamsMesuresAdd" text="isisfish.common.add"/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal'>
+ <JButton id="buttonSimulParamsMesuresRemove" text="isisfish.common.remove"/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal'>
+ <JButton id="buttonSimulParamsMesuresClear" text="isisfish.common.clear"/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='both' weighty="1.0">
+ <JPanel/>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ </row>
+ <row>
+ <cell columns="4" fill="both" weightx="1.0" weighty="0.6">
+ <JTabbedPane minimumSize='{new Dimension(0,0)}' preferredSize='{new Dimension(0,0)}'>
+ <tab title="isisfish.params.ruleParameters">
+ <JTable id="simulParamsRules" name="isisfish.params.ruleParameters">
+ </JTable>
+ </tab>
+ </JTabbedPane>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ </row>
+ <row>
+ <cell fill="horizontal" weightx="1.0">
+ <Table>
+ <row>
+ <cell fill="horizontal" weightx="0.3">
+ <JCheckBox text="isisfish.params.usePreSimulationScript" id="fieldUseSimulPreScripts"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.3">
+ <JCheckBox text="isisfish.params.useAnalysePlan" id="fieldSimulUseAnalysePlan"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.3">
+ <JCheckBox text="isisfish.params.onlyExportSimulation" id="fieldSimulOnlyExport"/>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ </row>
+ <row>
+ <cell fill="horizontal" weightx="1.0">
+ <Table>
+ <row>
+ <cell>
+ <JLabel id="lblLauncher" text="isisfish.params.lblLauncher"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.5">
+ <JComboBox id="comboSelLauncher"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.5">
+ <JButton id="buttonSimulParamsSimulate" text="isisfish.common.simulate"/>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ </row>
+</Table>
+<!-- </JPanel> -->
\ No newline at end of file
1
0
r1334 - branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
Sept. 12, 2008
Author: sletellier
Date: 2008-09-12 15:36:31 +0000 (Fri, 12 Sep 2008)
New Revision: 1334
Added:
branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx
Log:
Interface JAXX
Copied: branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx (from rev 1313, branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/Export2.jaxx)
===================================================================
--- branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx (rev 0)
+++ branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx 2008-09-12 15:36:31 UTC (rev 1334)
@@ -0,0 +1,40 @@
+
+<Table>
+ <row>
+ <cell columns="4" fill="both" weightx="1.0" weighty="1.0">
+ <JScrollPane>
+ <JList id="listSimulExportChoose" selectionMode="2">
+<!-- Fixme : ListModel
+ <ListModel origin="$ExportNames"/>
+ <ListSelectionEvents onValueChanged="Update($listSimulExportChoose/selectedValues, $SimulationParameter/exportNames)"/>
+ <ListRenderer>
+ <SimpleToolTipListRenderer origin='fr.ifremer.isisfish.ui.simulator.ToolTipListModelFactory.createExportClassDocsModel($ExportNames)'/>
+ </ListRenderer>
+-->
+ </JList>
+ </JScrollPane>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel text="isisfish.export.directory"/>
+ </cell>
+ <cell fill="horizontal" weightx="1.0">
+ <JTextField id="fieldSimulExportFolder"/>
+ </cell>
+ <cell>
+ <JButton text="isisfish.common.ellipsis"/>
+<!--
+actionCommand="update(org.codelutin.util.FileUtil.getDirectory(), $SimulationParameter/exportDirectory);refreshView($fieldSimulExportFolder)"
+-->
+ </cell>
+ <cell>
+ <JButton text="isisfish.common.saveNextSimulation"/>
+ </cell>
+ </row>
+
+<!--
+actionCommand="simulator.SimulatorAction.saveExport($SimulationParameter/exportDirectory, $SimulationParameter/exportNames)"
+-->
+</Table>
+
1
0
r1333 - branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
Sept. 12, 2008
Author: sletellier
Date: 2008-09-12 15:36:23 +0000 (Fri, 12 Sep 2008)
New Revision: 1333
Added:
branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx
Log:
Interface JAXX
Copied: branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx (from rev 1313, branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/AdvancedParams2.jaxx)
===================================================================
--- branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx (rev 0)
+++ branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx 2008-09-12 15:36:23 UTC (rev 1333)
@@ -0,0 +1,134 @@
+<Table>
+ <row>
+ <cell fill="horizontal" weightx="0.16">
+ <Table>
+ <row>
+ <cell>
+ <JLabel text="isisfish.advancedParams.simulatorUse"/>
+ </cell>
+ <cell fill="horizontal" weightx="1.0">
+ <JPanel/>
+ </cell>
+ </row>
+ </Table>
+ </cell>
+ <cell columns="5" fill="horizontal" weightx="0.84">
+ <JComboBox id="fieldSimulAdvParamsSimulatorSelect"/>
+ </cell>
+ </row>
+ <row>
+ <cell fill="horizontal" weightx="0.2">
+ <JPanel/>
+ </cell>
+ <cell columns="2" fill="horizontal" weightx="0.3">
+ <JCheckBox text="isisfish.advancedParams.simulationStatistique" id="fieldSimulationStatistique"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.2">
+ <JPanel/>
+ </cell>
+ <cell columns="2" fill="horizontal" weightx="0.3">
+ <JCheckBox text="isisfish.advancedParams.simulationCache" id="fieldSimulationCache"/>
+ </cell>
+ </row>
+ <row>
+ <cell columns="2" fill="horizontal" weightx="0.2">
+ <JLabel text="isisfish.advancedParams.simulLevelLogger"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.2">
+ <JRadioButton id="fieldSimulAdvParamsSimulLoggerError" text="isisfish.common.error" buttonGroup="fieldSimulAdvParamsSimulLoggerGroup"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.2">
+ <JRadioButton id="fieldSimulAdvParamsSimulLoggerWarn" text="isisfish.common.warn" buttonGroup="fieldSimulAdvParamsSimulLoggerGroup"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.2">
+ <JRadioButton id="fieldSimulAdvParamsSimulLoggerInfo" text="isisfish.common.info" buttonGroup="fieldSimulAdvParamsSimulLoggerGroup"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.2">
+ <JRadioButton id="fieldSimulAdvParamsSimulLoggerDebug" text="isisfish.common.debug" buttonGroup="fieldSimulAdvParamsSimulLoggerGroup"/>
+ </cell>
+ </row>
+ <row>
+ <cell columns="2" fill="horizontal" weightx="0.2">
+ <JLabel text="isisfish.advancedParams.scriptLevelLogger"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.2">
+ <JRadioButton id="fieldSimulAdvParamsScriptLoggerError" text="isisfish.common.error" buttonGroup="fieldSimulAdvParamsScriptLoggerGroup"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.2">
+ <JRadioButton id="fieldSimulAdvParamsScriptLoggerWarn" text="isisfish.common.warn" buttonGroup="fieldSimulAdvParamsScriptLoggerGroup"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.2">
+ <JRadioButton id="fieldSimulAdvParamsScriptLoggerInfo" text="isisfish.common.info" buttonGroup="fieldSimulAdvParamsScriptLoggerGroup"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.2">
+ <JRadioButton id="fieldSimulAdvParamsScriptLoggerDebug" text="isisfish.common.debug" buttonGroup="fieldSimulAdvParamsScriptLoggerGroup"/>
+ </cell>
+ </row>
+ <row>
+ <cell columns="2" fill="horizontal" weightx="0.2">
+ <JLabel text="isisfish.advancedParams.libLevelLogger"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.2">
+ <JRadioButton id="fieldSimulAdvParamsLibLoggerError" text="isisfish.common.error" buttonGroup="fieldSimulAdvParamsLibLoggerGroup"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.2">
+ <JRadioButton id="fieldSimulAdvParamsLibLoggerWarn" text="isisfish.common.warn" buttonGroup="fieldSimulAdvParamsLibLoggerGroup"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.2">
+ <JRadioButton id="fieldSimulAdvParamsLibLoggerInfo" text="isisfish.common.info" buttonGroup="fieldSimulAdvParamsLibLoggerGroup"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.2">
+ <JRadioButton id="fieldSimulAdvParamsLibLoggerDebug" text="isisfish.common.debug" buttonGroup="fieldSimulAdvParamsLibLoggerGroup"/>
+ </cell>
+ </row>
+ <row>
+ <cell columns="6" fill="horizontal" weightx="1.0">
+ <JLabel text="isisfish.advancedParams.freeParameters" horizontalAlignment="0"/>
+ </cell>
+ </row>
+ <row>
+ <cell fill="horizontal" weightx="0.25">
+ <JLabel text="isisfish.common.tag"/>
+ </cell>
+ <cell columns="2" fill="horizontal" weightx="0.25">
+ <JTextField id="fieldTag"/>
+ </cell>
+ <cell fill="horizontal" weightx="0.25">
+ <JLabel text="isisfish.common.value"/>
+ </cell>
+ <cell columns="2" fill="horizontal" weightx="0.25">
+ <JTextField id="fieldValue"/>
+ </cell>
+ </row>
+ <row>
+ <cell columns="6" fill="horizontal" weightx="1.0">
+ <JButton text="isisfish.common.add"/>
+<!--
+actionCommand="simulator.SimulatorAction.addTagValue($SimulationParameter, $fieldTag/text, $fieldValue/text);refreshView($tableTagValue)"
+-->
+ </cell>
+ </row>
+ <row>
+ <cell columns="6" fill="both" weightx="1.0" weighty="1.0">
+ <JScrollPane>
+ <JTable id="tableTagValue"/>
+ </JScrollPane>
+ </cell>
+ </row>
+ <row>
+ <cell columns="6" fill="horizontal" weightx="1.0">
+ <JButton text="isisfish.common.remove"/>
+<!--
+actionCommand="simulator.SimulatorAction.removeTagValue($SimulationParameter, getValueAt($tableTagValue, $tableTagValue/selectedRow, 0));refreshView($tableTagValue)"
+-->
+ </cell>
+ </row>
+ <row>
+ <cell columns="6" fill="horizontal" weightx="1.0">
+ <JButton text="isisfish.common.saveNextSimulation"/>
+<!--
+actionCommand="simulator.SimulatorAction.saveTagValue($SimulationParameter/tagValue);simulator.SimulatorAction.saveSimulatorChoice($fieldSimulAdvParamsSimulatorSelect/selectedItem, $fieldSimulAdvParamsSimulatorLocal/selected)"
+-->
+ </cell>
+ </row>
+</Table>
\ No newline at end of file
1
0
r1332 - branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
by sletellier@users.labs.libre-entreprise.org Sept. 12, 2008
Sept. 12, 2008
Author: sletellier
Date: 2008-09-12 15:34:06 +0000 (Fri, 12 Sep 2008)
New Revision: 1332
Added:
branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/WelcomeUI.jaxx
Log:
Interface JAXX
Copied: branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/WelcomeUI.jaxx (from rev 1313, branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/Welcome2.jaxx)
===================================================================
--- branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/WelcomeUI.jaxx (rev 0)
+++ branches/isis-fish-3.2.1/src/uimodel/fr/ifremer/isisfish/ui/WelcomeUI.jaxx 2008-09-12 15:34:06 UTC (rev 1332)
@@ -0,0 +1,133 @@
+<Application title="isisfish.welcome.title" size='{new Dimension(800,600)}' resizable="true" location='{new Point(0,23)}' layout='{new BorderLayout()}'>
+ <script>
+ public static void main(String[] args) {
+ org.codelutin.i18n.I18n.init();
+ new WelcomeUI().setVisible(true);
+ }
+ </script>
+
+ <JMenuBar>
+ <JMenu text='isisfish.welcome.menu.file'>
+<!--
+mnemonic="{'H'}"
+-->
+ <JMenuItem text="isisfish.welcome.menu.synchro" accelerator="accSync"/>
+<!--
+icon="imgSync" mnemonic="mnSync"
+ActionCommand="thread:Welcome.updateVCS()"
+-->
+ <JSeparator/>
+ <JMenuItem text="isisfish.welcome.menu.close" accelerator="accClose"/>
+<!--
+ icon="imgClose" mnemonic="mnClose"
+ActionCommand="close"
+-->
+ </JMenu>
+ <JMenu text="isisfish.welcome.menu.frame">
+<!--
+mnemonic="mnFrame"
+-->
+ <JMenuItem text="isisfish.welcome.menu.simulation" accelerator="accSimul"
+ onActionPerformed='new fr.ifremer.isisfish.ui.simulator.Simul2()'/>
+<!--
+icon="imgSimul" mnemonic="mnSimul"
+ActionCommand="OutputView('simulator/Simul.xml')"
+-->
+ <JMenuItem text="isisfish.welcome.menu.result" accelerator="accResult"/>
+<!--
+ icon="imgResult" mnemonic="mnResult"
+ ActionCommand="Welcome.openResultView()"
+-->
+ <JMenuItem text="isisfish.welcome.menu.input" accelerator="accInput"/>
+<!--
+ icon="imgInput" mnemonic="mnInput"
+ActionCommand="Welcome.openInputView()"
+-->
+ <JMenuItem text="isisfish.welcome.menu.script" accelerator="accScript"
+ onActionPerformed='new fr.ifremer.isisfish.ui.script.Script2()'/>
+<!--
+con="imgScript" mnemonic="mnScript"
+ActionCommand="OutputView('script/Script.xml')"
+-->
+ <JSeparator/>
+ <JMenuItem text="isisfish.welcome.menu.queue" accelerator="accSimulQueue"
+ onActionPerformed='new fr.ifremer.isisfish.ui.simulator.SimulQueue2()'/>
+<!--
+ icon="imgSimulQueue" mnemonic="mnSimulQueue"
+ActionCommand="OutputView('simulator/SimulQueue.xml')"
+-->
+ <JSeparator/>
+ <JMenu text="isisfish.welcome.menu.configuration">
+<!--
+icon="imgConfig" mnemonic="mnConfig"
+-->
+ <JMenuItem text="isisfish.welcome.menu.configuration" accelerator="accConfig"/>
+<!--
+ icon="imgConfig" mnemonic="mnConfig"
+ ActionCommand="Welcome.showConfig()"
+-->
+ <JMenuItem text="isisfish.welcome.menu.vcs.configuration" accelerator="accVCSConfig"/>
+<!--
+icon="imgVCSConfig" mnemonic="mnVCSConfig"
+ActionCommand="fr.ifremer.isisfish.versionning.ui.VCSConfigUI.doLaunch()"
+-->
+ </JMenu>
+ </JMenu>
+ <JMenu text="isisfish.welcome.menu.help">
+<!--
+mnemonic="mnHelp"
+-->
+ <JMenuItem text="isisfish.welcome.menu.help" accelerator="accHelp"/>
+<!--
+icon="imgHelp" mnemonic="mnHelp"
+ActionCommand="help"
+-->
+ <JSeparator/>
+ <JMenuItem text="isisfish.welcome.menu.monitor" accelerator="accLogMonitor"
+ onActionPerformed='new fr.ifremer.isisfish.ui.ApplicationMonitor2()'/>
+<!--
+icon="imgLogMonitor" mnemonic="mnLogMonitor"
+ActionCommand="OutputView('ApplicationMonitor.xml')"
+-->
+ <JSeparator/>
+ <JMenuItem text="isisfish.welcome.menu.about" accelerator="accAbout"/>
+<!--
+ icon="imgAbout" mnemonic="mnAbout"
+ActionCommand="about"
+-->
+ </JMenu>
+ </JMenuBar>
+ <JTabbedPane id="simulTabs" tabPlacement='{JTabbedPane.LEFT}'>
+ <tab title='' icon='{new ImageIcon(getClass().getResource("/images/simulation.gif"))}'><fr.ifremer.isisfish.ui.simulator.SimulUI/></tab>
+ <tab title='' icon='{new ImageIcon(getClass().getResource("/images/calc.gif"))}'><StatusBarUI/></tab>
+ <tab title='' icon='{new ImageIcon(getClass().getResource("/images/book.gif"))}'><StatusBarUI/></tab>
+ <tab title='' icon='{new ImageIcon(getClass().getResource("/images/bookPage.gif"))}'><fr.ifremer.isisfish.ui.script.ScriptUI/></tab>
+ </JTabbedPane>
+
+
+ <!--
+ <JPanel layout='{new XMLGridLayout("fr/ifremer/isisfish/ui/Welcome.xgl")}'>
+
+ <JButton icon='{new ImageIcon(getClass().getResource("/images/simulation.jpg"))}'
+ background="white" constraints='"simul"' onActionPerformed='new fr.ifremer.isisfish.ui.simulator.Simul2()'/>
+<! - -
+ border="EmptyBorder(6,6,6,6)" (pour tous)
+- - >
+ <JButton icon='{new ImageIcon(getClass().getResource("/images/calc.jpg"))}'
+ background="white" constraints='"result"'/>
+<! - -
+ onActionPerformed='new fr.ifremer.isisfish.ui.result.ResultView()'
+- - >
+ <JButton icon='{new ImageIcon(getClass().getResource("/images/book.jpg"))}'
+ background="white" constraints='"input"'/>
+<! - -
+ onActionPerformed='new fr.ifremer.isisfish.ui.Welcome().openInputView()'
+- - >
+ <JButton icon='{new ImageIcon(getClass().getResource("/images/bookPage.jpg"))}'
+ background="white" constraints='"script"' onActionPerformed='new fr.ifremer.isisfish.ui.script.Script2()'/>
+ </JPanel>
+ -->
+ <JPanel constraints="BorderLayout.SOUTH">
+ <StatusBarUI/>
+ </JPanel>
+</Application>
1
0
Author: sletellier
Date: 2008-09-02 13:35:17 +0000 (Tue, 02 Sep 2008)
New Revision: 1331
Modified:
trunk/isis-fish/pom.xml
Log:
pom stable
Modified: trunk/isis-fish/pom.xml
===================================================================
--- trunk/isis-fish/pom.xml 2008-09-01 08:49:17 UTC (rev 1330)
+++ trunk/isis-fish/pom.xml 2008-09-02 13:35:17 UTC (rev 1331)
@@ -436,7 +436,7 @@
</executions>
</plugin>
<plugin>
- <groupId>lutinplugin</groupId>
+ <groupId>org.codelutin.plugin</groupId>
<artifactId>maven-i18n-plugin</artifactId>
<!--
<version>0.4</version>
@@ -447,6 +447,7 @@
<param>en_GB</param>
</bundles>
<keysModifier>false</keysModifier>
+ <encoding>UTF-8</encoding>
<entries>
<entry>
<basedir>
@@ -526,7 +527,7 @@
<dependency>
<groupId>org.codelutin</groupId>
<artifactId>lutinutil</artifactId>
- <version>[0.29,]</version>
+ <version>0.30</version>
<scope>compile</scope>
</dependency>
<!--
1
0
r1330 - trunk/isis-fish/src/uimodel/fr/ifremer/isisfish/ui/simulator
by bpoussin@users.labs.libre-entreprise.org Sept. 1, 2008
by bpoussin@users.labs.libre-entreprise.org Sept. 1, 2008
Sept. 1, 2008
Author: bpoussin
Date: 2008-09-01 08:49:17 +0000 (Mon, 01 Sep 2008)
New Revision: 1330
Modified:
trunk/isis-fish/src/uimodel/fr/ifremer/isisfish/ui/simulator/Params.xml
Log:
suppression d'un ajout au context qui ne sert plus
Modified: trunk/isis-fish/src/uimodel/fr/ifremer/isisfish/ui/simulator/Params.xml
===================================================================
--- trunk/isis-fish/src/uimodel/fr/ifremer/isisfish/ui/simulator/Params.xml 2008-09-01 08:48:20 UTC (rev 1329)
+++ trunk/isis-fish/src/uimodel/fr/ifremer/isisfish/ui/simulator/Params.xml 2008-09-01 08:49:17 UTC (rev 1330)
@@ -3,7 +3,6 @@
<panel id="simulParams" name="isisfish.params.title" constraints="simulParams" layout="XMLGridLayout(fr/ifremer/isisfish/ui/simulator/Params.xgl)">
<ContextDataSource id="RuleNames" context="current" source="RuleNames"/>
- <ContextDataSource id="SimulationService" context="current" source="SimulationService"/>
<label constraints="labelSimulParamsSelect" text="isisfish.params.loadOldSimulation"/>
<panel constraints="panelSimulParamsSelectFilterActions">
1
0
r1329 - in trunk/isis-fish: doc src/resources src/test/fr/ifremer/isisfish/simulator
by bpoussin@users.labs.libre-entreprise.org Sept. 1, 2008
by bpoussin@users.labs.libre-entreprise.org Sept. 1, 2008
Sept. 1, 2008
Author: bpoussin
Date: 2008-09-01 08:48:20 +0000 (Mon, 01 Sep 2008)
New Revision: 1329
Removed:
trunk/isis-fish/src/resources/IsisFish_init.properties
Modified:
trunk/isis-fish/doc/Todo.rst
trunk/isis-fish/src/test/fr/ifremer/isisfish/simulator/SimulationHelperTest.java
Log:
- suppression de vieux fichiers
- mise en commentaire d'un test qui ne passe plus
Modified: trunk/isis-fish/doc/Todo.rst
===================================================================
--- trunk/isis-fish/doc/Todo.rst 2008-09-01 08:43:55 UTC (rev 1328)
+++ trunk/isis-fish/doc/Todo.rst 2008-09-01 08:48:20 UTC (rev 1329)
@@ -1,20 +1,21 @@
Pour la version 3.2.0.0:
-- suppression du la queue de simulation (et du bouton associe)
+(d)- suppression du la queue de simulation (et du bouton associe)
(d)- parsing d'option
(d)- equation TechnicalEfficiency
(d)- equation Inactivity
(d)- algo avec maille
-- lancement de simulation dans un process extern qui ecrit sont etat dans un fichier
-- suivi de l'etat des fichiers par un thread.
(d)- passage en I18nf
(d)- prise en compte modif fichier isis-config existant
(d)- vcs (attention au merge avec conflit, en svn il faut faire un resolv conflict)
(d)- interface d'upgrade de script pour nouvelle implatantion vcs
+(d)- nouvelle migration de int -> double StrategyMonthInfo
+- lancement de simulation dans un process extern qui ecrit sont etat dans un fichier
+- suivi de l'etat des fichiers par un thread.
- mode remote sur caparmor (type de simulation plugable, inprocess, batch, caparmor, remote, ...)
- sauvegarde des resultats plugable par listener (bd, mexico XML, mexico binaire, socket, ...)
- passage en UTF-8
- lors de l'import d'une region le service de migration topia ne se met pas en route
-- nouvelle migration de int -> double StrategyMonthInfo
+- Pour les regles qui ont des parametres File, prevoir de les mettres aussi dans les simulatioons (redirection a l'execution du chemin ? sans doute juste avant l'init de la regle)
Pour la version 3.2.0.1:
- jaxx + validator
Deleted: trunk/isis-fish/src/resources/IsisFish_init.properties
===================================================================
--- trunk/isis-fish/src/resources/IsisFish_init.properties 2008-09-01 08:43:55 UTC (rev 1328)
+++ trunk/isis-fish/src/resources/IsisFish_init.properties 2008-09-01 08:48:20 UTC (rev 1329)
@@ -1,262 +0,0 @@
-###
-### script, data options
-###
-addScript.option.definition=--add|-a <analyseplans|exports|formules=String|rules|scripts|simulators> <file:File+> [check|force]
-exportData.option.definition=--export|-o <fileZip:NewFile> <region|simulation> <name:String> [force]
-exportScript.option.definition=--export-script|-os <fileZip:NewFile> <analyseplans|exports|formules=String|rules|scripts|simulators> [filter:String] [force]
-import.option.definition=--import|-i <region|simulation|script> <fileZip:File> [force]
-importAndRenameRegion.option.definition=--importAndRenameRegion <regionFile:File> <name:String> [force]
-list.option.definition=--list|-l * <analyseplans|exports|formules|regions|rules|scripts|simulations|simulators> [filter:String]
-simulate.option.definition=--simulate <simulationId:String> [simulationParameter=File] [simulation=File] [region=File]
-
-###
-### vcs options
-###
-createSshKey.option.definition=--create-ssh-key|-c [force] [privateKeyFile:NewFile]
-mavenFile.option.definition=--mavenFile
-sshKeyFile.option.definition=--ssh-key-file|-k <privateKeyFile:File>
-update.option.definition=--update|-u <value:Boolean>
-vcsAddRemove.option.definition=--vcs2 <add|remove> <file:File+>
-vcsUpdateCommitState.option.definition=--vcs <update|commit|state> [file:File*]
-
-
-###
-### les propri\u00E9t\u00E9s de la configuration principal obligatoires pour commandline
-###
-
-#main.config.definition.configFileName=java.io.File:.isis-config-3
-#main.config.modifiers.configFileName=final,mandatory,transient
-
-#main.config.definition.encoding=java.lang.String:ISO-8859-1
-#main.config.modifiers.encoding=final,static,mandatory
-
-#main.config.definition.locale=java.util.Locale:fr_FR
-#main.config.modifiers.locale=mandatory
-
-#main.config.definition.projectName=java.lang.String:Isis-Fish
-#main.config.modifiers.projectName=final,static,mandatory
-
-#main.config.definition.version=org.codelutin.util.VersionNumber:3.1.2
-#main.config.modifiers.version=final,static,mandatory
-
-###
-### les propri\u00E9t\u00E9s de la configuration principal
-###
-
-main.config.definition.compileDirectory=java.io.File:isis-build
-main.config.modifiers.compileDirectory=final,mandatory
-
-main.config.definition.dataBackupFilename=java.lang.String:data-backup.sql.gz
-main.config.modifiers.dataBackupFilename=final,mandatory,static,transient
-
-main.config.definition.defaultBackupDirectory=java.io.File:isis-backup
-main.config.modifiers.defaultBackupDirectory=final,mandatory
-
-main.config.definition.defaultExportDirectory=java.io.File:isis-export
-main.config.modifiers.defaultExportDirectory=mandatory
-
-main.config.definition.defaultExportNames=java.lang.String
-main.config.modifiers.defaultExportNames=
-
-main.config.definition.defaultMapFile=java.lang.String:maps/vmap_area_thin
-main.config.modifiers.defaultMapFile=final,mandatory,static,transient
-
-main.config.definition.defaultResultNames=java.lang.String
-main.config.modifiers.defaultResultNames=
-
-main.config.definition.defaultSimulator=java.lang.String:DefaultSimulator.java
-main.config.modifiers.defaultSimulator=mandatory
-
-main.config.definition.defaultTagValue=java.lang.String
-main.config.modifiers.defaultTagValue=
-
-main.config.definition.javadocURL=java.net.URL:http://isis-fish.labs.libre-entreprise.org/apidocs/
-main.config.modifiers.javadocURL=final,mandatory
-
-main.config.definition.localSimulator=java.lang.Boolean:true
-main.config.modifiers.localSimulator=mandatory
-
-main.config.definition.login=java.lang.String:anonymous
-main.config.modifiers.login=mandatory
-
-main.config.definition.password=java.lang.String:guest
-main.config.modifiers.password=mandatory
-
-main.config.definition.regionMap=java.lang.String:maps
-main.config.modifiers.regionMap=final,mandatory,static,transient
-
-main.config.definition.resultExport=java.lang.String:resultExports
-main.config.modifiers.resultExport=final,mandatory,static,transient
-
-main.config.definition.simulationInformationFilename=java.lang.String:information
-main.config.modifiers.simulationInformationFilename=final,mandatory,static,transient
-
-main.config.definition.simulationParametersFilename=java.lang.String:parameters.properties
-main.config.modifiers.simulationParametersFilename=final,mandatory,static,transient
-
-main.config.definition.simulationReportMail=java.lang.String:isis-fish-bugreport at lists.labs.libre-entreprise.org
-main.config.modifiers.simulationReportMail=mandatory
-
-main.config.definition.simulationResultXmlFilename=java.lang.String:isis-mexico-output.xml
-main.config.modifiers.simulationResultXmlFilename=final,mandatory,static,transient
-
-main.config.definition.simulationServer=java.net.URL:http://simulateur.ifremer.fr:9090
-main.config.modifiers.simulationServer=mandatory
-
-main.config.definition.simulationShowOnlyError=java.lang.Boolean:false
-main.config.modifiers.simulationShowOnlyError=
-
-main.config.definition.simulationShowOnlyQueue=java.lang.Boolean:false
-main.config.modifiers.simulationShowOnlyQueue=
-
-main.config.definition.smtpServer=java.lang.String:smtp
-main.config.modifiers.smtpServer=mandatory
-
-main.config.definition.userMail=java.lang.String
-main.config.modifiers.userMail=mandatory
-
-main.config.definition.userName=java.lang.String
-main.config.modifiers.userName=mandatory
-
-
-###
-### les propri\u00E9t\u00E9s de la configuration vcs
-###
-vcs.config.definition.localDatabasePath=java.io.File:isis-database-3
-vcs.config.modifiers.localDatabasePath=mandatory
-#TODO Should use application version
-vcs.config.definition.databaseVersion=org.codelutin.util.VersionNumber:3.1.3
-vcs.config.modifiers.databaseVersion=final,mandatory
-
-vcs.config.definition.hostName=java.lang.String:labs.libre-entreprise.org
-vcs.config.modifiers.hostName=mandatory
-
-#vcs.config.definition.localDatabase=java.lang.String:isis-database-3
-#vcs.config.modifiers.localDatabase=final,mandatory
-
-#vcs.config.definition.localPath=java.io.File
-#vcs.config.definition.localPath=java.io.File:isis-database-3
-#vcs.config.modifiers.localPath=final,mandatory
-
-vcs.config.definition.remoteDatabase=java.lang.String
-vcs.config.modifiers.remoteDatabase=final,mandatory
-
-vcs.config.definition.remotePath=java.lang.String:svnroot/isis-fish-data
-vcs.config.modifiers.remotePath=final,mandatory
-
-vcs.config.definition.useSshConnexion=java.lang.Boolean:false
-vcs.config.modifiers.useSshConnexion=mandatory
-
-vcs.config.definition.keyFile=java.io.File:.ssh/id_dsa
-vcs.config.modifiers.keyFile=
-
-vcs.config.definition.noPassPhrase=java.lang.Boolean:true
-vcs.config.modifiers.noPassPhrase=
-
-#vcs.config.definition.passphrase=java.lang.char[]
-#TODO Deal with char[] type
-vcs.config.definition.passphrase=java.lang.String
-vcs.config.modifiers.passphrase=transient
-
-vcs.config.definition.type=org.codelutin.vcs.VCSType:SVN
-vcs.config.modifiers.type=final,mandatory
-
-vcs.config.definition.typeRepo=org.codelutin.vcs.VCSTypeRepo:TAG
-vcs.config.modifiers.typeRepo=final,mandatory
-
-vcs.config.definition.userName=java.lang.String:anonymous
-vcs.config.modifiers.userName=mandatory
-
-###
-### les propri\u00E9t\u00E9s de la configuration h2
-###
-# On utilise pas cglib pour eviter les OutOfMemory: PermGen
-h2.config.definition.h2BytecodeProvider=java.lang.String:javassist
-h2.config.modifiers.h2BytecodeProvider=final,mandatory,static,transient
-
-h2.config.definition.h2CurrentSessionContextClass=java.lang.String:thread
-h2.config.modifiers.h2CurrentSessionContextClass=final,mandatory,static,transient
-
-h2.config.definition.h2Pass=java.lang.String:
-h2.config.modifiers.h2Pass=final,static,transient
-
-h2.config.definition.h2User=java.lang.String:sa
-h2.config.modifiers.h2User=final,static,transient
-
-h2.config.modifiers.h2Type=final,mandatory,static,transient
-# TODO Use class type when we can use the project classpath in commandline plugin
-h2.config.modifiers.h2Dialect=final,mandatory,static,transient
-# TODO Use class type when we can use the project classpath in commandline plugin
-h2.config.modifiers.h2Driver=final,mandatory,static,transient
-h2.config.modifiers.h2URL=final,mandatory,static,transient
-
-# pour utiliser h2
-h2.config.definition.h2Type=org.codelutin.util.H2TypeEnum:h2
-h2.config.definition.h2Dialect=java.lang.String:org.hibernate.dialect.H2Dialect
-h2.config.definition.h2Driver=java.lang.String:org.h2.Driver
-h2.config.definition.h2URL=java.lang.String:jdbc:h2:file:{0};FILE_LOCK=file;MODE=hsqldb;DEFAULT_LOCK_TIMEOUT=1000;DB_CLOSE_DELAY=0;LOCK_MODE=3;LOG=1;TRACE_LEVEL_FILE=0;TRACE_LEVEL_SYSTEM_OUT=1
-
-# pour utiliser Derby
-#h2.config.definition.h2Type=org.codelutin.util.H2TypeEnum:derby
-#h2.config.definition.h2Dialect=java.lang.String:org.hibernate.dialect.DerbyDialect
-#h2.config.definition.h2Driver=java.lang.String:org.apache.derby.jdbc.EmbeddedDriver
-#h2.config.definition.h2URL=java.lang.String:jdbc:derby:{0};create=true
-
-# pour utiliser HSQL
-#h2.config.definition.h2Type=org.codelutin.util.H2TypeEnum:hsql
-#h2.config.definition.h2Dialect=java.lang.String:org.hibernate.dialect.HSQLDialect
-#h2.config.definition.h2Driver=java.lang.String:org.hsqldb.jdbcDriver
-#h2.config.definition.h2URL=java.lang.String:jdbc:hsqldb:file:{0};shutdown=true
-
-# pour utiliser McKoi
-#h2.config.definition.h2Type=org.codelutin.util.H2TypeEnum:mckoi
-#h2.config.definition.h2Dialect=java.lang.String:org.hibernate.dialect.MckoiDialect
-#h2.config.definition.h2Driver=java.lang.String:com.mckoi.JDBCDriver
-#h2.config.definition.h2URL=java.lang.String:jdbc:mckoi:local://{0}?create_or_boot=true&database_path={1}&log_path={1}&use_nio_if_available=enabled&dont_synch_filesystem=enabled&io_safety_level=3
-
-# On utilise pas cglib pour eviter les OutOfMemory: PermGen
-h2.config.definition.h2MemBytecodeProvider=java.lang.String:javassist
-h2.config.modifiers.h2MemBytecodeProvider=final,mandatory,static,transient
-
-h2.config.definition.h2MemPass=java.lang.String:
-h2.config.modifiers.h2MemPass=final,mandatory,static,transient
-
-h2.config.definition.h2MemUser=java.lang.String:sa
-h2.config.modifiers.h2MemUser=final,mandatory,static,transient
-
-h2.config.definition.h2MemURL=java.lang.String:jdbc:h2:mem:{0};MODE=hsqldb;DEFAULT_LOCK_TIMEOUT=1000;DB_CLOSE_DELAY=0;LOCK_MODE=3;LOG=0;TRACE_LEVEL_FILE=0;TRACE_LEVEL_SYSTEM_OUT=1
-h2.config.modifiers.h2MemURL=final,mandatory,static,transient
-# TODO Use class type when we can use the project classpath in commandline plugin
-
-h2.config.definition.h2MemDialect=java.lang.String:org.hibernate.dialect.H2Dialect
-h2.config.modifiers.h2MemDialect=final,mandatory,static,transient
-
-# TODO Use class type when we can use the project classpath in commandline plugin
-h2.config.definition.h2MemDriver=java.lang.String:org.h2.Driver
-h2.config.modifiers.h2MemDriver=final,mandatory,static,transient
-
-h2.config.modifiers.h2MemType=final,mandatory,static,transient
-h2.config.definition.h2MemType=org.codelutin.util.H2TypeEnum:h2
-
-h2.config.definition.migrationApplicationVersion=java.lang.String:1
-h2.config.modifiers.migrationApplicationVersion=final,mandatory,static,transient
-
-# TODO Use class type when we can use the project classpath in commandline plugin
-h2.config.definition.migrationCallBackhandlers=java.lang.String:fr.ifremer.isisfish.datastore.migration.SwingMigrationCallbackHandler
-h2.config.modifiers.migrationCallBackhandlers=final,mandatory,static,transient
-
-h2.config.definition.migrationModelNames=java.lang.String:IsisFish
-h2.config.modifiers.migrationModelNames=final,mandatory,static,transient
-
-h2.config.definition.migrationPreviousMappingDirectory=java.lang.String:oldmappings
-h2.config.modifiers.migrationPreviousMappingDirectory=final,mandatory,static,transient
-
-# TODO Use class type when we can use the project classpath in commandline plugin
-h2.config.definition.migrationTopiaService=java.lang.String:org.codelutin.topia.migration.TopiaMigrationServiceImpl
-h2.config.modifiers.migrationTopiaService=final,mandatory,static,transient
-
-h2.config.definition.storageData=java.lang.String:data
-h2.config.modifiers.storageData=final,mandatory,static,transient
-
-h2.config.definition.updateschemaDatabase=java.lang.Boolean:true
-h2.config.modifiers.updateschemaDatabase=final,mandatory,static,transient
Modified: trunk/isis-fish/src/test/fr/ifremer/isisfish/simulator/SimulationHelperTest.java
===================================================================
--- trunk/isis-fish/src/test/fr/ifremer/isisfish/simulator/SimulationHelperTest.java 2008-09-01 08:43:55 UTC (rev 1328)
+++ trunk/isis-fish/src/test/fr/ifremer/isisfish/simulator/SimulationHelperTest.java 2008-09-01 08:48:20 UTC (rev 1329)
@@ -151,7 +151,8 @@
tx.commitTransaction();
// lancement de la simulation
- SimulationHelper.simulate(null, sim);
+ // FIXME a remplacer avec SimulationService
+// SimulationHelper.simulate(null, sim);
// verification qu'on retrouve les memes resulats pour les deux simulations
ResultStorage resultRef = simRef.getResultStorage();
1
0
Author: bpoussin
Date: 2008-09-01 08:43:55 +0000 (Mon, 01 Sep 2008)
New Revision: 1328
Modified:
trunk/isis-fish/pom.xml
Log:
- modif pour avoir les bonnes versions de lib
Modified: trunk/isis-fish/pom.xml
===================================================================
--- trunk/isis-fish/pom.xml 2008-09-01 08:43:06 UTC (rev 1327)
+++ trunk/isis-fish/pom.xml 2008-09-01 08:43:55 UTC (rev 1328)
@@ -163,7 +163,9 @@
<plugin>
<groupId>lutinplugin</groupId>
<artifactId>maven-processor-plugin</artifactId>
+<!--
<version>0.12</version>
+-->
<executions>
<execution>
<id>Processor</id>
@@ -191,7 +193,9 @@
<plugin>
<groupId>lutinplugin</groupId>
<artifactId>maven-generator-plugin</artifactId>
- <version>0.51-SNAPSHOT</version>
+<!--
+ <version>[0.50,]</version>
+-->
<executions>
<execution>
<id>Generator</id>
@@ -238,7 +242,7 @@
<dependency>
<groupId>lutinlib</groupId>
<artifactId>topia</artifactId>
- <version>2.0.26-SNAPSHOT</version>
+ <version>[2.0.25,]</version>
<scope>compile</scope>
</dependency>
</dependencies>
@@ -246,28 +250,41 @@
<plugin>
<groupId>org.codelutin.jaxx</groupId>
<artifactId>maven-jaxx-plugin</artifactId>
- <version>0.1</version>
+<!--
+ <version>[0.2,]</version>
+-->
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
+ <configuration>
+ <src>src/uimodel</src>
+ </configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>lutinlib</groupId>
<artifactId>lutinwidget</artifactId>
- <version>0.10-SNAPSHOT</version>
+ <version>[0.9,]</version>
<scope>compile</scope>
</dependency>
+<!--
<dependency>
- <groupId>org.codelutin.jaxx.provider</groupId>
- <artifactId>swing</artifactId>
+ <groupId>lutinlib</groupId>
+ <artifactId>jaxx</artifactId>
<scope>compile</scope>
- <version>0.1</version>
+ <version>1.1.0</version>
</dependency>
+-->
+ <dependency>
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-swing</artifactId>
+ <scope>compile</scope>
+ <version>[0.2,]</version>
+ </dependency>
</dependencies>
</plugin>
<plugin>
@@ -421,7 +438,9 @@
<plugin>
<groupId>lutinplugin</groupId>
<artifactId>maven-i18n-plugin</artifactId>
+<!--
<version>0.4</version>
+-->
<configuration>
<bundles>
<param>fr_FR</param>
@@ -507,21 +526,21 @@
<dependency>
<groupId>org.codelutin</groupId>
<artifactId>lutinutil</artifactId>
- <version>0.30-SNAPSHOT</version>
+ <version>[0.29,]</version>
<scope>compile</scope>
</dependency>
-
+<!--
<dependency>
<groupId>lutinlib</groupId>
<artifactId>lutinutilextra</artifactId>
- <version>0.1</version>
+ <version>[0.1,]</version>
<scope>compile</scope>
</dependency>
-
+-->
<dependency>
<groupId>lutinlib</groupId>
<artifactId>topia</artifactId>
- <version>2.0.26-SNAPSHOT</version>
+ <version>[2.0.25,]</version>
<scope>compile</scope>
<!-- use javassist instead of cglib -->
<exclusions>
@@ -535,30 +554,31 @@
<dependency>
<groupId>lutinlib</groupId>
<artifactId>topia-service</artifactId>
- <version>0.9-SNAPSHOT</version>
+ <version>[0.8,]</version>
<scope>compile</scope>
</dependency>
<dependency>
- <groupId>lutinlib</groupId>
+ <groupId>org.codelutin</groupId>
<artifactId>lutinmatrix</artifactId>
- <version>0.15</version>
+ <version>[1.0,]</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>lutinlib</groupId>
<artifactId>lutinwidget</artifactId>
- <version>0.10-SNAPSHOT</version>
+ <version>[0.9,]</version>
<scope>compile</scope>
</dependency>
+ <!--
<dependency>
<groupId>lutinlib</groupId>
<artifactId>lutinxml</artifactId>
<version>0.7-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
-
+-->
<!-- librairie commandline
<dependency>
<groupId>org.codelutin.commandline</groupId>
@@ -576,17 +596,18 @@
</dependency>
-->
<!--Jaxx-->
- <!--dependency>
+<!--
+ <dependency>
<groupId>lutinlib</groupId>
<artifactId>jaxx</artifactId>
- <version>1.0.5</version>
+ <version>1.1.0</version>
<scope>compile</scope>
- </dependency-->
-
+ </dependency>
+-->
<dependency>
- <groupId>org.codelutin.jaxx.provider</groupId>
- <artifactId>swing</artifactId>
- <version>0.1</version>
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-swing</artifactId>
+ <version>[0.2,]</version>
<scope>compile</scope>
</dependency>
@@ -621,27 +642,27 @@
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
- <version>2.1</version>
+ <version>[2.1,]</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-math</groupId>
<artifactId>commons-math</artifactId>
- <version>1.1</version>
+ <version>[1.1,]</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
- <version>3.1</version>
+ <version>[3.1,]</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
- <version>1.6.1</version>
+ <version>[1.6.1,]</version>
<scope>compile</scope>
</dependency>
@@ -675,6 +696,7 @@
<scope>compile</scope>
</dependency>
-->
+ <!-- encore utilise pour les pre-scripts -->
<dependency>
<groupId>bsh</groupId>
<artifactId>bsh</artifactId>
@@ -720,7 +742,7 @@
<dependency>
<groupId>lutinlib</groupId>
<artifactId>lutinj2r</artifactId>
- <version>0.1</version>
+ <version>[0.1,]</version>
<scope>compile</scope>
</dependency>
1
0
Author: bpoussin
Date: 2008-09-01 08:43:06 +0000 (Mon, 01 Sep 2008)
New Revision: 1327
Modified:
trunk/isis-fish/changelog
Log:
- ajout de ce qui a ete faut pour le 3.2.0.0
Modified: trunk/isis-fish/changelog
===================================================================
--- trunk/isis-fish/changelog 2008-09-01 08:38:03 UTC (rev 1326)
+++ trunk/isis-fish/changelog 2008-09-01 08:43:06 UTC (rev 1327)
@@ -1,3 +1,9 @@
+isis-fish (3.2.0.0) poussin
+
+ * complete refactoring option, vcs
+ * complete refactoring simulation engin
+ * new launcher type (subprocess, caparmor ...) in progress
+
isis-fish (3.1.3) stable; urgency=high
* bug correction when migration failed, still launch application on a new database
1
0
r1326 - trunk/isis-fish/src/java/fr/ifremer/isisfish
by bpoussin@users.labs.libre-entreprise.org Sept. 1, 2008
by bpoussin@users.labs.libre-entreprise.org Sept. 1, 2008
Sept. 1, 2008
Author: bpoussin
Date: 2008-09-01 08:38:03 +0000 (Mon, 01 Sep 2008)
New Revision: 1326
Added:
trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisConfig.java
Log:
- je ne comprend pas bien pourquoi il a ete supprime :(
Added: trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisConfig.java (rev 0)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisConfig.java 2008-09-01 08:38:03 UTC (rev 1326)
@@ -0,0 +1,684 @@
+/* *##%
+ * Copyright (C) 2002-2008 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
+ * 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;
+
+import static org.codelutin.i18n.I18nf._;
+
+import fr.ifremer.isisfish.actions.ExportAction;
+import fr.ifremer.isisfish.actions.OtherAction;
+import fr.ifremer.isisfish.actions.ImportAction;
+import fr.ifremer.isisfish.actions.SimulationAction;
+import fr.ifremer.isisfish.actions.VCSAction;
+import fr.ifremer.isisfish.simulator.SimulationContext;
+import fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher;
+import fr.ifremer.isisfish.simulator.launcher.SimulationService;
+import fr.ifremer.isisfish.vcs.VCS;
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import org.apache.commons.beanutils.ConvertUtils;
+import org.apache.commons.lang.time.DurationFormatUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.codelutin.util.ApplicationConfig;
+import org.codelutin.util.ArgumentsParserException;
+import org.codelutin.util.StringUtil;
+import org.codelutin.util.VersionNumber;
+
+/**
+ *
+ * @author poussin
+ * @version $Revision: 1310 $
+ *
+ * Last update: $Date: 2008-08-23 00:46:00 +0200 (Sat, 23 Aug 2008) $
+ * by : $Author: bpoussin $
+ */
+public class IsisConfig extends ApplicationConfig {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(IsisConfig.class);
+
+ /** la version du logiciel constitue de l.d.a.r
+ * <li>l: le numero de version du logiciel
+ * <li>d: le numero de version du schema de la base de donnees
+ * <li>a: le numero de version de l'api des scripts
+ * <li>r: le numero de version de de l'interface graphique ou autre modif mineur
+ * <p>
+ * lors de l'increment de l, d, a et r sont remis a 0
+ * lors de l'increment de d, a et r sont remis a 0
+ * lors de l'increment de a, r est remis a 0
+ * <p>
+ * Un changement d'UI ne modifie jamais le numero de version de database
+ * Un changement de schema de base pour lequel on ne peut pas faire de
+ * migration de donnees demande automatiquement un changement de version
+ * d'application.
+ */
+ protected final static VersionNumber version = new VersionNumber(3, 2, 0, 0);
+ protected final static VersionNumber databaseVersion = new VersionNumber(
+ version.getNumber(0), version.getNumber(1));
+ protected final static VersionNumber apiVersion = new VersionNumber(
+ version.getNumber(0), version.getNumber(1), version.getNumber(2));
+
+ public static VersionNumber getVersionNumber() {
+ return version;
+ }
+
+ /**
+ * le nombre global ex: 3.2.0.0
+ * @return
+ */
+ static public String getVersion() {
+ String result = version.toString();
+ return result;
+ }
+
+ /**
+ * La version de la base ex: 3.2
+ * @return
+ */
+ public static VersionNumber getDatabaseVersion() {
+ return databaseVersion;
+ }
+
+ /**
+ * La version de l'api de programmation ex: 3.2.0
+ * @return
+ */
+ public static VersionNumber getApiVersion() {
+ return apiVersion;
+ }
+
+ static final public String COPYRIGHT_TEXT = "Version " + getVersion() + " IFREMER-MAERHA © 2000-2008";
+ static final public String CONFIG_FILENAME = "isis-config-" + version.getNumber(0);
+
+ /** separateur de liste */
+ static final public String SEP = ",";
+ static final public String REPORT_EMAIL = "isis-fish-bugreport at lists.labs.libre-entreprise.org";
+
+ protected transient File backupSessionDirectory = null;
+ protected long startingTime = System.nanoTime();
+
+ public IsisConfig() {
+
+ for (Option o : Option.values()) {
+ setDefaultOption(o.key, o.defaultValue);
+ }
+
+ for (Action a : Action.values()) {
+ for (String alias : a.aliases) {
+ addActionAlias(alias, a.action);
+ }
+ }
+
+ }
+
+ //////////////////////////////////////////////////
+ // Methode d'acces aux options
+ //////////////////////////////////////////////////
+
+ /**
+ * Retourne le repertoire racine de toutes les donnees (script, simulation
+ * region, ...)
+ * @return
+ */
+ public File getDatabaseDirectory() {
+ File result = getOptionAsFile(Option.DATABASE_DIRECTORY.key);
+ return result;
+ }
+
+ /**
+ * retourne le repertoire ou sont stockes les scripts compiles
+ * @return
+ */
+ public File getCompileDirectory() {
+ File result = getOptionAsFile(Option.COMPILATION_DIRECTORY.key);
+ if (!result.exists()) {
+ result.mkdirs();
+ }
+ return result;
+ }
+
+ /**
+ * Retourne l'objet Local a utilise pour la langue
+ * @return
+ */
+ public Locale getLocale() {
+ String value = getOption(Option.LOCALE.key);
+ Locale result = (Locale)ConvertUtils.convert(value, Locale.class);
+ return result;
+ }
+
+ /**
+ * Retourne l'encoding a utiliser pour les fichiers textes
+ * @return
+ */
+ public String getEncoding() {
+ String result = getOption(Option.ENCODING.key);
+ return result;
+ }
+
+ /**
+ * Retourne le serveur SMTP a utiliser pour l'envoie de mail
+ * @return
+ */
+ public String getSmtpServer() {
+ String result = getOption(Option.SMTP_SERVER.key);
+ return result;
+ }
+
+ /**
+ * Retourne le nom usuel de l'utilisateur
+ * @return
+ */
+ public String getUserName() {
+ String result = getOption(Option.USER_NAME.key);
+ return result;
+ }
+
+ /**
+ * Retourne l'email de l'utilisateur
+ * @return
+ */
+ public String getUserMail() {
+ String result = getOption(Option.USER_MAIL.key);
+ return result;
+ }
+
+ /**
+ * Retourne l'url du serveur de simulation
+ * @return
+ */
+ public String getSimulatorServer() {
+ String result = getOption(Option.SIMULATOR_SERVER.key);
+ return result;
+ }
+
+ /**
+ * Retourne le login pour acceder au serveur de simulation
+ * @return
+ */
+ public String getSimulatorUsername() {
+ String result = getOption(Option.SIMULATOR_USER_NAME.key);
+ return result;
+ }
+
+ /**
+ * Retourne le mot de passe pour acceder au serveur de simulation
+ * @return
+ */
+ public String getSimulatorPassword() {
+ String result = getOption(Option.SIMULATOR_PASSWORD.key);
+ return result;
+ }
+
+ public String getSimulatorClassfile() {
+ String result = getOption(Option.SIMULATOR_CLASSFILE.key);
+ return result;
+ }
+
+ public void setSimulatorClassfile(String value) {
+ setOption(Option.SIMULATOR_CLASSFILE.key, value);
+ }
+
+ /**
+ * Le type de simulation par defaut a utiliser (local, remote, ...)
+ * @return
+ */
+ public boolean isSimulatorLocal() {
+ String value = getOption(Option.SIMULATOR_LAUNCHER.key);
+ boolean result = "local".equalsIgnoreCase(value);
+ return result;
+ }
+
+// public boolean isUseVCS() {
+// String value = getOption(Option.VCS_TYPE.key);
+// boolean result = !VCSNone.TYPE_NONE.equals(value);
+// return result;
+// }
+
+ public boolean isLaunchUI() {
+ boolean result = getOptionAsBoolean(Option.LAUNCH_UI.key);
+ return result;
+ }
+
+ public void setSimulatorLauncher(String value) {
+ setOption(Option.SIMULATOR_LAUNCHER.key, value);
+ }
+
+// public boolean isSimulationShowOnlyQueue() {
+// Boolean result = getOptionAsBoolean(Option.SIMULATION_SHOW_ONLY_QUEUE.key);
+// return result;
+// }
+
+ public boolean isSimulationShowOnlyError() {
+ Boolean result = getOptionAsBoolean(Option.SIMULATION_SHOW_ONLY_ERROR.key);
+ return result;
+ }
+
+ public File getDefaultExportDirectory() {
+ File result = getOptionAsFile(Option.DEFAULT_EXPORT_DIRECTORY.key);
+ if (!result.exists()) {
+ result.mkdirs();
+ }
+ return result;
+ }
+
+ public void setDefaultExportDirectory(String value) {
+ setOption(Option.DEFAULT_EXPORT_DIRECTORY.key, value);
+ }
+
+ public String getDefaultExportNames() {
+ String result = getOption(Option.DEFAULT_EXPORT_NAMES.key);
+ return result;
+ }
+
+ public void setDefaultExportNames(List<String> exportNames) {
+ StringBuilder sb = new StringBuilder();
+ for (String exportName : exportNames) {
+ sb.append(SEP).append(exportName);
+ }
+ String value = sb.toString().substring(1);
+ setOption(Option.DEFAULT_EXPORT_NAMES.key, value);
+ saveForUser();
+ }
+
+ /**
+ * @return la liste des noms d'exports par defaut sous forme de liste,
+ * a partir de la propriete {@link Option#DEFAULT_EXPORT_NAMES}
+ * ou null si ils n'ont jamais ete sauves par l'utilisateur.
+ * by user.
+ * @see Option#DEFAULT_EXPORT_NAMES
+ */
+ public List<String> getDefaultExportNamesAsList() {
+ List<String> result = null;
+ String exportNamesList = getDefaultExportNames();
+ if (exportNamesList != null) {
+ result = new ArrayList<String>();
+ String[] exportNames = StringUtil.split(exportNamesList, ",");
+ result.addAll(Arrays.asList(exportNames));
+ }
+ return result;
+ }
+
+ public String getDefaultMapFilename() {
+ String result = getOption(Option.DEFAULT_MAP_FILENAME.key);
+ return result;
+ }
+
+ public String getDefaultResultNames() {
+ String result = getOption(Option.DEFAULT_RESULT_NAMES.key);
+ return result;
+ }
+
+ public void setDefaultResultNames(List<String> resultNames) {
+ StringBuilder sb = new StringBuilder();
+ for (String resultName : resultNames) {
+ sb.append(SEP).append(resultName);
+ }
+ String value = sb.toString().substring(1);
+ setOption(Option.DEFAULT_RESULT_NAMES.key, value);
+ saveForUser();
+ }
+
+ /**
+ * @return les resultats par defaut d'une simulation sous forme de liste
+ * a partir de la propriete {@link Option#DEFAULT_RESULT_NAMES}
+ * @see Option#DEFAULT_RESULT_NAMES
+ */
+ public List<String> getDefaultResultNamesAsList() {
+ List<String> result = null;
+ String resultNamesList = getDefaultResultNames();
+ if (resultNamesList != null) {
+ result = new ArrayList<String>();
+ String[] resultNames = StringUtil.split(resultNamesList, ",");
+ result.addAll(Arrays.asList(resultNames));
+ }
+ return result;
+ }
+
+ public String getDefaultTagValue() {
+ String result = getOption(Option.DEFAULT_TAG_VALUE.key);
+ return result;
+ }
+
+ public void setDefaultTagValues(Map<String, String> tagValues) {
+ StringBuilder sb = new StringBuilder();
+ for (Map.Entry<String, String> entry : tagValues.entrySet()) {
+ sb.append(SEP).append('"').append(entry.getKey()).append("\":\"").append(entry.getValue()).append('"');
+ }
+ String value = sb.toString().substring(1);
+ setOption(Option.DEFAULT_TAG_VALUE.key, value);
+ saveForUser();
+ }
+
+
+
+ /**
+ * @return le dictionnaire des tags par defaut d'une simulation a partir
+ * de la propriete {@link Option#DEFAULT_TAG_VALUE}
+ * @see Option#DEFAULT_TAG_VALUE_PROPERTY_KEY
+ */
+ public Map<String, String> getDefaultTagValueAsMap() {
+ Map<String, String> result = new HashMap<String, String>();
+ String tagValuesList = getDefaultTagValue();
+ if (tagValuesList != null) {
+ String[] tagValues = StringUtil.split(tagValuesList, ",");
+ for (String tagValue : tagValues) {
+ String[] tagAndValue = StringUtil.split(tagValue, ":");
+
+ String tag = tagAndValue[0].trim();
+ tag = tag.substring(1, tag.length() - 1); // remove "..."
+
+ String value = tagAndValue[1].trim();
+ value = value.substring(1, value.length() - 1); // remove "..."
+
+ result.put(tag, value);
+ }
+ }
+ return result;
+ }
+
+ public String getJavadocURL() {
+ String result = getOption(Option.JAVADOC_URL.key);
+ return result;
+ }
+
+ public File getBackupDirectory() {
+ File result = getOptionAsFile(Option.BACKUP_DIRECTORY.key);
+ return result;
+ }
+
+ public long getStartingTime() {
+ return startingTime;
+ }
+
+ public String getElapsedTimeAsString() {
+ long diff = System.nanoTime() - getStartingTime();
+ String result = DurationFormatUtils.formatDuration(diff / 1000000, "s'.'S");
+ return result;
+ }
+
+ public File getBackupSessionDirectory() {
+ if (backupSessionDirectory == null) {
+ // le timestamp est en nano (on le veut en ms)
+ long time = getStartingTime() / 1000;
+ // creation de l'unique répertoire de backup pour la session
+ String path = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new java.util.Date(time));
+ backupSessionDirectory = new File(getBackupDirectory(), path);
+ if (!backupSessionDirectory.exists()) {
+ backupSessionDirectory.mkdirs();
+ }
+ }
+ return backupSessionDirectory;
+ }
+
+ /**
+ * Retourne un class loader contenant le repertoire de compilation
+ * Il permet alors de charger des classes qui viennent d'etre compilees
+ * dans isis
+ * If current thread is in simulation then return specific simulation
+ * compilation directory, else default compilation directory
+ *
+ * @return the class loader adequate
+ */
+ public ClassLoader getScriptClassLoader() {
+ SimulationContext simContext = SimulationContext.get();
+ ClassLoader result = simContext.getClassLoader();
+ if (result == null) {
+ // on est pas dans une simulation, il faut retourner un nouveau
+ // a chaque fois. on force la creation d'un nouveau classloader
+ // a chaque fois pour
+ // que l'ancienne class compiler et charg<E9> ne soit pas presente
+ File f = getCompileDirectory();
+ try {
+ URL[] cp = new URL[]{f.toURI().toURL()};
+ // il faut prendre le ClassLoader du thread courant comme parent
+ // car pour les simulations il a ete modifi<E9>, et il faut
+ // que les classes de script soit recherch<E9> dedans avant
+ // la recherche dans le getCompileDirectory().
+ // ce qui est le cas avec les URLClassLoader
+ ClassLoader parent = Thread.currentThread().getContextClassLoader();
+ result = new URLClassLoader(cp, parent);
+ } catch (MalformedURLException eee) {
+ throw new IsisFishRuntimeException(_("isisfish.error.load.classloader", f, eee.getMessage()), eee);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Surcharge pour la migration des options de config qui ont change de nom
+ * <p>
+ * TODO: lors du passage en version 4.0 on pourrait supprimer cette methode
+ *
+ * @param args
+ * @throws org.codelutin.util.ArgumentsParserException
+ */
+ @Override
+ public void parse(String[] args) throws ArgumentsParserException {
+ super.parse(args);
+ // dans la version precedente (3.1) seul le fichier user existe, il est
+ // donc le seul a devoir etre modifie
+ boolean mustSave = false;
+ String[] keys = new String[]{
+ "compileDirectory", Option.COMPILATION_DIRECTORY.key,
+ "defaultBackupDirectory", Option.BACKUP_DIRECTORY.key,
+ "defaultExportDirectory", Option.DEFAULT_EXPORT_DIRECTORY.key,
+ "defaultExportNames", Option.DEFAULT_EXPORT_NAMES.key,
+ "defaultMapFile", Option.DEFAULT_MAP_FILENAME.key,
+ "defaultResultNames", Option.DEFAULT_RESULT_NAMES.key,
+ "defaultSimulator", Option.SIMULATOR_CLASSFILE.key,
+ "defaultTagValue", Option.DEFAULT_TAG_VALUE.key,
+ "javadocURL", Option.JAVADOC_URL.key,
+ "locale", Option.LOCALE.key,
+ "login", Option.SIMULATOR_USER_NAME.key,
+ "password", Option.SIMULATOR_PASSWORD.key,
+ "simulationServer", Option.SIMULATOR_SERVER.key,
+ "simulationShowOnlyError", Option.SIMULATION_SHOW_ONLY_ERROR.key,
+ "simulationShowOnlyQueue", null, // Option.SIMULATION_SHOW_ONLY_QUEUE.key,
+ "smtpServer", Option.SMTP_SERVER.key,
+ "userMail", Option.USER_MAIL.key,
+ "userName", Option.USER_NAME.key,
+ "vcs.keyFile", Option.VCS_SSH_KEY_FILE.key,
+ "vcs.localDatabasePath", Option.DATABASE_DIRECTORY.key,
+ // on supprime car non compatible, les valeurs par defaut sont tres bien
+ "localSimulator", null,
+ "vcs.databaseVersion", null,
+ "vcs.hostName", null,
+ "vcs.noPassPhrase", null,
+ "vcs.remoteDatabase", null,
+ "vcs.remotePath", null,
+ "vcs.type", null,
+ "vcs.typeRepo", null,
+ "vcs.useSshConnexion", null,
+ "vcs.userName", null,
+ "version", null,
+ "projectName", null,
+ "simulationReportMail", null,
+
+ };
+
+ log.info("Check configuration change");
+ for(int i=0; i<keys.length;) {
+ String oldKey = keys[i++];
+ String newKey = keys[i++];
+ if (!oldKey.equals(newKey)) {
+ String value = getOption(oldKey);
+ if (value != null) {
+ mustSave = true;
+ // quoi qu'il arrive on enleve l'ancienne cle
+ homefile.remove(oldKey);
+ if (newKey != null) {
+ setOption(newKey, value);
+ }
+ }
+ }
+ }
+ if (mustSave) {
+ saveForUser();
+ log.info("Config file migration done");
+ }
+ if (log.isDebugEnabled()) {
+ printConfig();
+ }
+ }
+
+ //////////////////////////////////////////////////
+ // Toutes les options disponibles
+ //////////////////////////////////////////////////
+
+ static public enum Option {
+
+ COMPILATION_DIRECTORY("compilation.directory", _("isisfish.config.main.compileDirectory.description"), getUserHome() + File.separator + "isis-build"),
+ CONFIG_FILE(CONFIG_FILE_NAME, _("isisfish.config.main.configFileName.description"), CONFIG_FILENAME),
+ BACKUP_DIRECTORY("backup.directory", _("isisfish.config.main.defaultBackupDirectory.description"), getUserHome() + File.separator + "isis-backup"),
+
+ DEFAULT_EXPORT_DIRECTORY("default.export.directory", _("isisfish.config.main.defaultExportDirectory.description"), getUserHome() + File.separator + "isis-export"),
+ DEFAULT_EXPORT_NAMES("default.export.names", _("isisfish.config.main.defaultExportNames.description"), ""),
+ DEFAULT_RESULT_NAMES("default.result.names", _("isisfish.config.main.defaultResultNames.description"), ""),
+ DEFAULT_MAP_FILENAME("default.map.filename", _("isisfish.config.main.defaultMapFile.description"), "maps/vmap_area_thin"),
+ DEFAULT_TAG_VALUE("default.tagvalue", _("isisfish.config.main.defaultTagValue.description"), ""),
+ ENCODING("encoding", _("isisfish.config.main.encoding.description"), "UTF-8"),
+ JAVADOC_URL("javadoc.url", _("isisfish.config.main.javadocURL.description"), "http://isis-fish.labs.libre-entreprise.org/apidocs/"),
+
+ SIMULATOR_CLASSFILE("simulator.classfile", _("isisfish.config.main.defaultSimulator.description"), "DefaultSimulator.java"),
+ /** 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_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) */
+ SIMULATOR_USER_NAME("simulator.username", _("isisfish.config.main.login.description"), "anonymous"),
+ SIMULATOR_PASSWORD("simulator.password", _("isisfish.config.main.password.description"), "guest"),
+
+ LOCALE("locale", _("isisfish.config.main.locale.description"), "fr_FR"),
+// REGION_MAP("regionMap", _("isisfish.config.main.regionMap.description"), "maps"),
+// RESULT_EXPORT("resultExport", String.class, 15, n_("isisfish.config.main.resultExport.description"), "resultExports"),
+ SIMULATION_SHOW_ONLY_ERROR("simulationShowOnlyError", _("isisfish.config.main.simulationShowOnlyError.description"), "false"),
+// SIMULATION_SHOW_ONLY_QUEUE("simulationShowOnlyQueue", _("isisfish.config.main.simulationShowOnlyQueue.description"), "true"),
+
+ // if false no graphical interface
+ LAUNCH_UI("launch.ui", _("isisfish.config.main.launchUI.description"), "true"),
+
+ DATABASE_DIRECTORY("database.directory", _("isisfish.config.vcs.localDatabasePath.description"), getUserHome() + File.separator + "isis-database-3"),
+
+ SSH_KEY_FILE("ssh.key.file", _("isisfish.config.vcs.keyFile.description"), getUserHome() + File.separator + ".ssh" + File.separator + "isis_rsa"),
+ SSH_PASSPHRASE_ENABLED("ssh.passphrase.enabled", _("isisfish.config.vcs.noPassPhrase.description"), "false"),
+ SSH_PASSPHRASE("ssh.passphrase", _("isisfish.config.vcs.passphrase.description"), ""),
+
+ // can be None, CVS or SVN. only None or SVN work
+ VCS_TYPE(VCS.VCS_TYPE, _("isisfish.config.vcs.type.description"), VCS.TYPE_SVN),
+ // depend of VCS_TYPE, for SVN can be svn, svn+ssh, http or file
+ VCS_PROTOCOLE(VCS.VCS_PROTOCOLE, _("isisfish.config.vcs.useSshConnexion.description"), "svn"),
+ VCS_SSH_KEY_FILE(VCS.VCS_SSH_KEY_FILE, _("isisfish.config.vcs.keyFile.description"), getUserHome() + File.separator + ".ssh" + File.separator + "isis_rsa"),
+ // user login to access vcs
+ VCS_USER_NAME(VCS.VCS_USER_NAME, _("isisfish.config.vcs.userName.description"), ""),
+ VCS_USER_PASSWORD(VCS.VCS_USER_PASSWORD, _("isisfish.config.vcs.userPassword.description"), ""),
+ VCS_HOST_NAME(VCS.VCS_HOST_NAME, _("isisfish.config.vcs.hostName.description"), "labs.libre-entreprise.org"),
+ VCS_PATH(VCS.VCS_PATH, _("isisfish.config.vcs.remotePath.description"), "/svnroot/isis-fish-data"),
+// VCS_TAG(VCS.VCS_TAG, _("isisfish.config.vcs.remoteDatabase.description"), "/trunk"),
+// TYPE_REPO_PROPERTY_KEY = newConfigPropertyKey("typeRepo", VCSTypeRepo.class, 9, n_("isisfish.config.vcs.typeRepo.description"), "TAG"),
+// PROJECT_NAME_PROPERTY_KEY = newConfigPropertyKey("projectName", String.class, 11, n_("isisfish.config.main.projectName.description"), "Isis-Fish"),
+
+ USER_NAME("user.name", _("isisfish.config.main.userName.description"), System.getProperty("user.name")),
+ SMTP_SERVER("smtpServer", _("isisfish.config.main.smtpServer.description"), "smtp"),
+ USER_MAIL("userMail", _("isisfish.config.main.userMail.description"), USER_NAME.key + "@" + VCS_HOST_NAME.key),
+
+ ;
+
+ public final String key;
+ public final String description;
+ public final String defaultValue;
+
+ private Option(String key, String description, String defaultValue) {
+ this.key = key;
+ this.description = description;
+ this.defaultValue = defaultValue;
+ }
+ }
+
+ //////////////////////////////////////////////////
+ // Toutes les actions disponibles
+ //////////////////////////////////////////////////
+
+ static public enum Step {
+ AfterInit, AfterInitVCS, AfterUI, BeforeExit
+ }
+
+ static public enum Action {
+ HELP(_("Show help"), OtherAction.class.getName() + "#help", "-h", "--help"),
+
+ IMPORT_ANALYSE_PLAN(_(""), ImportAction.class.getName() + "#importAnalysePlan", "--importAnalysePlan"),
+ IMPORT_EXPORT(_(""), ImportAction.class.getName() + "#importExport", "--importExport"),
+ IMPORT_RULE(_(""), ImportAction.class.getName() + "#importRule", "--importRule"),
+ IMPORT_SCRIPT(_("Import one java file script source"), ImportAction.class.getName() + "#importScript", "--importScript"),
+ IMPORT_SIMULATOR(_(""), ImportAction.class.getName() + "#importSimulator", "--importSimulator"),
+ IMPORT_FORMULA(_(""), ImportAction.class.getName() + "#importFormula", "--importFormula"),
+ IMPORT_REGION(_(""), ImportAction.class.getName() + "#importRegion", "--importRegion"),
+ IMPORT_REGION_AND_RENAME(_(""), ImportAction.class.getName() + "#importRegionAndRename", "--importRegionAndRename"),
+ IMPORT_SIMULATION(_(""), ImportAction.class.getName() + "#importSimulation", "--importSimulation"),
+ IMPORT_SCRIPT_MODULE(_("Import zipped file containing all scripts directory structure"), ImportAction.class.getName() + "#importScriptModule", "--importScriptModule"),
+
+ LIST_ANALYSE_PLAN(_(""), ExportAction.class.getName() + "#listAnalysePlan", "--listAnalysePlan"),
+ LIST_EXPORT(_(""), ExportAction.class.getName() + "#listExport", "--listExport"),
+ LIST_RULE(_(""), ExportAction.class.getName() + "#listRule", "--listRule"),
+ LIST_SCRIPT(_(""), ExportAction.class.getName() + "#listScript", "--listScript"),
+ LIST_SIMULATOR(_(""), ExportAction.class.getName() + "#listSimulator", "--listSimulator"),
+ LIST_FORMULA(_(""), ExportAction.class.getName() + "#listFormula", "--listFormula"),
+ LIST_REGION(_(""), ExportAction.class.getName() + "#listRegion", "--listRegion"),
+ LIST_SIMULATION(_(""), ExportAction.class.getName() + "#listSimulation", "--listSimulation"),
+
+ EXPORT_ANALYSE_PLAN(_(""), ExportAction.class.getName() + "#exportAnalysePlan", "--exportAnalysePlan"),
+ EXPORT_EXPORT(_(""), ExportAction.class.getName() + "#exportExport", "--exportExport"),
+ EXPORT_RULE(_(""), ExportAction.class.getName() + "#exportRule", "--exportRule"),
+ EXPORT_SCRIPT(_(""), ExportAction.class.getName() + "#exportScript", "--exportScript"),
+ EXPORT_SIMULATOR(_(""), ExportAction.class.getName() + "#exportSimulator", "--exportSimulator"),
+ EXPORT_FORMULA(_(""), ExportAction.class.getName() + "#exportFormula", "--exportFormula"),
+ EXPORT_REGION(_(""), ExportAction.class.getName() + "#exportRegion", "--exportRegion"),
+ EXPORT_SIMULATION(_(""), ExportAction.class.getName() + "#exportSimulation", "--exportSimulation"),
+
+ VCS_SSH_CREATE_KEY(_(""), VCSAction.class.getName() + "#sshCreateKey", "--sshCreateKey"),
+ VCS_UPDATE(_(""), VCSAction.class.getName() + "#vcsUpdate", "--vcsUpdate"),
+ VCS_ADD(_(""), VCSAction.class.getName() + "#vcsAdd", "--vcsAdd"),
+ VCS_REMOVE(_(""), VCSAction.class.getName() + "#vcsRemove", "--vcsRemove"),
+ VCS_COMMIT(_(""), VCSAction.class.getName() + "#vcsCommit", "--vcsCommit"),
+
+ SIMULATE_WITH_REGION(_(""), SimulationAction.class.getName() + "#simulateWithRegion", "--simulateWithRegion"),
+ SIMULATE_WITH_SIMULATION(_(""), SimulationAction.class.getName() + "#simulateWithSimulation", "--simulateWithSimulation"),
+ ;
+
+ public String description;
+ public String action;
+ public String[] aliases;
+
+ private Action(String description, String action, String ... aliases) {
+ this.description = description;
+ this.action = action;
+ this.aliases = aliases;
+ }
+ }
+}
1
0
r1325 - in trunk/isis-fish/src/java/fr/ifremer/isisfish: . actions datastore rule simulator simulator/launcher ui/simulator
by bpoussin@users.labs.libre-entreprise.org Sept. 1, 2008
by bpoussin@users.labs.libre-entreprise.org Sept. 1, 2008
Sept. 1, 2008
Author: bpoussin
Date: 2008-09-01 08:37:01 +0000 (Mon, 01 Sep 2008)
New Revision: 1325
Removed:
trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisConfig.java
Modified:
trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisFish.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisTray.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/actions/SimulationAction.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/ExportStorage.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/FormuleStorage.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/RegionStorage.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/ScriptStorage.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/SimulationStorage.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/rule/Rule.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/AnalysePlanContext.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationQueue.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceListener.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTableModel.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/ui/simulator/Queue.java
trunk/isis-fish/src/java/fr/ifremer/isisfish/ui/simulator/SimulatorAction.java
Log:
- correction des queues nouvelles implantations
- debut de debuggade de subprocess
Deleted: trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisConfig.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisConfig.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisConfig.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -1,689 +0,0 @@
-/* *##%
- * Copyright (C) 2002-2008 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
- * 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;
-
-import static org.codelutin.i18n.I18nf._;
-
-import fr.ifremer.isisfish.actions.ExportAction;
-import fr.ifremer.isisfish.actions.OtherAction;
-import fr.ifremer.isisfish.actions.ImportAction;
-import fr.ifremer.isisfish.actions.SimulationAction;
-import fr.ifremer.isisfish.actions.VCSAction;
-import fr.ifremer.isisfish.simulator.SimulationContext;
-import fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher;
-import fr.ifremer.isisfish.simulator.launcher.SimulationService;
-import fr.ifremer.isisfish.vcs.VCS;
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import org.apache.commons.beanutils.ConvertUtils;
-import org.apache.commons.lang.time.DurationFormatUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.codelutin.util.ApplicationConfig;
-import org.codelutin.util.ArgumentsParserException;
-import org.codelutin.util.StringUtil;
-import org.codelutin.util.VersionNumber;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class IsisConfig extends ApplicationConfig {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(IsisConfig.class);
-
- /** la version du logiciel constitue de l.d.a.r
- * <li>l: le numero de version du logiciel
- * <li>d: le numero de version du schema de la base de donnees
- * <li>a: le numero de version de l'api des scripts
- * <li>r: le numero de version de de l'interface graphique ou autre modif mineur
- * <p>
- * lors de l'increment de l, d, a et r sont remis a 0
- * lors de l'increment de d, a et r sont remis a 0
- * lors de l'increment de a, r est remis a 0
- * <p>
- * Un changement d'UI ne modifie jamais le numero de version de database
- * Un changement de schema de base pour lequel on ne peut pas faire de
- * migration de donnees demande automatiquement un changement de version
- * d'application.
- */
- protected final static VersionNumber version = new VersionNumber(3, 2, 0, 0);
- protected final static VersionNumber databaseVersion = new VersionNumber(
- version.getNumber(0), version.getNumber(1));
- protected final static VersionNumber apiVersion = new VersionNumber(
- version.getNumber(0), version.getNumber(1), version.getNumber(2));
-
- public static VersionNumber getVersionNumber() {
- return version;
- }
-
- /**
- * le nombre global ex: 3.2.0.0
- * @return
- */
- static public String getVersion() {
- String result = version.toString();
- return result;
- }
-
- /**
- * La version de la base ex: 3.2
- * @return
- */
- public static VersionNumber getDatabaseVersion() {
- return databaseVersion;
- }
-
- /**
- * La version de l'api de programmation ex: 3.2.0
- * @return
- */
- public static VersionNumber getApiVersion() {
- return apiVersion;
- }
-
- static final public String COPYRIGHT_TEXT = "Version " + getVersion() + " IFREMER-MAERHA © 2000-2008";
- static final public String CONFIG_FILENAME = "isis-config-" + version.getNumber(0);
-
- /** separateur de liste */
- static final public String SEP = ",";
- static final public String REPORT_EMAIL = "isis-fish-bugreport at lists.labs.libre-entreprise.org";
-
- protected transient File backupSessionDirectory = null;
- protected long startingTime = System.nanoTime();
-
- public IsisConfig() {
-
- for (Option o : Option.values()) {
- setDefaultOption(o.key, o.defaultValue);
- }
-
- for (Action a : Action.values()) {
- for (String alias : a.aliases) {
- addActionAlias(alias, a.action);
- }
- }
-
- }
-
- //////////////////////////////////////////////////
- // Methode d'acces aux options
- //////////////////////////////////////////////////
-
- /**
- * Retourne le repertoire racine de toutes les donnees (script, simulation
- * region, ...)
- * @return
- */
- public File getDatabaseDirectory() {
- File result = getOptionAsFile(Option.DATABASE_DIRECTORY.key);
- return result;
- }
-
- /**
- * retourne le repertoire ou sont stockes les scripts compiles
- * @return
- */
- public File getCompileDirectory() {
- File result = getOptionAsFile(Option.COMPILATION_DIRECTORY.key);
- if (!result.exists()) {
- result.mkdirs();
- }
- return result;
- }
-
- /**
- * Retourne l'objet Local a utilise pour la langue
- * @return
- */
- public Locale getLocale() {
- String value = getOption(Option.LOCALE.key);
- Locale result = (Locale)ConvertUtils.convert(value, Locale.class);
- return result;
- }
-
- /**
- * Retourne l'encoding a utiliser pour les fichiers textes
- * @return
- */
- public String getEncoding() {
- String result = getOption(Option.ENCODING.key);
- return result;
- }
-
- /**
- * Retourne le serveur SMTP a utiliser pour l'envoie de mail
- * @return
- */
- public String getSmtpServer() {
- String result = getOption(Option.SMTP_SERVER.key);
- return result;
- }
-
- /**
- * Retourne le nom usuel de l'utilisateur
- * @return
- */
- public String getUserName() {
- String result = getOption(Option.USER_NAME.key);
- return result;
- }
-
- /**
- * Retourne l'email de l'utilisateur
- * @return
- */
- public String getUserMail() {
- String result = getOption(Option.USER_MAIL.key);
- return result;
- }
-
- /**
- * Retourne l'url du serveur de simulation
- * @return
- */
- public String getSimulatorServer() {
- String result = getOption(Option.SIMULATOR_SERVER.key);
- return result;
- }
-
- /**
- * Retourne le login pour acceder au serveur de simulation
- * @return
- */
- public String getSimulatorUsername() {
- String result = getOption(Option.SIMULATOR_USER_NAME.key);
- return result;
- }
-
- /**
- * Retourne le mot de passe pour acceder au serveur de simulation
- * @return
- */
- public String getSimulatorPassword() {
- String result = getOption(Option.SIMULATOR_PASSWORD.key);
- return result;
- }
-
- public String getSimulatorClassfile() {
- String result = getOption(Option.SIMULATOR_CLASSFILE.key);
- return result;
- }
-
- public void setSimulatorClassfile(String value) {
- setOption(Option.SIMULATOR_CLASSFILE.key, value);
- }
-
- /**
- * Le type de simulation par defaut a utiliser (local, remote, ...)
- * @return
- */
- public boolean isSimulatorLocal() {
- String value = getOption(Option.SIMULATOR_LAUNCHER.key);
- boolean result = "local".equalsIgnoreCase(value);
- return result;
- }
-
-// public boolean isUseVCS() {
-// String value = getOption(Option.VCS_TYPE.key);
-// boolean result = !VCSNone.TYPE_NONE.equals(value);
-// return result;
-// }
-
- public boolean isLaunchUI() {
- boolean result = getOptionAsBoolean(Option.LAUNCH_UI.key);
- return result;
- }
-
- public void setSimulatorLauncher(String value) {
- setOption(Option.SIMULATOR_LAUNCHER.key, value);
- }
-
-// public boolean isSimulationShowOnlyQueue() {
-// Boolean result = getOptionAsBoolean(Option.SIMULATION_SHOW_ONLY_QUEUE.key);
-// return result;
-// }
-
- public boolean isSimulationShowOnlyError() {
- Boolean result = getOptionAsBoolean(Option.SIMULATION_SHOW_ONLY_ERROR.key);
- return result;
- }
-
- public File getDefaultExportDirectory() {
- File result = getOptionAsFile(Option.DEFAULT_EXPORT_DIRECTORY.key);
- if (!result.exists()) {
- result.mkdirs();
- }
- return result;
- }
-
- public void setDefaultExportDirectory(String value) {
- setOption(Option.DEFAULT_EXPORT_DIRECTORY.key, value);
- }
-
- public String getDefaultExportNames() {
- String result = getOption(Option.DEFAULT_EXPORT_NAMES.key);
- return result;
- }
-
- public void setDefaultExportNames(List<String> exportNames) {
- StringBuilder sb = new StringBuilder();
- for (String exportName : exportNames) {
- sb.append(SEP).append(exportName);
- }
- String value = sb.toString().substring(1);
- setOption(Option.DEFAULT_EXPORT_NAMES.key, value);
- saveForUser();
- }
-
- /**
- * @return la liste des noms d'exports par defaut sous forme de liste,
- * a partir de la propriete {@link Option#DEFAULT_EXPORT_NAMES}
- * ou null si ils n'ont jamais ete sauves par l'utilisateur.
- * by user.
- * @see Option#DEFAULT_EXPORT_NAMES
- */
- public List<String> getDefaultExportNamesAsList() {
- List<String> result = null;
- String exportNamesList = getDefaultExportNames();
- if (exportNamesList != null) {
- result = new ArrayList<String>();
- String[] exportNames = StringUtil.split(exportNamesList, ",");
- result.addAll(Arrays.asList(exportNames));
- }
- return result;
- }
-
- public String getDefaultMapFilename() {
- String result = getOption(Option.DEFAULT_MAP_FILENAME.key);
- return result;
- }
-
- public String getDefaultResultNames() {
- String result = getOption(Option.DEFAULT_RESULT_NAMES.key);
- return result;
- }
-
- public void setDefaultResultNames(List<String> resultNames) {
- StringBuilder sb = new StringBuilder();
- for (String resultName : resultNames) {
- sb.append(SEP).append(resultName);
- }
- String value = sb.toString().substring(1);
- setOption(Option.DEFAULT_RESULT_NAMES.key, value);
- saveForUser();
- }
-
- /**
- * @return les resultats par defaut d'une simulation sous forme de liste
- * a partir de la propriete {@link Option#DEFAULT_RESULT_NAMES}
- * @see Option#DEFAULT_RESULT_NAMES
- */
- public List<String> getDefaultResultNamesAsList() {
- List<String> result = null;
- String resultNamesList = getDefaultResultNames();
- if (resultNamesList != null) {
- result = new ArrayList<String>();
- String[] resultNames = StringUtil.split(resultNamesList, ",");
- result.addAll(Arrays.asList(resultNames));
- }
- return result;
- }
-
- public String getDefaultTagValue() {
- String result = getOption(Option.DEFAULT_TAG_VALUE.key);
- return result;
- }
-
- public void setDefaultTagValues(Map<String, String> tagValues) {
- StringBuilder sb = new StringBuilder();
- for (Map.Entry<String, String> entry : tagValues.entrySet()) {
- sb.append(SEP).append('"').append(entry.getKey()).append("\":\"").append(entry.getValue()).append('"');
- }
- String value = sb.toString().substring(1);
- setOption(Option.DEFAULT_TAG_VALUE.key, value);
- saveForUser();
- }
-
-
-
- /**
- * @return le dictionnaire des tags par defaut d'une simulation a partir
- * de la propriete {@link Option#DEFAULT_TAG_VALUE}
- * @see Option#DEFAULT_TAG_VALUE_PROPERTY_KEY
- */
- public Map<String, String> getDefaultTagValueAsMap() {
- Map<String, String> result = new HashMap<String, String>();
- String tagValuesList = getDefaultTagValue();
- if (tagValuesList != null) {
- String[] tagValues = StringUtil.split(tagValuesList, ",");
- for (String tagValue : tagValues) {
- String[] tagAndValue = StringUtil.split(tagValue, ":");
-
- String tag = tagAndValue[0].trim();
- tag = tag.substring(1, tag.length() - 1); // remove "..."
-
- String value = tagAndValue[1].trim();
- value = value.substring(1, value.length() - 1); // remove "..."
-
- result.put(tag, value);
- }
- }
- return result;
- }
-
- public String getJavadocURL() {
- String result = getOption(Option.JAVADOC_URL.key);
- return result;
- }
-
- public File getBackupDirectory() {
- File result = getOptionAsFile(Option.BACKUP_DIRECTORY.key);
- return result;
- }
-
- public long getStartingTime() {
- return startingTime;
- }
-
- public String getElapsedTimeAsString() {
- long diff = System.nanoTime() - getStartingTime();
- String result = DurationFormatUtils.formatDuration(diff / 1000000, "s'.'S");
- return result;
- }
-
- public File getBackupSessionDirectory() {
- if (backupSessionDirectory == null) {
- // le timestamp est en nano (on le veut en ms)
- long time = getStartingTime() / 1000;
- // creation de l'unique répertoire de backup pour la session
- String path = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new java.util.Date(time));
- backupSessionDirectory = new File(getBackupDirectory(), path);
- if (!backupSessionDirectory.exists()) {
- backupSessionDirectory.mkdirs();
- }
- }
- return backupSessionDirectory;
- }
-
- /**
- * Retourne un class loader contenant le repertoire de compilation
- * Il permet alors de charger des classes qui viennent d'etre compilees
- * dans isis
- * If current thread is in simulation then return specific simulation
- * compilation directory, else default compilation directory
- *
- * @return the class loader adequate
- */
- public ClassLoader getScriptClassLoader() {
- SimulationContext simContext = SimulationContext.get();
- ClassLoader result = simContext.getClassLoader();
- if (result == null) {
- // on est pas dans une simulation, il faut retourner un nouveau
- // a chaque fois. on force la creation d'un nouveau classloader
- // a chaque fois pour
- // que l'ancienne class compiler et charg<E9> ne soit pas presente
- File f = getCompileDirectory();
- try {
- URL[] cp = new URL[]{f.toURI().toURL()};
- // il faut prendre le ClassLoader du thread courant comme parent
- // car pour les simulations il a ete modifi<E9>, et il faut
- // que les classes de script soit recherch<E9> dedans avant
- // la recherche dans le getCompileDirectory().
- // ce qui est le cas avec les URLClassLoader
- ClassLoader parent = Thread.currentThread().getContextClassLoader();
- result = new URLClassLoader(cp, parent);
- } catch (MalformedURLException eee) {
- throw new IsisFishRuntimeException(_("isisfish.error.load.classloader", f, eee.getMessage()), eee);
- }
- }
- return result;
- }
-
- /**
- * Surcharge pour la migration des options de config qui ont change de nom
- * <p>
- * TODO: lors du passage en version 4.0 on pourrait supprimer cette methode
- *
- * @param args
- * @throws org.codelutin.util.ArgumentsParserException
- */
- @Override
- public void parse(String[] args) throws ArgumentsParserException {
- super.parse(args);
- // dans la version precedente (3.1) seul le fichier user existe, il est
- // donc le seul a devoir etre modifie
- boolean mustSave = false;
- String[] keys = new String[]{
- "compileDirectory", Option.COMPILATION_DIRECTORY.key,
- "defaultBackupDirectory", Option.BACKUP_DIRECTORY.key,
- "defaultExportDirectory", Option.DEFAULT_EXPORT_DIRECTORY.key,
- "defaultExportNames", Option.DEFAULT_EXPORT_NAMES.key,
- "defaultMapFile", Option.DEFAULT_MAP_FILENAME.key,
- "defaultResultNames", Option.DEFAULT_RESULT_NAMES.key,
- "defaultSimulator", Option.SIMULATOR_CLASSFILE.key,
- "defaultTagValue", Option.DEFAULT_TAG_VALUE.key,
- "javadocURL", Option.JAVADOC_URL.key,
- "locale", Option.LOCALE.key,
- "login", Option.SIMULATOR_USER_NAME.key,
- "password", Option.SIMULATOR_PASSWORD.key,
- "simulationServer", Option.SIMULATOR_SERVER.key,
- "simulationShowOnlyError", Option.SIMULATION_SHOW_ONLY_ERROR.key,
- "simulationShowOnlyQueue", null, // Option.SIMULATION_SHOW_ONLY_QUEUE.key,
- "smtpServer", Option.SMTP_SERVER.key,
- "userMail", Option.USER_MAIL.key,
- "userName", Option.USER_NAME.key,
- "vcs.keyFile", Option.VCS_SSH_KEY_FILE.key,
- "vcs.localDatabasePath", Option.DATABASE_DIRECTORY.key,
- // on supprime car non compatible, les valeurs par defaut sont tres bien
- "localSimulator", null,
- "vcs.databaseVersion", null,
- "vcs.hostName", null,
- "vcs.noPassPhrase", null,
- "vcs.remoteDatabase", null,
- "vcs.remotePath", null,
- "vcs.type", null,
- "vcs.typeRepo", null,
- "vcs.useSshConnexion", null,
- "vcs.userName", null,
- "version", null,
- "projectName", null,
- "simulationReportMail", null,
-
- };
-
- log.info("Check configuration change");
- for(int i=0; i<keys.length;) {
- String oldKey = keys[i++];
- String newKey = keys[i++];
- if (!oldKey.equals(newKey)) {
- String value = getOption(oldKey);
- if (value != null) {
- mustSave = true;
- // quoi qu'il arrive on enleve l'ancienne cle
- homefile.remove(oldKey);
- if (newKey != null) {
- setOption(newKey, value);
- }
- }
- }
- }
- if (mustSave) {
- saveForUser();
- log.info("Config file migration done");
- try {
- save(new File("/tmp/test.properties"), true);
- } catch(Exception eee ){
- eee.printStackTrace();
- }
- }
- if (log.isDebugEnabled()) {
- printConfig();
- }
- }
-
- //////////////////////////////////////////////////
- // Toutes les options disponibles
- //////////////////////////////////////////////////
-
- static public enum Option {
-
- COMPILATION_DIRECTORY("compilation.directory", _("isisfish.config.main.compileDirectory.description"), getUserHome() + File.separator + "isis-build"),
- CONFIG_FILE(CONFIG_FILE_NAME, _("isisfish.config.main.configFileName.description"), CONFIG_FILENAME),
- BACKUP_DIRECTORY("backup.directory", _("isisfish.config.main.defaultBackupDirectory.description"), getUserHome() + File.separator + "isis-backup"),
-
- DEFAULT_EXPORT_DIRECTORY("default.export.directory", _("isisfish.config.main.defaultExportDirectory.description"), getUserHome() + File.separator + "isis-export"),
- DEFAULT_EXPORT_NAMES("default.export.names", _("isisfish.config.main.defaultExportNames.description"), ""),
- DEFAULT_RESULT_NAMES("default.result.names", _("isisfish.config.main.defaultResultNames.description"), ""),
- DEFAULT_MAP_FILENAME("default.map.filename", _("isisfish.config.main.defaultMapFile.description"), "maps/vmap_area_thin"),
- DEFAULT_TAG_VALUE("default.tagvalue", _("isisfish.config.main.defaultTagValue.description"), ""),
- ENCODING("encoding", _("isisfish.config.main.encoding.description"), "UTF-8"),
- JAVADOC_URL("javadoc.url", _("isisfish.config.main.javadocURL.description"), "http://isis-fish.labs.libre-entreprise.org/apidocs/"),
-
- SIMULATOR_CLASSFILE("simulator.classfile", _("isisfish.config.main.defaultSimulator.description"), "DefaultSimulator.java"),
- /** 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_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) */
- SIMULATOR_USER_NAME("simulator.username", _("isisfish.config.main.login.description"), "anonymous"),
- SIMULATOR_PASSWORD("simulator.password", _("isisfish.config.main.password.description"), "guest"),
-
- LOCALE("locale", _("isisfish.config.main.locale.description"), "fr_FR"),
-// REGION_MAP("regionMap", _("isisfish.config.main.regionMap.description"), "maps"),
-// RESULT_EXPORT("resultExport", String.class, 15, n_("isisfish.config.main.resultExport.description"), "resultExports"),
- SIMULATION_SHOW_ONLY_ERROR("simulationShowOnlyError", _("isisfish.config.main.simulationShowOnlyError.description"), "false"),
-// SIMULATION_SHOW_ONLY_QUEUE("simulationShowOnlyQueue", _("isisfish.config.main.simulationShowOnlyQueue.description"), "true"),
-
- // if false no graphical interface
- LAUNCH_UI("launch.ui", _("isisfish.config.main.launchUI.description"), "true"),
-
- DATABASE_DIRECTORY("database.directory", _("isisfish.config.vcs.localDatabasePath.description"), getUserHome() + File.separator + "isis-database-3"),
-
- SSH_KEY_FILE("ssh.key.file", _("isisfish.config.vcs.keyFile.description"), getUserHome() + File.separator + ".ssh" + File.separator + "isis_rsa"),
- SSH_PASSPHRASE_ENABLED("ssh.passphrase.enabled", _("isisfish.config.vcs.noPassPhrase.description"), "false"),
- SSH_PASSPHRASE("ssh.passphrase", _("isisfish.config.vcs.passphrase.description"), ""),
-
- // can be None, CVS or SVN. only None or SVN work
- VCS_TYPE(VCS.VCS_TYPE, _("isisfish.config.vcs.type.description"), VCS.TYPE_SVN),
- // depend of VCS_TYPE, for SVN can be svn, svn+ssh, http or file
- VCS_PROTOCOLE(VCS.VCS_PROTOCOLE, _("isisfish.config.vcs.useSshConnexion.description"), "svn"),
- VCS_SSH_KEY_FILE(VCS.VCS_SSH_KEY_FILE, _("isisfish.config.vcs.keyFile.description"), getUserHome() + File.separator + ".ssh" + File.separator + "isis_rsa"),
- // user login to access vcs
- VCS_USER_NAME(VCS.VCS_USER_NAME, _("isisfish.config.vcs.userName.description"), ""),
- VCS_USER_PASSWORD(VCS.VCS_USER_PASSWORD, _("isisfish.config.vcs.userPassword.description"), ""),
- VCS_HOST_NAME(VCS.VCS_HOST_NAME, _("isisfish.config.vcs.hostName.description"), "labs.libre-entreprise.org"),
- VCS_PATH(VCS.VCS_PATH, _("isisfish.config.vcs.remotePath.description"), "/svnroot/isis-fish-data"),
-// VCS_TAG(VCS.VCS_TAG, _("isisfish.config.vcs.remoteDatabase.description"), "/trunk"),
-// TYPE_REPO_PROPERTY_KEY = newConfigPropertyKey("typeRepo", VCSTypeRepo.class, 9, n_("isisfish.config.vcs.typeRepo.description"), "TAG"),
-// PROJECT_NAME_PROPERTY_KEY = newConfigPropertyKey("projectName", String.class, 11, n_("isisfish.config.main.projectName.description"), "Isis-Fish"),
-
- USER_NAME("user.name", _("isisfish.config.main.userName.description"), System.getProperty("user.name")),
- SMTP_SERVER("smtpServer", _("isisfish.config.main.smtpServer.description"), "smtp"),
- USER_MAIL("userMail", _("isisfish.config.main.userMail.description"), USER_NAME.key + "@" + VCS_HOST_NAME.key),
-
- ;
-
- public final String key;
- public final String description;
- public final String defaultValue;
-
- private Option(String key, String description, String defaultValue) {
- this.key = key;
- this.description = description;
- this.defaultValue = defaultValue;
- }
- }
-
- //////////////////////////////////////////////////
- // Toutes les actions disponibles
- //////////////////////////////////////////////////
-
- static public enum Step {
- AfterInit, AfterInitVCS, AfterUI, BeforeExit
- }
-
- static public enum Action {
- HELP(_("Show help"), OtherAction.class.getName() + "#help", "-h", "--help"),
-
- IMPORT_ANALYSE_PLAN(_(""), ImportAction.class.getName() + "#importAnalysePlan", "--importAnalysePlan"),
- IMPORT_EXPORT(_(""), ImportAction.class.getName() + "#importExport", "--importExport"),
- IMPORT_RULE(_(""), ImportAction.class.getName() + "#importRule", "--importRule"),
- IMPORT_SCRIPT(_("Import one java file script source"), ImportAction.class.getName() + "#importScript", "--importScript"),
- IMPORT_SIMULATOR(_(""), ImportAction.class.getName() + "#importSimulator", "--importSimulator"),
- IMPORT_FORMULA(_(""), ImportAction.class.getName() + "#importFormula", "--importFormula"),
- IMPORT_REGION(_(""), ImportAction.class.getName() + "#importRegion", "--importRegion"),
- IMPORT_REGION_AND_RENAME(_(""), ImportAction.class.getName() + "#importRegionAndRename", "--importRegionAndRename"),
- IMPORT_SIMULATION(_(""), ImportAction.class.getName() + "#importSimulation", "--importSimulation"),
- IMPORT_SCRIPT_MODULE(_("Import zipped file containing all scripts directory structure"), ImportAction.class.getName() + "#importScriptModule", "--importScriptModule"),
-
- LIST_ANALYSE_PLAN(_(""), ExportAction.class.getName() + "#listAnalysePlan", "--listAnalysePlan"),
- LIST_EXPORT(_(""), ExportAction.class.getName() + "#listExport", "--listExport"),
- LIST_RULE(_(""), ExportAction.class.getName() + "#listRule", "--listRule"),
- LIST_SCRIPT(_(""), ExportAction.class.getName() + "#listScript", "--listScript"),
- LIST_SIMULATOR(_(""), ExportAction.class.getName() + "#listSimulator", "--listSimulator"),
- LIST_FORMULA(_(""), ExportAction.class.getName() + "#listFormula", "--listFormula"),
- LIST_REGION(_(""), ExportAction.class.getName() + "#listRegion", "--listRegion"),
- LIST_SIMULATION(_(""), ExportAction.class.getName() + "#listSimulation", "--listSimulation"),
-
- EXPORT_ANALYSE_PLAN(_(""), ExportAction.class.getName() + "#exportAnalysePlan", "--exportAnalysePlan"),
- EXPORT_EXPORT(_(""), ExportAction.class.getName() + "#exportExport", "--exportExport"),
- EXPORT_RULE(_(""), ExportAction.class.getName() + "#exportRule", "--exportRule"),
- EXPORT_SCRIPT(_(""), ExportAction.class.getName() + "#exportScript", "--exportScript"),
- EXPORT_SIMULATOR(_(""), ExportAction.class.getName() + "#exportSimulator", "--exportSimulator"),
- EXPORT_FORMULA(_(""), ExportAction.class.getName() + "#exportFormula", "--exportFormula"),
- EXPORT_REGION(_(""), ExportAction.class.getName() + "#exportRegion", "--exportRegion"),
- EXPORT_SIMULATION(_(""), ExportAction.class.getName() + "#exportSimulation", "--exportSimulation"),
-
- VCS_SSH_CREATE_KEY(_(""), VCSAction.class.getName() + "#sshCreateKey", "--sshCreateKey"),
- VCS_UPDATE(_(""), VCSAction.class.getName() + "#vcsUpdate", "--vcsUpdate"),
- VCS_ADD(_(""), VCSAction.class.getName() + "#vcsAdd", "--vcsAdd"),
- VCS_REMOVE(_(""), VCSAction.class.getName() + "#vcsRemove", "--vcsRemove"),
- VCS_COMMIT(_(""), VCSAction.class.getName() + "#vcsCommit", "--vcsCommit"),
-
- SIMULATE_WITH_REGION(_(""), SimulationAction.class.getName() + "#simulateWithRegion", "--simulateWithRegion"),
- SIMULATE_WITH_SIMULATION(_(""), SimulationAction.class.getName() + "#simulateWithSimulation", "--simulateWithSimulation"),
- ;
-
- public String description;
- public String action;
- public String[] aliases;
-
- private Action(String description, String action, String ... aliases) {
- this.description = description;
- this.action = action;
- this.aliases = aliases;
- }
- }
-}
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisFish.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisFish.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisFish.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -258,119 +258,123 @@
* l'utilisateur
*/
static public void initVCS() throws VCSException {
- // init vcs
- vcs = VCSFactory.createVCS(config);
- VCSActionAsker asker = new VCSActionAsker();
- vcs.addVetoableActionListener(asker);
+ if (config.isLaunchUI()) {
+ // FIXME ajouter une option vcs.init
- // Si le repo local exist mais n'est pas du bon type, on renome ce repertoire
- File local = config.getDatabaseDirectory();
- log.info(_("Check state of local repository: %s", local));
+ // init vcs
+ vcs = VCSFactory.createVCS(config);
+ VCSActionAsker asker = new VCSActionAsker();
+ vcs.addVetoableActionListener(asker);
- if (local.exists()) {
- if(!vcs.isValidLocalRepository()) {
- log.info(_("Local repository exists but it's not valide for current vcs: %s", config.getOption(VCS.VCS_TYPE)));
- if (ask(_("Your database repository: %s\n don't use correct" +
- " protocol.\nDo you want to make backup of your database" +
- " and take the correct one ?", local))) {
- File localBackup = new File(local.getParentFile(),
- local.getName() + "-" +
- new SimpleDateFormat("yyyy-mm-dd-HH-mm-ss").format(new java.util.Date()));
- log.info(_("Rename data directory to %s", localBackup));
- if (!local.renameTo(localBackup)) {
- throw new IsisFishRuntimeException(
- "Can't rename local repository that don't use svn");
+ // Si le repo local exist mais n'est pas du bon type, on renome ce repertoire
+ File local = config.getDatabaseDirectory();
+ log.info(_("Check state of local repository: %s", local));
+
+ if (local.exists()) {
+ if (!vcs.isValidLocalRepository()) {
+ log.info(_("Local repository exists but it's not valide for current vcs: %s", config.getOption(VCS.VCS_TYPE)));
+ if (ask(_("Your database repository: %s\n don't use correct" +
+ " protocol.\nDo you want to make backup of your database" +
+ " and take the correct one ?", local))) {
+ File localBackup = new File(local.getParentFile(),
+ local.getName() + "-" +
+ new SimpleDateFormat("yyyy-mm-dd-HH-mm-ss").format(new java.util.Date()));
+ log.info(_("Rename data directory to %s", localBackup));
+ if (!local.renameTo(localBackup)) {
+ throw new IsisFishRuntimeException(
+ "Can't rename local repository that don't use svn");
+ }
+ } else {
+ switchToNoneVCS();
}
- } else {
- switchToNoneVCS();
}
}
- }
-
- // Si le repo local n'existe pas on fait un check out complet
- if (!local.exists()) {
- log.info(_("Local repository don't exist"));
- if (!vcs.isConnected()) {
- UserLog.warn(_(
- "No database version %s found and can't get it.\n" +
- "You must go to ISIS-Fish web site and download database manualy.",
- IsisConfig.getDatabaseVersion()));
- } else {
- // Si on utilise pas le bon tag on change de tag
- VersionNumber tag = IsisConfig.getApiVersion();
- if (!vcs.isTag(tag)) {
- // pas de tag pour cette version, on checkout le trunk
- tag = null;
- }
- // initialise le repo local
- vcs.checkout(tag, false);
+ // Si le repo local n'existe pas on fait un check out complet
+ if (!local.exists()) {
+ log.info(_("Local repository don't exist"));
+ if (!vcs.isConnected()) {
+ UserLog.warn(_(
+ "No database version %s found and can't get it.\n" +
+ "You must go to ISIS-Fish web site and download database manualy.",
+ IsisConfig.getDatabaseVersion()));
+ } else {
+ // Si on utilise pas le bon tag on change de tag
+ VersionNumber tag = IsisConfig.getApiVersion();
+ if (!vcs.isTag(tag)) {
+ // pas de tag pour cette version, on checkout le trunk
+ tag = null;
+ }
- // ajoute les repertoires qu'il faut
- AnalysePlanStorage.checkout();
- ExportStorage.checkout();
- FormuleStorage.checkout();
- RuleStorage.checkout();
- ScriptStorage.checkout();
- SimulatorStorage.checkout();
+ // initialise le repo local
+ vcs.checkout(tag, false);
- // on ne prend pas toutes les simu ni toutes les regions
- vcs.update(new File(local, SimulationStorage.SIMULATION_PATH), false);
- vcs.update(new File(local, RegionStorage.REGION_PATH), false);
- try {
- RegionStorage.checkout("DemoRegion");
- } catch (TopiaException eee) {
- log.warn("Can't checkout DemoRegion", eee);
+ // ajoute les repertoires qu'il faut
+ AnalysePlanStorage.checkout();
+ ExportStorage.checkout();
+ FormuleStorage.checkout();
+ RuleStorage.checkout();
+ ScriptStorage.checkout();
+ SimulatorStorage.checkout();
+
+ // on ne prend pas toutes les simu ni toutes les regions
+ vcs.update(new File(local, SimulationStorage.SIMULATION_PATH), false);
+ vcs.update(new File(local, RegionStorage.REGION_PATH), false);
+ try {
+ RegionStorage.checkout("DemoRegion");
+ } catch (TopiaException eee) {
+ log.warn("Can't checkout DemoRegion", eee);
+ }
}
}
- }
-
- if (!local.exists()) {
- // arrive ici le repo devrait exister
- throw new IsisFishRuntimeException("Can't find local repository");
- }
- // on s'arrete la si on est pas connecte
- if (vcs.isConnected()) {
-
- // check protocol, user, host
- vcs.checkProtocol();
+ if (!local.exists()) {
+ // arrive ici le repo devrait exister
+ throw new IsisFishRuntimeException("Can't find local repository");
+ }
- // Suivant la version du logiciel et les versions de base disponible
- // il est possiblement obligatoire de ne plus etre sur le trunk, ou
- // de migrer sur un autre tag
+ // on s'arrete la si on est pas connecte
+ if (vcs.isConnected()) {
- // si on est sur une branche, on est en developpement, on ne fait donc rien
- if (vcs.getTag().startsWith("branches")) {
- log.info(_("Use branches, switch not needed"));
- } else {
- // Si on utilise pas le bon tag on change de tag
- VersionNumber tag = IsisConfig.getApiVersion();
- if (vcs.isTag(tag)) {
- // un tag dispo, on a donc pas la derniere version, on switch
- vcs.setTag(tag);
+ // check protocol, user, host
+ vcs.checkProtocol();
+
+ // Suivant la version du logiciel et les versions de base disponible
+ // il est possiblement obligatoire de ne plus etre sur le trunk, ou
+ // de migrer sur un autre tag
+
+ // si on est sur une branche, on est en developpement, on ne fait donc rien
+ if (vcs.getTag().startsWith("branches")) {
+ log.info(_("Use branches, switch not needed"));
} else {
- // pas de tag dispo on retourne sur le trunk
- vcs.setTag(null);
+ // Si on utilise pas le bon tag on change de tag
+ VersionNumber tag = IsisConfig.getApiVersion();
+ if (vcs.isTag(tag)) {
+ // un tag dispo, on a donc pas la derniere version, on switch
+ vcs.setTag(tag);
+ } else {
+ // pas de tag dispo on retourne sur le trunk
+ vcs.setTag(null);
+ }
}
- }
- // check file status
- vcs.checkFileStatus();
+ // check file status
+ vcs.checkFileStatus();
+ }
+ // fin de l'init on supprime le vetoable du vcs
+ vcs.remoteVetoableActionListener(asker);
}
- // fin de l'init on supprime le vetoable du vcs
- vcs.remoteVetoableActionListener(asker);
}
/**
* initialise et lance l'interface graphique si elle est demandee
*/
static public void launchUI() {
- // init simulater manager
- SimulationService.getService();
+ if (config.isLaunchUI()) {
+ // init simulater manager
+ SimulationService.getService();
- if (config.isLaunchUI()) {
// init IsisTray
IsisTray.getInstance();
// init context (will luanch remote server thread)
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisTray.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisTray.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/IsisTray.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -103,7 +103,7 @@
/* (non-Javadoc)
* @see fr.ifremer.isisfish.simulator.SimulationQueueListener#simulationStart(fr.ifremer.isisfish.simulator.SimulationQueueEvent)
*/
- public void simulationStart(SimulationJob job) {
+ public void simulationStart(SimulationService simService, SimulationJob job) {
SimulationControl control = job.getItem().getControl();
control.addPropertyChangeListener(this);
getInstance().setToolTip(_(SIMULATION_TEXT, control.getId(), control.getProgress(), control.getProgressMax()));
@@ -112,12 +112,17 @@
/* (non-Javadoc)
* @see fr.ifremer.isisfish.simulator.SimulationQueueListener#simulationStop(fr.ifremer.isisfish.simulator.SimulationQueueEvent)
*/
- public void simulationStop(SimulationJob job) {
+ public void simulationStop(SimulationService simService, SimulationJob job) {
SimulationControl control = job.getItem().getControl();
control.removePropertyChangeListener(this);
getInstance().setToolTip(_(NO_SIMULATION_TEXT));
getInstance().setImage(TRAY_IMAGE_STOP);
}
+
+ public void clearJobDone(SimulationService simService) {
+ // nothing to do
+ }
+
/* (non-Javadoc)
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
*/
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/actions/SimulationAction.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/actions/SimulationAction.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/actions/SimulationAction.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -22,6 +22,7 @@
import static org.codelutin.i18n.I18nf._;
import fr.ifremer.isisfish.IsisConfig;
+import fr.ifremer.isisfish.IsisFish;
import fr.ifremer.isisfish.datastore.RegionStorage;
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.simulator.SimulationControl;
@@ -76,7 +77,6 @@
}
SimulationService.getService().submit(simulId, params, null, 0);
- SimulationService.getService().getSimulationLaunchers();
}
/**
@@ -88,7 +88,7 @@
public static void simulateWithSimulation(String simulId, File simulationZip) throws Exception {
log.info("id:" + simulId + ", zip:" + simulationZip);
- String name = simulId + " " + new SimpleDateFormat("yyyy-MM-dd-HH-mm").format(new Date());
+ String name = simulId; // ne pas mettre la date, car le sub process la met deja + " " + new SimpleDateFormat("yyyy-MM-dd-HH-mm").format(new Date());
SimulationControl control = new SimulationControl(name);
// lancement de la simulation
@@ -96,6 +96,8 @@
SimulationStorage simulation = launcher.simulate(null, control, simulationZip);
simulation.getStorage().closeContext();
+ // FIXME integrer ca dans le process normal d'init
+ IsisFish.quit();
}
}
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/AnalysePlanStorage.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -77,9 +77,9 @@
/**
* Contruit un nouveau AnalysePlan storage
*
+ * @param rootSrc repertoire root de stockage des plans
* @param directory le repertoire ou devrait se trouver le plan
* @param name le nom du plan
- * @param rootSrc TODO
*/
protected AnalysePlanStorage(File rootSrc, File directory, String name) {
super(rootSrc, directory, name);
@@ -95,7 +95,7 @@
/**
* Retourne le nom de toutes les plans existantes
*
- * @return TODO
+ * @return les noms de tous les plans existant en local
*/
static public List<String> getAnalysePlanNames() {
File dir = getAnalysePlanDirectory();
@@ -122,8 +122,8 @@
/**
* Retourne une nouvelle instance de la regle. Compile le fichier si besoin
*
- * @return TODO
- * @throws IsisFishException TODO
+ * @return retourne une nouvelle instance du plan
+ * @throws IsisFishException s'il y a un probleme d'instanciation
*/
public AnalysePlan getNewAnalysePlanInstance() throws IsisFishException {
Object result = getNewInstance();
@@ -174,8 +174,8 @@
* Recherche par introspection tous les parametres de la classe
* commencant par param_
*
- * @param plan TODO
- * @return TODO
+ * @param plan le plan dont on souhaite les infos de parametre
+ * @return retourne le nom et le type des parametres du plan
*/
static public Map<String, Class> getParameterNames(AnalysePlan plan) {
Map<String, Class> result = new LinkedHashMap<String, Class>();
@@ -192,9 +192,9 @@
* Donne la valeur d'un parametre par introspection
*
* @param name le nom du parametre
- * @param plan TODO
+ * @param plan le plan dont on souhaite la valeur du parametre
* @return la valeur courante du parametre
- * @throws IsisFishException TODO
+ * @throws IsisFishException s'il y a un probleme pour recuperer la valeur
*/
static public Object getParameterValue(AnalysePlan plan, String name) throws IsisFishException {
if (plan == null || name == null || "".equals(name)) {
@@ -216,8 +216,8 @@
*
* @param name le nom de l'attribut
* @param value la valeur de l'attribut
- * @param plan TODO
- * @throws IsisFishException TODO
+ * @param plan le plan dont on souhaite modifier la valeur de parametre
+ * @throws IsisFishException s'il y a un probleme
*/
static public void setParameterValue(AnalysePlan plan, String name, Object value) throws IsisFishException {
try {
@@ -237,9 +237,9 @@
* Recupere les parametres et leur valeur pour les retourner sous forme
* de chaine. Pour pouvoir par exemple les afficher a l'utilisateur
*
- * @param plan TODO
- * @return TODO
- * @throws IsisFishException TODO
+ * @param plan le plan dont on souhaite la valeur du parametre en string
+ * @return la valeur sous forme de string
+ * @throws IsisFishException
*/
public static String getParamAsString(AnalysePlan plan) throws IsisFishException {
StringBuffer result = new StringBuffer();
@@ -289,7 +289,6 @@
*
* @return liste de noms de regions
* @throws org.codelutin.vcs.VCSException
- * TODO
*/
static public List<String> getNewRemoteAnalysePlanNames() throws VCSException {
List<String> result = getRemoteAnalysePlanNames();
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/CodeSourceStorage.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -115,7 +115,7 @@
* taille que le precedent. Pour reellement forcer la relecture on peut
* utiliser la methode {@link #reload()}}
*
- * @return TODO
+ * @return le contenu du fichier
*/
public String getContent() {
if (content == null
@@ -138,7 +138,7 @@
/**
* @param content The content to set.
- * @throws IOException TODO
+ * @throws IOException
*/
public void setContent(String content) throws IOException {
this.content = content;
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/ExportStorage.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/ExportStorage.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/ExportStorage.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -70,9 +70,9 @@
/**
* Constructeur
*
- * @param rootSrc TODO
- * @param directory TODO
- * @param name TODO
+ * @param rootSrc le repertoire root de stockage des exports
+ * @param directory le repertoire de l'export
+ * @param name le nom de l'export
*/
protected ExportStorage(File rootSrc, File directory, String name) {
super(rootSrc, directory, name);
@@ -88,8 +88,8 @@
/**
* Retourne une nouvelle instance de la regle. Compile le fichier si besoin
*
- * @return TODO
- * @throws IsisFishException TODO
+ * @return une nouvelle instance de la classe d'export
+ * @throws IsisFishException
*/
public Export getNewExportInstance() throws IsisFishException {
Object result = getNewInstance();
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/FormuleStorage.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/FormuleStorage.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/FormuleStorage.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -70,11 +70,11 @@
protected String category = null;
/**
- * @param rootSrc TODO
- * @param directory TODO
- * @param category TODO
- * @param name TODO
- * @param extension TODO
+ * @param rootSrc le repertoire root de stockage des formules
+ * @param directory le repertoire des formules
+ * @param category la category de la formule
+ * @param name le nom de la formule
+ * @param extension l'extension a utiliser ".java"
*/
public FormuleStorage(File rootSrc, File directory, String category, String name, String extension) {
super(rootSrc, new File(directory, category), name, "." + extension);
@@ -99,8 +99,8 @@
/**
* Retourne toutes les formules sauvegardees
*
- * @param category TODO
- * @return TODO
+ * @param category la categorie des formules recherchees
+ * @return la liste de formule de la category
*/
static public List<FormuleStorage> getFormules(String category) {
List<FormuleStorage> result = new ArrayList<FormuleStorage>();
@@ -124,8 +124,8 @@
/**
* Retourne toutes les formules sauvegardees
*
- * @param category TODO
- * @return TODO
+ * @param category la categorie des formules dont on souhiate le nom
+ * @return la liste des noms formules existantes dans une categorie
*/
static public List<String> getFormuleNames(String category) {
List<String> result = new ArrayList<String>();
@@ -150,8 +150,8 @@
* Retourne toutes les categories existantes dans les formules sauvegardées
* ainsi que dans le TopiaContext passé en parametre
*
- * @param context TODO
- * @return TODO
+ * @param context le context dans lequel il faut faire la recherche
+ * @return la liste des noms des categories existantes
*/
static public List<String> getCategories(TopiaContext context) {
List<String> result = new ArrayList<String>();
@@ -179,9 +179,10 @@
* Retourne toutes les formules sauvegardees ainsi que dans le TopiaContext
* passé en parametre
*
- * @param category TODO
- * @param context TODO
- * @return TODO
+ * @param category la categorie dans lequel il faut faire la recherche
+ * @param context le context dans lequel il faut aussi recherche en plus
+ * des formules sauvegardees en tant que model
+ * @return la liste des formules de la categorie
*/
static public List<Formule> getFormules(TopiaContext context, String category) {
List<Formule> result = new ArrayList<Formule>();
@@ -206,7 +207,7 @@
/**
* Retourne toutes les categories existantes dans les formules sauvegardées
*
- * @return TODO
+ * @return la liste des categories existant en tant que modele
*/
static public List<String> getCategories() {
List<String> result = new ArrayList<String>();
@@ -225,7 +226,7 @@
* Retourne le storage pour la regle demandée
*
* @param name le nom de la regle souhaitée
- * @param category TODO
+ * @param category la categorie de la regle
* @return Le storage pour la regle
*/
static public FormuleStorage getFormule(String category, String name) {
@@ -250,7 +251,7 @@
* @param name le nom de la formule
* @param extension le script de la formule
* @return Le storage pour la regle
- * @throws IOException TODO
+ * @throws IOException
*/
static public FormuleStorage createFormule(String category, String name, String extension) throws IOException {
String key = category + File.separator + name + extension;
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -100,8 +100,8 @@
/**
* Retourne la classe de la rule compilé. Compile le fichier si besoin
*
- * @return TODO
- * @throws IsisFishException TODO
+ * @return la class representant la regle
+ * @throws IsisFishException
*/
public Class getCodeClass() throws IsisFishException {
String fqn = getFQN();
@@ -119,8 +119,8 @@
/**
* Retourne une nouvelle instance de la regle. Compile le fichier si besoin
*
- * @return TODO
- * @throws IsisFishException TODO
+ * @return une novuelle instance de la regle
+ * @throws IsisFishException
*/
public Object getNewInstance() throws IsisFishException {
Class clazz = getCodeClass();
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/RegionStorage.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/RegionStorage.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -167,6 +167,9 @@
}
}
+ // FIXME supprimer cette methode car context jamais ferme, pour l'instant
+ // elle est utilise dans swixat, pour la recuperation des str et pop
+ // pour les parametres de lancement de simulation
/**
* Retourne le nom courant de la région
*
@@ -174,7 +177,6 @@
* @throws StorageException if db problem
*/
public FisheryRegion getFisheryRegion() throws StorageException {
- // FIXME voir si la methode est vraiment utilisée car le context n'est jamais fermé, ce qui est dérangeant
try {
TopiaContext tx = getStorage().beginTransaction();
FisheryRegion result = getFisheryRegion(tx);
@@ -423,8 +425,6 @@
tx.execute("DELETE " + Result.class.getName());
tx.commitTransaction();
- // FIXME le service topia de migration devrait se mettre en
- // route pour les veilles base apres le restore
tx.closeContext();
}
}
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/ScriptStorage.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/ScriptStorage.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/ScriptStorage.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -69,9 +69,9 @@
*
* Constructeur
*
- * @param rootSrc TODO
- * @param directory TODO
- * @param name TODO
+ * @param rootSrc le repertoire root de stockage
+ * @param directory le repertoire des scripts
+ * @param name le nom du script
*/
protected ScriptStorage(File rootSrc, File directory, String name) {
super(rootSrc, directory, name);
@@ -87,8 +87,8 @@
/**
* Retourne une nouvelle instance de la regle. Compile le fichier si besoin
*
- * @return TODO
- * @throws IsisFishException TODO
+ * @return une nouvelle instance
+ * @throws IsisFishException
*/
public Object getNewScriptInstance() throws IsisFishException {
return getNewInstance();
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/SimulationStorage.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/SimulationStorage.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/datastore/SimulationStorage.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -197,6 +197,17 @@
}
return simulationControlFile;
}
+
+ /**
+ * Retourne le fichier de stockage du fichier de control de la simulation.
+ * Ce fichier conserve l'etat de la simulation, cela permet a un processus
+ * externe de connaitre l'etat d'une simulation distante
+ * @return
+ */
+ static protected File getSimulationControlFile(String id) {
+ File result = new File(getSimulationDirectory(id), "control");
+ return result;
+ }
/**
* Force la sauvegarde du fichier de control d'une simulation, ce fichier
@@ -220,20 +231,26 @@
/**
* Reli le fichier contenant les infos de SimulationControl, en excluant
* certain champs
+ * @param id l'identifiant de la simulation a
* @param control le control a mettre a jour en fonction de ce qui est lu
* @param exclude les champs a exclure
*/
- public void readControl(SimulationControl control, String ... exclude) {
+ static public void readControl(String id, SimulationControl control, String... exclude) {
try {
Properties prop = new Properties();
- File file = getSimulationControlFile();
- FileInputStream in = new FileInputStream(file);
- prop.load(in);
- in.close();
- for (String e : exclude) {
- prop.remove(e);
+ File file = getSimulationControlFile(id);
+ if (file.exists()) {
+ FileInputStream in = new FileInputStream(file);
+ try {
+ prop.load(in);
+ } finally {
+ in.close();
+ }
+ for (String e : exclude) {
+ prop.remove(e);
+ }
+ control.updateFromProperties(prop);
}
- control.updateFromProperties(prop);
} catch (Exception eee) {
log.warn("Can't read control", eee);
}
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/rule/Rule.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/rule/Rule.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/rule/Rule.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -66,7 +66,7 @@
/**
* Permet d'afficher a l'utilisateur une aide sur la regle.
* @return L'aide ou la description de la regle
- * @throws Exception TODO
+ * @throws Exception
*/
public String getDescription() throws Exception;
@@ -74,17 +74,17 @@
* Appelé au démarrage de la simulation, cette méthode permet d'initialiser
* des valeurs
* @param context La simulation pour lequel on utilise cette regle
- * @throws Exception TODO
+ * @throws Exception
*/
public void init(SimulationContext context) throws Exception;
/**
* La condition qui doit etre vrai pour faire les actions
* @param context La simulation pour lequel on utilise cette regle
+ * @param date la date courante
+ * @param metier le metier
* @return vrai si on souhaite que les actions soit faites
- * @throws Exception TODO
- * @param date TODO
- * @param metier TODO
+ * @throws Exception s'il y a une erreur, met fin a la simulation
*/
public boolean condition(SimulationContext context, Date date, Metier metier) throws Exception;
@@ -92,9 +92,9 @@
* Si la condition est vrai alors cette action est executée avant le pas
* de temps de la simulation.
* @param context La simulation pour lequel on utilise cette regle
- * @param date TODO
- * @param metier TODO
- * @throws Exception TODO
+ * @param date la date courant
+ * @param metier le metier
+ * @throws Exception s'il y a une erreur, met fin a la simulation
*/
public void preAction(SimulationContext context, Date date, Metier metier) throws Exception;
@@ -102,9 +102,9 @@
* Si la condition est vrai alors cette action est executée apres le pas
* de temps de la simulation.
* @param context La simulation pour lequel on utilise cette regle
- * @param date TODO
- * @param metier TODO
- * @throws Exception TODO
+ * @param date la date courante
+ * @param metier le metier
+ * @throws Exception s'il y a une erreur, met fin a la simulation
*/
public void postAction(SimulationContext context, Date date, Metier metier) throws Exception;
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/AnalysePlanContext.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/AnalysePlanContext.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/AnalysePlanContext.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -65,10 +65,17 @@
* @return Returns the number.
*/
public int getNumber() {
- return param.getAnalysePlanNumber();
+ return number;
}
/**
+ * must be call when new simulation is generated from plan
+ */
+ public void incNumber() {
+ number++;
+ }
+
+ /**
* @return Returns the param.
*/
public SimulationParameter getParam() {
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -48,7 +48,6 @@
import org.apache.commons.lang.time.DurationFormatUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.codelutin.profiling.LutinTrace;
import org.codelutin.topia.TopiaContext;
import org.codelutin.topia.TopiaException;
import org.codelutin.topia.event.TopiaTransactionEvent;
@@ -339,9 +338,7 @@
String cache = Cache.printStatistiqueAndClear();
simulation.getInformation().setOptimizationUsage(cache);
}
-
- LutinTrace.printStatistiqueAndClear();
-
+
}
return result;
}
@@ -386,7 +383,7 @@
* @see org.codelutin.topia.event.TopiaTransactionListener#commit(org.codelutin.topia.event.TopiaTransactionEvent)
*/
public void commit(TopiaTransactionEvent event) {
- // TODO Auto-generated method stub
+ // rien a faire, car normalement toujours rollback en fin de mois
}
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationJob.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -23,6 +23,7 @@
import fr.ifremer.isisfish.simulator.SimulationControl;
import fr.ifremer.isisfish.simulator.SimulationParameter;
import fr.ifremer.isisfish.types.Date;
+import fr.ifremer.isisfish.types.Month;
import java.io.File;
import static org.codelutin.i18n.I18nf._;
@@ -150,7 +151,8 @@
try {
SimulationControl control = item.getControl();
String id = control.getId();
- if (control.isStopSimulationRequest()) {
+ if (control.isStopSimulationRequest() ||
+ (getParentJob() != null && getParentJob().getItem().getControl().isStopSimulationRequest())) {
log.info(_("Not start simulation %s because user ask stop", id));
return ;
}
@@ -187,6 +189,10 @@
control.setProgress(0);
control.setStarted(true);
+ int lastYear = param.getNumberOfYear();
+ int lastDate = lastYear * Month.NUMBER_OF_MONTH;
+ control.setProgressMax(lastDate);
+
File zip = item.getSimulationZip();
SimulationStorage simulation = launcher.simulate(simulationService, control, zip);
@@ -230,6 +236,8 @@
log.error(_("Can't do post action %s", action), eee);
}
}
+ // la simulation est termine on, avant la progress au dernier cran
+ control.setProgress(control.getProgress()+1);
}
} catch (Throwable eee) {
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationQueue.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationQueue.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationQueue.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -63,6 +63,8 @@
try {
boolean result = false;
for (SimulationQueue child : childs) {
+ // il faut bien faire le remove sur chaque fils,
+ // donc le || result doit etre en dernier
result = child.remove(o) || result;
}
result = q.remove(o) || result;
@@ -101,7 +103,7 @@
public SimulationJob poll() {
SimulationJob result = super.poll();
if (result == null && parent != null) {
- result = parent.peek();
+ result = parent.poll();
}
return result;
}
@@ -113,7 +115,10 @@
SimulationJob result = null;
try {
try {
- while (q.size() == 0 && parent != null && null == parent.poll()) {
+ // on fait bien un poll, sur le pere, car on ne souhaite pas
+ // rester bloquer dessus
+ while (q.size() == 0 &&
+ (parent == null || null == (result = parent.poll()))) {
notEmpty.await();
}
} catch (InterruptedException ie) {
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -231,7 +231,7 @@
if (jobs.add(job)) {
idJobs.add(job.getItem().getControl().getId());
for (SimulationServiceListener l : listeners) {
- l.simulationStart(job);
+ l.simulationStart(this, job);
}
}
}
@@ -253,7 +253,7 @@
// de plan
jobDones.add(job);
for (SimulationServiceListener l : listeners) {
- l.simulationStop(job);
+ l.simulationStop(this, job);
}
}
@@ -262,7 +262,9 @@
*/
public void clearJobDone() {
jobDones.clear();
- // FIXME prevoir quelque chose pour prevenir la console de queue
+ for (SimulationServiceListener l : listeners) {
+ l.clearJobDone(this);
+ }
}
/**
@@ -316,7 +318,8 @@
* @param param les parametres de la simulation
* @param priority la priorite de la simulation
*/
- public void submit(String id, SimulationParameter param, SimulatorLauncher launcher, int priority) {
+ public void submit(String id, SimulationParameter param,
+ SimulatorLauncher launcher, int priority) {
// on l'ajoute tout de suite a la liste des simulations demandee
SimulationControl control = new SimulationControl(id);
SimulationItem item = new SimulationItem(control, param, null);
@@ -347,6 +350,7 @@
if (launcher != null) {
for (SimulatorLauncher l : executors.keySet()) {
if (launcher == l) {
+ log.info(_("Add to %s queue", l));
SimulationExecutor executor = executors.get(l);
executor.execute(job);
return;
@@ -354,6 +358,7 @@
}
}
// dernier recours on ajoute a la queue sans launcher
+ log.info(_("Add to default queue"));
queue.add(job);
}
@@ -416,8 +421,8 @@
e.pause();
}
// il faut bien penser a supprimer le launcher pour qu'un autre executor
- // puisse y mettre le sien. FIXME: est ce le bon choix si l'utilisateur avait
- // force un launcher particulier, ne faudrait t'il pas prevenir l'utilisateur ?
+ // puisse y mettre le sien.
+ // FIXME: est ce le bon choix si l'utilisateur avait force un launcher particulier, ne faudrait t'il pas prevenir l'utilisateur ?
job.setLauncher(null);
resubmit(job);
}
@@ -440,8 +445,8 @@
protected String id;
protected SimulationControl control;
protected SimulationParameter param;
- protected int planNumber = 0;
-
+ protected int done = 0;
+
public PrepareSimulationJob(SimulationService simulationService,
SimulationJob job) {
this.simulationService = simulationService;
@@ -484,7 +489,8 @@
if (nextJob == null) {
// Prepration de la simulation a faire
// create next id simulation
- planNumber++;
+ planContext.incNumber();
+ int planNumber = planContext.getNumber();
if (planNumber > MAX_PLAN_SIMULATION) {
log.error(_("Analyse plan error, too many simulation for %s : %s", id, planNumber));
doNext = false;
@@ -510,8 +516,11 @@
doNext = result;
if (result) {
File zip = sim.createZip();
- SimulationItem item = new SimulationItem(control, param, zip);
+ SimulationControl childControl = new SimulationControl(simId);
+ SimulationParameter childParam = param.copy();
+ SimulationItem item = new SimulationItem(childControl, childParam, zip);
nextJob = new SimulationJob(simulationService, job, item, job.getPriority());
+ nextJob.setLauncher(job.getLauncher());
nextJob.addPostAction(this); // pour l'appel des after des plans
}
// quoi qu'il arrive on supprime le repertoire temporaire
@@ -541,13 +550,12 @@
}
public void finished(SimulationJob job, SimulationStorage sim) {
- doNext = true;
- boolean result = true;
+// doNext = true;
// appel de tous les plans pour modifier la simulation
for (AnalysePlan plan : sim.getParameter().getAnalysePlans()) {
try {
- result = plan.afterSimulation(planContext, sim);
+ boolean result = plan.afterSimulation(planContext, sim);
doNext = doNext && result;
} catch (Exception eee) {
log.error(_("Stop simulation plan, because can't call afterSimulation correctly on plan %s",
@@ -555,7 +563,13 @@
doNext = false;
}
}
-
+ // une sim vient de se finir, on incremente le compteur
+ done++;
+ if (!hasNext() && (done + 1 == planContext.getNumber())) {
+ // on enleve le master plan des simulations en cours, vu que
+ // toutes les simu sont terminees
+ simulationService.fireStopEvent(this.job);
+ }
}
public void exception(SimulationJob job, Throwable eee) {
@@ -563,6 +577,7 @@
// cela n'impacte pas les plan independant puisque toutes les
// simulation on deja ete generee
doNext = false;
+ simulationService.fireStopEvent(this.job);
}
}
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceListener.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceListener.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceListener.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -31,14 +31,22 @@
/**
* Notifie start of simulation
+ * @param simService le simulation service qui a lance la simulation
* @param job job that responsable to simulation
*/
- public void simulationStart(SimulationJob job);
+ public void simulationStart(SimulationService simService, SimulationJob job);
/**
* Notifie end of simulation
+ * @param simService le simulation service qui a arrete la simulation
* @param job job that responsable to simulation
*/
- public void simulationStop(SimulationJob job);
+ public void simulationStop(SimulationService simService, SimulationJob job);
+ /**
+ * Previent que le simulation service a vide ca liste de simulation faites
+ * @param simService le simulation service dont la liste des jobs finis
+ * a ete vide
+ */
+ public void clearJobDone(SimulationService simService);
}
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTableModel.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTableModel.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SimulationServiceTableModel.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -39,7 +39,8 @@
*
* <p>
* <b>ATTENTION</b> Cette classe doit supporter les acces concurrents car
- * plusieurs threads peuvent etre simultanement en train de faire de simulation
+ * plusieurs threads peuvent etre simultanement en train de faire des
+ * simulations
*
* @author poussin
* @version $Revision$
@@ -94,17 +95,15 @@
public void addJob(SimulationJob job) {
String id = job.getItem().getControl().getId();
- log.info("************* Try do add job " + id);
synchronized(jobs) {
- log.info("++++++++++Try do add job" + id);
if (!contains(job)) {
- log.info("----------Add job" + id);
jobs.add(job);
jobIds.put(id, job);
fireTableRowsInserted(jobs.size() - 1, jobs.size() - 1);
}
}
}
+
public void removeJob(SimulationJob job) {
synchronized(jobs) {
int index = jobs.indexOf(job);
@@ -115,6 +114,11 @@
}
}
+ public void clearJob() {
+ jobs.clear();
+ fireTableDataChanged();
+ }
+
public ArrayList<SimulationJob> getJobs() {
return jobs;
}
@@ -152,7 +156,7 @@
SimulationJob result = jobs.get(row);
return result;
}
-
+
public int getRowCount() {
int result = jobs.size();
return result;
@@ -188,12 +192,18 @@
case 1:
if (param.getUseAnalysePlan()) {
int number = param.getAnalysePlanNumber();
- result = number;
+ if (number >=0) {
+ result = number;
+ }
}
break;
case 2:
if (job.getLauncher() == null) {
- result = "not started";
+ if (param.getUseAnalysePlan()) {
+ result = _("Master plan");
+ } else {
+ result = _("not started");
+ }
} else {
result = job.getLauncher().toString();
}
@@ -240,14 +250,18 @@
model.setJobs(new ArrayList<SimulationJob>(simulationService.getJobDones()));
}
- public void simulationStart(SimulationJob job) {
+ public void simulationStart(SimulationService simService, SimulationJob job) {
// nothing to do
}
- public void simulationStop(SimulationJob job) {
+ public void simulationStop(SimulationService simService, SimulationJob job) {
model.addJob(job);
}
+ public void clearJobDone(SimulationService simService) {
+ model.clearJob();
+ }
+
}
class JobToDoListener implements AbstractJobListener, SimulationServiceListener {
@@ -270,21 +284,25 @@
}
}
- public void simulationStart(SimulationJob job) {
+ public void simulationStart(SimulationService simService, SimulationJob job) {
model.addJob(job);
job.getItem().getControl().addPropertyChangeListener(
model.controlListener);
}
- public void simulationStop(SimulationJob job) {
+ public void simulationStop(SimulationService simService, SimulationJob job) {
model.removeJob(job);
job.getItem().getControl().removePropertyChangeListener(
model.controlListener);
}
+
+ public void clearJobDone(SimulationService simService) {
+ // nothing to do
+ }
}
- class ControlListener implements PropertyChangeListener {
+ protected class ControlListener implements PropertyChangeListener {
protected SimulationService simulationService;
protected SimulationServiceTableModel model;
@@ -298,8 +316,8 @@
SimulationControl control = (SimulationControl)evt.getSource();
String id = control.getId();
synchronized(model.jobs) {
- SimulationJob jobs = model.jobIds.get(id);
- int index = model.getJobs().indexOf(id);
+ SimulationJob job = model.jobIds.get(id);
+ int index = model.getJobs().indexOf(job);
if (index >= 0) {
fireTableRowsUpdated(index, index);
}
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/simulator/launcher/SubProcessSimulationLauncher.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -24,6 +24,7 @@
import fr.ifremer.isisfish.IsisFish;
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.simulator.SimulationControl;
+import java.io.BufferedInputStream;
import java.io.File;
import java.io.InputStream;
import java.rmi.RemoteException;
@@ -43,13 +44,21 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(SubProcessSimulationLauncher.class);
- public SimulationStorage simulate(SimulationService simulationService, SimulationControl control, File simulationZip) throws RemoteException {
+ protected boolean finished = false;
+
+ @Override
+ public String toString() {
+ return "Sub process";
+ }
+
+ public SimulationStorage simulate(SimulationService simulationService,
+ SimulationControl control, File simulationZip) throws RemoteException {
String simulationId = control.getId();
SimulationStorage simulation = null;
try {
- simulation = SimulationStorage.importAndRenameZip(
- simulationZip, simulationId);
- simulation = subProcessSimulate(control, simulation);
+// simulation = SimulationStorage.importAndRenameZip(
+// simulationZip, simulationId);
+ simulation = subProcessSimulate(control, simulationZip);
} catch (Exception eee) {
log.error(_("Can't do simulation %s", simulationId), eee);
simulation.getInformation().setException(eee);
@@ -67,11 +76,11 @@
}
public SimulationStorage subProcessSimulate(SimulationControl control,
- SimulationStorage simulation) throws Exception {
+ File simulationZip) throws Exception {
String simulationId = control.getId();
// on ferme le SimulationStorage pour ne pas interferer avec le process
- simulation.closeStorage();
+// simulation.closeStorage();
String java = System.getProperty("java.home") +
File.separator + "bin" + File.separator + "java";
@@ -80,23 +89,26 @@
// prepare le process
ProcessBuilder processBuilder = new ProcessBuilder(
java, "-classpath", classpath,
- IsisFish.class.getName(),
- "--simulate", simulationId);
+ IsisFish.class.getName(), "--option", "launch.ui", "false",
+ "--simulateWithSimulation", simulationId, simulationZip.getAbsolutePath());
processBuilder.redirectErrorStream(true);
// demarrage du process
Process process = processBuilder.start();
+ log.info(_("SubProcess start: %s %s", process, processBuilder.command()));
if (control != null) {
// prepare de thread de surveillance du process si control n'est pas null
Thread monitor = new SimulationCheckpointExternalProcessThread(
- control, simulation, process);
+ control, simulationId, process);
monitor.start();
}
// on attend que la simulation soit fini
process.waitFor();
- return simulation;
+ finished = true;
+ SimulationStorage result = SimulationStorage.getSimulation(simulationId);
+ return result;
}
/**
@@ -113,15 +125,16 @@
* Logger for this class
*/
protected SimulationControl control = null;
- protected SimulationStorage simulation = null;
+ protected String simulationId = null;
protected Process process = null;
// on l'appel plutot out que in, car c le output du process lance
protected InputStream out = null;
public SimulationCheckpointExternalProcessThread(SimulationControl control,
- SimulationStorage simulation, Process process) {
+ String simulationId, Process process) {
+ log.info("Lancement du thread de surveillance des simulations externes");
this.control = control;
- this.simulation = simulation;
+ this.simulationId = simulationId;
this.process = process;
out = process.getInputStream();
@@ -131,13 +144,13 @@
public void run() {
int sleepTime = 2000;
int error = 0;
- while (true) {
+ while (!finished) {
try {
out.skip(out.available());
Thread.sleep(sleepTime);
// 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
- simulation.readControl(control, "stop");
+ SimulationStorage.readControl(simulationId, control, "stop");
if (control.isStopSimulationRequest()) {
// FIXME, un destroy du process est peut-etre un peu violent ?
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/ui/simulator/Queue.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/ui/simulator/Queue.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/ui/simulator/Queue.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -7,8 +7,6 @@
package fr.ifremer.isisfish.ui.simulator;
import fr.ifremer.isisfish.logging.SimulationLoggerUtil;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import static org.codelutin.i18n.I18nf._;
import fr.ifremer.isisfish.simulator.launcher.SimulationJob;
@@ -33,7 +31,8 @@
import org.jdesktop.beansbinding.ELProperty;
/**
- *
+ * Widget permettant d'afficher l'etat des simulations
+ *
* @author poussin
*/
public class Queue extends javax.swing.JPanel {
@@ -68,7 +67,7 @@
tableJobDones.setModel(modelJobDones);
}
- private void stopSimulation(java.awt.event.ActionEvent evt) {
+ protected void stopSimulation(java.awt.event.ActionEvent evt) {
int i = tableJobs.getSelectedRow();
if (i >= 0) {
SimulationJob job = modelJobs.getJob(i);
@@ -77,7 +76,7 @@
}
}
- private void viewLog(java.awt.event.ActionEvent evt) {
+ protected void viewLog(java.awt.event.ActionEvent evt) {
int i = tableJobs.getSelectedRow();
if (i >= 0) {
SimulationJob job = modelJobs.getJob(i);
@@ -90,7 +89,12 @@
}
}
- private void initComponents() {
+ protected void clearDoneJobs(java.awt.event.ActionEvent evt) {
+ SimulationService ss = SimulationService.getService();
+ ss.clearJobDone();
+ }
+
+ protected void initComponents() {
bindingGroup = new BindingGroup();
tableJobsScroll = new javax.swing.JScrollPane();
@@ -98,14 +102,15 @@
tableJobDonesScroll = new javax.swing.JScrollPane();
tableJobDones = new javax.swing.JTable();
autoLaunchButton = new javax.swing.JToggleButton();
- jButton1 = new javax.swing.JButton();
- jButton2 = new javax.swing.JButton();
+ stopSimuButton = new javax.swing.JButton();
+ showLogButton = new javax.swing.JButton();
+ clearDoneJobsButton = new javax.swing.JButton();
tableJobsScroll.setViewportView(tableJobs);
tableJobDonesScroll.setViewportView(tableJobDones);
- autoLaunchButton.setText("Auto Launch");
+ autoLaunchButton.setText(_("Auto Launch"));
Binding binding = Bindings.createAutoBinding(
AutoBinding.UpdateStrategy.READ_WRITE,
@@ -113,38 +118,46 @@
autoLaunchButton, BeanProperty.create("selected"));
bindingGroup.addBinding(binding);
- jButton1.setText("Stop simulation");
+ stopSimuButton.setText(_("Stop simulation"));
binding = Bindings.createAutoBinding(
AutoBinding.UpdateStrategy.READ,
tableJobs, ELProperty.create("${selectedElement != null}"),
- jButton1, BeanProperty.create("enabled"));
+ stopSimuButton, BeanProperty.create("enabled"));
binding.setSourceNullValue(false);
binding.setSourceUnreadableValue(false);
bindingGroup.addBinding(binding);
- jButton1.addActionListener(new java.awt.event.ActionListener() {
+ stopSimuButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
stopSimulation(evt);
}
});
- jButton2.setText("View log");
+ showLogButton.setText(_("View log"));
binding = Bindings.createAutoBinding(
AutoBinding.UpdateStrategy.READ,
tableJobDones, ELProperty.create("${selectedElement != null}"),
- jButton2, BeanProperty.create("enabled"));
+ showLogButton, BeanProperty.create("enabled"));
binding.setSourceNullValue(false);
binding.setSourceUnreadableValue(false);
bindingGroup.addBinding(binding);
- jButton2.addActionListener(new java.awt.event.ActionListener() {
+ showLogButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
viewLog(evt);
}
});
+ clearDoneJobsButton.setText(_("Clear done jobs"));
+
+ clearDoneJobsButton.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ clearDoneJobs(evt);
+ }
+ });
+
GroupLayout layout = new GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
@@ -156,9 +169,11 @@
.addGap(12, 12, 12)
.addComponent(autoLaunchButton)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jButton1)
+ .addComponent(stopSimuButton)
.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jButton2))
+ .addComponent(showLogButton)
+ .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(clearDoneJobsButton))
.addComponent(tableJobDonesScroll, GroupLayout.DEFAULT_SIZE, 376, Short.MAX_VALUE)
.addComponent(tableJobsScroll, GroupLayout.DEFAULT_SIZE, 376, Short.MAX_VALUE))
.addContainerGap())
@@ -173,8 +188,9 @@
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(autoLaunchButton)
- .addComponent(jButton1)
- .addComponent(jButton2))
+ .addComponent(stopSimuButton)
+ .addComponent(showLogButton)
+ .addComponent(clearDoneJobsButton))
.addContainerGap())
);
@@ -184,8 +200,9 @@
protected SimulationServiceTableModel modelJobs;
protected SimulationServiceTableModel modelJobDones;
protected javax.swing.JToggleButton autoLaunchButton;
- protected javax.swing.JButton jButton1;
- protected javax.swing.JButton jButton2;
+ protected javax.swing.JButton stopSimuButton;
+ protected javax.swing.JButton showLogButton;
+ protected javax.swing.JButton clearDoneJobsButton;
protected javax.swing.JTable tableJobDones;
protected javax.swing.JScrollPane tableJobDonesScroll;
protected javax.swing.JTable tableJobs;
Modified: trunk/isis-fish/src/java/fr/ifremer/isisfish/ui/simulator/SimulatorAction.java
===================================================================
--- trunk/isis-fish/src/java/fr/ifremer/isisfish/ui/simulator/SimulatorAction.java 2008-08-29 19:29:03 UTC (rev 1324)
+++ trunk/isis-fish/src/java/fr/ifremer/isisfish/ui/simulator/SimulatorAction.java 2008-09-01 08:37:01 UTC (rev 1325)
@@ -258,7 +258,8 @@
*/
static public Object simulate(Context uiContext, AbstractFrame frame,
String simulId, SimulationParameter param,
- boolean inQueue, JTabbedPane tabs, SimulatorLauncher luncher) {
+ boolean inQueue, JTabbedPane tabs,
+ SimulatorLauncher launcher) {
log.debug("call simulate");
try {
uiContext.setData("SimulationLaunched", false);
@@ -272,7 +273,7 @@
} else {
SimulationParameter p = param.copy();
- SimulationService.getService().submit(simulId, p, luncher, 0);
+ SimulationService.getService().submit(simulId, p, launcher, 0);
selectTab(tabs, true, 6);
}
1
0