Author: echatellier Date: 2011-11-08 15:11:46 +0100 (Tue, 08 Nov 2011) New Revision: 3523 Url: http://forge.codelutin.com/repositories/revision/isis-fish/3523 Log: #468 : Configuration des scripts en popup au moment de l'ajout Added: trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableCellEditor.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableCellRenderer.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableModel.java trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/RuleChooserHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ScriptParameterDialog.jaxx Removed: trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellEditor.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellRenderer.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableModel.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableCellEditor.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableCellRenderer.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableModel.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellEditor.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellRenderer.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableModel.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellEditor.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellRenderer.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableModel.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellEditor.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellRenderer.java trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableModel.java Modified: trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/RuleChooser.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java trunk/src/main/resources/i18n/isis-fish_en_GB.properties trunk/src/main/resources/i18n/isis-fish_fr_FR.properties Modified: trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -665,6 +665,16 @@ return result; } + /** + * Get script auto configuration option value. + * + * @return autoconfiguration + */ + public boolean isScriptAutoconfig() { + boolean result = getOptionAsBoolean(Option.SIMULATION_SCRIPT_AUTOCONFIG.key); + return result; + } + public void setSimulatorLauncher(String value) { setOption(Option.SIMULATOR_LAUNCHER.key, value); } @@ -936,6 +946,8 @@ PERFORM_VCS_UPDATE("perform.vcsupdate", n_("isisfish.config.main.performvcsupdate.description"), "true"), /** Perform cron option. */ PERFORM_CRON("perform.cron", n_("isisfish.config.main.performcron.description"), "true"), + /** Auto configure script parameter when addind it */ + SIMULATION_SCRIPT_AUTOCONFIG("script.autoconfig", n_("isisfish.config.main.script.autoconfig.description"), "true"), /** Database lock mode (h2).*/ DATABASE_LOCK_MODE("database.lockmode", n_("isisfish.config.database.lockmode.description"), "file"), Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeHandler.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeHandler.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -220,6 +220,7 @@ modelBuilder.addOption(IsisConfig.Option.BACKUP_DIRECTORY); modelBuilder.addOption(IsisConfig.Option.LOCALE); modelBuilder.addOption(IsisConfig.Option.SIMULATION_SHOW_ONLY_ERROR); + modelBuilder.addOption(IsisConfig.Option.SIMULATION_SCRIPT_AUTOCONFIG); // category database vcs modelBuilder.addCategory(_("isisfish.config.category.officialvcs"), _("isisfish.config.category.officialvcs.description")); Added: trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableCellEditor.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableCellEditor.java (rev 0) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableCellEditor.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -0,0 +1,75 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.common; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import fr.ifremer.isisfish.datastore.JavaSourceStorage; +import fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor; + +/** + * Specific editor for script parameters. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class ScriptParametersTableCellEditor extends ParameterTableCellEditor { + + /** serialVersionUID. */ + private static final long serialVersionUID = 8211639776194497615L; + + protected Object script; + + protected List<Class<?>> scriptParametersTypes; + + /** + * Constructor with script parameter. + * + * @param script script + */ + public ScriptParametersTableCellEditor(Object script) { + this.script = script; + scriptParametersTypes = new ArrayList<Class<?>>(); + //TODO map may be sorted + Map<String, Class<?>> ruleParametersNamesAndTypes = JavaSourceStorage.getParameterNames(script); + for (Class<?> type : ruleParametersNamesAndTypes.values()) { + scriptParametersTypes.add(type); + } + } + + /* + * @see fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor#getType(java.lang.Object, int, int) + */ + @Override + protected Class<?> getType(Object value, int row, int column) { + return scriptParametersTypes.get(row); + } +} Property changes on: trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableCellEditor.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableCellRenderer.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableCellRenderer.java (rev 0) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableCellRenderer.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -0,0 +1,78 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.common; + +import java.awt.Component; + +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.table.DefaultTableCellRenderer; + +import fr.ifremer.isisfish.datastore.JavaSourceStorage; +import fr.ifremer.isisfish.ui.util.TooltipHelper; +import fr.ifremer.isisfish.util.Doc; + +/** + * Specific editor for rule parameters. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class ScriptParametersTableCellRenderer extends DefaultTableCellRenderer { + + /** serialVersionUID. */ + private static final long serialVersionUID = -1655744662816030649L; + + protected Object script; + + public ScriptParametersTableCellRenderer(Object script) { + this.script = script; + } + + /* + * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) + */ + @Override + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, int row, int column) { + + JLabel c = (JLabel) super.getTableCellRendererComponent(table, value, + isSelected, hasFocus, row, column); + + String parameterName = (String) value; + c.setText(parameterName); + + Doc doc = JavaSourceStorage.getParameterDoc(script, parameterName); + String documentation = TooltipHelper.docToString(doc); + c.setToolTipText(documentation); + + return c; + } + +} Property changes on: trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableCellRenderer.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableModel.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableModel.java (rev 0) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableModel.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -0,0 +1,238 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + * %% + * 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, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.models.common; + +import static org.nuiton.i18n.I18n._; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.swing.table.AbstractTableModel; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import fr.ifremer.isisfish.IsisFishException; +import fr.ifremer.isisfish.datastore.JavaSourceStorage; + +/** + * Model de la table de definition de parametre d'un script. + * + * Columns : + * <li>Parameter name</li> + * <li>Parameter value</li> + * <li>Parameter factor (if enabled)</li> + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class ScriptParametersTableModel extends AbstractTableModel { + + /** Log. */ + private static Log log = LogFactory.getLog(ScriptParametersTableModel.class); + + /** serialVersionUID. */ + private static final long serialVersionUID = 3169786638868209920L; + + /** Columns names. */ + public final static String[] COLUMN_NAMES = { + _("isisfish.common.name"), + _("isisfish.common.value"), + _("isisfish.common.ellipsis")}; + + protected Object script; + + protected List<String> scriptParametersNames; + + /** If {@code true} display optional. */ + protected boolean showFactorColumn; + + public ScriptParametersTableModel() { + + } + + public ScriptParametersTableModel(Object script) { + this(); + setScript(script); + } + + public void setShowFactorColumn(boolean showFactorColumn) { + this.showFactorColumn = showFactorColumn; + fireTableStructureChanged(); + } + + /** + * Set new script, and fire changed event. + * + * @param script script + */ + public void setScript(Object script) { + this.script = script; + //TODO map may be sorted + scriptParametersNames = new ArrayList<String>(); + if (script != null) { + Map<String, Class<?>> ruleParametersNamesAndTypes = JavaSourceStorage + .getParameterNames(script); + for (String names : ruleParametersNamesAndTypes.keySet()) { + scriptParametersNames.add(names); + } + } + fireTableDataChanged(); + } + + /* + * @see javax.swing.table.TableModel#getColumnCount() + */ + @Override + public int getColumnCount() { + int result = 2; + if (showFactorColumn) { + result = 3; + } + return result; + } + + /* + * @see javax.swing.table.TableModel#getRowCount() + */ + @Override + public int getRowCount() { + int result = 0; + if (scriptParametersNames != null) { + result = scriptParametersNames.size(); + } + return result; + } + + /* + * @see javax.swing.table.TableModel#getValueAt(int, int) + */ + @Override + public Object getValueAt(int rowIndex, int columnIndex) { + + Object result = null; + + String name = scriptParametersNames.get(rowIndex); + switch (columnIndex) { + case 0: + result = name; + break; + case 1: + try { + result = JavaSourceStorage.getParameterValue(script, name); + } catch (IsisFishException e) { + if (log.isErrorEnabled()) { + log.debug("Can't get parameters value", e); + } + } + break; + case 2: + result = name; + break; + default: + throw new IndexOutOfBoundsException("No such column " + columnIndex); + } + + return result; + } + + /* + * @see javax.swing.table.TableModel#getColumnClass(int) + */ + @Override + public Class<?> getColumnClass(int columnIndex) { + + Class<?> result = null; + + switch (columnIndex) { + case 0: + result = String.class; + break; + case 1: + result = Object.class; + break; + case 2: + result = String.class; + break; + default: + throw new IndexOutOfBoundsException("No such column " + columnIndex); + } + + return result; + } + + /* + * @see javax.swing.table.TableModel#getColumnName(int) + */ + @Override + public String getColumnName(int columnIndex) { + return COLUMN_NAMES[columnIndex]; + } + + /* + * @see javax.swing.table.TableModel#isCellEditable(int, int) + */ + @Override + public boolean isCellEditable(int rowIndex, int columnIndex) { + return columnIndex > 0; + } + + /* + * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) + */ + @Override + public void setValueAt(Object value, int rowIndex, int columnIndex) { + + if (log.isDebugEnabled()) { + log.debug("Cell edition (column " + columnIndex + ") = " + value); + } + + String name = scriptParametersNames.get(rowIndex); + switch (columnIndex) { + case 1: + try { + JavaSourceStorage.setParameterValue(script, name, value); + } catch (IsisFishException e) { + if (log.isErrorEnabled()) { + log.error("Can't set parameter value", e); + } + } + break; + case 2: + // appelé parce qu'on ne peut pas l'empecher + // pour la colonne Action, + break; + default: + throw new IndexOutOfBoundsException("Can't edit column " + + columnIndex); + } + + } +} Property changes on: trunk/src/main/java/fr/ifremer/isisfish/ui/models/common/ScriptParametersTableModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellEditor.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellEditor.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellEditor.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,79 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.export; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import fr.ifremer.isisfish.datastore.ExportStorage; -import fr.ifremer.isisfish.export.Export; -import fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor; - -/** - * Specific editor for export parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class ExportParametersTableCellEditor extends ParameterTableCellEditor { - - /** serialVersionUID. */ - private static final long serialVersionUID = 8211639776194497615L; - - protected Export export; - - protected List<Class<?>> exportParametersTypes; - - /** - * Constructor with export parameter. - * - * @param export export - */ - public ExportParametersTableCellEditor(Export export) { - super(); - - this.export = export; - exportParametersTypes = new ArrayList<Class<?>>(); - //TODO map may be sorted - Map<String, Class<?>> planParametersNamesAndTypes = ExportStorage - .getParameterNames(export); - for (Class<?> type : planParametersNamesAndTypes.values()) { - exportParametersTypes.add(type); - } - } - - /* - * @see fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor#getType(java.lang.Object, int, int) - */ - @Override - protected Class<?> getType(Object value, int row, int column) { - return exportParametersTypes.get(row); - } -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellRenderer.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellRenderer.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableCellRenderer.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,83 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.export; - -import java.awt.Component; - -import javax.swing.JLabel; -import javax.swing.JTable; -import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.table.TableCellRenderer; - -import fr.ifremer.isisfish.datastore.ExportStorage; -import fr.ifremer.isisfish.export.Export; -import fr.ifremer.isisfish.ui.util.TooltipHelper; -import fr.ifremer.isisfish.util.Doc; - -/** - * Specific renderer for export parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class ExportParametersTableCellRenderer extends DefaultTableCellRenderer - implements TableCellRenderer { - - /** serialVersionUID. */ - private static final long serialVersionUID = -1655744662816030649L; - - protected Export export; - - public ExportParametersTableCellRenderer(Export export) { - this.export = export; - } - - /* - * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) - */ - @Override - public Component getTableCellRendererComponent(JTable table, Object value, - boolean isSelected, boolean hasFocus, int row, int column) { - - // this must be used to have alterned highlight rows and default - // selection color - JLabel c = (JLabel) super.getTableCellRendererComponent(table, value, - isSelected, hasFocus, row, column); - - String parameterName = (String) value; - c.setText(parameterName); - - Doc doc = ExportStorage.getParameterDoc(export, parameterName); - String documentation = TooltipHelper.docToString(doc); - c.setToolTipText(documentation); - - return c; - } - -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableModel.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableModel.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportParametersTableModel.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,201 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.export; - -import static org.nuiton.i18n.I18n._; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.swing.table.AbstractTableModel; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import fr.ifremer.isisfish.IsisFishException; -import fr.ifremer.isisfish.datastore.ExportStorage; -import fr.ifremer.isisfish.export.Export; - -/** - * Model de la table de definition de parametre d'un export. - * - * Columns : - * <li>Parameter name</li> - * <li>Parameter value</li> - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class ExportParametersTableModel extends AbstractTableModel { - - /** Log. */ - private static Log log = LogFactory - .getLog(ExportParametersTableModel.class); - - /** serialVersionUID. */ - private static final long serialVersionUID = 3169786638868209920L; - - /** Columns names. */ - public final static String[] COLUMN_NAMES = { _("isisfish.common.name"), - _("isisfish.common.value") }; - - protected Export export; - - protected List<String> exportParametersNames; - - /** - * Constructor with data. - * - * @param export export to edit parameters - */ - public ExportParametersTableModel(Export export) { - super(); - this.export = export; - - //TODO map may be sorted - exportParametersNames = new ArrayList<String>(); - Map<String, Class<?>> planParametersNamesAndTypes = ExportStorage - .getParameterNames(export); - for (String names : planParametersNamesAndTypes.keySet()) { - exportParametersNames.add(names); - } - } - - /* - * @see javax.swing.table.TableModel#getColumnCount() - */ - @Override - public int getColumnCount() { - return COLUMN_NAMES.length; - } - - /* - * @see javax.swing.table.TableModel#getRowCount() - */ - @Override - public int getRowCount() { - return exportParametersNames.size(); - } - - /* - * @see javax.swing.table.TableModel#getValueAt(int, int) - */ - @Override - public Object getValueAt(int rowIndex, int columnIndex) { - - Object result = null; - - String name = exportParametersNames.get(rowIndex); - switch (columnIndex) { - case 0: - result = name; - break; - case 1: - try { - result = ExportStorage.getParameterValue(export, name); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.debug("Can't get parameters value", e); - } - } - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnClass(int) - */ - @Override - public Class<?> getColumnClass(int columnIndex) { - - Class<?> result = null; - - switch (columnIndex) { - case 0: - result = String.class; - break; - case 1: - result = Object.class; - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnName(int) - */ - @Override - public String getColumnName(int columnIndex) { - return COLUMN_NAMES[columnIndex]; - } - - /* - * @see javax.swing.table.TableModel#isCellEditable(int, int) - */ - @Override - public boolean isCellEditable(int rowIndex, int columnIndex) { - return columnIndex > 0; - } - - /* - * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) - */ - @Override - public void setValueAt(Object value, int rowIndex, int columnIndex) { - - if (log.isDebugEnabled()) { - log.debug("Cell edition (column " + columnIndex + ") = " + value); - } - - String name = exportParametersNames.get(rowIndex); - switch (columnIndex) { - case 1: - try { - ExportStorage.setParameterValue(export, name, value); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.error("Can't set parameter value", e); - } - } - break; - default: - throw new IndexOutOfBoundsException("Can't edit column " - + columnIndex); - } - - } -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableCellEditor.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableCellEditor.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableCellEditor.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,77 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.rule; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import fr.ifremer.isisfish.datastore.RuleStorage; -import fr.ifremer.isisfish.rule.Rule; -import fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor; - -/** - * Specific editor for rule parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class RuleParametersTableCellEditor extends ParameterTableCellEditor { - - /** serialVersionUID. */ - private static final long serialVersionUID = 8211639776194497615L; - - protected Rule rule; - - protected List<Class<?>> ruleParametersTypes; - - /** - * Constructor with rule parameter. - * - * @param rule rule - */ - public RuleParametersTableCellEditor(Rule rule) { - this.rule = rule; - ruleParametersTypes = new ArrayList<Class<?>>(); - //TODO map may be sorted - Map<String, Class<?>> ruleParametersNamesAndTypes = RuleStorage - .getParameterNames(rule); - for (Class<?> type : ruleParametersNamesAndTypes.values()) { - ruleParametersTypes.add(type); - } - } - - /* - * @see fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor#getType(java.lang.Object, int, int) - */ - @Override - protected Class<?> getType(Object value, int row, int column) { - return ruleParametersTypes.get(row); - } -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableCellRenderer.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableCellRenderer.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableCellRenderer.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,80 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric - * %% - * 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.rule; - -import java.awt.Component; - -import javax.swing.JLabel; -import javax.swing.JTable; -import javax.swing.table.DefaultTableCellRenderer; - -import fr.ifremer.isisfish.datastore.RuleStorage; -import fr.ifremer.isisfish.rule.Rule; -import fr.ifremer.isisfish.ui.util.TooltipHelper; -import fr.ifremer.isisfish.util.Doc; - -/** - * Specific editor for rule parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class RuleParametersTableCellRenderer extends DefaultTableCellRenderer { - - /** serialVersionUID. */ - private static final long serialVersionUID = -1655744662816030649L; - - protected Rule rule; - - public RuleParametersTableCellRenderer(Rule rule) { - this.rule = rule; - - } - - /* - * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) - */ - @Override - public Component getTableCellRendererComponent(JTable table, Object value, - boolean isSelected, boolean hasFocus, int row, int column) { - - JLabel c = (JLabel) super.getTableCellRendererComponent(table, value, - isSelected, hasFocus, row, column); - - String parameterName = (String) value; - c.setText(parameterName); - - Doc doc = RuleStorage.getParameterDoc(rule, parameterName); - String documentation = TooltipHelper.docToString(doc); - c.setToolTipText(documentation); - - return c; - } - -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableModel.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableModel.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableModel.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,230 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric - * %% - * 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.rule; - -import static org.nuiton.i18n.I18n._; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.swing.table.AbstractTableModel; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import fr.ifremer.isisfish.IsisFishException; -import fr.ifremer.isisfish.datastore.RuleStorage; -import fr.ifremer.isisfish.rule.Rule; - -/** - * Model de la table de definition de parametre d'une regle. - * - * Columns : - * <li>Parameter name</li> - * <li>Parameter value</li> - * <li>Parameter factor (if enabled)</li> - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class RuleParametersTableModel extends AbstractTableModel { - - /** Log. */ - private static Log log = LogFactory.getLog(RuleParametersTableModel.class); - - /** serialVersionUID. */ - private static final long serialVersionUID = 3169786638868209920L; - - /** Columns names. */ - public final static String[] COLUMN_NAMES = { - _("isisfish.common.name"), - _("isisfish.common.value"), - _("isisfish.common.ellipsis")}; - - protected Rule rule; - - protected List<String> ruleParametersNames; - - /** If {@code true} display optional. */ - protected boolean showFactorColumn; - - public void setShowFactorColumn(boolean showFactorColumn) { - this.showFactorColumn = showFactorColumn; - fireTableStructureChanged(); - } - - /** - * Set new rule, and fire changed event. - * - * @param rule - */ - public void setRule(Rule rule) { - this.rule = rule; - //TODO map may be sorted - ruleParametersNames = new ArrayList<String>(); - if (rule != null) { - Map<String, Class<?>> ruleParametersNamesAndTypes = RuleStorage - .getParameterNames(rule); - for (String names : ruleParametersNamesAndTypes.keySet()) { - ruleParametersNames.add(names); - } - } - fireTableDataChanged(); - } - - /* - * @see javax.swing.table.TableModel#getColumnCount() - */ - @Override - public int getColumnCount() { - int result = 2; - if (showFactorColumn) { - result = 3; - } - return result; - } - - /* - * @see javax.swing.table.TableModel#getRowCount() - */ - @Override - public int getRowCount() { - int result = 0; - if (ruleParametersNames != null) { - result = ruleParametersNames.size(); - } - return result; - } - - /* - * @see javax.swing.table.TableModel#getValueAt(int, int) - */ - @Override - public Object getValueAt(int rowIndex, int columnIndex) { - - Object result = null; - - String name = ruleParametersNames.get(rowIndex); - switch (columnIndex) { - case 0: - result = name; - break; - case 1: - try { - result = RuleStorage.getParameterValue(rule, name); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.debug("Can't get parameters value", e); - } - } - break; - case 2: - result = name; - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnClass(int) - */ - @Override - public Class<?> getColumnClass(int columnIndex) { - - Class<?> result = null; - - switch (columnIndex) { - case 0: - result = String.class; - break; - case 1: - result = Object.class; - break; - case 2: - result = String.class; - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnName(int) - */ - @Override - public String getColumnName(int columnIndex) { - return COLUMN_NAMES[columnIndex]; - } - - /* - * @see javax.swing.table.TableModel#isCellEditable(int, int) - */ - @Override - public boolean isCellEditable(int rowIndex, int columnIndex) { - return columnIndex > 0; - } - - /* - * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) - */ - @Override - public void setValueAt(Object value, int rowIndex, int columnIndex) { - - if (log.isDebugEnabled()) { - log.debug("Cell edition (column " + columnIndex + ") = " + value); - } - - String name = ruleParametersNames.get(rowIndex); - switch (columnIndex) { - case 1: - try { - RuleStorage.setParameterValue(rule, name, value); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.error("Can't set parameter value", e); - } - } - break; - case 2: - // appelé parce qu'on ne peut pas l'empecher - // pour la colonne Action, - break; - default: - throw new IndexOutOfBoundsException("Can't edit column " - + columnIndex); - } - - } -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellEditor.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellEditor.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellEditor.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,78 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric - * %% - * 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.sensitivityanalysis; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; -import fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor; - -/** - * Specific editor for rule parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class SensitivityAnalysisParametersTableCellEditor extends - ParameterTableCellEditor { - - /** serialVersionUID. */ - private static final long serialVersionUID = 8211639776194497615L; - - protected SensitivityAnalysis sensitivityAnalysis; - - protected List<Class<?>> sensitivityCalculatorParametersTypes; - - /** - * Constructor with calculator parameter. - * - * @param sensitivityAnalysis plan - */ - public SensitivityAnalysisParametersTableCellEditor(SensitivityAnalysis sensitivityAnalysis) { - this.sensitivityAnalysis = sensitivityAnalysis; - sensitivityCalculatorParametersTypes = new ArrayList<Class<?>>(); - //TODO map may be sorted - Map<String, Class<?>> planParametersNamesAndTypes = SensitivityAnalysisStorage - .getParameterNames(sensitivityAnalysis); - for (Class<?> type : planParametersNamesAndTypes.values()) { - sensitivityCalculatorParametersTypes.add(type); - } - } - - /* - * @see fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor#getType(java.lang.Object, int, int) - */ - @Override - protected Class<?> getType(Object value, int row, int column) { - return sensitivityCalculatorParametersTypes.get(row); - } -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellRenderer.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellRenderer.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableCellRenderer.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,83 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.sensitivityanalysis; - -import java.awt.Component; - -import javax.swing.JLabel; -import javax.swing.JTable; -import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.table.TableCellRenderer; - -import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; -import fr.ifremer.isisfish.ui.util.TooltipHelper; -import fr.ifremer.isisfish.util.Doc; - -/** - * Specific renderer for calculator parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class SensitivityAnalysisParametersTableCellRenderer extends - DefaultTableCellRenderer implements TableCellRenderer { - - /** serialVersionUID. */ - private static final long serialVersionUID = -1655744662816030649L; - - protected SensitivityAnalysis sensitivityAnalysis; - - public SensitivityAnalysisParametersTableCellRenderer(SensitivityAnalysis sensitivityAnalysis) { - this.sensitivityAnalysis = sensitivityAnalysis; - } - - /* - * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) - */ - @Override - public Component getTableCellRendererComponent(JTable table, Object value, - boolean isSelected, boolean hasFocus, int row, int column) { - - // this must be used to have alterned highlight rows and default - // selection color - JLabel c = (JLabel) super.getTableCellRendererComponent(table, value, - isSelected, hasFocus, row, column); - - String parameterName = (String) value; - c.setText(parameterName); - - Doc doc = SensitivityAnalysisStorage.getParameterDoc(sensitivityAnalysis, parameterName); - String documentation = TooltipHelper.docToString(doc); - c.setToolTipText(documentation); - - return c; - } - -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableModel.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableModel.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityanalysis/SensitivityAnalysisParametersTableModel.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,200 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.sensitivityanalysis; - -import static org.nuiton.i18n.I18n._; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.swing.table.AbstractTableModel; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import fr.ifremer.isisfish.IsisFishException; -import fr.ifremer.isisfish.datastore.SensitivityAnalysisStorage; -import fr.ifremer.isisfish.simulator.sensitivity.SensitivityAnalysis; - -/** - * Model de la table de definition de parametre d'un plan d'analyse. - * - * Columns : - * <li>Parameter name</li> - * <li>Parameter value</li> - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class SensitivityAnalysisParametersTableModel extends AbstractTableModel { - - /** Log. */ - private static Log log = LogFactory - .getLog(SensitivityAnalysisParametersTableModel.class); - - /** serialVersionUID. */ - private static final long serialVersionUID = 3169786638868209920L; - - /** Columns names. */ - public final static String[] COLUMN_NAMES = { _("isisfish.common.name"), - _("isisfish.common.value") }; - - protected SensitivityAnalysis sensitivityAnalysis; - - protected List<String> planParametersNames; - - /** - * Constructor with data. - * - * @param sensitivityAnalysis plan to edit parameters - */ - public SensitivityAnalysisParametersTableModel(SensitivityAnalysis sensitivityAnalysis) { - this.sensitivityAnalysis = sensitivityAnalysis; - - //TODO map may be sorted - planParametersNames = new ArrayList<String>(); - Map<String, Class<?>> planParametersNamesAndTypes = SensitivityAnalysisStorage - .getParameterNames(sensitivityAnalysis); - for (String names : planParametersNamesAndTypes.keySet()) { - planParametersNames.add(names); - } - } - - /* - * @see javax.swing.table.TableModel#getColumnCount() - */ - @Override - public int getColumnCount() { - return COLUMN_NAMES.length; - } - - /* - * @see javax.swing.table.TableModel#getRowCount() - */ - @Override - public int getRowCount() { - return planParametersNames.size(); - } - - /* - * @see javax.swing.table.TableModel#getValueAt(int, int) - */ - @Override - public Object getValueAt(int rowIndex, int columnIndex) { - - Object result = null; - - String name = planParametersNames.get(rowIndex); - switch (columnIndex) { - case 0: - result = name; - break; - case 1: - try { - result = SensitivityAnalysisStorage.getParameterValue(sensitivityAnalysis, name); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.debug("Can't get parameters value", e); - } - } - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnClass(int) - */ - @Override - public Class<?> getColumnClass(int columnIndex) { - - Class<?> result = null; - - switch (columnIndex) { - case 0: - result = String.class; - break; - case 1: - result = Object.class; - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnName(int) - */ - @Override - public String getColumnName(int columnIndex) { - return COLUMN_NAMES[columnIndex]; - } - - /* - * @see javax.swing.table.TableModel#isCellEditable(int, int) - */ - @Override - public boolean isCellEditable(int rowIndex, int columnIndex) { - return columnIndex > 0; - } - - /* - * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) - */ - @Override - public void setValueAt(Object value, int rowIndex, int columnIndex) { - - if (log.isDebugEnabled()) { - log.debug("Cell edition (column " + columnIndex + ") = " + value); - } - - String name = planParametersNames.get(rowIndex); - switch (columnIndex) { - case 1: - try { - SensitivityAnalysisStorage.setParameterValue(sensitivityAnalysis, name, value); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.error("Can't set parameter value", e); - } - } - break; - default: - throw new IndexOutOfBoundsException("Can't edit column " - + columnIndex); - } - - } -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellEditor.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellEditor.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellEditor.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,79 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.sensitivityexport; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import fr.ifremer.isisfish.datastore.SensitivityExportStorage; -import fr.ifremer.isisfish.export.SensitivityExport; -import fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor; - -/** - * Specific editor for export parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author: chatellier $ - */ -public class SensitivityExportParametersTableCellEditor extends ParameterTableCellEditor { - - /** serialVersionUID. */ - private static final long serialVersionUID = 8211639776194497615L; - - protected SensitivityExport export; - - protected List<Class<?>> exportParametersTypes; - - /** - * Constructor with export parameter. - * - * @param export export - */ - public SensitivityExportParametersTableCellEditor(SensitivityExport export) { - super(); - - this.export = export; - exportParametersTypes = new ArrayList<Class<?>>(); - //TODO map may be sorted - Map<String, Class<?>> planParametersNamesAndTypes = SensitivityExportStorage - .getParameterNames(export); - for (Class<?> type : planParametersNamesAndTypes.values()) { - exportParametersTypes.add(type); - } - } - - /* - * @see fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor#getType(java.lang.Object, int, int) - */ - @Override - protected Class<?> getType(Object value, int row, int column) { - return exportParametersTypes.get(row); - } -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellRenderer.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellRenderer.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellRenderer.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,83 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.sensitivityexport; - -import java.awt.Component; - -import javax.swing.JLabel; -import javax.swing.JTable; -import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.table.TableCellRenderer; - -import fr.ifremer.isisfish.datastore.SensitivityExportStorage; -import fr.ifremer.isisfish.export.SensitivityExport; -import fr.ifremer.isisfish.ui.util.TooltipHelper; -import fr.ifremer.isisfish.util.Doc; - -/** - * Specific renderer for export parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author: chatellier $ - */ -public class SensitivityExportParametersTableCellRenderer extends DefaultTableCellRenderer - implements TableCellRenderer { - - /** serialVersionUID. */ - private static final long serialVersionUID = -1655744662816030649L; - - protected SensitivityExport export; - - public SensitivityExportParametersTableCellRenderer(SensitivityExport export) { - this.export = export; - } - - /* - * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) - */ - @Override - public Component getTableCellRendererComponent(JTable table, Object value, - boolean isSelected, boolean hasFocus, int row, int column) { - - // this must be used to have alterned highlight rows and default - // selection color - JLabel c = (JLabel) super.getTableCellRendererComponent(table, value, - isSelected, hasFocus, row, column); - - String parameterName = (String) value; - c.setText(parameterName); - - Doc doc = SensitivityExportStorage.getParameterDoc(export, parameterName); - String documentation = TooltipHelper.docToString(doc); - c.setToolTipText(documentation); - - return c; - } - -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableModel.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableModel.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableModel.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,201 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, Code Lutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.sensitivityexport; - -import static org.nuiton.i18n.I18n._; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.swing.table.AbstractTableModel; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import fr.ifremer.isisfish.IsisFishException; -import fr.ifremer.isisfish.datastore.SensitivityExportStorage; -import fr.ifremer.isisfish.export.SensitivityExport; - -/** - * Model de la table de definition de parametre d'un export. - * - * Columns : - * <li>Parameter name</li> - * <li>Parameter value</li> - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author: chatellier $ - */ -public class SensitivityExportParametersTableModel extends AbstractTableModel { - - /** Log. */ - private static Log log = LogFactory - .getLog(SensitivityExportParametersTableModel.class); - - /** serialVersionUID. */ - private static final long serialVersionUID = 3169786638868209920L; - - /** Columns names. */ - public final static String[] COLUMN_NAMES = { _("isisfish.common.name"), - _("isisfish.common.value") }; - - protected SensitivityExport export; - - protected List<String> exportParametersNames; - - /** - * Constructor with data. - * - * @param export export to edit parameters - */ - public SensitivityExportParametersTableModel(SensitivityExport export) { - super(); - this.export = export; - - //TODO map may be sorted - exportParametersNames = new ArrayList<String>(); - Map<String, Class<?>> planParametersNamesAndTypes = SensitivityExportStorage - .getParameterNames(export); - for (String names : planParametersNamesAndTypes.keySet()) { - exportParametersNames.add(names); - } - } - - /* - * @see javax.swing.table.TableModel#getColumnCount() - */ - @Override - public int getColumnCount() { - return COLUMN_NAMES.length; - } - - /* - * @see javax.swing.table.TableModel#getRowCount() - */ - @Override - public int getRowCount() { - return exportParametersNames.size(); - } - - /* - * @see javax.swing.table.TableModel#getValueAt(int, int) - */ - @Override - public Object getValueAt(int rowIndex, int columnIndex) { - - Object result = null; - - String name = exportParametersNames.get(rowIndex); - switch (columnIndex) { - case 0: - result = name; - break; - case 1: - try { - result = SensitivityExportStorage.getParameterValue(export, name); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.debug("Can't get parameters value", e); - } - } - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnClass(int) - */ - @Override - public Class<?> getColumnClass(int columnIndex) { - - Class<?> result = null; - - switch (columnIndex) { - case 0: - result = String.class; - break; - case 1: - result = Object.class; - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnName(int) - */ - @Override - public String getColumnName(int columnIndex) { - return COLUMN_NAMES[columnIndex]; - } - - /* - * @see javax.swing.table.TableModel#isCellEditable(int, int) - */ - @Override - public boolean isCellEditable(int rowIndex, int columnIndex) { - return columnIndex > 0; - } - - /* - * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) - */ - @Override - public void setValueAt(Object value, int rowIndex, int columnIndex) { - - if (log.isDebugEnabled()) { - log.debug("Cell edition (column " + columnIndex + ") = " + value); - } - - String name = exportParametersNames.get(rowIndex); - switch (columnIndex) { - case 1: - try { - SensitivityExportStorage.setParameterValue(export, name, value); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.error("Can't set parameter value", e); - } - } - break; - default: - throw new IndexOutOfBoundsException("Can't edit column " - + columnIndex); - } - - } -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellEditor.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellEditor.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellEditor.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,78 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric - * %% - * 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.simulationplan; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import fr.ifremer.isisfish.datastore.SimulationPlanStorage; -import fr.ifremer.isisfish.simulator.SimulationPlan; -import fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor; - -/** - * Specific editor for rule parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class SimulationPlanParametersTableCellEditor extends - ParameterTableCellEditor { - - /** serialVersionUID. */ - private static final long serialVersionUID = 8211639776194497615L; - - protected SimulationPlan plan; - - protected List<Class<?>> planParametersTypes; - - /** - * Constructor with rule parameter. - * - * @param plan plan - */ - public SimulationPlanParametersTableCellEditor(SimulationPlan plan) { - this.plan = plan; - planParametersTypes = new ArrayList<Class<?>>(); - //TODO map may be sorted - Map<String, Class<?>> planParametersNamesAndTypes = SimulationPlanStorage - .getParameterNames(plan); - for (Class<?> type : planParametersNamesAndTypes.values()) { - planParametersTypes.add(type); - } - } - - /* - * @see fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor#getType(java.lang.Object, int, int) - */ - @Override - protected Class<?> getType(Object value, int row, int column) { - return planParametersTypes.get(row); - } -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellRenderer.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellRenderer.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableCellRenderer.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,83 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric - * %% - * 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.simulationplan; - -import java.awt.Component; - -import javax.swing.JLabel; -import javax.swing.JTable; -import javax.swing.table.DefaultTableCellRenderer; -import javax.swing.table.TableCellRenderer; - -import fr.ifremer.isisfish.datastore.SimulationPlanStorage; -import fr.ifremer.isisfish.simulator.SimulationPlan; -import fr.ifremer.isisfish.ui.util.TooltipHelper; -import fr.ifremer.isisfish.util.Doc; - -/** - * Specific renderer for plan parameters. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class SimulationPlanParametersTableCellRenderer extends - DefaultTableCellRenderer implements TableCellRenderer { - - /** serialVersionUID. */ - private static final long serialVersionUID = -1655744662816030649L; - - protected SimulationPlan plan; - - public SimulationPlanParametersTableCellRenderer(SimulationPlan plan) { - this.plan = plan; - } - - /* - * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int) - */ - @Override - public Component getTableCellRendererComponent(JTable table, Object value, - boolean isSelected, boolean hasFocus, int row, int column) { - - // this must be used to have alterned highlight rows and default - // selection color - JLabel c = (JLabel) super.getTableCellRendererComponent(table, value, - isSelected, hasFocus, row, column); - - String parameterName = (String) value; - c.setText(parameterName); - - Doc doc = SimulationPlanStorage.getParameterDoc(plan, parameterName); - String documentation = TooltipHelper.docToString(doc); - c.setToolTipText(documentation); - - return c; - } - -} Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableModel.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableModel.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulationplan/SimulationPlanParametersTableModel.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -1,200 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric - * %% - * 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, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.models.simulationplan; - -import static org.nuiton.i18n.I18n._; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import javax.swing.table.AbstractTableModel; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import fr.ifremer.isisfish.IsisFishException; -import fr.ifremer.isisfish.datastore.SimulationPlanStorage; -import fr.ifremer.isisfish.simulator.SimulationPlan; - -/** - * Model de la table de definition de parametre d'un plan de simulation. - * - * Columns : - * <li>Parameter name</li> - * <li>Parameter value</li> - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class SimulationPlanParametersTableModel extends AbstractTableModel { - - /** Log. */ - private static Log log = LogFactory - .getLog(SimulationPlanParametersTableModel.class); - - /** serialVersionUID. */ - private static final long serialVersionUID = 3169786638868209920L; - - /** Columns names. */ - public final static String[] COLUMN_NAMES = { _("isisfish.common.name"), - _("isisfish.common.value") }; - - protected SimulationPlan plan; - - protected List<String> planParametersNames; - - /** - * Constructor with data. - * - * @param plan plan to edit parameters - */ - public SimulationPlanParametersTableModel(SimulationPlan plan) { - this.plan = plan; - - //TODO map may be sorted - planParametersNames = new ArrayList<String>(); - Map<String, Class<?>> planParametersNamesAndTypes = SimulationPlanStorage - .getParameterNames(plan); - for (String names : planParametersNamesAndTypes.keySet()) { - planParametersNames.add(names); - } - } - - /* - * @see javax.swing.table.TableModel#getColumnCount() - */ - @Override - public int getColumnCount() { - return COLUMN_NAMES.length; - } - - /* - * @see javax.swing.table.TableModel#getRowCount() - */ - @Override - public int getRowCount() { - return planParametersNames.size(); - } - - /* - * @see javax.swing.table.TableModel#getValueAt(int, int) - */ - @Override - public Object getValueAt(int rowIndex, int columnIndex) { - - Object result = null; - - String name = planParametersNames.get(rowIndex); - switch (columnIndex) { - case 0: - result = name; - break; - case 1: - try { - result = SimulationPlanStorage.getParameterValue(plan, name); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.debug("Can't get parameters value", e); - } - } - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnClass(int) - */ - @Override - public Class<?> getColumnClass(int columnIndex) { - - Class<?> result = null; - - switch (columnIndex) { - case 0: - result = String.class; - break; - case 1: - result = Object.class; - break; - default: - throw new IndexOutOfBoundsException("No such column " + columnIndex); - } - - return result; - } - - /* - * @see javax.swing.table.TableModel#getColumnName(int) - */ - @Override - public String getColumnName(int columnIndex) { - return COLUMN_NAMES[columnIndex]; - } - - /* - * @see javax.swing.table.TableModel#isCellEditable(int, int) - */ - @Override - public boolean isCellEditable(int rowIndex, int columnIndex) { - return columnIndex > 0; - } - - /* - * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) - */ - @Override - public void setValueAt(Object value, int rowIndex, int columnIndex) { - - if (log.isDebugEnabled()) { - log.debug("Cell edition (column " + columnIndex + ") = " + value); - } - - String name = planParametersNames.get(rowIndex); - switch (columnIndex) { - case 1: - try { - SimulationPlanStorage.setParameterValue(plan, name, value); - } catch (IsisFishException e) { - if (log.isErrorEnabled()) { - log.error("Can't set parameter value", e); - } - } - break; - default: - throw new IndexOutOfBoundsException("Can't edit column " - + columnIndex); - } - - } -} Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2011-11-08 14:11:46 UTC (rev 3523) @@ -37,16 +37,13 @@ fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportListModel fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportListRenderer fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportNameListRenderer - fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportParametersTableCellEditor - fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportParametersTableCellRenderer - fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportParametersTableModel fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisComboModel fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisComboRenderer fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisListModel fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisListRenderer - fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisParametersTableCellEditor - fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisParametersTableCellRenderer - fr.ifremer.isisfish.ui.models.sensitivityanalysis.SensitivityAnalysisParametersTableModel + fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellEditor + fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellRenderer + fr.ifremer.isisfish.ui.models.common.ScriptParametersTableModel fr.ifremer.isisfish.ui.sensitivity.model.FactorCardinalityTableModel fr.ifremer.isisfish.ui.simulator.SimulAction </import> @@ -106,10 +103,10 @@ } // update model - SensitivityAnalysisParametersTableModel parametersTableModel = new SensitivityAnalysisParametersTableModel(sensitivityAnalysis); + ScriptParametersTableModel parametersTableModel = new ScriptParametersTableModel(sensitivityAnalysis); simulSensitivityAnalysisParam.setModel(parametersTableModel); - simulSensitivityAnalysisParam.getColumnModel().getColumn(0).setCellRenderer(new SensitivityAnalysisParametersTableCellRenderer(sensitivityAnalysis)); - simulSensitivityAnalysisParam.getColumnModel().getColumn(1).setCellEditor(new SensitivityAnalysisParametersTableCellEditor(sensitivityAnalysis)); + simulSensitivityAnalysisParam.getColumnModel().getColumn(0).setCellRenderer(new ScriptParametersTableCellRenderer(sensitivityAnalysis)); + simulSensitivityAnalysisParam.getColumnModel().getColumn(1).setCellEditor(new ScriptParametersTableCellEditor(sensitivityAnalysis)); } } @@ -142,7 +139,7 @@ protected void addExports() { Object[] exportNames = (Object[])availableSensitivityExports.getSelectedValues(); for (Object exportName : exportNames) { - getSimulAction().addSensitivityExport((String)exportName); + getSimulAction().addSensitivityExport(this, (String)exportName); } setSensitivityExportListModel(); } @@ -204,10 +201,10 @@ if (selectedSensitivityExports.getSelectedIndices().length == 1) { SensitivityExport export = (SensitivityExport)selectedSensitivityExports.getSelectedValue(); - SensitivityExportParametersTableModel model = new SensitivityExportParametersTableModel(export); + ScriptParametersTableModel model = new ScriptParametersTableModel(export); exportParamsTable.setModel(model); - exportParamsTable.getColumnModel().getColumn(0).setCellRenderer(new SensitivityExportParametersTableCellRenderer(export)); - SensitivityExportParametersTableCellEditor cellEditor = new SensitivityExportParametersTableCellEditor(export); + exportParamsTable.getColumnModel().getColumn(0).setCellRenderer(new ScriptParametersTableCellRenderer(export)); + ScriptParametersTableCellEditor cellEditor = new ScriptParametersTableCellEditor(export); cellEditor.setRegionStorage(getContextValue(RegionStorage.class)); exportParamsTable.getColumnModel().getColumn(1).setCellEditor(cellEditor); } Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2011-11-08 14:11:46 UTC (rev 3523) @@ -45,9 +45,6 @@ fr.ifremer.isisfish.ui.models.rule.RuleComboModel; fr.ifremer.isisfish.ui.models.rule.RuleNamesListRenderer; fr.ifremer.isisfish.ui.models.rule.RuleListModel; - fr.ifremer.isisfish.ui.models.rule.RuleParametersTableModel; - fr.ifremer.isisfish.ui.models.rule.RuleParametersTableCellEditor; - fr.ifremer.isisfish.ui.models.rule.RuleParametersTableCellRenderer; fr.ifremer.isisfish.ui.sensitivity.FactorWizardUI; fr.ifremer.isisfish.ui.sensitivity.SensitivityUI; fr.ifremer.isisfish.rule.Rule; Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/RuleChooser.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/RuleChooser.jaxx 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/RuleChooser.jaxx 2011-11-08 14:11:46 UTC (rev 3523) @@ -33,6 +33,8 @@ <Boolean id="showFactorColumn" javaBean="false" /> + <RuleChooserHandler id="handler" /> + <import> java.beans.PropertyChangeEvent java.beans.PropertyChangeListener @@ -42,9 +44,9 @@ fr.ifremer.isisfish.datastore.RuleStorage fr.ifremer.isisfish.rule.Rule fr.ifremer.isisfish.ui.models.rule.RuleListModel - fr.ifremer.isisfish.ui.models.rule.RuleParametersTableModel - fr.ifremer.isisfish.ui.models.rule.RuleParametersTableCellEditor - fr.ifremer.isisfish.ui.models.rule.RuleParametersTableCellRenderer + fr.ifremer.isisfish.ui.models.common.ScriptParametersTableModel + fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellEditor + fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellRenderer fr.ifremer.isisfish.ui.models.rule.RuleParametersFactorTableCellRenderer fr.ifremer.isisfish.ui.models.rule.RuleParametersFactorTableCellEditor fr.ifremer.isisfish.ui.util.ErrorHelper @@ -72,94 +74,6 @@ SwingUtil.fixTableColumnWidth(selectedRuleParameterTable, 2, 30); } } - - /** - * Get new instance for selected rules names and add it to {@link rulesList} list. - */ - protected void addSelectedRules() { - Object[] availableRuleValues = availableRuleList.getSelectedValues(); - for (Object availableRuleValue : availableRuleValues) { - String availableRuleName = (String)availableRuleValue; - try { - RuleStorage ruleStorage = RuleStorage.getRule(availableRuleName); - Rule ruleTmp = ruleStorage.getNewRuleInstance(); - rulesList.add(ruleTmp); - } catch (IsisFishException ex) { - throw new IsisFishRuntimeException("Can't add rule", ex); - } - } - selectedRulesListModel.setRules(rulesList); - } - - /** - * Remove selected rules for selected rules list. - */ - protected void removeSelectedRules() { - SimulAction simulAction = getContextValue(SimulAction.class); - Object[] selectedRuleValues = selectedRulesList.getSelectedValues(); - for (Object selectedRuleValue : selectedRuleValues) { - - // condition pour savoir si on est dans l'instance principal - // de définition d'une simulation (hack) - if (isShowFactorColumn()) { - int ruleIndex = rulesList.indexOf(selectedRuleValue); - simulAction.preRemoveRule(ruleIndex); - getContextValue(SimulationUI.class, "SimulationUI").refreshFactorTree(); - } - - // real rule remove - rulesList.remove(selectedRuleValue); - } - selectedRulesListModel.setRules(rulesList); - selectedRulesList.clearSelection(); - } - - /** - * Clear selected rule list. - */ - protected void clearAllRules() { - // condition pour savoir si on est dans l'instance principal - // de définition d'une simulation (hack) - if (isShowFactorColumn()) { - SimulAction simulAction = getContextValue(SimulAction.class); - for (Rule rule : rulesList) { - int ruleIndex = rulesList.indexOf(rule); - simulAction.preRemoveRule(ruleIndex); - } - getContextValue(SimulationUI.class, "SimulationUI").refreshFactorTree(); - } - rulesList.clear(); - selectedRulesListModel.setRules(rulesList); - selectedRulesList.clearSelection(); - } - - /** - * Display paramters table form single selected list. - */ - protected void displayRuleParameters() { - Rule selectedRule = (Rule)selectedRulesList.getSelectedValue(); - if (selectedRule != null) { - selectedRuleParameterTableModel.setRule(selectedRule); - - RuleParametersTableCellRenderer cellRenderer = new RuleParametersTableCellRenderer(selectedRule); - selectedRuleParameterTable.getColumnModel().getColumn(0).setCellRenderer(cellRenderer); - - - RuleParametersTableCellEditor cellEditor = new RuleParametersTableCellEditor(selectedRule); - cellEditor.setRegionStorage(getContextValue(RegionStorage.class)); - selectedRuleParameterTable.getColumnModel().getColumn(1).setCellEditor(cellEditor); - - if (isShowFactorColumn()) { - RuleParametersFactorTableCellRenderer sensitivityRenderer = new RuleParametersFactorTableCellRenderer(this, selectedRule); - selectedRuleParameterTable.getColumnModel().getColumn(2).setCellRenderer(sensitivityRenderer); - RuleParametersFactorTableCellEditor sensitivityEditor = new RuleParametersFactorTableCellEditor(this, selectedRule); - selectedRuleParameterTable.getColumnModel().getColumn(2).setCellEditor(sensitivityEditor); - } - } - else { - selectedRuleParameterTableModel.setRule(null); - } - } ]]></script> <row> @@ -184,7 +98,7 @@ </JScrollPane> </cell> <cell fill='horizontal'> - <JButton id="addRulesButton" text="isisfish.common.add" enabled="false" onActionPerformed='addSelectedRules()'/> + <JButton id="addRulesButton" text="isisfish.common.add" enabled="false" onActionPerformed='handler.addSelectedRules(this)'/> </cell> <cell fill="both" rows="3" weightx="1" weighty="1"> <JScrollPane enabled="{isActive()}"> @@ -192,26 +106,26 @@ <JList id="selectedRulesList" selectionMode="{javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION}" model='{selectedRulesListModel}' cellRenderer='{new fr.ifremer.isisfish.ui.models.rule.RuleListCellRenderer()}' - onValueChanged='removeRuleButton.setEnabled(selectedRulesList.getSelectedIndex() != -1);clearRulesButton.setEnabled(selectedRulesList.getSelectedIndex() != -1);displayRuleParameters()' /> + onValueChanged='removeRuleButton.setEnabled(selectedRulesList.getSelectedIndex() != -1);clearRulesButton.setEnabled(selectedRulesList.getSelectedIndex() != -1);handler.displayRuleParameters(this)' /> </JScrollPane> </cell> </row> <row> <cell fill='horizontal'> <JButton id="removeRuleButton" text="isisfish.common.remove" - enabled="false" onActionPerformed='removeSelectedRules()'/> + enabled="false" onActionPerformed='handler.removeSelectedRules(this)'/> </cell> </row> <row> <cell fill='horizontal' anchor="north"> <JButton id="clearRulesButton" text="isisfish.common.clear" - enabled="false" onActionPerformed='clearAllRules()'/> + enabled="false" onActionPerformed='handler.clearAllRules(this)'/> </cell> </row> <row weightx="2" weighty="2" columns="3"> <cell fill='both'> <JScrollPane enabled="{isActive()}"> - <fr.ifremer.isisfish.ui.models.rule.RuleParametersTableModel + <fr.ifremer.isisfish.ui.models.common.ScriptParametersTableModel id="selectedRuleParameterTableModel" showFactorColumn="{isShowFactorColumn()}" /> <JTable id="selectedRuleParameterTable" rowHeight='24' model="{selectedRuleParameterTableModel}" /> Added: trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/RuleChooserHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/RuleChooserHandler.java (rev 0) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/RuleChooserHandler.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -0,0 +1,151 @@ +/* + * #%L + * + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 Codelutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.simulator; + +import fr.ifremer.isisfish.IsisFishException; +import fr.ifremer.isisfish.IsisFishRuntimeException; +import fr.ifremer.isisfish.datastore.RegionStorage; +import fr.ifremer.isisfish.datastore.RuleStorage; +import fr.ifremer.isisfish.rule.Rule; +import fr.ifremer.isisfish.ui.SimulationUI; +import fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellEditor; +import fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellRenderer; +import fr.ifremer.isisfish.ui.models.rule.RuleParametersFactorTableCellEditor; +import fr.ifremer.isisfish.ui.models.rule.RuleParametersFactorTableCellRenderer; +import fr.ifremer.isisfish.ui.widget.editor.ScriptParameterDialog; + +/** + * Handler for {@link RuleChooser class}. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class RuleChooserHandler { + + /** + * Get new instance for selected rules names and add it to {@link rulesList} list. + * + * @param ruleChooser rule chooser ui + */ + protected void addSelectedRules(RuleChooser ruleChooser) { + Object[] availableRuleValues = ruleChooser.getAvailableRuleList().getSelectedValues(); + for (Object availableRuleValue : availableRuleValues) { + String availableRuleName = (String)availableRuleValue; + try { + RuleStorage ruleStorage = RuleStorage.getRule(availableRuleName); + Rule ruleTmp = ruleStorage.getNewRuleInstance(); + + // add it after autoconfiguration (if enabled) + ruleTmp = (Rule)ScriptParameterDialog.displayConfigurationFrame(ruleChooser, ruleTmp); + if (ruleTmp != null) { + ruleChooser.getRulesList().add(ruleTmp); + } + } catch (IsisFishException ex) { + throw new IsisFishRuntimeException("Can't add rule", ex); + } + } + ruleChooser.getSelectedRulesListModel().setRules(ruleChooser.getRulesList()); + } + + /** + * Remove selected rules for selected rules list. + * + * @param ruleChooser rule chooser ui + */ + protected void removeSelectedRules(RuleChooser ruleChooser) { + SimulAction simulAction = ruleChooser.getContextValue(SimulAction.class); + Object[] selectedRuleValues = ruleChooser.getSelectedRulesList().getSelectedValues(); + for (Object selectedRuleValue : selectedRuleValues) { + + // condition pour savoir si on est dans l'instance principal + // de définition d'une simulation (hack) + if (ruleChooser.isShowFactorColumn()) { + int ruleIndex = ruleChooser.getRulesList().indexOf(selectedRuleValue); + simulAction.preRemoveRule(ruleIndex); + ruleChooser.getContextValue(SimulationUI.class, "SimulationUI").refreshFactorTree(); + } + + // real rule remove + ruleChooser.getRulesList().remove(selectedRuleValue); + } + ruleChooser.getSelectedRulesListModel().setRules(ruleChooser.getRulesList()); + ruleChooser.getSelectedRulesList().clearSelection(); + } + + /** + * Clear selected rule list. + * + * @param ruleChooser rule chooser ui + */ + protected void clearAllRules(RuleChooser ruleChooser) { + // condition pour savoir si on est dans l'instance principal + // de définition d'une simulation (hack) + if (ruleChooser.isShowFactorColumn()) { + SimulAction simulAction = ruleChooser.getContextValue(SimulAction.class); + for (Rule rule : ruleChooser.getRulesList()) { + int ruleIndex = ruleChooser.getRulesList().indexOf(rule); + simulAction.preRemoveRule(ruleIndex); + } + ruleChooser.getContextValue(SimulationUI.class, "SimulationUI").refreshFactorTree(); + } + ruleChooser.getRulesList().clear(); + ruleChooser.getSelectedRulesListModel().setRules(ruleChooser.getRulesList()); + ruleChooser.getSelectedRulesList().clearSelection(); + } + + /** + * Display paramters table form single selected list. + * + * @param ruleChooser rule chooser ui + */ + protected void displayRuleParameters(RuleChooser ruleChooser) { + Rule selectedRule = (Rule)ruleChooser.getSelectedRulesList().getSelectedValue(); + if (selectedRule != null) { + ruleChooser.getSelectedRuleParameterTableModel().setScript(selectedRule); + + ScriptParametersTableCellRenderer cellRenderer = new ScriptParametersTableCellRenderer(selectedRule); + ruleChooser.getSelectedRuleParameterTable().getColumnModel().getColumn(0).setCellRenderer(cellRenderer); + + + ScriptParametersTableCellEditor cellEditor = new ScriptParametersTableCellEditor(selectedRule); + cellEditor.setRegionStorage(ruleChooser.getContextValue(RegionStorage.class)); + ruleChooser.getSelectedRuleParameterTable().getColumnModel().getColumn(1).setCellEditor(cellEditor); + + if (ruleChooser.isShowFactorColumn()) { + RuleParametersFactorTableCellRenderer sensitivityRenderer = new RuleParametersFactorTableCellRenderer(ruleChooser, selectedRule); + ruleChooser.getSelectedRuleParameterTable().getColumnModel().getColumn(2).setCellRenderer(sensitivityRenderer); + RuleParametersFactorTableCellEditor sensitivityEditor = new RuleParametersFactorTableCellEditor(ruleChooser, selectedRule); + ruleChooser.getSelectedRuleParameterTable().getColumnModel().getColumn(2).setCellEditor(sensitivityEditor); + } + } + else { + ruleChooser.getSelectedRuleParameterTableModel().setScript(null); + } + } +} Property changes on: trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/RuleChooserHandler.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx 2011-11-08 14:11:46 UTC (rev 3523) @@ -34,9 +34,9 @@ fr.ifremer.isisfish.ui.models.simulationplan.SimulationPlanComboRenderer; fr.ifremer.isisfish.ui.models.simulationplan.SimulationPlanListModel; fr.ifremer.isisfish.ui.models.simulationplan.SimulationPlanListRenderer; - fr.ifremer.isisfish.ui.models.simulationplan.SimulationPlanParametersTableModel; - fr.ifremer.isisfish.ui.models.simulationplan.SimulationPlanParametersTableCellEditor; - fr.ifremer.isisfish.ui.models.simulationplan.SimulationPlanParametersTableCellRenderer; + fr.ifremer.isisfish.ui.models.common.ScriptParametersTableModel; + fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellEditor; + fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellRenderer; fr.ifremer.isisfish.datastore.RegionStorage; </import> <SimulAction id='simulAction' javaBean='getContextValue(SimulAction.class)' /> @@ -83,7 +83,7 @@ protected void addSimulationPlan() { String selectedSimulationPlanName = (String)fieldSimulParamsSimulationPlansSelect.getSelectedItem(); - simulAction.addSimulationPlan(selectedSimulationPlanName); + simulAction.addSimulationPlan(this, selectedSimulationPlanName); listSimulParamsSimulationPlansList.setModel(getSimulationSimulationPlansListModel()); setSimulationPlanButtons(); } @@ -121,11 +121,11 @@ protected void setSimulParamsSimulationPlans() { SimulationPlan selectedSimulationPlan = (SimulationPlan)listSimulParamsSimulationPlansList.getSelectedValue(); if (selectedSimulationPlan != null) { - SimulationPlanParametersTableModel model = new SimulationPlanParametersTableModel(selectedSimulationPlan); + ScriptParametersTableModel model = new ScriptParametersTableModel(selectedSimulationPlan); simulParamsSimulationPlans.setModel(model); - SimulationPlanParametersTableCellEditor cellEditor = new SimulationPlanParametersTableCellEditor(selectedSimulationPlan); + ScriptParametersTableCellEditor cellEditor = new ScriptParametersTableCellEditor(selectedSimulationPlan); cellEditor.setRegionStorage(getContextValue(RegionStorage.class)); - simulParamsSimulationPlans.getColumnModel().getColumn(0).setCellRenderer(new SimulationPlanParametersTableCellRenderer(selectedSimulationPlan)); + simulParamsSimulationPlans.getColumnModel().getColumn(0).setCellRenderer(new ScriptParametersTableCellRenderer(selectedSimulationPlan)); simulParamsSimulationPlans.getColumnModel().getColumn(1).setCellEditor(cellEditor); } else { Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2011-11-08 14:11:46 UTC (rev 3523) @@ -98,8 +98,10 @@ import fr.ifremer.isisfish.simulator.sensitivity.domain.RuleDiscreteDomain; import fr.ifremer.isisfish.ui.SimulationUI; import fr.ifremer.isisfish.ui.sensitivity.FactorWizardUI; +import fr.ifremer.isisfish.ui.sensitivity.SensitivityChooserUI; import fr.ifremer.isisfish.ui.sensitivity.SensitivityInputHandler; import fr.ifremer.isisfish.ui.util.ErrorHelper; +import fr.ifremer.isisfish.ui.widget.editor.ScriptParameterDialog; /** * SimulAction. @@ -632,11 +634,15 @@ return param.getSimulationPlans(); } - public void addSimulationPlan(String name) { + public void addSimulationPlan(SensUI sensUI, String name) { try { - SimulationPlan sp = SimulationPlanStorage.getSimulationPlan(name) - .getNewSimulationPlanInstance(); - getSimulationParameter().addSimulationPlan(sp); + SimulationPlan sp = SimulationPlanStorage.getSimulationPlan(name).getNewSimulationPlanInstance(); + + // add it after autoconfiguration (if enabled) + sp = (SimulationPlan)ScriptParameterDialog.displayConfigurationFrame(sensUI, sp); + if (sp != null) { + getSimulationParameter().addSimulationPlan(sp); + } } catch (IsisFishException ex) { throw new IsisFishRuntimeException("Can't add simulation plan", ex); } @@ -700,11 +706,16 @@ return result; } - public void addSensitivityExport(String name) { + public void addSensitivityExport(SensitivityChooserUI sensitivityChooserUI, String name) { try { SensitivityExportStorage storage = SensitivityExportStorage.getSensitivityExport(name); SensitivityExport sensitivityExport = storage.getNewSensitivityExportInstance(); - param.getSensitivityExport().add(sensitivityExport); + + // add it after autoconfiguration (if enabled) + sensitivityExport = (SensitivityExport)ScriptParameterDialog.displayConfigurationFrame(sensitivityChooserUI, sensitivityExport); + if (sensitivityExport != null) { + param.getSensitivityExport().add(sensitivityExport); + } } catch (IsisFishException e) { if (log.isErrorEnabled()) { log.error("Can't add sensitivity export", e); Added: trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ScriptParameterDialog.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ScriptParameterDialog.jaxx (rev 0) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ScriptParameterDialog.jaxx 2011-11-08 14:11:46 UTC (rev 3523) @@ -0,0 +1,94 @@ +<!-- + #%L + IsisFish + + $Id$ + $HeadURL$ + %% + Copyright (C) 2011 Ifremer, Code Lutin, Chatellier Eric + %% + 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, see + <http://www.gnu.org/licenses/gpl-2.0.html>. + #L% + --> +<JDialog modal="true" title="isisfish.simulation.script.autoconfigtitle"> + + <Boolean id="okAction" javaBean="false" /> + + <import> + java.awt.Component + fr.ifremer.isisfish.IsisFish + fr.ifremer.isisfish.datastore.RegionStorage + fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellEditor + fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellRenderer + </import> + + <script><![CDATA[ + /** + * Test if isis configuration allow auto configuration, and display + * configuration frame (with only table model). + * + * @param parent parent component + * @param script script to configure + * @return configured script, or {@code null} if user cancel configuration + */ + public static Object displayConfigurationFrame(JAXXContext context, Object script) { + + Object result = script; + + if (!IsisFish.config.isScriptAutoconfig()) { + if (log.isDebugEnabled()) { + log.debug("Script auto configuration turned off"); + } + } else { + // display modal frame + ScriptParameterDialog dialog = new ScriptParameterDialog(context); + dialog.setLocationRelativeTo((Component)context); // screen center + dialog.getScriptParameterModel().setScript(script); + + // param list can be empty + if (dialog.getScriptParameterModel().getRowCount() > 0) { + dialog.getScriptParameterTable().getColumnModel().getColumn(0).setCellRenderer(new ScriptParametersTableCellRenderer(script)); + ScriptParametersTableCellEditor cellEditor = new ScriptParametersTableCellEditor(script); + cellEditor.setRegionStorage(context.getContextValue(RegionStorage.class)); + dialog.getScriptParameterTable().getColumnModel().getColumn(1).setCellEditor(cellEditor); + dialog.setVisible(true); // blocking + if (!dialog.getOkAction()) { + result = null; + } + } + } + return result; + } + ]]></script> + + <Table> + <row> + <cell fill='both' columns='2' weighty='1'> + <JScrollPane> + <fr.ifremer.isisfish.ui.models.common.ScriptParametersTableModel id="scriptParameterModel" /> + <JTable id="scriptParameterTable" model="{scriptParameterModel}" rowHeight='24' /> + </JScrollPane> + </cell> + </row> + <row> + <cell anchor="east" weightx='1.0'> + <JButton text="isisfish.common.ok" onActionPerformed="{okAction = true; dispose();}" /> + </cell> + <cell anchor="west" weightx='1.0'> + <JButton text="isisfish.common.cancel" onActionPerformed="{okAction = false; dispose();}" /> + </cell> + </row> + </Table> +</JDialog> \ No newline at end of file Modified: trunk/src/main/resources/i18n/isis-fish_en_GB.properties =================================================================== --- trunk/src/main/resources/i18n/isis-fish_en_GB.properties 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/resources/i18n/isis-fish_en_GB.properties 2011-11-08 14:11:46 UTC (rev 3523) @@ -161,6 +161,7 @@ isisfish.config.main.performmigration.description=Perform data migration isisfish.config.main.performvcsupdate.description=Perform vcs update isisfish.config.main.remoteCaparmor.description=Remote simulator launcher name +isisfish.config.main.script.autoconfig.description=Display a dialog to force script configuration isisfish.config.main.simulation.ssh.control.check.interval=Control check interval (seconds) isisfish.config.main.simulation.ssh.control.check.interval.description=Control check interval (seconds) isisfish.config.main.simulation.ssh.datapath=Isis-Fish database @@ -892,6 +893,7 @@ isisfish.simulation.remote.message.upload=Uploading simulation isisfish.simulation.remote.message.waitingstart=Waiting for simulation start isisfish.simulation.restarting=Restarting... +isisfish.simulation.script.autoconfigtitle=Script configuration isisfish.simulation.title=Simulation launcher isisfish.simulator.configuration.r.cantinit=Can't init R \: %s isisfish.simulator.configuration.r.details=This window display current system R configuration and can be used to test if R is successfully installed. Modified: trunk/src/main/resources/i18n/isis-fish_fr_FR.properties =================================================================== --- trunk/src/main/resources/i18n/isis-fish_fr_FR.properties 2011-11-07 15:07:32 UTC (rev 3522) +++ trunk/src/main/resources/i18n/isis-fish_fr_FR.properties 2011-11-08 14:11:46 UTC (rev 3523) @@ -161,6 +161,7 @@ isisfish.config.main.performmigration.description=Migre les données isisfish.config.main.performvcsupdate.description=Met à jour le dépôt VCS isisfish.config.main.remoteCaparmor.description=Nom du lanceur de simulation distante +isisfish.config.main.script.autoconfig.description=Affiche une fenêtre pour forcer la configuration des scripts isisfish.config.main.simulation.ssh.control.check.interval=Vérification de la progression (secondes) isisfish.config.main.simulation.ssh.control.check.interval.description=Temps d'attente en secondes entre deux vérifications de progression isisfish.config.main.simulation.ssh.datapath=Base de données @@ -892,6 +893,7 @@ isisfish.simulation.remote.message.upload=Upload de la simulation isisfish.simulation.remote.message.waitingstart=Attente du démarrage de la simulation isisfish.simulation.restarting=Redémarrage... +isisfish.simulation.script.autoconfigtitle=Configuration du script isisfish.simulation.title=Lanceur de simulation isisfish.simulator.configuration.r.cantinit=Impossible d'initialiser R \: %s isisfish.simulator.configuration.r.details=Cet écran affiche la configuration système actuelle de R et permet de tester si un appel simple à R fonctionne.