Author: sletellier Date: 2008-10-17 14:57:40 +0000 (Fri, 17 Oct 2008) New Revision: 1565 Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterCellEditor.java Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/PreScriptsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ToolTipListModelFactory.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterColumnEditor.java Log: Simulation completed Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx 2008-10-14 09:01:24 UTC (rev 1564) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx 2008-10-17 14:57:40 UTC (rev 1565) @@ -33,6 +33,9 @@ <Table> <script> <![CDATA[ + import javax.swing.table.DefaultTableModel; + import java.util.Map.Entry; + fieldSimulationStatistique.setSelected(getContextValue(SimulAction.class).getSimulationParameter().getUseStatistic()); fieldSimulationCache.setSelected(getContextValue(SimulAction.class).getSimulationParameter().getUseOptimization()); fieldSimulAdvParamsSimulLoggerError.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isSimulErrorLevel()); @@ -47,15 +50,18 @@ fieldSimulAdvParamsLibLoggerWarn.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibWarnLevel()); fieldSimulAdvParamsLibLoggerInfo.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibErrorLevel()); fieldSimulAdvParamsLibLoggerDebug.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibDebugLevel()); + setTableTagValue(); public AdvancedParamsUI (SimulAction action){ setContextValue(action); } protected void addTagValue(){ getContextValue(SimulAction.class).addTagValue(fieldTag.getText(), fieldValue.getText()); + setTableTagValue(); } protected void removeTagValue(){ getContextValue(SimulAction.class).removeTagValue(tableTagValue.getValueAt(tableTagValue.getSelectedRow(),0).toString()); + setTableTagValue(); } protected void saveTagValue(){ if (fieldSimulAdvParamsSimulatorSelect.getSelectedIndex() != -1){ @@ -67,6 +73,32 @@ getContextValue(SimulAction.class).getSimulationParameter().setSimulatorName(fieldSimulAdvParamsSimulatorSelect.getSelectedItem().toString()); } } + protected void setTableTagValue(){ + Map<String, String> tagValue = getContextValue(SimulAction.class).getSimulationParameter().getTagValue(); + if (tagValue!=null){ + String columnName[] = {"Tag", "Value"}; + DefaultTableModel model = new DefaultTableModel(columnName, tagValue.size()){ + @Override + public boolean isCellEditable(int row, int column) { + boolean result = false; + return result; + } + }; + Set<Entry<String, String>> set = tagValue.entrySet(); + int row = 0; + for (Iterator<String> it = tagValue.keySet().iterator(); it.hasNext();) { + String name = it.next(); + model.setValueAt(name, row, 0); + model.setValueAt(tagValue.get(name), row, 1); + row++; + } + tableTagValue.setModel(model); + } + else { + String columnName[] = {"Tag", "Value"}; + DefaultTableModel model = new DefaultTableModel(columnName, 0); + } + } ]]> </script> <row> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx 2008-10-14 09:01:24 UTC (rev 1564) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx 2008-10-17 14:57:40 UTC (rev 1565) @@ -33,24 +33,27 @@ <Table> <script><![CDATA[ - fieldSimulExportFolder.setText(getContextValue(SimulAction.class).getSimulationParameter().getExportDirectory()); + update(); public ExportUI (SimulAction action){ setContextValue(action); } + protected void update(){ + if (listSimulExportChoose.getSelectedIndex() > -1){ + Object[] values = listSimulExportChoose.getSelectedValues(); + java.util.List<String> exportNames = new LinkedList<String>(); + for (Object o : values){ + exportNames.add((String) o); + } + getContextValue(SimulAction.class).getSimulationParameter().setExportNames(exportNames); + } + fieldSimulExportFolder.setText(getContextValue(SimulAction.class).getSimulationParameter().getExportDirectory()); + } ]]> </script> <row> <cell columns="4" fill="both" weightx="1.0" weighty="1.0"> <JScrollPane> - <JList id="listSimulExportChoose" selectionMode="2" model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getExportNames().toArray())}'> -<!-- 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> + <JList id="listSimulExportChoose" selectionMode="2" model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getExportNames().toArray())}' onValueChanged='update()'/> </JScrollPane> </cell> </row> @@ -59,21 +62,14 @@ <JLabel text="isisfish.export.directory"/> </cell> <cell fill="horizontal" weightx="1.0"> - <JTextField id="fieldSimulExportFolder"/> + <JTextField id="fieldSimulExportFolder" onFocusLost='update()'/> </cell> <cell> <JButton text="isisfish.common.ellipsis" onActionPerformed='getContextValue(SimulAction.class).updateDirectory()'/> -<!-- -actionCommand="update(org.codelutin.util.FileUtil.getDirectory(), $SimulationParameter/exportDirectory);refreshView($fieldSimulExportFolder)" ---> </cell> <cell> <JButton text="isisfish.common.saveNextSimulation" onActionPerformed='getContextValue(SimulAction.class).saveExport()'/> </cell> </row> - -<!-- -actionCommand="simulator.SimulatorAction.saveExport($SimulationParameter/exportDirectory, $SimulationParameter/exportNames)" ---> </Table> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2008-10-14 09:01:24 UTC (rev 1564) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2008-10-17 14:57:40 UTC (rev 1565) @@ -41,18 +41,44 @@ import fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher; import fr.ifremer.isisfish.entities.Strategy; import fr.ifremer.isisfish.entities.Population; + import fr.ifremer.isisfish.rule.Rule; + import org.codelutin.math.matrix.gui.MatrixPanelEditor; + import javax.swing.table.DefaultTableModel; + import javax.swing.table.TableModel; + import fr.ifremer.isisfish.ui.widget.editor.ParameterColumnEditor; + import javax.swing.table.TableColumn; +import fr.ifremer.isisfish.ui.widget.editor.ParameterCellEditor; + + setContextValue(new MatrixPanelEditor()); + simulParamsNumbers.add(getContextValue(MatrixPanelEditor.class), BorderLayout.CENTER); public ParamsUI(SimulAction action){ setContextValue(action); } + protected void refresh(){ + if (getContextValue(SimulAction.class).getSimulationStorage() != null){ + fieldSimulParamsName.setText(getContextValue(SimulAction.class).getSimulationStorage().getName()); + } + fieldSimulParamsDesc.setText(getContextValue(SimulAction.class).getSimulationParameter().getDescription()); + setListSimulParamsStrategiesItems(); + setListSimulParamsPopulationsItems(); + setRulesItems(); + fieldSimulParamsRegion.setSelectedItem(getContextValue(SimulAction.class).getSimulationParameter().getRegionName()); + if (getContextValue(SimulAction.class).getSimulationParameter().getUsePreScript()){ + SimulUI simul = getParentContainer(SimulUI.class); + simul.enablePreSimul(); + } + if (getContextValue(SimulAction.class).getSimulationParameter().getUseAnalysePlan()){ + SimulUI simul = getParentContainer(SimulUI.class); + simul.enableAnalysePlan(); + } + } protected void regionChange(){ WelcomePanelUI root = getParentContainer(WelcomePanelUI.class); root.setInfoText(_("isisfish.message.loading.region")); getContextValue(SimulAction.class).regionChange(fieldSimulParamsRegion.getSelectedItem().toString()); - setListSimulParamsStrategiesItems(); - setListSimulParamsPopulationsItems(); + refresh(); root.setInfoText(_("isisfish.message.region.loaded")); } - public void setSimulationParameter(SimulAction simulAction){ getContextValue(SimulAction.class).setSimulationParameter(simulAction.getSimulationParameter()); } @@ -65,31 +91,20 @@ if (eee != null){ // new OutputView("Error.xml", "error", eee.getMessage()); } - fieldSimulParamsName.setText(getContextValue(SimulAction.class).getSimulationStorage().getName()); - fieldSimulParamsDesc.setText(getContextValue(SimulAction.class).getSimulationParameter().getDescription()); - setListSimulParamsStrategiesItems(); - setListSimulParamsPopulationsItems(); - if (getContextValue(SimulAction.class).getSimulationParameter().getUsePreScript()){ - SimulUI simul = getParentContainer(SimulUI.class); - simul.enablePreSimul(); - } - if (getContextValue(SimulAction.class).getSimulationParameter().getUseAnalysePlan()){ - SimulUI simul = getParentContainer(SimulUI.class); - simul.enableAnalysePlan(); - } + refresh(); root.setInfoText(_("isisfish.message.old.simulation.loaded")); } protected void addRules(){ getContextValue(SimulAction.class).addRules(fieldSimulParamsMesuresSelect.getSelectedItem().toString()); - listSimulParamsMesuresList.setListData(getContextValue(SimulAction.class).getRules().toArray()); + setRulesItems(); } protected void removeRules(){ getContextValue(SimulAction.class).removeRules(listSimulParamsMesuresList.getSelectedValue().toString()); - listSimulParamsMesuresList.setListData(getContextValue(SimulAction.class).getRules().toArray()); + setRulesItems(); } protected void clearRules(){ getContextValue(SimulAction.class).getSimulationParameter().clearRules(); - listSimulParamsMesuresList.setListData(getContextValue(SimulAction.class).getRules().toArray()); + setRulesItems(); } protected void simul(){ getContextValue(SimulAction.class).simul(fieldSimulParamsName.getText(), (SimulatorLauncher)comboSelLauncher.getSelectedItem()); @@ -118,6 +133,14 @@ listSimulParamsStrategiesModel.addElement(s); } listSimulParamsStrategies.setModel(listSimulParamsStrategiesModel); + java.util.List<Strategy> strategiesSelected = getContextValue(SimulAction.class).getSimulationParameter().getStrategies(); + int[] indexs = new int[listSimulParamsStrategiesModel.size()]; + int i = 0; + for (Strategy s : strategiesSelected){ + indexs[i] = listSimulParamsStrategiesModel.indexOf(s); + i++; + } + listSimulParamsStrategies.setSelectedIndices(indexs); } protected void setListSimulParamsPopulationsItems(){ DefaultListModel listSimulParamsPopulationsModel = new DefaultListModel(); @@ -126,8 +149,84 @@ listSimulParamsPopulationsModel.addElement(p); } listSimulParamsPopulations.setModel(listSimulParamsPopulationsModel); - //listSimulParamsPopulations.setListData(getContextValue(SimulAction.class).getPopulations().toArray()); + java.util.List<Population> populationsSelected = getContextValue(SimulAction.class).getSimulationParameter().getPopulations(); + int[] indexs = new int[listSimulParamsPopulationsModel.size()]; + int i = 0; + for (Population p : populationsSelected){ + indexs[i] = listSimulParamsPopulationsModel.indexOf(p); + i++; + } + listSimulParamsPopulations.setSelectedIndices(indexs); + populationSelected(); } + protected void setRulesItems(){ + listSimulParamsMesuresList.setListData(getContextValue(SimulAction.class).getRules().toArray()); + setRulesButton(); + } + protected void populationSelected(){ + if (listSimulParamsPopulations.getSelectedIndex() != -1){ + getContextValue(SimulAction.class).setPopulations(listSimulParamsPopulations.getSelectedValues()); + getContextValue(MatrixPanelEditor.class).setMatrix(getContextValue(SimulAction.class).getSimulationParameter().getNumberOf((Population) listSimulParamsPopulations.getSelectedValue())); + } + } + protected void strategySelected(){ + getContextValue(SimulAction.class).setStrategies(listSimulParamsStrategies.getSelectedValues()); + } + protected void saveDescription(){ + getContextValue(SimulAction.class).getSimulationParameter().setDescription(fieldSimulParamsDesc.getText()); + } + protected void setRulesButton(){ + if (getContextValue(SimulAction.class).getRules().toArray().length == 0){ + buttonSimulParamsMesuresClear.setEnabled(false); + buttonSimulParamsMesuresRemove.setEnabled(false); + } + else{ + if (listSimulParamsMesuresList.getSelectedIndex() != -1){ + buttonSimulParamsMesuresRemove.setEnabled(true); + setSimulParamsRulesModel(); + } + buttonSimulParamsMesuresClear.setEnabled(true); + } + } + protected void setSimulParamsRulesModel(){ + DefaultTableModel model = new DefaultTableModel(); + Map<String, Class> values; + if (listSimulParamsMesuresList.getSelectedIndex() != -1){ + values = getContextValue(SimulAction.class).getRuleParameterName(listSimulParamsMesuresList.getSelectedValue().toString()); + int row = 0; + model = new DefaultTableModel(values.size(), 2){ + @Override + public boolean isCellEditable(int row, int column) { + boolean result = false; + if (column > 0){ + result =true; + } + return result; + } + }; + for (Iterator<String> it = values.keySet().iterator(); it.hasNext();) { + String name = it.next(); + Object properties = getContextValue(SimulAction.class).getRuleParameterValue(name, listSimulParamsMesuresList.getSelectedValue().toString()); + ParameterCellEditor value = new ParameterCellEditor(name, values.get(name)); + model.setValueAt(value, row, 0); + model.setValueAt(properties, row, 1); + row++; + } + } + simulParamsRules.setModel(model); + ParameterColumnEditor cellEditor = new ParameterColumnEditor(); + cellEditor.setRegion(getContextValue(SimulAction.class).getRegionStorage()); + simulParamsRules.getColumnModel().getColumn(1).setCellEditor(cellEditor); + simulParamsRules.getModel().addTableModelListener(new TableModelListener() { + @Override + public void tableChanged(TableModelEvent e) { + int row = e.getFirstRow(); + TableModel model = (TableModel)e.getSource(); + ParameterCellEditor data = (ParameterCellEditor) model.getValueAt(row, 0); + getContextValue(SimulAction.class).setRuleParameterValue(data.getName(), listSimulParamsMesuresList.getSelectedValue().toString(), model.getValueAt(row, 1)); + } + }); + } ]]> </script> <row> @@ -198,7 +297,7 @@ <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" text='{getContextValue(SimulAction.class).getSimulationParameter().getDescription()}'/> + <JTextArea id="fieldSimulParamsDesc" text='{getContextValue(SimulAction.class).getSimulationParameter().getDescription()}' onFocusLost='saveDescription()'/> </JScrollPane> </cell> </row> @@ -230,10 +329,7 @@ <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"/> -<!-- - model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getStrategies().toArray())}' - --> + <JList id="listSimulParamsStrategies" selectionMode="2" onFocusLost='strategySelected()'/> </JScrollPane> </cell> </row> @@ -249,10 +345,7 @@ <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"/> -<!-- - model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getPopulations().toArray())}' - --> + <JList id="listSimulParamsPopulations" selectionMode="2" onMouseClicked='populationSelected()'/> </JScrollPane> </cell> </row> @@ -268,25 +361,13 @@ <row> <cell fill="horizontal"> <!-- TODO : Render --> - <JComboBox id="fieldSimulParamsMesuresSelect" model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getRuleNames().toArray())}' - onActionPerformed='buttonSimulParamsMesuresRemove.setEnabled(true)'/> -<!-- - setToolTipRenderContext(); - private void setToolTipRenderContext(){ - ToolTipComboBoxRenderer2 render = new ToolTipComboBoxRenderer2(); - render.setModel(ToolTipListModelFactory.createRuleDescriptionsModel(RuleStorage.getRuleNames())); - setContextValue(render); - } - - renderer='{getContextValue(ToolTipComboBoxRenderer2.class)}' -<SimpleToolTipComboBoxRenderer origin='fr.ifremer.isisfish.ui.simulator.ToolTipListModelFactory.createRuleDescriptionsModel($RuleNames)'/> ---> + <JComboBox id="fieldSimulParamsMesuresSelect" model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getRuleNames().toArray())}'/> </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" model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getSimulationParameter().getRules().toArray())}' onValueChanged='buttonSimulParamsMesuresClear.setEnabled(true)'/> + <JList id="listSimulParamsMesuresList" selectionMode="0" model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getRules().toArray())}' onValueChanged='setRulesButton()'/> </JScrollPane> </cell> </row> @@ -326,7 +407,7 @@ <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.populationNumbers")}'> - <!--JMatrixPanel id="simulParamsNumbers" name="isisfish.params.populationNumbers"/--> + <JPanel id="simulParamsNumbers" name="isisfish.params.populationNumbers" layout='{new BorderLayout()}'/> </tab> <tab title='{_("isisfish.params.ruleParameters")}'> <JTable id="simulParamsRules" name="isisfish.params.ruleParameters"> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/PreScriptsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/PreScriptsUI.jaxx 2008-10-14 09:01:24 UTC (rev 1564) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/PreScriptsUI.jaxx 2008-10-17 14:57:40 UTC (rev 1565) @@ -31,25 +31,21 @@ */ --> <JPanel id="simulPreScripts" layout='{new BorderLayout()}'> -<script><![CDATA[ - public PreScriptsUI (SimulAction action){ - setContextValue(action); - } - ]]> - </script> - + <script><![CDATA[ + public PreScriptsUI (SimulAction action){ + setContextValue(action); + } + protected void save(){ + getContextValue(SimulAction.class).getSimulationParameter().setPreScript(fieldSimulPreScript.getText()); + } + protected void backParameter(){ + SimulUI simul = getParentContainer(SimulUI.class); + simul.selTab(0); + } + ]]> + </script> <JScrollPane constraints='BorderLayout.CENTER'> - <JTextArea id="fieldSimulPreScript"> -<!-- Fixme : DocmumentEvents -origin="$SimulationParameter/preScript" - <DocumentEvents onModified="Update($fieldSimulPreScript/text, $SimulationParameter/preScript)"/> ---> - </JTextArea> + <JTextArea id="fieldSimulPreScript" onFocusLost='save()'/> </JScrollPane> - - <JButton constraints='BorderLayout.SOUTH' text="isisfish.preScript.backParameter"/> -<!-- -actionCommand="simulator.SimulatorAction.selectTab($simulTabs, 'true', '0')" ---> - + <JButton constraints='BorderLayout.SOUTH' text="isisfish.preScript.backParameter" onActionPerformed='backParameter()'/> </JPanel> \ No newline at end of file Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx 2008-10-14 09:01:24 UTC (rev 1564) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx 2008-10-17 14:57:40 UTC (rev 1565) @@ -51,8 +51,8 @@ SimulationService ss = SimulationService.getService(); BindingGroup bindingGroup = new BindingGroup(); - setContextValue(new SimulationServiceTableModel(ss, true), "done"); - setContextValue(new SimulationServiceTableModel(ss, false), "new"); + setContextValue(new SimulationServiceTableModel(ss, true), "new"); + setContextValue(new SimulationServiceTableModel(ss, false), "done"); queueTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); queueTableDone.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); queueTable.setDefaultRenderer(JProgressBar.class, new JProgressBarTableCellRenderer()); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx 2008-10-14 09:01:24 UTC (rev 1564) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx 2008-10-17 14:57:40 UTC (rev 1565) @@ -31,7 +31,7 @@ */ --> <JPanel id="ResultChoice" name="isisfish.resultChoice.title" layout='{new BorderLayout()}'> -<script><![CDATA[ + <script><![CDATA[ public ResultChoiceUI (SimulAction action){ setContextValue(action); } @@ -42,34 +42,11 @@ } ]]> </script> - -<!-- 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" model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getResultNames().toArray())}'> -<!-- 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" onActionPerformed='saveResultNames()'/> -<!-- - actionCommand="simulator.SimulatorAction.saveResultNames($listResultNames/selectedValues)" ---> + <JLabel text="isisfish.resultChoice.save" horizontalAlignment="0" constraints='BorderLayout.NORTH'/> + <JScrollPane constraints='BorderLayout.CENTER'> + <JList id="listResultNames" selectionMode="2" model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getResultNames().toArray())}'> + </JList> + </JScrollPane> + <JButton constraints='BorderLayout.SOUTH' text="isisfish.common.saveNextSimulation" onActionPerformed='saveResultNames()'/> </JPanel> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx 2008-10-14 09:01:24 UTC (rev 1564) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx 2008-10-17 14:57:40 UTC (rev 1565) @@ -33,47 +33,115 @@ <Table> <script><![CDATA[ + import javax.swing.DefaultComboBoxModel; + import javax.swing.table.DefaultTableModel; + import javax.swing.table.TableModel; + import fr.ifremer.isisfish.ui.widget.editor.ParameterColumnEditor; + import javax.swing.table.TableColumn; + import fr.ifremer.isisfish.ui.widget.editor.ParameterCellEditor; + public SensUI (SimulAction action){ setContextValue(action); } + public void refresh(){ + listSimulParamsAnalysePlansList.setModel(new DefaultComboBoxModel(getContextValue(SimulAction.class).getParamAnalysePlans().toArray())); + } + public void addAnalysePlan(){ + getContextValue(SimulAction.class).addAnalysePlan(fieldSimulParamsAnalysePlansSelect.getSelectedItem().toString()); + refresh(); + } + public void removeAnalysePlan(){ + getContextValue(SimulAction.class).removeAnalysePlan(fieldSimulParamsAnalysePlansSelect.getSelectedItem().toString()); + refresh(); + } + public void clearAnalysePlan(){ + getContextValue(SimulAction.class).clearAnalysePlan(); + refresh(); + } + protected void setAnalysePlanButton(){ + if (getContextValue(SimulAction.class).getParamAnalysePlans().toArray().length == 0){ + buttonSimulParamsAnalysePlansClear.setEnabled(false); + buttonSimulParamsAnalysePlansRemove.setEnabled(false); + } + else{ + if (listSimulParamsAnalysePlansList.getSelectedIndex() != -1){ + buttonSimulParamsAnalysePlansRemove.setEnabled(true); + setSimulParamsAnalysePlans(); + } + buttonSimulParamsAnalysePlansClear.setEnabled(true); + } + } + protected void setSimulParamsAnalysePlans(){ + if (listSimulParamsAnalysePlansList.getSelectedIndex() != -1){ + Map<String, Class> values = getContextValue(SimulAction.class).getAnalysePlanParameterName(listSimulParamsAnalysePlansList.getSelectedValue().toString()); + int row = 0; + if (values != null){ + DefaultTableModel model = new DefaultTableModel(values.size(), 2){ + @Override + public boolean isCellEditable(int row, int column) { + boolean result = false; + if (column > 0){ + result =true; + } + return result; + } + }; + for (Iterator<String> it = values.keySet().iterator(); it.hasNext();) { + String name = it.next(); + Object properties = getContextValue(SimulAction.class).getAnalysePlanParameterValue(name, listSimulParamsAnalysePlansList.getSelectedValue().toString()); + ParameterCellEditor value = new ParameterCellEditor(name, values.get(name)); + model.setValueAt(value, row, 0); + model.setValueAt(properties, row, 1); + row++; + } + simulParamsAnalysePlans.setModel(model); + ParameterColumnEditor cellEditor = new ParameterColumnEditor(); + cellEditor.setRegion(getContextValue(SimulAction.class).getRegionStorage()); + simulParamsAnalysePlans.getColumnModel().getColumn(1).setCellEditor(cellEditor); + simulParamsAnalysePlans.getModel().addTableModelListener(new TableModelListener() { + @Override + public void tableChanged(TableModelEvent e) { + int row = e.getFirstRow(); + TableModel model = (TableModel)e.getSource(); + ParameterCellEditor data = (ParameterCellEditor) model.getValueAt(row, 0); + getContextValue(SimulAction.class).setAnalysePlanParameterValue(data.getName(), listSimulParamsAnalysePlansList.getSelectedValue().toString(), model.getValueAt(row, 1)); + } + }); + } + } + } + protected void backParameter(){ + SimulUI simul = getParentContainer(SimulUI.class); + simul.selTab(0); + } ]]> </script> <row> <cell columns="2" fill="horizontal" weightx="1.0"> - <JComboBox id="fieldSimulParamsAnalysePlansSelect"/> + <JComboBox id="fieldSimulParamsAnalysePlansSelect" model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getAnalysePlanNames().toArray())}'/> </cell> </row> <row> <cell fill="both" weightx="0.5"> <JScrollPane minimumSize='{new Dimension(0,0)}' preferredSize='{new Dimension(0,0)}'> - <JList id="listSimulParamsAnalysePlansList" selectionMode="0"/> + <JList id="listSimulParamsAnalysePlansList" selectionMode="0" model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getParamAnalysePlans().toArray())}' onValueChanged='setAnalysePlanButton()'/> </JScrollPane> </cell> <cell fill="both" weightx="0.5"> <Table id="simulSens" name="isisfish.sens.title"> <row> <cell fill="both" weightx="1.0"> - <JButton id="buttonSimulParamsAnalysePlansAdd" text="isisfish.common.add"/> -<!-- -actionCommand="xpath:addAnalysePlan($SimulationParameter, getNewAnalysePlanInstance(fr.ifremer.isisfish.datastore.AnalysePlanStorage.getAnalysePlan($fieldSimulParamsAnalysePlansSelect/selectedItem)));refreshView($listSimulParamsAnalysePlansList)" ---> + <JButton id="buttonSimulParamsAnalysePlansAdd" text="isisfish.common.add" onActionPerformed='addAnalysePlan()'/> </cell> </row> <row> <cell fill="both" weightx="1.0"> - <JButton id="buttonSimulParamsAnalysePlansRemove" text="isisfish.common.remove"/> -<!-- - actionCommand="xpath:removeAnalysePlan($SimulationParameter, $listSimulParamsAnalysePlansList/selectedValue);refreshView($listSimulParamsAnalysePlansList)" ---> + <JButton id="buttonSimulParamsAnalysePlansRemove" text="isisfish.common.remove" onActionPerformed='removeAnalysePlan()' enabled='false'/> </cell> </row> <row> <cell fill="both" weightx="1.0"> - <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)"/>--> + <JButton id="buttonSimulParamsAnalysePlansClear" text="isisfish.common.clear" onActionPerformed='clearAnalysePlan()' enabled='false'/> </cell> </row> </Table> @@ -82,35 +150,14 @@ <row> <cell columns="2" fill="both" weightx="1.0" weighty="1.0"> <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> + <JTable id="simulParamsAnalysePlans" name="isisfish.sens.planParameters"/> </JScrollPane> </cell> </row> <row> <cell columns="2" fill="horizontal" weightx="1.0"> - <JButton text="isisfish.sens.backParameter"/> + <JButton text="isisfish.sens.backParameter" onActionPerformed='backParameter()'/> </cell> </row> -<!-- -actionCommand="simulator.SimulatorAction.selectTab($simulTabs, 'true', '0')" ---> </Table> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2008-10-14 09:01:24 UTC (rev 1564) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2008-10-17 14:57:40 UTC (rev 1565) @@ -29,24 +29,22 @@ * by : $Author: sletellier $ */ - /* +/* * To change this template, choose Tools | Templates * and open the template in the editor. */ - /** * * @author letellier */ package fr.ifremer.isisfish.ui.simulator; -import fr.ifremer.isisfish.datastore.StorageException; import static org.codelutin.i18n.I18nf._; import fr.ifremer.isisfish.IsisFish; import fr.ifremer.isisfish.IsisFishException; +import fr.ifremer.isisfish.datastore.AnalysePlanStorage; import fr.ifremer.isisfish.datastore.ExportStorage; import fr.ifremer.isisfish.datastore.RegionStorage; -import fr.ifremer.isisfish.datastore.ResultStorage; import fr.ifremer.isisfish.datastore.RuleStorage; import fr.ifremer.isisfish.datastore.ScriptStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; @@ -56,6 +54,7 @@ import fr.ifremer.isisfish.entities.Strategy; import fr.ifremer.isisfish.logging.SimulationLoggerUtil; import fr.ifremer.isisfish.rule.Rule; +import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.simulator.launcher.SimulationJob; import fr.ifremer.isisfish.simulator.launcher.SimulationService; @@ -64,6 +63,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.logging.Level; @@ -71,76 +71,47 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.codelutin.log.UserLog; -import org.codelutin.topia.TopiaContext; public class SimulAction { - + /** to use log facility, just put in your code: log.info(\"...\"); */ - static private Log log = LogFactory.getLog(SimulatorAction.class); - + static private Log log = LogFactory.getLog(SimulAction.class); protected SimulationParameter param = null; protected RegionStorage regionStorage = null; protected SimulationStorage simulStorage = null; protected RuleStorage ruleStorage = null; + protected List<String> analysePlan = null; protected Map<Rule, String> rules = new HashMap<Rule, String>(); + protected Map<AnalysePlan, String> analysePlans = new HashMap<AnalysePlan, String>(); static private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH-mm"); - public SimulAction(){ - param = new SimulationParameter(); - - // TODO refresh data context on all this when datas coming from script module - // when a modification is done in script dialog - // => then refresh whoses data - // and the associated ui - // compute result names available + +/* + ************ + * Init + ************ + */ + + public SimulAction() { + log.debug("Init "); + try { + param = new SimulationParameter(); List<String> resultNames = getResultNames(); -// uiContext.setData("ResultNames", resultNames); -// uiContext.setData("ExportNames", ExportStorage.getExportNames()); -// uiContext.setData("AnalysePlanNames", AnalysePlanStorage.getAnalysePlanNames()); -// uiContext.setData("RuleNames", RuleStorage.getRuleNames()); - // put default value in param param.setSimulatorName(IsisFish.config.getSimulatorClassfile()); param.setTagValue(IsisFish.config.getDefaultTagValueAsMap()); param.setExportDirectory(IsisFish.config.getDefaultExportDirectory().toString()); param.setExportNames(IsisFish.config.getDefaultExportNamesAsList()); + analysePlan = AnalysePlanStorage.getAnalysePlanNames(); List<String> defaultResultNames = IsisFish.config.getDefaultResultNamesAsList(); - if (defaultResultNames != null) + if (defaultResultNames != null) { param.setResultEnabled(defaultResultNames); - else + } else { param.setResultEnabled(resultNames); -// -// uiContext.setData("OldSimulationName", ""); -// uiContext.setData("SimulationParameter", param); -// -// // keep in context list of old simulation names (for filter process) -// List<String> value = getSimulationNames(); -// // create filter model -// FilterModel<SimulationProperties, String> model = -// SimulationFilterUtil.createFilterModel(value); -// // to used directly model.getFilteredResult() in xml -// // we must fill filterModel result with original items -// model.selectAll(); -// uiContext.setData("SimulationFilterModel", model); -// -// tabs.setEnabledAt(1, false); // disable prescript tab -// tabs.setEnabledAt(2, false); // disable analyse plan tab -// -//// // add simulation queue button listeners -//// SimulatorListeners.initSimulQueueButtonsListener( -//// start, -//// remove, -//// showLog, -//// table, -//// tableDone -//// ); -// // add rule around button listeners -// SimulatorListeners.initButtonRemoveIfItemSelected(removeRule, listRule); -// -// // add analyse plan around button listeners -// SimulatorListeners.initButtonRemoveIfItemSelected(removeAnalysePlan, listAnalysePlan); -// -// frame.refreshView(); - + } + } + catch (Exception eee) { + log.error("Can't init SimulationParameter", eee); + } } /** @@ -166,7 +137,7 @@ } return result; } - + protected void stopSimulation(SimulationJob job) { job.stop(); log.info(_("User stop simulation %s", job.getItem().getControl().getId())); @@ -180,26 +151,32 @@ UserLog.error(_("Can't open log for %s", id), eee); } } - + protected void clearDoneJobs() { SimulationService ss = SimulationService.getService(); - ss.clearJobDone(); + ss.clearJobDone(); } + + /** + * Change region in simulation launcher + * + * @param regionName SimulationParameter/description + */ public void regionChange(String regionName) { regionStorage = RegionStorage.getRegion(regionName); param.setRegionName(regionName); - // change Region, we must init some list - //param.setPopulations(null); - //param.setRules(null); - //param.setStrategies(null); + for (Rule r : param.getRules()) { + rules.put(r, RuleStorage.getName(r)); + } } + /** * Change region in simulation launcher * * @param simulationName name of simulation to load * @return <code>null</code> if ok, an OutputView otherwise with error */ - public Exception loadOldSimulation(String simulName) { + public void loadOldSimulation(String simulName) { log.debug("call loadOldSimulation: " + simulName); try { simulStorage = SimulationStorage.getSimulation(simulName); @@ -207,25 +184,20 @@ // all time reset number after load param.setAnalysePlanNumber(-1); regionStorage = param.getRegion(); - } catch (Exception eee) { + } catch (Exception eee) { log.error("Can't load old Simulation: " + simulName, eee); - return eee; } - return null; } - public SimulationParameter getSimulationParameter(){ - return param; - } - public void setSimulationParameter(SimulationParameter p){ - param = p; - } - public SimulationStorage getSimulationStorage(){ - return simulStorage; - } - public RegionStorage getRegionStorage(){ - return regionStorage; - } - public void addRules(String name){ + +/* + ************ + * ParamsUI + ************ + */ + +// Gestion des rules + + public void addRules(String name) { ruleStorage = RuleStorage.getRule(name); try { Rule ruleTmp = ruleStorage.getNewRuleInstance(); @@ -246,7 +218,7 @@ List<String> result = new ArrayList<String>(); for (Rule r : param.getRules()) { try { - result.add(rules.get(r)); + result.add(RuleStorage.getName(r)); } catch (Exception ex) { Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); } @@ -258,27 +230,54 @@ for (Map.Entry<Rule, String> entry : rules.entrySet()) { if (entry.getValue().equals(name)) { param.removeRule(entry.getKey()); + rules.remove(entry.getKey()); } } } } - public void simul(String simulId, SimulatorLauncher launcher) { - simulId += " " + dateFormat.format(new java.util.Date()); - - if (simulId == null || "".equals(simulId) || - SimulationStorage.localyExists(simulId) || - SimulationService.getService().exists(simulId)) { - UserLog.error(_("Can't start simulation, bad id: %s", simulId)); - } else { - SimulationParameter p = param.copy(); - - SimulationService.getService().submit(simulId, p, launcher, 0); + public Rule getRule(String ruleName){ + Rule r = null; + for (Map.Entry<Rule, String> entry : rules.entrySet()) { + if (entry.getValue().equals(ruleName)) { + r = entry.getKey(); } + } + return r; } - public List<SimulatorLauncher> getSimulationLauncher(){ - return SimulationService.getService().getSimulationLaunchers(); + public Map<String, Class> getRuleParameterName(String ruleName) { + Map<String, Class> result = null; + if (ruleName != null) { + Rule r = getRule(ruleName); + if (r != null){ + result = RuleStorage.getParameterNames(r); + } + } + return result; } - public List<Strategy> getStrategies(){ + public Object getRuleParameterValue(String paramName, String ruleName){ + Object result = null; + if (ruleName != null) { + try { + result = RuleStorage.getParameterValue(getRule(ruleName), paramName); + } catch (IsisFishException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } + } + return result; + } + public void setRuleParameterValue(String paramName, String ruleName, Object o){ + if (ruleName != null) { + try { + RuleStorage.setParameterValue(getRule(ruleName), paramName, o); + } catch (IsisFishException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } + } + } + +// Strategies + + public List<Strategy> getStrategies() { List<Strategy> result = new ArrayList<Strategy>(); try { result = RegionStorage.getFisheryRegion(param.getRegion().getStorage().beginTransaction()).getStrategy(); @@ -287,12 +286,23 @@ } return result; } - public List<Population> getPopulations(){ + + public void setStrategies(Object[] strategies) { + List<Strategy> result = new ArrayList<Strategy>(); + for (Object o : strategies) { + result.add((Strategy) o); + } + param.setStrategies(result); + } + +// Population + + public List<Population> getPopulations() { List<Species> species; List<Population> result = new ArrayList<Population>(); try { species = RegionStorage.getFisheryRegion(param.getRegion().getStorage().beginTransaction()).getSpecies(); - for (Species s : species){ + for (Species s : species) { result.addAll(s.getPopulation()); } } catch (Exception ex) { @@ -300,42 +310,201 @@ } return result; } - public void setNbAnnees(String years){ + public void setPopulations(Object[] populations) { + List<Population> result = new ArrayList<Population>(); + for (Object o : populations) { + result.add((Population) o); + } + param.setPopulations(result); + } + +// Years + + public void setNbAnnees(String years) { param.setNumberOfYear(Integer.parseInt(years)); } - public List<String> getSimulatorNames(){ + + public List<String> getSimulatorNames() { return SimulatorStorage.getSimulatorNames(); } - public void addTagValue(String tag, String value){ + +/* + ************ + * AdvancedParameterUI + ************ + */ + + // Gestion des TagValues + + public void addTagValue(String tag, String value) { param.getTagValue().put(tag, value); } - public void removeTagValue(String tag){ + + public void removeTagValue(String tag) { log.debug("removeTagValue: " + tag); param.getTagValue().remove(tag); } - public void saveTagValue(String simulatorName){ + + public void saveTagValue(String simulatorName) { Map<String, String> tagValues = param.getTagValue(); log.debug("call saveTagValue: " + tagValues); IsisFish.config.setDefaultTagValues(tagValues); - + IsisFish.config.setSimulatorClassfile(simulatorName); - //IsisFish.config.setSimulatorLauncher(local?"local":"isis-server"); } - public List<String> getExportNames(){ +/* + * ExportUI + */ + + public List<String> getExportNames() { return ExportStorage.getExportNames(); } - public void updateDirectory(){ - param.setExportDirectory(org.codelutin.util.FileUtil.getDirectory()); + + public void updateDirectory() { + param.setExportDirectory(org.codelutin.util.FileUtil.getDirectory()); } - public void saveExport(){ + + public void saveExport() { IsisFish.config.setDefaultExportDirectory(param.getExportDirectory()); - IsisFish.config.setDefaultExportNames(param.getExportNames()); + if (param.getExportNames() != null){ + IsisFish.config.setDefaultExportNames(param.getExportNames()); + } } + +/* + * ResultUI + */ + public void saveResultNames(Object[] resultNames) { List<String> resultNamesString = new ArrayList<String>(); - for (Object o : resultNames){ + for (Object o : resultNames) { resultNamesString.add(o.toString()); } IsisFish.config.setDefaultResultNames(resultNamesString); + } + +/** + ************ + * SensUI + ************ + */ + +// Gestion des analysePlans + + public List<String> getAnalysePlanNames(){ + return analysePlan; } + public List<String> getParamAnalysePlans(){ + List<String> result = new LinkedList<String>(); + for (AnalysePlan a : param.getAnalysePlans()){ + result.add(analysePlans.get(a)); + } + return result; + } + public void addAnalysePlan(String name){ + try { + AnalysePlan ap = AnalysePlanStorage.getAnalysePlan(name).getNewAnalysePlanInstance(); + analysePlans.put(ap, name); + getSimulationParameter().addAnalysePlan(ap); + } catch (IsisFishException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } + } + public void removeAnalysePlan(String name){ + AnalysePlan ap = getAnalysePlan(name); + analysePlans.remove(ap); + getSimulationParameter().removeAnalysePlan(ap); + } + public void clearAnalysePlan(){ + getSimulationParameter().clearPlans(); + } + public AnalysePlan getAnalysePlan(String name){ + AnalysePlan r = null; + for (Map.Entry<AnalysePlan, String> entry : analysePlans.entrySet()) { + if (entry.getValue().equals(name)) { + r = entry.getKey(); + } + } + return r; + } + public Map<String, Class> getAnalysePlanParameterName(String analysePlanName) { + Map<String, Class> result = null; + if (analysePlanName != null) { + AnalysePlan a = getAnalysePlan(analysePlanName); + if (a != null){ + result = AnalysePlanStorage.getParameterNames(a); + } + } + return result; + } + public Object getAnalysePlanParameterValue(String paramName, String analysePlanName){ + Object result = null; + if (analysePlanName != null) { + try { + result = AnalysePlanStorage.getParameterValue(getAnalysePlan(analysePlanName), paramName); + } catch (IsisFishException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } + } + return result; + } + public void setAnalysePlanParameterValue(String paramName, String analysePlanName, Object o){ + if (analysePlanName != null) { + try { + AnalysePlanStorage.setParameterValue(getAnalysePlan(analysePlanName), paramName, o); + } catch (IsisFishException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } + } + } + +/* + ************ + * General + ************ + */ + + public SimulationParameter getSimulationParameter() { + return param; + } + + public void setSimulationParameter(SimulationParameter p) { + param = p; + } + + public SimulationStorage getSimulationStorage() { + return simulStorage; + } + + public RegionStorage getRegionStorage() { + return regionStorage; + } + + public List<SimulatorLauncher> getSimulationLauncher() { + return SimulationService.getService().getSimulationLaunchers(); + } + /** + * Launch automaticaly the simulation, when is possible (no other simulation) + * or wait for the last automaticaly simulation ended. + * + * @param simulId id of the simulation to simulate + * @param inQueue flag to say put in queue + */ + public void simul(String simulId, SimulatorLauncher launcher) { + simulId += " " + dateFormat.format(new java.util.Date()); + log.debug("call simulate"); + try { + if (simulId == null || "".equals(simulId) || + SimulationStorage.localyExists(simulId) || + SimulationService.getService().exists(simulId)) { + UserLog.error(_("Can't start simulation, bad id: %s", simulId)); + } else { + SimulationParameter p = param.copy(); + + SimulationService.getService().submit(simulId, p, launcher, 0); + } + } catch (Exception eee) { + log.error("Can't start simulation", eee); + } + } } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ToolTipListModelFactory.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ToolTipListModelFactory.java 2008-10-14 09:01:24 UTC (rev 1564) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ToolTipListModelFactory.java 2008-10-17 14:57:40 UTC (rev 1565) @@ -31,7 +31,7 @@ public class ToolTipListModelFactory { /** to use log facility, just put in your code: log.info(\"...\"); */ - static private Log log = LogFactory.getLog(SimulatorAction.class); + static private Log log = LogFactory.getLog(SimulAction.class); /** * Build a new {@link ToolTipListModel} for for @Doc'field of all given Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterCellEditor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterCellEditor.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterCellEditor.java 2008-10-17 14:57:40 UTC (rev 1565) @@ -0,0 +1,29 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package fr.ifremer.isisfish.ui.widget.editor; + +/** + * + * @author letellier + */ +public class ParameterCellEditor{ + private String name; + private Class type; + public ParameterCellEditor(String n, Class c){ + name = n; + type = c; + } + @Override + public String toString(){ + return name; + } + public Class getType(){ + return type; + } + public String getName(){ + return name; + } +} Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterColumnEditor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterColumnEditor.java 2008-10-14 09:01:24 UTC (rev 1564) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterColumnEditor.java 2008-10-17 14:57:40 UTC (rev 1565) @@ -86,6 +86,10 @@ * for a simple date */ Date(Date.class), + /** + * for a simple boolean + */ + Double(double.class), /** * for a simple boolean */ @@ -145,11 +149,11 @@ @SuppressWarnings( { "unchecked" }) public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { - - Map.Entry<String, Class> p = (Map.Entry<String, Class>) table - .getValueAt(row, 0); - type = p.getValue(); - log.debug(p.getKey() + " P.type:" + type); +// Map.Entry<String, Class> p = (Map.Entry<String, Class>) table.getValueAt(row, 0); +// type = p.getValue(); +// log.debug(p.getKey() + " P.type:" + type); + ParameterCellEditor p = (ParameterCellEditor) table.getValueAt(row, 0); + type = p.getType(); JComboBox c; //if (!table.hasFocus()) return null;