Author: sletellier Date: 2008-10-10 16:13:12 +0000 (Fri, 10 Oct 2008) New Revision: 1547 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/Common.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java isis-fish/trunk/src/main/uimodel/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx isis-fish/trunk/src/main/uimodel/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx isis-fish/trunk/src/main/uimodel/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx Log: Simulation work Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/Common.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/Common.java 2008-10-09 17:32:06 UTC (rev 1546) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/Common.java 2008-10-10 16:13:12 UTC (rev 1547) @@ -85,5 +85,5 @@ Logger.getLogger(Common.class.getName()).log(Level.SEVERE, null, ex); } return null; - } + } } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2008-10-09 17:32:06 UTC (rev 1546) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2008-10-10 16:13:12 UTC (rev 1547) @@ -40,20 +40,20 @@ */ package fr.ifremer.isisfish.ui.simulator; -import fr.ifremer.isisfish.datastore.StorageException; -import fr.ifremer.isisfish.entities.FisheryRegion; import static org.codelutin.i18n.I18nf._; import fr.ifremer.isisfish.IsisFish; import fr.ifremer.isisfish.IsisFishException; -import fr.ifremer.isisfish.datastore.DataStorage; import fr.ifremer.isisfish.datastore.RegionStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; +import fr.ifremer.isisfish.datastore.SimulatorStorage; import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.Species; import fr.ifremer.isisfish.entities.Strategy; +import fr.ifremer.isisfish.logging.SimulationLoggerUtil; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.simulator.SimulationParameter; +import fr.ifremer.isisfish.simulator.launcher.SimulationJob; import fr.ifremer.isisfish.simulator.launcher.SimulationService; import fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher; import java.text.SimpleDateFormat; @@ -66,8 +66,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.codelutin.log.UserLog; -import org.codelutin.topia.TopiaContext; -import org.codelutin.topia.TopiaException; public class SimulAction { @@ -84,25 +82,21 @@ param = new SimulationParameter(); } - protected void stopSimulation(int i) { -// SimulationJob job = modelJobs.getJob(i); -// job.stop(); -// log.info(_("User stop simulation %s", job.getItem().getControl().getId())); -// } + protected void stopSimulation(SimulationJob job) { + job.stop(); + log.info(_("User stop simulation %s", job.getItem().getControl().getId())); } - protected void viewLog(int i) { -// SimulationJob job = modelJobs.getJob(i); -// String id = job.getItem().getControl().getId(); -// try { -// SimulationLoggerUtil.showSimulationLogConsole(id); -// } catch (Exception eee) { -// UserLog.error(_("Can't open log for %s", id), eee); -// } -// } + protected void viewLog(SimulationJob job) { + String id = job.getItem().getControl().getId(); + try { + SimulationLoggerUtil.showSimulationLogConsole(id); + } catch (Exception eee) { + UserLog.error(_("Can't open log for %s", id), eee); + } } - protected void clearDoneJobs(java.awt.event.ActionEvent evt) { + protected void clearDoneJobs() { SimulationService ss = SimulationService.getService(); ss.clearJobDone(); } @@ -140,15 +134,12 @@ public void setSimulationParameter(SimulationParameter p){ param = p; } - public String getStorageName(){ - return simulStorage.getName(); + public SimulationStorage getSimulationStorage(){ + return simulStorage; } public RegionStorage getRegionStorage(){ return regionStorage; } - public String getSimulName() { - return param.getSimulatorName(); - } public void addRules(String name){ ruleStorage = RuleStorage.getRule(name); try { @@ -186,9 +177,6 @@ } } } - public void clearRules() { - param.clearRules(); - } public void simul(String simulId, SimulatorLauncher launcher) { simulId += " " + dateFormat.format(new java.util.Date()); @@ -238,4 +226,8 @@ public void setNbAnnees(String years){ param.setNumberOfYear(Integer.parseInt(years)); } + + static public List<String> getSimulatorNames(){ + return SimulatorStorage.getSimulatorNames(); + } } Modified: isis-fish/trunk/src/main/uimodel/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/uimodel/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx 2008-10-09 17:32:06 UTC (rev 1546) +++ isis-fish/trunk/src/main/uimodel/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx 2008-10-10 16:13:12 UTC (rev 1547) @@ -32,10 +32,22 @@ --> <Table> <script> - <![CDATA[ -// fieldSimulationStatistique.setSelected(getContextValue(SimulAction.class).getSimulationParameter().getLocal()); -// fieldSimulationCache.setSelected(getContextValue(SimulAction.class).getSimulationParameter().getSubProcess()); - + <![CDATA[ + fieldSimulationStatistique.setSelected(getContextValue(SimulAction.class).getSimulationParameter().getUseStatistic()); + fieldSimulationCache.setSelected(getContextValue(SimulAction.class).getSimulationParameter().getUseOptimization()); + fieldSimulAdvParamsSimulLoggerError.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isSimulErrorLevel()); + fieldSimulAdvParamsSimulLoggerWarn.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isSimulWarnLevel()); + fieldSimulAdvParamsSimulLoggerInfo.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isSimulInfoLevel()); + fieldSimulAdvParamsSimulLoggerDebug.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isSimulDebugLevel()); + fieldSimulAdvParamsScriptLoggerError.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isScriptErrorLevel()); + fieldSimulAdvParamsScriptLoggerWarn.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isScriptWarnLevel()); + fieldSimulAdvParamsScriptLoggerInfo.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isScriptInfoLevel()); + fieldSimulAdvParamsScriptLoggerDebug.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isScriptDebugLevel()); + fieldSimulAdvParamsLibLoggerError.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibErrorLevel()); + fieldSimulAdvParamsLibLoggerWarn.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibWarnLevel()); + fieldSimulAdvParamsLibLoggerInfo.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibErrorLevel()); + fieldSimulAdvParamsLibLoggerDebug.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibDebugLevel()); + public AdvancedParamsUI (SimulAction action){ setContextValue(action); } @@ -48,17 +60,11 @@ protected void saveTagValue(){ // getContextValue(SimulAction.class).saveTagValue(); } + protected void setSimulName(){ + getContextValue(SimulAction.class).getSimulationParameter().setSimulatorName(fieldSimulAdvParamsSimulatorSelect.getSelectedItem().toString()); + } ]]> - </script> -<!-- -actionCommand="simulator.SimulatorAction.addTagValue($SimulationParameter, $fieldTag/text, $fieldValue/text);refreshView($tableTagValue)" ---> -<!-- -actionCommand="simulator.SimulatorAction.removeTagValue($SimulationParameter, getValueAt($tableTagValue, $tableTagValue/selectedRow, 0));refreshView($tableTagValue)" ---> -<!-- -actionCommand="simulator.SimulatorAction.saveTagValue($SimulationParameter/tagValue);simulator.SimulatorAction.saveSimulatorChoice($fieldSimulAdvParamsSimulatorSelect/selectedItem, $fieldSimulAdvParamsSimulatorLocal/selected)" ---> + </script> <row> <cell fill="horizontal" weightx="0.16"> <Table> @@ -73,10 +79,7 @@ </Table> </cell> <cell columns="5" fill="horizontal" weightx="0.84"> - <JComboBox id="fieldSimulAdvParamsSimulatorSelect"/> -<!-- -model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getSimulatorNames())}' ---> + <JComboBox id="fieldSimulAdvParamsSimulatorSelect" model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getSimulatorNames().toArray())}' onActionPerformed='setSimulName()'/> </cell> </row> <row> @@ -84,13 +87,13 @@ <JPanel/> </cell> <cell columns="2" fill="horizontal" weightx="0.3"> - <JCheckBox text="isisfish.advancedParams.simulationStatistique" id="fieldSimulationStatistique"/> + <JCheckBox id="fieldSimulationStatistique" text="isisfish.advancedParams.simulationStatistique"/> </cell> <cell fill="horizontal" weightx="0.2"> <JPanel/> </cell> <cell columns="2" fill="horizontal" weightx="0.3"> - <JCheckBox text="isisfish.advancedParams.simulationCache" id="fieldSimulationCache"/> + <JCheckBox id="fieldSimulationCache" text="isisfish.advancedParams.simulationCache"/> </cell> </row> <row> Modified: isis-fish/trunk/src/main/uimodel/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/uimodel/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2008-10-09 17:32:06 UTC (rev 1546) +++ isis-fish/trunk/src/main/uimodel/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2008-10-10 16:13:12 UTC (rev 1547) @@ -64,7 +64,7 @@ if (eee != null){ // new OutputView("Error.xml", "error", eee.getMessage()); } - fieldSimulParamsName.setText(getContextValue(SimulAction.class).getStorageName()); + fieldSimulParamsName.setText(getContextValue(SimulAction.class).getSimulationStorage().getName()); fieldSimulParamsDesc.setText(getContextValue(SimulAction.class).getSimulationParameter().getDescription()); setListSimulParamsStrategiesItems(); setListSimulParamsPopulationsItems(); @@ -87,7 +87,7 @@ listSimulParamsMesuresList.setListData(getContextValue(SimulAction.class).getRules().toArray()); } protected void clearRules(){ - getContextValue(SimulAction.class).clearRules(); + getContextValue(SimulAction.class).getSimulationParameter().clearRules(); listSimulParamsMesuresList.setListData(getContextValue(SimulAction.class).getRules().toArray()); } protected void simul(){ Modified: isis-fish/trunk/src/main/uimodel/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx =================================================================== --- isis-fish/trunk/src/main/uimodel/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx 2008-10-09 17:32:06 UTC (rev 1546) +++ isis-fish/trunk/src/main/uimodel/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx 2008-10-10 16:13:12 UTC (rev 1547) @@ -33,66 +33,98 @@ <Table> <script><![CDATA[ -import fr.ifremer.isisfish.simulator.launcher.SimulationServiceTableModel; -import fr.ifremer.isisfish.simulator.launcher.SimulationService; - SimulationService ss = SimulationService.getService(); - setContextValue(new SimulationServiceTableModel(ss, true), "done"); - setContextValue(new SimulationServiceTableModel(ss, false), "new"); + import fr.ifremer.isisfish.simulator.launcher.SimulationServiceTableModel; + import fr.ifremer.isisfish.simulator.launcher.SimulationService; + import javax.swing.JProgressBar; + import javax.swing.ListSelectionModel; + import javax.swing.table.TableCellRenderer; + import org.jdesktop.beansbinding.AutoBinding; + import org.jdesktop.beansbinding.BeanProperty; + import org.jdesktop.beansbinding.Binding; + import org.jdesktop.beansbinding.BindingGroup; + import org.jdesktop.beansbinding.Bindings; + import org.jdesktop.beansbinding.ELProperty; + init(); + + protected void init(){ + SimulationService ss = SimulationService.getService(); + BindingGroup bindingGroup = new BindingGroup(); + + setContextValue(new SimulationServiceTableModel(ss, true), "done"); + setContextValue(new SimulationServiceTableModel(ss, false), "new"); + queueTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + queueTableDone.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + queueTable.setDefaultRenderer(JProgressBar.class, new JProgressBarTableCellRenderer()); + queueTableDone.setDefaultRenderer(JProgressBar.class, new JProgressBarTableCellRenderer()); + + Binding binding = Bindings.createAutoBinding(AutoBinding.UpdateStrategy.READ_WRITE, SimulationService.getService(), ELProperty.create("${autoLaunch}"),autoLaunchButton, BeanProperty.create("selected")); + bindingGroup.addBinding(binding); + + binding = Bindings.createAutoBinding(AutoBinding.UpdateStrategy.READ,queueTable, ELProperty.create("${selectedElement != null}"),stopSimuButton, BeanProperty.create("enabled")); + binding.setSourceNullValue(false); + binding.setSourceUnreadableValue(false); + bindingGroup.addBinding(binding); + + binding = Bindings.createAutoBinding(AutoBinding.UpdateStrategy.READ, queueTableDone, ELProperty.create("${selectedElement != null}"), showLogButton, BeanProperty.create("enabled")); + binding.setSourceNullValue(false); + binding.setSourceUnreadableValue(false); + bindingGroup.addBinding(binding); + + bindingGroup.bind(); + } + public QueueUI (SimulAction action){ setContextValue(action); } + public class JProgressBarTableCellRenderer implements TableCellRenderer { + public Component getTableCellRendererComponent(JTable table, + Object value, boolean isSelected, boolean hasFocus, + int row, int column) { + return (JProgressBar) value; + } + }// JProgressBarTableCellRenderer + protected void stopSimulation(){ + if (queueTable.getSelectedRow() >= 0){ + getContextValue(SimulAction.class).stopSimulation(getContextValue(SimulationServiceTableModel.class, "new").getJob(queueTable.getSelectedRow())); + } + } + protected void viewLog(){ + if (queueTable.getSelectedRow() >= 0){ + getContextValue(SimulAction.class).viewLog(getContextValue(SimulationServiceTableModel.class, "new").getJob(queueTable.getSelectedRow())); + } + } + protected void clearDoneJobs(){ + getContextValue(SimulAction.class).clearDoneJobs(); + } ]]> </script> <row> - <cell columns="3" fill="both" weightx="1.0" weighty="0.5"> + <cell columns="4" fill="both" weightx="1.0" weighty="0.5"> <JScrollPane> - <JTable id="queueTable" model='{getContextValue(SimulationServiceTableModel.class, "new")}'> -<!-- Fixme : TableModel a implemanter - - <tableModel> - <SimulationQueueModel id="queueModel"/> - </tableModel> ---> - </JTable> + <JTable id="queueTable" model='{getContextValue(SimulationServiceTableModel.class, "new")}'/> </JScrollPane> </cell> </row> <row> - <cell columns="3" fill="both" weightx="1.0" weighty="0.5"> + <cell columns="4" fill="both" weightx="1.0" weighty="0.5"> <JScrollPane> - <JTable id="queueTableDone" model='{getContextValue(SimulationServiceTableModel.class, "done")}'> -<!-- - - <tableModel> - <SimulationDoneQueueModel id="queueModelDone"/> - </tableModel> ---> - </JTable> + <JTable id="queueTableDone" model='{getContextValue(SimulationServiceTableModel.class, "done")}'/> </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')" ---> + <JToggleButton id="autoLaunchButton" text="isisfish.queue.simulationLaunch"/> </cell> <cell fill="horizontal" weightx="0.3"> - <!--TODO ne fonctionne pas init="simulator.SimulatorAction.initButtonSimulQueueStart($buttonSimulQueueStart)"--> - <JButton id="buttonSimulQueueRemove" text="isisfish.queue.stopSimulation"/> + <JButton id="stopSimuButton" text="isisfish.queue.stopSimulation" onActionPerformed='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"--> + <JButton id="showLogButton" text="isisfish.queue.showLog" onActionPerformed='viewLog()'/> </cell> + <cell fill="horizontal" weightx="0.3"> + <JButton id="clearDoneJobsButton" text="Clear done jobs" onActionPerformed='clearDoneJobs()'/> + </cell> </row> </Table> \ No newline at end of file