Isis-fish-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
September 2009
- 3 participants
- 94 discussions
04 Sep '09
Author: chatellier
Date: 2009-09-04 16:43:48 +0000 (Fri, 04 Sep 2009)
New Revision: 2584
Modified:
isis-fish/trunk/src/main/resources/log4j.properties
Log:
Add sensitivityexports logger
Modified: isis-fish/trunk/src/main/resources/log4j.properties
===================================================================
--- isis-fish/trunk/src/main/resources/log4j.properties 2009-09-04 14:59:18 UTC (rev 2583)
+++ isis-fish/trunk/src/main/resources/log4j.properties 2009-09-04 16:43:48 UTC (rev 2584)
@@ -14,4 +14,5 @@
log4j.logger.rules=INFO
log4j.logger.scripts=INFO
log4j.logger.sensitivity=INFO
+log4j.logger.sensitivityexports=INFO
log4j.logger.simulators=INFO
1
0
r2583 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui: models models/export models/sensitivityexport sensitivity simulator
by chatellier@users.labs.libre-entreprise.org 04 Sep '09
by chatellier@users.labs.libre-entreprise.org 04 Sep '09
04 Sep '09
Author: chatellier
Date: 2009-09-04 14:59:18 +0000 (Fri, 04 Sep 2009)
New Revision: 2583
Added:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportListModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportListRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellEditor.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellRenderer.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableModel.java
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportListModel.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
Log:
Fix sensitivity export in UI.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportListModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportListModel.java 2009-09-04 13:17:18 UTC (rev 2582)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/export/ExportListModel.java 2009-09-04 14:59:18 UTC (rev 2583)
@@ -38,7 +38,7 @@
/** serialVersionUID. */
private static final long serialVersionUID = -4070846632975105788L;
- protected List<? extends Export> exports;
+ protected List<Export> exports;
/**
* Empty constructor.
@@ -52,7 +52,7 @@
*
* @param exports exports
*/
- public ExportListModel(List<? extends Export> exports) {
+ public ExportListModel(List<Export> exports) {
super();
setExport(exports);
}
@@ -62,7 +62,7 @@
*
* @return the exports
*/
- public List<? extends Export> getExports() {
+ public List<Export> getExports() {
return exports;
}
@@ -71,7 +71,7 @@
*
* @param exports the exports to set
*/
- public void setExport(List<? extends Export> exports) {
+ public void setExport(List<Export> exports) {
this.exports = exports;
}
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportListModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportListModel.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportListModel.java 2009-09-04 14:59:18 UTC (rev 2583)
@@ -0,0 +1,98 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.sensitivityexport;
+
+import java.util.List;
+
+import javax.swing.AbstractListModel;
+
+import fr.ifremer.isisfish.export.SensitivityExport;
+
+/**
+ * Model pour la liste des instances d'exports.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author: chatellier $
+ */
+public class SensitivityExportListModel extends AbstractListModel {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4070846632975105788L;
+
+ protected List<SensitivityExport> exports;
+
+ /**
+ * Empty constructor.
+ */
+ public SensitivityExportListModel() {
+ this(null);
+ }
+
+ /**
+ * Constructor with plan list.
+ *
+ * @param exports exports
+ */
+ public SensitivityExportListModel(List<SensitivityExport> exports) {
+ super();
+ setSensitivityExports(exports);
+ }
+
+ /**
+ * Get exports list.
+ *
+ * @return the exports
+ */
+ public List<SensitivityExport> getSensitivityExports() {
+ return exports;
+ }
+
+ /**
+ * Set exports list.
+ *
+ * @param exports the exports to set
+ */
+ public void setSensitivityExports(List<SensitivityExport> exports) {
+ this.exports = exports;
+ }
+
+ /*
+ * @see javax.swing.ListModel#getElementAt(int)
+ */
+ @Override
+ public Object getElementAt(int index) {
+ return exports.get(index);
+ }
+
+ /*
+ * @see javax.swing.ListModel#getSize()
+ */
+ @Override
+ public int getSize() {
+ int size = 0;
+
+ if (exports != null) {
+ size = exports.size();
+ }
+ return size;
+ }
+}
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportListModel.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportListRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportListRenderer.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportListRenderer.java 2009-09-04 14:59:18 UTC (rev 2583)
@@ -0,0 +1,69 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.sensitivityexport;
+
+import java.awt.Component;
+
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.ListCellRenderer;
+
+import fr.ifremer.isisfish.datastore.SensitivityExportStorage;
+import fr.ifremer.isisfish.export.SensitivityExport;
+
+/**
+ * Renderer pour la liste des plans d'analyse.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author: chatellier $
+ */
+public class SensitivityExportListRenderer extends DefaultListCellRenderer implements
+ ListCellRenderer {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4070846632975105788L;
+
+ /*
+ * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean)
+ */
+ @Override
+ public Component getListCellRendererComponent(JList list, Object value,
+ int index, boolean isSelected, boolean cellHasFocus) {
+
+ // this must be used to have alterned highlight rows and default
+ // selection color
+ JLabel c = (JLabel) super.getListCellRendererComponent(list, value,
+ index, isSelected, cellHasFocus);
+
+ SensitivityExport export = (SensitivityExport) value;
+ c.setText(SensitivityExportStorage.getName(export));
+
+ try {
+ c.setToolTipText(export.getDescription());
+ } catch (Exception e) {
+ // can't get exception
+ }
+
+ return this;
+ }
+}
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportListRenderer.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListModel.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListModel.java 2009-09-04 14:59:18 UTC (rev 2583)
@@ -0,0 +1,97 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.sensitivityexport;
+
+import java.util.List;
+
+import javax.swing.DefaultListModel;
+
+/**
+ * Model pour la liste des noms d'exports.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author: chatellier $
+ */
+public class SensitivityExportNameListModel extends DefaultListModel {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4070846632975105788L;
+
+ /** Analyze plan names. */
+ protected List<String> sensitivityExportNames;
+
+ /**
+ * Empty constructor.
+ */
+ public SensitivityExportNameListModel() {
+ this(null);
+ }
+
+ /**
+ * Constructor with export list.
+ *
+ * @param exportNames exports Names
+ */
+ public SensitivityExportNameListModel(List<String> exportNames) {
+ super();
+ setSensitivityExportNames(exportNames);
+ }
+
+ /**
+ * Get exports names.
+ *
+ * @return the analyze plan names
+ */
+ public List<String> getSensitivityExportNames() {
+ return sensitivityExportNames;
+ }
+
+ /**
+ * Set export names.
+ *
+ * @param sensitivityExportNames the exports names to set
+ */
+ public void setSensitivityExportNames(List<String> sensitivityExportNames) {
+ this.sensitivityExportNames = sensitivityExportNames;
+ }
+
+ /*
+ * @see javax.swing.ListModel#getElementAt(int)
+ */
+ @Override
+ public Object getElementAt(int index) {
+ return sensitivityExportNames.get(index);
+ }
+
+ /*
+ * @see javax.swing.ListModel#getSize()
+ */
+ @Override
+ public int getSize() {
+ int size = 0;
+
+ if (sensitivityExportNames != null) {
+ size = sensitivityExportNames.size();
+ }
+ return size;
+ }
+}
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListModel.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListRenderer.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListRenderer.java 2009-09-04 14:59:18 UTC (rev 2583)
@@ -0,0 +1,94 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.sensitivityexport;
+
+import static org.codelutin.i18n.I18n._;
+
+import java.awt.Component;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.swing.DefaultListCellRenderer;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.ListCellRenderer;
+
+import fr.ifremer.isisfish.datastore.SensitivityExportStorage;
+import fr.ifremer.isisfish.export.SensitivityExport;
+import fr.ifremer.isisfish.ui.util.TooltipHelper;
+
+/**
+ * Renderer pour la combo des noms d'export.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author: chatellier $
+ */
+public class SensitivityExportNameListRenderer extends DefaultListCellRenderer implements
+ ListCellRenderer {
+
+ /** serialVersionUID. */
+ private static final long serialVersionUID = -4070846632975105788L;
+
+ /** Export cache. */
+ protected Map<String, SensitivityExport> sensitivityExportCache;
+
+ /**
+ * Empty constructor.
+ */
+ public SensitivityExportNameListRenderer() {
+ sensitivityExportCache = new HashMap<String, SensitivityExport>();
+ }
+
+ /*
+ * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean)
+ */
+ @Override
+ public Component getListCellRendererComponent(JList list, Object value,
+ int index, boolean isSelected, boolean cellHasFocus) {
+
+ // this must be used to have alterned highlight rows and default
+ // selection color
+ JLabel c = (JLabel) super.getListCellRendererComponent(list, value,
+ index, isSelected, cellHasFocus);
+
+ String exportName = (String) value;
+ c.setText(exportName);
+
+ // c'est tres couteux d'avoir une instance
+ // on les met en cache
+ try {
+ SensitivityExport export = sensitivityExportCache.get(exportName);
+ if (export == null) {
+ SensitivityExportStorage storage = SensitivityExportStorage.getSensitivityExport(exportName);
+ export = storage.getNewSensitivityExportInstance();
+ sensitivityExportCache.put(exportName, export);
+ }
+
+ c.setToolTipText(export.getDescription());
+ } catch (Exception e) {
+ String errorTooltip = TooltipHelper.getErrorTooltip(_("isisfish.error.compile.fileerror", exportName));
+ c.setToolTipText(errorTooltip);
+ }
+
+ return c;
+ }
+}
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListRenderer.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellEditor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellEditor.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellEditor.java 2009-09-04 14:59:18 UTC (rev 2583)
@@ -0,0 +1,72 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.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);
+ }
+}
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellEditor.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellRenderer.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellRenderer.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellRenderer.java 2009-09-04 14:59:18 UTC (rev 2583)
@@ -0,0 +1,76 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.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;
+ }
+
+}
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableCellRenderer.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableModel.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableModel.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableModel.java 2009-09-04 14:59:18 UTC (rev 2583)
@@ -0,0 +1,194 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.ui.models.sensitivityexport;
+
+import static org.codelutin.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);
+ }
+
+ }
+}
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportParametersTableModel.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2009-09-04 13:17:18 UTC (rev 2582)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2009-09-04 14:59:18 UTC (rev 2583)
@@ -34,13 +34,13 @@
import fr.ifremer.isisfish.export.SensitivityExport;
import fr.ifremer.isisfish.IsisFishException;
- import fr.ifremer.isisfish.ui.models.export.ExportListModel;
- import fr.ifremer.isisfish.ui.models.export.ExportListRenderer;
- import fr.ifremer.isisfish.ui.models.export.ExportNameListModel;
- import fr.ifremer.isisfish.ui.models.export.ExportNameListRenderer;
- import fr.ifremer.isisfish.ui.models.export.ExportParametersTableCellEditor;
- import fr.ifremer.isisfish.ui.models.export.ExportParametersTableCellRenderer;
- import fr.ifremer.isisfish.ui.models.export.ExportParametersTableModel;
+ import fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportListModel;
+ import fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportListRenderer;
+ import fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportNameListModel;
+ import fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportNameListRenderer;
+ import fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportParametersTableCellEditor;
+ import fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportParametersTableCellRenderer;
+ import fr.ifremer.isisfish.ui.models.sensitivityexport.SensitivityExportParametersTableModel;
import fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorComboModel;
import fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorComboRenderer;
@@ -142,9 +142,9 @@
});
}
- protected ExportNameListModel getAvailableExportListModel() {
+ protected SensitivityExportNameListModel getAvailableExportListModel() {
java.util.List<String> exportNames = getSimulAction().getSensitivityExportNames();
- ExportNameListModel model = new ExportNameListModel(exportNames);
+ SensitivityExportNameListModel model = new SensitivityExportNameListModel(exportNames);
return model;
}
@@ -158,7 +158,7 @@
for (Object exportName : exportNames) {
getSimulAction().addSensitivityExport((String)exportName);
}
- setExportListModel();
+ setSensitivityExportListModel();
}
/**
@@ -169,7 +169,7 @@
for (Object export : exports) {
getSimulAction().removeSensitivityExport((SensitivityExport)export);
}
- setExportListModel();
+ setSensitivityExportListModel();
}
/**
@@ -177,17 +177,17 @@
*/
protected void clearExports() {
getSimulAction().clearSensitivityExport();
- setExportListModel();
+ setSensitivityExportListModel();
}
/**
* Set model (refresh export JList).
*/
- public void setExportListModel() {
+ public void setSensitivityExportListModel() {
java.util.List<SensitivityExport> exports = getSimulAction().getSensitivityExports();
- ExportListModel model = new ExportListModel(exports);
+ SensitivityExportListModel model = new SensitivityExportListModel(exports);
selectedSensitivityExports.setModel(model);
- selectedSensitivityExports.setCellRenderer(new ExportListRenderer());
+ selectedSensitivityExports.setCellRenderer(new SensitivityExportListRenderer());
clearExportsButton.setEnabled(!exports.isEmpty());
}
@@ -218,10 +218,10 @@
if (selectedSensitivityExports.getSelectedIndices().length == 1) {
SensitivityExport export = (SensitivityExport)selectedSensitivityExports.getSelectedValue();
- ExportParametersTableModel model = new ExportParametersTableModel(export);
+ SensitivityExportParametersTableModel model = new SensitivityExportParametersTableModel(export);
exportParamsTable.setModel(model);
- exportParamsTable.getColumnModel().getColumn(0).setCellRenderer(new ExportParametersTableCellRenderer(export));
- ExportParametersTableCellEditor cellEditor = new ExportParametersTableCellEditor(export);
+ exportParamsTable.getColumnModel().getColumn(0).setCellRenderer(new SensitivityExportParametersTableCellRenderer(export));
+ SensitivityExportParametersTableCellEditor cellEditor = new SensitivityExportParametersTableCellEditor(export);
cellEditor.setRegion(simulAction.getRegionStorage());
exportParamsTable.getColumnModel().getColumn(1).setCellEditor(cellEditor);
}
@@ -325,7 +325,7 @@
<cell fill="both" weightx="0.5" weighty="1.0">
<JScrollPane>
<JList id="availableSensitivityExports" selectionMode="{javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION}"
- model='{getAvailableExportListModel()}' cellRenderer='{new ExportNameListRenderer()}'
+ model='{getAvailableExportListModel()}' cellRenderer='{new SensitivityExportNameListRenderer()}'
onValueChanged='availableSensitivityExportSelection()' />
</JScrollPane>
</cell>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-09-04 13:17:18 UTC (rev 2582)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-09-04 14:59:18 UTC (rev 2583)
@@ -157,7 +157,7 @@
}
protected void setExportSens() {
if (isSensitivity()) {
- getParentContainer(SensitivityUI.class).getSensitivityChooserUI().setExportListModel();
+ getParentContainer(SensitivityUI.class).getSensitivityChooserUI().setSensitivityExportListModel();
}
}
protected void setSensitivityCalculator() {
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-09-04 13:17:18 UTC (rev 2582)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-09-04 14:59:18 UTC (rev 2583)
@@ -47,6 +47,7 @@
import org.codelutin.log.UserLog;
import org.codelutin.math.matrix.MatrixND;
import org.codelutin.topia.TopiaContext;
+import org.codelutin.util.FileUtil;
import fr.ifremer.isisfish.IsisFish;
import fr.ifremer.isisfish.IsisFishException;
@@ -568,7 +569,7 @@
}
public void updateDirectory() {
- param.setExportDirectory(org.codelutin.util.FileUtil.getDirectory());
+ param.setExportDirectory(FileUtil.getDirectory());
}
public void saveExport() {
@@ -687,8 +688,8 @@
public void addSensitivityExport(String name) {
try {
- ExportStorage storage = ExportStorage.getExport(name);
- SensitivityExport sensitivityExport = (SensitivityExport) storage.getNewExportInstance();
+ SensitivityExportStorage storage = SensitivityExportStorage.getSensitivityExport(name);
+ SensitivityExport sensitivityExport = storage.getNewSensitivityExportInstance();
param.getSensitivityExport().add(sensitivityExport);
} catch (IsisFishException e) {
if (log.isErrorEnabled()) {
@@ -719,7 +720,7 @@
String paramName, Object value) {
if (value != null) {
try {
- ExportStorage.setParameterValue(export, paramName, value);
+ SensitivityExportStorage.setParameterValue(export, paramName, value);
} catch (IsisFishException e) {
if (log.isErrorEnabled()) {
log.error("Can't set sensitivity export param value", e);
@@ -741,7 +742,7 @@
}
/**
- * Return sensitivity calculator name without .java extention
+ * Return sensitivity calculator name without .java extension.
*
* @return sensitivity calculator names list
*/
@@ -769,7 +770,7 @@
/**
* Build a new sensitivity calculator instance by his name.
*
- * @param name calcultor name
+ * @param name calculator name
* @return instance
*/
public SensitivityCalculator getSensivitityCalculatorInstance(String name) {
1
0
Author: chatellier
Date: 2009-09-04 13:17:18 +0000 (Fri, 04 Sep 2009)
New Revision: 2582
Modified:
isis-fish/trunk/pom.xml
Log:
Prepare for release.
Modified: isis-fish/trunk/pom.xml
===================================================================
--- isis-fish/trunk/pom.xml 2009-09-04 09:06:01 UTC (rev 2581)
+++ isis-fish/trunk/pom.xml 2009-09-04 13:17:18 UTC (rev 2582)
@@ -13,7 +13,7 @@
<groupId>ifremer</groupId>
<artifactId>isis-fish</artifactId>
- <version>3.2.0.5-rc4-SNAPSHOT</version>
+ <version>3.2.0.5-SNAPSHOT</version>
<!-- POM Relationships : Inheritance : Dependencies -->
<dependencies>
1
0
r2581 - in isis-fish/trunk: . src/main/java/fr/ifremer/isisfish src/main/java/fr/ifremer/isisfish/datastore src/main/java/fr/ifremer/isisfish/export src/main/java/fr/ifremer/isisfish/simulator src/main/java/fr/ifremer/isisfish/simulator/launcher src/main/java/fr/ifremer/isisfish/ui/script src/main/java/fr/ifremer/isisfish/ui/simulator src/main/resources/i18n src/main/resources/templates/script src/test/java/fr/ifremer/isisfish/datastore
by chatellier@users.labs.libre-entreprise.org 04 Sep '09
by chatellier@users.labs.libre-entreprise.org 04 Sep '09
04 Sep '09
Author: chatellier
Date: 2009-09-04 09:06:01 +0000 (Fri, 04 Sep 2009)
New Revision: 2581
Added:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java
isis-fish/trunk/src/main/resources/templates/script/sensitivityexport.ftl
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityExportStorageTest.java
Modified:
isis-fish/trunk/changelog.txt
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/export/ExportHelper.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties
isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties
Log:
Fix export loaded too early (not in correct classloader)
Move sensitivity exports to their own package
Modified: isis-fish/trunk/changelog.txt
===================================================================
--- isis-fish/trunk/changelog.txt 2009-09-03 14:18:55 UTC (rev 2580)
+++ isis-fish/trunk/changelog.txt 2009-09-04 09:06:01 UTC (rev 2581)
@@ -1,5 +1,8 @@
isis-fish (3.2.0.5) stable; urgency=low
+ * Fix export loaded too early (not in correct classloader)
+ * Move sensitivity exports to their own package
+ * Fix a date comparison problem (frequent in windows)
* Restore running status progress bar indeterminate state
--
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2009-09-03 14:18:55 UTC (rev 2580)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2009-09-04 09:06:01 UTC (rev 2581)
@@ -55,6 +55,7 @@
import fr.ifremer.isisfish.datastore.RegionStorage;
import fr.ifremer.isisfish.datastore.RuleStorage;
import fr.ifremer.isisfish.datastore.ScriptStorage;
+import fr.ifremer.isisfish.datastore.SensitivityExportStorage;
import fr.ifremer.isisfish.datastore.SensitivityStorage;
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.datastore.SimulatorStorage;
@@ -378,6 +379,7 @@
ScriptStorage.checkout();
SimulatorStorage.checkout();
SensitivityStorage.checkout();
+ SensitivityExportStorage.checkout();
// on ne prend pas toutes les simu ni toutes les regions
vcs.update(new File(local, SimulationStorage.SIMULATION_PATH), false);
Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java (rev 0)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java 2009-09-04 09:06:01 UTC (rev 2581)
@@ -0,0 +1,118 @@
+/* *##%
+ * Copyright (C) 2009 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.datastore;
+
+import java.io.File;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.collections.map.ReferenceMap;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import fr.ifremer.isisfish.IsisFish;
+import fr.ifremer.isisfish.IsisFishException;
+import fr.ifremer.isisfish.export.SensitivityExport;
+import fr.ifremer.isisfish.util.Docable;
+import fr.ifremer.isisfish.vcs.VCSException;
+
+/**
+ * Gestion des fichers VCS de type {@link SensitivityExport}
+ * (appartenant au module exports).
+ *
+ * Created: 18 août 2005 15:07:36 CEST
+ *
+ * @author chatellier eric <chatellier at codelutin.com>
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author: chatellier $
+ */
+public class SensitivityExportStorage extends ExportStorage implements Docable {
+
+ /** Class logger. */
+ private static Log log = LogFactory.getLog(SensitivityExportStorage.class);
+
+ public static final String SENSITIVITY_EXPORT_PATH = "sensitivityexports";
+
+ /** Template freemarker pour les scripts d'export . */
+ public static final String SENSITIVITY_EXPORT_TEMPLATE = "templates/script/sensitivityexport.ftl";
+
+ @SuppressWarnings("unchecked")
+ private static Map<String, SensitivityExportStorage> sensitivityExportsCache = (Map<String, SensitivityExportStorage>) new ReferenceMap();
+
+ /**
+ * Constructeur.
+ *
+ * @param rootSrc le repertoire root de stockage des exports
+ * @param directory le repertoire de l'export
+ * @param name le nom de l'export
+ */
+ protected SensitivityExportStorage(File rootSrc, File directory, String name) {
+ super(rootSrc, directory, name);
+ }
+
+ public static File getSensitivityExportDirectory() {
+ File result = IsisFish.config.getDatabaseDirectory();
+ result = new File(result, SENSITIVITY_EXPORT_PATH);
+ result.mkdirs();
+ return result;
+ }
+
+ /**
+ * Retourne une nouvelle instance de l'export. Compile le fichier si besoin.
+ *
+ * @return une nouvelle instance de la classe d'export
+ * @throws IsisFishException
+ */
+ public SensitivityExport getNewSensitivityExportInstance() throws IsisFishException {
+ Object result = getNewInstance();
+ return (SensitivityExport) result;
+ }
+
+ /**
+ * Retourne le storage pour l'export demandé.
+ *
+ * @param name le nom de la regle souhaitée
+ * @return Le storage pour la regle
+ */
+ public static SensitivityExportStorage getSensitivityExport(String name) {
+ SensitivityExportStorage result = sensitivityExportsCache.get(name);
+ if (result == null) {
+ result = new SensitivityExportStorage(IsisFish.config.getDatabaseDirectory(),
+ getSensitivityExportDirectory(), name);
+ sensitivityExportsCache.put(name, result);
+ }
+ return result;
+ }
+
+ /**
+ * Retourne la liste des noms de toutes les régions disponible en local.
+ *
+ * @return la liste des noms de toutes les régions disponible en local
+ */
+ public static List<String> getSensitivityExportNames() {
+ File dir = getSensitivityExportDirectory();
+ return getStorageNames(dir);
+ }
+
+ public static void checkout() throws VCSException {
+ checkout(IsisFish.config.getDatabaseDirectory(), SENSITIVITY_EXPORT_PATH);
+ }
+}
Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SensitivityExportStorage.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java 2009-09-03 14:18:55 UTC (rev 2580)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationStorage.java 2009-09-04 09:06:01 UTC (rev 2581)
@@ -355,18 +355,19 @@
* Get parameter property.
*
* @return Parameter property.
+ *
+ * @deprecated restore getParameter() mecanism
*/
public Properties getPropertiesParameter() {
Properties prop = new Properties();
File file = getSimulationParametersFile();
-
try {
FileInputStream in = new FileInputStream(file);
prop.load(in);
in.close();
-
+
} catch (IOException eee) {
throw new IsisFishRuntimeException(_(
"isisfish.error.read.simulation.parameters", file), eee);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/export/ExportHelper.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/export/ExportHelper.java 2009-09-03 14:18:55 UTC (rev 2580)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/export/ExportHelper.java 2009-09-04 09:06:01 UTC (rev 2581)
@@ -30,10 +30,11 @@
import org.apache.commons.beanutils.ConvertUtilsBean;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.codelutin.topia.TopiaContext;
import org.codelutin.topia.persistence.TopiaEntity;
import fr.ifremer.isisfish.datastore.ExportStorage;
-import fr.ifremer.isisfish.datastore.RegionStorage;
+import fr.ifremer.isisfish.datastore.SensitivityExportStorage;
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.util.ConverterUtil;
@@ -118,17 +119,17 @@
*
* @param exportIndex l'index de l'export
* @param export l'export a mettre à jour
- * @param region le topia context dont on a besoin
+ * @param context le topia context dont on a besoin
* @param props les proprietes contenant les parametre de l'export
*/
- public static void populateExport(int exportIndex, RegionStorage region,
- Export export, Properties props) {
- ConvertUtilsBean beanUtils = ConverterUtil.getConverter(region
- .getStorage());
- String exportName = ExportStorage.getName(export);
- String paramTag = "export." + exportIndex + ".parameter.";
+ public static void populateSensitivityExport(int exportIndex, TopiaContext context,
+ SensitivityExport export, Properties props) {
+ //ConvertUtilsBean beanUtils = ConverterUtil.getConverter(region
+ // .getStorage());
+ String exportName = SensitivityExportStorage.getName(export);
+ String paramTag = "sensitivityexport." + exportIndex + ".parameter.";
- for (Map.Entry<String, Class<?>> entry : ExportStorage
+ for (Map.Entry<String, Class<?>> entry : SensitivityExportStorage
.getParameterNames(export).entrySet()) {
String propName = entry.getKey();
Class<?> type = entry.getValue();
@@ -138,10 +139,16 @@
String valueString = "not initialized";
try {
valueString = props.getProperty(paramTag + propName);
+
+ // ATTENTION il semblerait que notre intance de beanUtils
+ // soit ecrasé par celle du MatrixType ...
+ // a ne pas deplacer avant la boucle
+ ConvertUtilsBean beanUtils = ConverterUtil.getConverter(context);
+
Object value = beanUtils.convert(valueString, type);
- log.info("DEBUG: set export param: " + paramTag + propName
+ log.info("DEBUG: set sensitivityexport param: " + paramTag + propName
+ " = " + value + "(" + valueString + ")");
- ExportStorage.setParameterValue(export, propName, value);
+ SensitivityExportStorage.setParameterValue(export, propName, value);
} catch (Exception eee) {
if (log.isWarnEnabled()) {
log.info("Properties: " + props);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2009-09-03 14:18:55 UTC (rev 2580)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/SimulationParameter.java 2009-09-04 09:06:01 UTC (rev 2581)
@@ -48,15 +48,14 @@
import fr.ifremer.isisfish.IsisFishDAOHelper;
import fr.ifremer.isisfish.IsisFishException;
import fr.ifremer.isisfish.datastore.AnalysePlanStorage;
-import fr.ifremer.isisfish.datastore.ExportStorage;
import fr.ifremer.isisfish.datastore.RegionStorage;
import fr.ifremer.isisfish.datastore.RuleStorage;
+import fr.ifremer.isisfish.datastore.SensitivityExportStorage;
import fr.ifremer.isisfish.datastore.SensitivityStorage;
import fr.ifremer.isisfish.entities.Population;
import fr.ifremer.isisfish.entities.PopulationDAO;
import fr.ifremer.isisfish.entities.Strategy;
import fr.ifremer.isisfish.entities.StrategyDAO;
-import fr.ifremer.isisfish.export.Export;
import fr.ifremer.isisfish.export.ExportHelper;
import fr.ifremer.isisfish.export.SensitivityExport;
import fr.ifremer.isisfish.rule.Rule;
@@ -81,6 +80,12 @@
/** Logger for this class. */
private static Log log = LogFactory.getLog(SimulationParameter.class);
+ /** Remember last read properties. */
+ protected Properties lastReadParameters;
+
+ /**
+ * @deprecated remove this hack
+ */
public static String NUMBER_OF_SENSITIVITY_SIMULATION = "numberOfSensitivitySimulation";
/**
@@ -148,7 +153,7 @@
protected int analysePlanNumber = -1;
/** Export utilisés pour les analyses de sensibilités. */
- protected List<SensitivityExport> sensitivityExport = new ArrayList<SensitivityExport>();
+ protected List<SensitivityExport> sensitivityExports = new ArrayList<SensitivityExport>();
/**
* Nombre de simulation constituant l'analyse de sensibilité.
@@ -283,7 +288,6 @@
result.setProperty("plans", planList);
String exportList = "";
- int exportIndex = 0;
for (String export : getExportNames()) {
exportList += export + ",";
@@ -305,10 +309,11 @@
// number of sensitivity simulation
String sensitivityExportList = "";
+ int sensitivityExportIndex = 0;
// WARN only SENSITIVITY are parametrable for now
- for (SensitivityExport export : getSensitivityExport()) {
- sensitivityExportList += ExportStorage.getName(export) + ",";
- Properties exportProp = exportParametertoProperties(exportIndex++, export);
+ for (SensitivityExport sensitivityExport : getSensitivityExport()) {
+ sensitivityExportList += SensitivityExportStorage.getName(sensitivityExport) + ",";
+ Properties exportProp = sensitivityExportParametertoProperties(sensitivityExportIndex++, sensitivityExport);
result.putAll(exportProp);
}
result.setProperty("sensitivityexports", sensitivityExportList);
@@ -347,6 +352,16 @@
* @param props property to read
*/
public void fromProperties(File directory, Properties props) {
+
+ // save properties (use full to read again parameter)
+ // for exports, or rules....
+ lastReadParameters = props;
+
+ // when reading new properties files, clean some information
+ // to force re instantion on next call
+ // @see {
+ sensitivityExports = null;
+
isisFishVersion = props.getProperty("isisFishVersion", "");
description = props.getProperty("description", "");
regionName = props.getProperty("regionName", "");
@@ -481,7 +496,6 @@
// exports
String[] exportList = props.getProperty("exports", "").split(",");
- int exportIndex = 0;
for (String name : exportList) {
if (name != null && !"".equals(name)) {
getExportNames().add(name);
@@ -504,21 +518,6 @@
}
}
}
- // sensitivity export
- String[] sensitivityExportList = props.getProperty("sensitivityexports", "").split(",");
- for (String name : sensitivityExportList) {
- try {
- if (!StringUtils.isEmpty(name)) {
- SensitivityExport export = (SensitivityExport)ExportStorage.getExport(name).getNewExportInstance();
- ExportHelper.populateExport(exportIndex++, getRegion(), export, props);
- getSensitivityExport().add(export);
- }
- } catch (IsisFishException eee) {
- if (log.isWarnEnabled()) {
- log.warn("Can't find SensitivityExport: " + name, eee);
- }
- }
- }
usePreScript = Boolean.parseBoolean(props.getProperty("usePreScript",
"false"));
@@ -689,21 +688,21 @@
* Permet de mettre les parametres de l'export sous une forme String pour
* pouvoir les relire ensuite.
*
- * @param exportIndex l'index de l'export
- * @param export L'export dont on souhaite mettre les parametres dans l'objet
+ * @param sensitivityExportIndex l'index de l'export
+ * @param sensitivityExport L'export dont on souhaite mettre les parametres dans l'objet
* Properties retourne
* @return L'objet Properties contenant les valeurs des parametres de l'export
*/
- protected Properties exportParametertoProperties(int exportIndex, Export export) {
+ protected Properties sensitivityExportParametertoProperties(int sensitivityExportIndex, SensitivityExport sensitivityExport) {
Properties result = new Properties();
ConvertUtilsBean beanUtils = ConverterUtil.getConverter(getRegion().getStorage());
- for (String paramName : ExportStorage.getParameterNames(export).keySet()) {
+ for (String paramName : SensitivityExportStorage.getParameterNames(sensitivityExport).keySet()) {
String paramValueString;
try {
- Object value = ExportStorage.getParameterValue(export, paramName);
+ Object value = SensitivityExportStorage.getParameterValue(sensitivityExport, paramName);
paramValueString = beanUtils.convert(value);
if (paramValueString != null) {
- result.setProperty("export." + exportIndex + ".parameter."
+ result.setProperty("sensitivityexport." + sensitivityExportIndex + ".parameter."
+ paramName, paramValueString);
}
} catch (IsisFishException eee) {
@@ -1035,20 +1034,72 @@
}
/**
+ * Return loaded sensitivity export.
+ *
+ * If exports are null or empty, try to load it from last ready parameters.
+ *
* @return the sensitivityExportNames
*/
public List<SensitivityExport> getSensitivityExport() {
- if (sensitivityExport == null) {
- sensitivityExport = new ArrayList<SensitivityExport>();
+ if (sensitivityExports == null || sensitivityExports.isEmpty()) {
+ sensitivityExports = new ArrayList<SensitivityExport>();
+
+ if (lastReadParameters != null) {
+ try {
+ // On verifie tout d'abord que l'on ai pas dans une simulation
+ // si on y es, on utilise le context static non null du thread local
+ // Resoud les lazy exceptions des parametres des regles
+ boolean mustClose = false;
+ TopiaContext tx = SimulationContext.get().getDB();
+
+ if (tx == null) {
+ // not in simulation, create transaction
+ tx = getRegion().getStorage().beginTransaction();
+ mustClose = true;
+ }
+
+ // sensitivity export
+ String[] sensitivityExportList = lastReadParameters.getProperty("sensitivityexports", "").split(",");
+ int sensitivityExportIndex = 0;
+ for (String name : sensitivityExportList) {
+ try {
+ if (!StringUtils.isEmpty(name)) {
+ SensitivityExport sensitivityExport = SensitivityExportStorage.getSensitivityExport(name).getNewSensitivityExportInstance();
+ ExportHelper.populateSensitivityExport(sensitivityExportIndex++, tx, sensitivityExport, lastReadParameters);
+ sensitivityExports.add(sensitivityExport);
+ }
+ } catch (IsisFishException eee) {
+ if (log.isWarnEnabled()) {
+ log.warn("Can't find SensitivityExport: " + name, eee);
+ }
+ }
+ }
+
+ // si la transaction a été ouverte (pas dans une simulation)
+ // on la referme
+ if (mustClose) {
+ tx.closeContext();
+ }
+ } catch (TopiaException eee1) {
+ if (log.isWarnEnabled()) {
+ log.warn("Can't get TopiaContext", eee1);
+ }
+ }
+ }
+ else {
+ if (log.isDebugEnabled()) {
+ log.debug("No last read properties, skip sensitivity exports reloading");
+ }
+ }
}
- return sensitivityExport;
+ return sensitivityExports;
}
/**
* @param sensitivityExport the sensitivityExportNames to set
*/
public void setSensitivityExport(List<SensitivityExport> sensitivityExport) {
- this.sensitivityExport = sensitivityExport;
+ this.sensitivityExports = sensitivityExport;
}
/**
@@ -1278,7 +1329,7 @@
result.scriptLogLevel = scriptLogLevel;
result.libLogLevel = libLogLevel;
result.numberOfSensitivitySimulation = numberOfSensitivitySimulation;
- result.sensitivityExport.addAll(sensitivityExport);
+ result.sensitivityExports.addAll(getSensitivityExport());
result.sensitivityCalculator = sensitivityCalculator;
return result;
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-09-03 14:18:55 UTC (rev 2580)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2009-09-04 09:06:01 UTC (rev 2581)
@@ -62,6 +62,7 @@
import fr.ifremer.isisfish.datastore.RegionStorage;
import fr.ifremer.isisfish.datastore.RuleStorage;
import fr.ifremer.isisfish.datastore.ScriptStorage;
+import fr.ifremer.isisfish.datastore.SensitivityExportStorage;
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.datastore.SimulatorStorage;
import fr.ifremer.isisfish.export.SensitivityExport;
@@ -947,11 +948,11 @@
// copie de tous les exports de sensitivity a utiliser
for (SensitivityExport sensitivity : param.getSensitivityExport()) {
- String name = ExportStorage.getName(sensitivity);
+ String name = SensitivityExportStorage.getName(sensitivity);
name = name.endsWith(".java") ? name : name + ".java";
FileUtil.copy(
- new File(ExportStorage.getExportDirectory(), name),
- new File(tmpDirectory, ExportStorage.EXPORT_PATH
+ new File(SensitivityExportStorage.getSensitivityExportDirectory(), name),
+ new File(tmpDirectory, SensitivityExportStorage.SENSITIVITY_EXPORT_PATH
+ File.separator + name));
}
@@ -1021,6 +1022,10 @@
List<File> tmp = FileUtil.find(new File(directory,
ExportStorage.EXPORT_PATH), ".*\\.java$", true);
fileToConvert.addAll(tmp);
+
+ tmp = FileUtil.find(new File(directory,
+ SensitivityExportStorage.SENSITIVITY_EXPORT_PATH), ".*\\.java$", true);
+ fileToConvert.addAll(tmp);
tmp = FileUtil.find(new File(directory, RuleStorage.RULE_PATH),
".*\\.java$", true);
@@ -1070,6 +1075,10 @@
List<File> tmp = FileUtil.find(new File(directory,
ExportStorage.EXPORT_PATH), ".*\\.java$", true);
fileToCompile.addAll(tmp);
+
+ tmp = FileUtil.find(new File(directory,
+ SensitivityExportStorage.SENSITIVITY_EXPORT_PATH), ".*\\.java$", true);
+ fileToCompile.addAll(tmp);
tmp = FileUtil.find(new File(directory, RuleStorage.RULE_PATH),
".*\\.java$", true);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2009-09-03 14:18:55 UTC (rev 2580)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2009-09-04 09:06:01 UTC (rev 2581)
@@ -59,6 +59,7 @@
import fr.ifremer.isisfish.datastore.JavaSourceStorage;
import fr.ifremer.isisfish.datastore.RuleStorage;
import fr.ifremer.isisfish.datastore.ScriptStorage;
+import fr.ifremer.isisfish.datastore.SensitivityExportStorage;
import fr.ifremer.isisfish.datastore.SensitivityStorage;
import fr.ifremer.isisfish.datastore.SimulatorStorage;
import fr.ifremer.isisfish.equation.Language;
@@ -169,6 +170,10 @@
public List<String> getSensitivityNames() {
return SensitivityStorage.getSensitivityNames();
}
+
+ public List<String> getSensitivityExportsNames() {
+ return SensitivityExportStorage.getSensitivityExportNames();
+ }
public List<String> getCategories() {
return FormuleStorage.getCategories();
@@ -205,6 +210,10 @@
public File getSensitivityDirectory() {
return SensitivityStorage.getSensitivityDirectory();
}
+
+ public File getSensitivityExportDirectory() {
+ return SensitivityExportStorage.getSensitivityExportDirectory();
+ }
/**
* Creer un nouveau script, ici un script peut-etre un Script, un Simulator,
@@ -291,6 +300,9 @@
case Sensitivity:
script = SensitivityStorage.getSensitivity(fileName);
break;
+ case SensitivityExport:
+ script = SensitivityExportStorage.getSensitivityExport(fileName);
+ break;
default:
log.fatal("ScriptType unknown: " + scriptType);
}
@@ -377,6 +389,9 @@
case Sensitivity:
script = SensitivityStorage.getSensitivity(fileName);
break;
+ case SensitivityExport:
+ script = SensitivityExportStorage.getSensitivityExport(fileName);
+ break;
default:
log.fatal("ScriptType unknown: " + fileName);
}
@@ -485,8 +500,9 @@
}
if (file.isFile()) {
File parentFile = file.getParentFile();
- if (!dirFound.contains(parentFile))
+ if (!dirFound.contains(parentFile)) {
dirFound.add(parentFile);
+ }
dirWithFileFound.add(parentFile);
result.add(file.getAbsolutePath().substring(prefixLength));
} else {
@@ -858,16 +874,28 @@
/** enum to encapsulate a script module */
protected enum ScriptMapping {
- Script(ScriptStorage.getScriptDirectory(),
- ScriptStorage.SCRIPT_TEMPLATE), Simulator(SimulatorStorage
- .getSimulatorDirectory(), SimulatorStorage.SIMULATOR_TEMPLATE), Export(
+ Script(
+ ScriptStorage.getScriptDirectory(),
+ ScriptStorage.SCRIPT_TEMPLATE),
+ Simulator(
+ SimulatorStorage.getSimulatorDirectory(),
+ SimulatorStorage.SIMULATOR_TEMPLATE),
+ Export(
ExportStorage.getExportDirectory(),
- ExportStorage.EXPORT_TEMPLATE), Rule(RuleStorage
- .getRuleDirectory(), RuleStorage.RULE_TEMPLATE), AnalysePlan(
+ ExportStorage.EXPORT_TEMPLATE),
+ Rule(
+ RuleStorage.getRuleDirectory(),
+ RuleStorage.RULE_TEMPLATE),
+ AnalysePlan(
AnalysePlanStorage.getAnalysePlanDirectory(),
- AnalysePlanStorage.ANALYSE_PLAN_TEMPLATE), Sensitivity(
+ AnalysePlanStorage.ANALYSE_PLAN_TEMPLATE),
+ Sensitivity(
SensitivityStorage.getSensitivityDirectory(),
- SensitivityStorage.SENSIVITY_TEMPLATE), EquationModel(
+ SensitivityStorage.SENSIVITY_TEMPLATE),
+ SensitivityExport(
+ SensitivityExportStorage.getSensitivityExportDirectory(),
+ SensitivityExportStorage.SENSITIVITY_EXPORT_TEMPLATE),
+ EquationModel(
FormuleStorage.getFormuleDirectory(),
FormuleStorage.FORMULE_TEMPLATE);
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx 2009-09-03 14:18:55 UTC (rev 2580)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptUI.jaxx 2009-09-04 09:06:01 UTC (rev 2581)
@@ -54,6 +54,8 @@
f = new File(getContextValue(ScriptAction.class).getAnalysePlanDirectory().getPath() + File.separator + selectedValue);
} else if (parent.equals("Sensitivity")) {
f = new File(getContextValue(ScriptAction.class).getSensitivityDirectory().getPath() + File.separator + selectedValue);
+ } else if (parent.equals("SensitivityExport")) {
+ f = new File(getContextValue(ScriptAction.class).getSensitivityExportDirectory().getPath() + File.separator + selectedValue);
} else {
f = new File(getContextValue(ScriptAction.class).getFormuleDirectory().getPath() + File.separator + parent + File.separator + selectedValue);
parent = "EquationModel";
@@ -86,6 +88,7 @@
DefaultMutableTreeNode ruleNode = new DefaultMutableTreeNode(new GenericCell("Rule", null, null));
DefaultMutableTreeNode analysePlanNode = new DefaultMutableTreeNode(new GenericCell("AnalysePlan", null, null));
DefaultMutableTreeNode sensitivityNode = new DefaultMutableTreeNode(new GenericCell("Sensitivity", null, null));
+ DefaultMutableTreeNode sensitivityExportNode = new DefaultMutableTreeNode(new GenericCell("SensitivityExport", null, null));
DefaultMutableTreeNode equationModelNode = new DefaultMutableTreeNode(new GenericCell("EquationModel", null, null));
setNode(scriptNode, getContextValue(ScriptAction.class).getScriptNames(), "Script");
setNode(simulatorNode, getContextValue(ScriptAction.class).getSimulatorNames(), "Simulator");
@@ -93,6 +96,7 @@
setNode(ruleNode, getContextValue(ScriptAction.class).getRuleNames(), "Rule");
setNode(analysePlanNode, getContextValue(ScriptAction.class).getAnalysePlanNames(), "AnalysePlan");
setNode(sensitivityNode, getContextValue(ScriptAction.class).getSensitivityNames(), "Sensitivity");
+ setNode(sensitivityExportNode, getContextValue(ScriptAction.class).getSensitivityExportsNames(), "SensitivityExport");
setNode(equationModelNode, getContextValue(ScriptAction.class).getCategories(), "EquationModel");
for (Enumeration e = equationModelNode.children(); e.hasMoreElements();){
DefaultMutableTreeNode node = (DefaultMutableTreeNode)e.nextElement();
@@ -105,7 +109,8 @@
treeModel.insertNodeInto(ruleNode, rootNode, 3);
treeModel.insertNodeInto(analysePlanNode, rootNode, 4);
treeModel.insertNodeInto(sensitivityNode, rootNode, 5);
- treeModel.insertNodeInto(equationModelNode, rootNode, 6);
+ treeModel.insertNodeInto(sensitivityExportNode, rootNode, 6);
+ treeModel.insertNodeInto(equationModelNode, rootNode, 7);
return treeModel;
}
protected void setNode(DefaultMutableTreeNode node, java.util.List<String> values, String type) {
@@ -323,6 +328,7 @@
<JMenuItem id="miNewRule" text="isisfish.script.menu.txtNewRule" onActionPerformed='newScript("Rule")' accelerator="accNewRule"/>
<JMenuItem id="miNewAnalysePlan" text="isisfish.script.menu.txtNewAnalysePlan" onActionPerformed='newScript("AnalysePlan")' accelerator="accNewAnalysePlan"/>
<JMenuItem id="miNewSensitivity" text="isisfish.script.menu.txtNewSensitivity" onActionPerformed='newScript("Sensitivity")' accelerator="accNewSensitivity"/>
+ <JMenuItem id="miNewSensitivityExport" text="isisfish.script.menu.txtNewSensitivityExport" onActionPerformed='newScript("SensitivityExport")' accelerator="accNewSensitivityExport"/>
<JMenuItem id="miNewEquationModel" text="isisfish.script.menu.txtNewEquationModel" onActionPerformed='newScript("EquationModel")' accelerator="accNewEquationModel"/>
</JMenu>
<JMenuItem id="miSave" text="isisfish.script.menu.save" onActionPerformed="saveScript()" accelerator="accSave"/>
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-09-03 14:18:55 UTC (rev 2580)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-09-04 09:06:01 UTC (rev 2581)
@@ -55,6 +55,7 @@
import fr.ifremer.isisfish.datastore.RegionStorage;
import fr.ifremer.isisfish.datastore.RuleStorage;
import fr.ifremer.isisfish.datastore.ScriptStorage;
+import fr.ifremer.isisfish.datastore.SensitivityExportStorage;
import fr.ifremer.isisfish.datastore.SensitivityStorage;
import fr.ifremer.isisfish.datastore.SimulationStorage;
import fr.ifremer.isisfish.datastore.SimulatorStorage;
@@ -561,17 +562,7 @@
List<String> result = new ArrayList<String>();
List<String> exportNames = ExportStorage.getExportNames();
for (String export : exportNames) {
- try {
- ExportStorage storage = ExportStorage.getExport(export);
- Export exInstance = storage.getNewExportInstance();
- if (!SensitivityExport.class.isInstance(exInstance)) {
- result.add(export);
- }
- } catch (IsisFishException e) {
- if (log.isErrorEnabled()) {
- log.error("Can't get export names", e);
- }
- }
+ result.add(export);
}
return result;
}
@@ -680,22 +671,11 @@
/*
* Sensitivity
*/
-
public List<String> getSensitivityExportNames() {
List<String> result = new ArrayList<String>();
- List<String> exportNames = ExportStorage.getExportNames();
+ List<String> exportNames = SensitivityExportStorage.getSensitivityExportNames();
for (String export : exportNames) {
- try {
- ExportStorage storage = ExportStorage.getExport(export);
- Export exInstance = storage.getNewExportInstance();
- if (SensitivityExport.class.isInstance(exInstance)) {
- result.add(export);
- }
- } catch (IsisFishException e) {
- if (log.isErrorEnabled()) {
- log.error("Can't get sensitivity export names", e);
- }
- }
+ result.add(export);
}
return result;
}
@@ -732,7 +712,7 @@
public Map<String, Class<?>> getSensitivityExportParameterNames(
SensitivityExport export) {
- return ExportStorage.getParameterNames(export);
+ return SensitivityExportStorage.getParameterNames(export);
}
public void setSensitivityExportParameterValue(Export export,
@@ -748,10 +728,10 @@
}
}
- public Object getSensitivityExportParameterValue(Export export, String paramName) {
+ public Object getSensitivityExportParameterValue(SensitivityExport sensitivityExport, String paramName) {
Object result = null;
try {
- result = ExportStorage.getParameterValue(export, paramName);
+ result = SensitivityExportStorage.getParameterValue(sensitivityExport, paramName);
} catch (IsisFishException e) {
if (log.isErrorEnabled()) {
log.error("Can't get sensitivity export param value", e);
Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties
===================================================================
--- isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-09-03 14:18:55 UTC (rev 2580)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-09-04 09:06:01 UTC (rev 2581)
@@ -893,6 +893,7 @@
isisfish.script.menu.txtNewRule=New rule
isisfish.script.menu.txtNewScript=New script
isisfish.script.menu.txtNewSensitivity=New sensitivity calculator
+isisfish.script.menu.txtNewSensitivityExport=New sensitivity export
isisfish.script.menu.txtNewSimulator=New simulator
isisfish.script.menu.txtVCS=Server
isisfish.script.menu.update=Update from server
Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties
===================================================================
--- isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-09-03 14:18:55 UTC (rev 2580)
+++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-09-04 09:06:01 UTC (rev 2581)
@@ -893,6 +893,7 @@
isisfish.script.menu.txtNewRule=Nouvelle r\u00E8gle
isisfish.script.menu.txtNewScript=Nouveau script
isisfish.script.menu.txtNewSensitivity=Nouveau calculateur de sensibilit\u00E9
+isisfish.script.menu.txtNewSensitivityExport=Nouvel export de sensibilit\u00E9
isisfish.script.menu.txtNewSimulator=Nouveau simulateur
isisfish.script.menu.txtVCS=Serveur
isisfish.script.menu.update=Synchronisation
Added: isis-fish/trunk/src/main/resources/templates/script/sensitivityexport.ftl
===================================================================
--- isis-fish/trunk/src/main/resources/templates/script/sensitivityexport.ftl (rev 0)
+++ isis-fish/trunk/src/main/resources/templates/script/sensitivityexport.ftl 2009-09-04 09:06:01 UTC (rev 2581)
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) ${date?date?string("yyyy")} ${author}
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+package exports;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.io.Writer;
+
+import static org.codelutin.i18n.I18n._;
+import org.codelutin.math.matrix.*;
+import fr.ifremer.isisfish.util.Doc;
+import fr.ifremer.isisfish.entities.*;
+import fr.ifremer.isisfish.export.SensitivityExport;
+import fr.ifremer.isisfish.datastore.SimulationStorage;
+import fr.ifremer.isisfish.datastore.ResultStorage;
+
+/**
+ * ${name}.java
+ *
+ * Created: ${date?date?string.long}
+ *
+ * @author ${author} <${email}>
+ * @version $Revision: 1545 $
+ *
+ * Last update: $Date: ${date?date?string.long} $
+ * by : $Author: ${author} $
+ */
+public class ${name} implements SensitivityExport {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ private static Log log = LogFactory.getLog(${name}.class);
+
+ public String [] necessaryResult = {
+ // put here all necessary result for this rule
+ // example:
+ // ResultName.MATRIX_BIOMASS,
+ // ResultName.MATRIX_NET_VALUE_OF_LANDINGS_PER_STRATEGY_MET,
+ };
+
+ public String[] getNecessaryResult() {
+ return this.necessaryResult;
+ }
+
+ public String getExportFilename() {
+ return "${name}";
+ }
+
+ public String getExtensionFilename() {
+ return ".csv";
+ }
+
+ public String getDescription() {
+ return _("TODO export description");
+ }
+
+ public void export(SimulationStorage simulation, Writer out) throws Exception {
+ // put your code here, and write export with: out.write("...")
+ }
+}
\ No newline at end of file
Added: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityExportStorageTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityExportStorageTest.java (rev 0)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityExportStorageTest.java 2009-09-04 09:06:01 UTC (rev 2581)
@@ -0,0 +1,87 @@
+/* *##%
+ * Copyright (C) 2006 - 2009 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.datastore;
+
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import fr.ifremer.isisfish.AbstractIsisFishTest;
+import fr.ifremer.isisfish.IsisFish;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+
+/**
+ * SensitivityExportStorageTest.
+ *
+ * Created: jeu. sept. 3 12:16:08 CEST 2009
+ *
+ * @author poussin
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author: tchemit $
+ */
+public class SensitivityExportStorageTest extends AbstractIsisFishTest {
+
+ protected Configuration freemarkerConfiguration;
+
+ @Before
+ public void setUp() throws Exception {
+ freemarkerConfiguration = getFreemarkerConfiguration();
+ }
+
+ @Test
+ public void testNewSensitivityExportWithCompilation() throws Exception {
+
+ String fileName = "TestSensitivityExport1";
+
+ SensitivityExportStorage sensitivityExportStorage = SensitivityExportStorage.getSensitivityExport(fileName);
+
+ // get template
+ Template template = freemarkerConfiguration
+ .getTemplate(SensitivityExportStorage.SENSITIVITY_EXPORT_TEMPLATE);
+
+ // context values
+ Map<String, Object> root = new HashMap<String, Object>();
+ // FIXME what is category ?
+ root.put("category", "");
+ root.put("name", fileName);
+ root.put("date", new Date());
+ root.put("author", IsisFish.config.getUserName());
+ root.put("email", IsisFish.config.getUserMail());
+
+ // process template
+ Writer out = new StringWriter();
+ template.process(root, out);
+ out.flush();
+ sensitivityExportStorage.setContent(out.toString());
+
+ // 0 = compile success
+ int compileResult = sensitivityExportStorage.compile(false, null);
+ Assert.assertEquals(0, compileResult);
+ }
+
+}
Property changes on: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SensitivityExportStorageTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
1
0
r2580 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org 03 Sep '09
by chatellier@users.labs.libre-entreprise.org 03 Sep '09
03 Sep '09
Author: chatellier
Date: 2009-09-03 14:18:55 +0000 (Thu, 03 Sep 2009)
New Revision: 2580
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
Log:
This should have never been commited (sessions never closed)
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2009-09-03 08:53:36 UTC (rev 2579)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/InProcessSimulatorLauncher.java 2009-09-03 14:18:55 UTC (rev 2580)
@@ -34,6 +34,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codelutin.topia.TopiaContext;
+import org.codelutin.topia.TopiaException;
import org.codelutin.topia.event.TopiaTransactionEvent;
import org.codelutin.topia.event.TopiaTransactionListener;
import org.codelutin.topia.persistence.TopiaEntity;
@@ -419,10 +420,10 @@
SimulationContext context = SimulationContext.get();
- //context.closeDB();
- //context.closeDBResult();
+ context.closeDB();
+ context.closeDBResult();
- /*try {
+ try {
// close all transaction
if (context.getSimulationStorage() != null) {
context.getSimulationStorage().closeMemStorage();
@@ -432,7 +433,7 @@
if (log.isWarnEnabled()) {
log.warn("Can't close all transaction", eee);
}
- }*/
+ }
SimulationContext.remove();
1
0
r2579 - in isis-fish/trunk/src: main/java/fr/ifremer/isisfish/simulator/launcher test/java/fr/ifremer/isisfish/simulator/launcher
by chatellier@users.labs.libre-entreprise.org 03 Sep '09
by chatellier@users.labs.libre-entreprise.org 03 Sep '09
03 Sep '09
Author: chatellier
Date: 2009-09-03 08:53:36 +0000 (Thu, 03 Sep 2009)
New Revision: 2579
Added:
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitorTest.java
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
Log:
Fix a sort problem with equals date (often in windows system).
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-09-02 14:08:08 UTC (rev 2578)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitor.java 2009-09-03 08:53:36 UTC (rev 2579)
@@ -128,7 +128,13 @@
@Override
public int compare(SimpleEntry<Date, SimulationJob> o1,
SimpleEntry<Date, SimulationJob> o2) {
- return o1.getKey().compareTo(o2.getKey());
+ // TODO change this, it's a set with duplicated entries !!!
+ int result = o1.getKey().compareTo(o2.getKey());
+ // with bad luck (or windows system) date can be equals :(
+ if (result == 0) {
+ result = o1.getValue().compareTo(o2.getValue());
+ }
+ return result;
}
});
Added: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitorTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitorTest.java (rev 0)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitorTest.java 2009-09-03 08:53:36 UTC (rev 2579)
@@ -0,0 +1,77 @@
+/* *##%
+ * Copyright (C) 2009 Code Lutin
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *##%*/
+
+package fr.ifremer.isisfish.simulator.launcher;
+
+import java.util.Comparator;
+import java.util.Date;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import java.util.AbstractMap.SimpleEntry;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import fr.ifremer.isisfish.AbstractIsisFishTest;
+import fr.ifremer.isisfish.simulator.SimulationControl;
+import fr.ifremer.isisfish.simulator.SimulationParameter;
+
+/**
+ * Test de la class SimulationMonitor.
+ *
+ * @author chatellier
+ * @version $Revision$
+ *
+ * Last update : $Date$
+ * By : $Author$
+ */
+public class SimulationMonitorTest extends AbstractIsisFishTest {
+
+ protected SortedSet<SimpleEntry<Date, SimulationJob>> checkSet = new TreeSet<SimpleEntry<Date, SimulationJob>>(new Comparator<SimpleEntry<Date, SimulationJob>>(){
+ @Override
+ public int compare(SimpleEntry<Date, SimulationJob> o1,
+ SimpleEntry<Date, SimulationJob> o2) {
+
+ int result = o1.getKey().compareTo(o2.getKey());
+ if (result == 0) {
+ result = o1.getValue().compareTo(o2.getValue());
+ }
+ return result;
+ }
+
+ });
+
+ @Test
+ public void testSimulationSetUniqueNess() {
+ SimulationService service = SimulationService.getService();
+
+ SimulationControl control1 = new SimulationControl("test1");
+ SimulationItem item1 = new SimulationItem(control1, new SimulationParameter());
+ SimulationJob job1 = new SimulationJob(service, item1, 0);
+
+ SimulationControl control2 = new SimulationControl("test2");
+ SimulationItem item2 = new SimulationItem(control2, new SimulationParameter());
+ SimulationJob job2 = new SimulationJob(service, item2, 0);
+
+ Date d = new Date();
+ checkSet.add(new SimpleEntry<Date, SimulationJob>(d, job1));
+ checkSet.add(new SimpleEntry<Date, SimulationJob>(d, job2));
+
+ Assert.assertEquals(2, checkSet.size());
+ }
+}
Property changes on: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/simulator/launcher/SimulationMonitorTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
1
0
r2578 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish
by chatellier@users.labs.libre-entreprise.org 02 Sep '09
by chatellier@users.labs.libre-entreprise.org 02 Sep '09
02 Sep '09
Author: chatellier
Date: 2009-09-02 14:08:08 +0000 (Wed, 02 Sep 2009)
New Revision: 2578
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java
Log:
Add duplicated message for code duplication
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2009-09-02 14:02:38 UTC (rev 2577)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2009-09-02 14:08:08 UTC (rev 2578)
@@ -64,6 +64,7 @@
import fr.ifremer.isisfish.types.RangeOfValues;
import fr.ifremer.isisfish.types.TimeUnit;
import fr.ifremer.isisfish.ui.WelcomeUI;
+import fr.ifremer.isisfish.util.ConverterUtil;
import fr.ifremer.isisfish.util.DateConverter;
import fr.ifremer.isisfish.util.MonthConverter;
import fr.ifremer.isisfish.util.RangeOfValuesConverter;
@@ -513,6 +514,8 @@
/**
* Initialise les convertiseurs utilisé par commons-beansutils.
+ *
+ * @deprecated since 3.2.0.5 duplicated with {@link ConverterUtil#getConverter(org.codelutin.topia.TopiaContext)}
*/
protected static void initConvertersAndMatrixFactory() {
1
0
r2577 - isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore
by chatellier@users.labs.libre-entreprise.org 02 Sep '09
by chatellier@users.labs.libre-entreprise.org 02 Sep '09
02 Sep '09
Author: chatellier
Date: 2009-09-02 14:02:38 +0000 (Wed, 02 Sep 2009)
New Revision: 2577
Modified:
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SimulationInformationTest.java
Log:
Improve test on rules
Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SimulationInformationTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SimulationInformationTest.java 2009-09-02 13:47:36 UTC (rev 2576)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SimulationInformationTest.java 2009-09-02 14:02:38 UTC (rev 2577)
@@ -204,7 +204,7 @@
info.addRuleInitTime("rule1", 30);
info.addRuleInitTime("rule2", 8);
info.addRuleInitTime("rule3", 321);
- info.addRuleInitTime("rule4", 321);
+ info.addRuleInitTime("rule4", 123);
// time must be added
info.addRulePreTime("rule1", 20);
@@ -212,8 +212,8 @@
info.addRulePreTime("rule1", 20);
info.addRulePostTime("rule1", 25);
- info.addRulePreTime("rule2", 20);
- info.addRulePostTime("rule2", 25);
+ info.addRulePreTime("rule2", 18);
+ info.addRulePostTime("rule2", 500);
info.addRulePreTime("rule3", 20);
// no additional time for rule 4
@@ -222,10 +222,24 @@
SimulationInformation testInfo = new SimulationInformation(file);
Assert.assertFalse(testInfo.hasError());
- //Assert.assertEquals(30, testInfo.getExportTime("export1"));
- //Assert.assertEquals(40, testInfo.getExportTime("export2"));
- //Assert.assertEquals(50, testInfo.getExportTime("export3"));
- //Assert.assertEquals(60, testInfo.getExportTime("export4"));
- //Assert.assertTrue(testInfo.toString().indexOf("export1") > 0);
+ Assert.assertEquals(30, testInfo.getRuleInitTime("rule1"));
+ Assert.assertEquals(8, testInfo.getRuleInitTime("rule2"));
+ Assert.assertEquals(321, testInfo.getRuleInitTime("rule3"));
+ Assert.assertEquals(123, testInfo.getRuleInitTime("rule4"));
+
+ Assert.assertEquals(20 + 20, testInfo.getRulePreTime("rule1"));
+ Assert.assertEquals(25 + 25, testInfo.getRulePostTime("rule1"));
+
+ Assert.assertEquals(18, testInfo.getRulePreTime("rule2"));
+ Assert.assertEquals(500, testInfo.getRulePostTime("rule2"));
+
+ Assert.assertEquals(20, testInfo.getRulePreTime("rule3"));
+ Assert.assertEquals(0, testInfo.getRulePostTime("rule3"));
+
+ Assert.assertEquals(0, testInfo.getRulePreTime("rule4"));
+ Assert.assertEquals(0, testInfo.getRulePostTime("rule4"));
+
+ // total time present rule2
+ Assert.assertTrue(testInfo.toString().indexOf("rule2 : 0.526") > 0);
}
}
1
0
r2576 - in isis-fish/trunk/src: main/java/fr/ifremer/isisfish/datastore test/java/fr/ifremer/isisfish/datastore
by chatellier@users.labs.libre-entreprise.org 02 Sep '09
by chatellier@users.labs.libre-entreprise.org 02 Sep '09
02 Sep '09
Author: chatellier
Date: 2009-09-02 13:47:36 +0000 (Wed, 02 Sep 2009)
New Revision: 2576
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationInformation.java
isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SimulationInformationTest.java
Log:
Add rule time on simulation information.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationInformation.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationInformation.java 2009-09-02 13:47:17 UTC (rev 2575)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/SimulationInformation.java 2009-09-02 13:47:36 UTC (rev 2576)
@@ -30,8 +30,10 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
import java.util.Properties;
+import java.util.Set;
import org.apache.commons.lang.time.DurationFormatUtils;
import org.apache.commons.logging.Log;
@@ -58,24 +60,26 @@
private static final String END_SIMULATION = "simulationEnd";
private static final String EXPORT_TIME = "exportTime";
private static final String RULE_TIME = "ruleTime";
+ private static final String RULE_TIME_INIT = RULE_TIME + ".init";
+ private static final String RULE_TIME_PRE = RULE_TIME + ".pre";
+ private static final String RULE_TIME_POST = RULE_TIME + ".post";
private static final String OTHER_INFO = "otherInfo";
private static final String STATISTIC = "statistic";
private static final String OPTIMIZATION_USAGE = "optimizationUsage";
private static final String SIMULATION_EXCEPTION = "exception";
- private static final String RULE_TIME_INIT = "init";
- private static final String RULE_TIME_PRE = "pre";
- private static final String RULE_TIME_POST = "post";
-
private static final SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy.MM.dd HH:mm:ss");
protected Properties info = new Properties();
+
protected File file = null;
/**
* Constructor.
*
+ * If file already exists, load his content into current instance.
+ *
* @param file simulation information output file
*/
public SimulationInformation(File file) {
@@ -100,9 +104,13 @@
@Override
public String toString() {
String result = "Simulation Information:\n";
+
+ // date start/end
result += "Start: " + dateFormat.format(getSimulationStart())
+ " End: " + dateFormat.format(getSimulationEnd()) + "\n";
- Map<String, Long> exportTime = getExportTime();
+
+ // exports
+ Map<String, Long> exportTime = getExportTimes();
if (exportTime.size() > 0) {
result += "Export time:\n";
for (Map.Entry<String, Long> entry : exportTime.entrySet()) {
@@ -114,19 +122,56 @@
}
}
+ // rules
+ Set<String> ruleNames = getRuleNames();
+ if (ruleNames.size() > 0) {
+ result += "Rule time:\n";
+ for (String ruleName : ruleNames) {
+ long time = getRuleInitTime(ruleName);
+ long total = time;
+ if (time > 0) {
+
+ String details = "";
+ details += "init:" + DurationFormatUtils.formatDuration(time, "s'.'S");
+
+ // can be 0 if condition always return false, never entrer pre/post
+ time = getRulePreTime(ruleName);
+ if (time > 0) {
+ total += time;
+ details += ", pre:" + DurationFormatUtils.formatDuration(time, "s'.'S");
+ }
+ time = getRulePostTime(ruleName);
+ if (time > 0) {
+ total += time;
+ details += ", post:" + DurationFormatUtils.formatDuration(time, "s'.'S");
+ }
+
+ result += "\t" + ruleName + " : " + DurationFormatUtils.formatDuration(total, "s'.'S");
+ result += " (" + details + ")";
+ result += "\n";
+ }
+ }
+ }
+
+ // general information
String info = getInformation();
if (info != null && !"".equals(info)) {
result += "Information:\n" + info + "\n";
}
+ // Statistic
String v = getStatistic();
if (v != null) {
result += "Statistic:\n" + v + "\n";
}
+
+ // Optimisation usage
v = getOptimizationUsage();
if (v != null) {
result += "Optimisation usage:\n" + v + "\n";
}
+
+ // Exception
v = getException();
if (v != null) {
result += "Exception:\n" + v + "\n";
@@ -181,8 +226,9 @@
}
/**
- * Get the date of simulation start
- * @return
+ * Get the date of simulation start.
+ *
+ * @return simulation end date
*/
public Date getSimulationEnd() {
String d = info.getProperty(END_SIMULATION);
@@ -206,11 +252,16 @@
setInfo(END_SIMULATION, dateFormat.format(date));
}
+ public void addExportTime(String exportName, long time) {
+ setInfo(EXPORT_TIME + "." + exportName, String.valueOf(time));
+ }
+
/**
- * get all export time in map
- * @return
+ * Get all export time in map.
+ *
+ * @return a map with all export time
*/
- public Map<String, Long> getExportTime() {
+ protected Map<String, Long> getExportTimes() {
Map<String, Long> result = new HashMap<String, Long>();
for (String key : info.stringPropertyNames()) {
if (key.startsWith(EXPORT_TIME + ".")) {
@@ -235,6 +286,16 @@
return result;
}
+ /**
+ * Get all export time in map.
+ *
+ * @return a map with all export time
+ * @deprecated since 3.2.0.5, use {@link #getExportTimes()} instead
+ */
+ public Map<String, Long> getExportTime() {
+ return getExportTimes();
+ }
+
public long getExportTime(String exportName) {
String t = info.getProperty(EXPORT_TIME + "." + exportName);
long result = 0;
@@ -250,10 +311,152 @@
return result;
}
- public void addExportTime(String exportName, long time) {
- setInfo(EXPORT_TIME + "." + exportName, String.valueOf(time));
+ /**
+ * Add rule time.
+ *
+ * If a time already exists for ruleName, add time to previous time.
+ * (usefull because pre/post action are called multiples time)
+ *
+ * @param keyName (ie {@link #RULE_TIME_INIT}, {@link #RULE_TIME_PRE}, {@link #RULE_TIME_POST})
+ * @param ruleName rule name
+ * @param time time to add
+ *
+ * @since 3.2.0.5
+ */
+ protected void addRuleTime(String keyName, String ruleName, long time) {
+
+ // get previous time
+ String previousTimeAsString = info
+ .getProperty(keyName + "." + ruleName);
+ long previousTime = 0;
+ if (previousTimeAsString != null) {
+ try {
+ previousTime = Long.parseLong(previousTimeAsString);
+ } catch (NumberFormatException eee) {
+ if (log.isWarnEnabled()) {
+ log.warn(_("isisfish.error.parse.long",
+ previousTimeAsString), eee);
+ }
+ }
+ }
+
+ // add
+ long newTime = previousTime + time;
+
+ // set new time in
+ setInfo(keyName + "." + ruleName, String.valueOf(newTime));
}
+ /**
+ * Add rule init time.
+ *
+ * If a time already exists for ruleName, add time to previous time.
+ *
+ * @param ruleName rule name
+ * @param time time to add
+ * @since 3.2.0.5
+ */
+ public void addRuleInitTime(String ruleName, long time) {
+ addRuleTime(RULE_TIME_INIT, ruleName, time);
+ }
+
+ /**
+ * Add rule pre operation time time.
+ *
+ * If a time already exists for ruleName, add time to previous time.
+ *
+ * @param ruleName rule name
+ * @param time time to add
+ * @since 3.2.0.5
+ */
+ public void addRulePreTime(String ruleName, long time) {
+ addRuleTime(RULE_TIME_PRE, ruleName, time);
+ }
+
+ /**
+ * Add rule post operation time.
+ *
+ * If a time already exists for ruleName, add time to previous time.
+ *
+ * @param ruleName rule name
+ * @param time time to add
+ * @since 3.2.0.5
+ */
+ public void addRulePostTime(String ruleName, long time) {
+ addRuleTime(RULE_TIME_POST, ruleName, time);
+ }
+
+ /**
+ * Get rule init operation time.
+ *
+ * @param ruleName rule name
+ * @return time
+ * @since 3.2.0.5
+ */
+ public long getRuleInitTime(String ruleName) {
+ return getRuleTime(RULE_TIME_INIT, ruleName);
+ }
+
+ /**
+ * Get rule pre operation time.
+ *
+ * @param ruleName rule name
+ * @return time
+ * @since 3.2.0.5
+ */
+ public long getRulePreTime(String ruleName) {
+ return getRuleTime(RULE_TIME_PRE, ruleName);
+ }
+
+ /**
+ * Get rule post operation time.
+ *
+ * @param ruleName rule name
+ * @return time
+ * @since 3.2.0.5
+ */
+ public long getRulePostTime(String ruleName) {
+ return getRuleTime(RULE_TIME_POST, ruleName);
+ }
+
+ /**
+ * Get rule operation time.
+ *
+ * @param ruleName rule name
+ * @since 3.2.0.5
+ */
+ protected long getRuleTime(String prefixName, String ruleName) {
+ String t = info.getProperty(prefixName + "." + ruleName);
+ long result = 0;
+ if (t != null) {
+ try {
+ result = Long.parseLong(t);
+ } catch (NumberFormatException eee) {
+ if (log.isWarnEnabled()) {
+ log.warn(_("isisfish.error.parse.long", t), eee);
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Get rules names.
+ *
+ * @return a map with all export time
+ */
+ protected Set<String> getRuleNames() {
+ Set<String> result = new HashSet<String>();
+ for (String key : info.stringPropertyNames()) {
+ if (key.startsWith(RULE_TIME + ".")) {
+ // recupere le nom apres le deuxieme "."
+ String ruleName = key.substring(key.indexOf('.', RULE_TIME.length() + 1) + 1);
+ result.add(ruleName);
+ }
+ }
+ return result;
+ }
+
public String getStatistic() {
String result = info.getProperty(STATISTIC);
return result;
@@ -297,6 +500,7 @@
/**
* @deprecated since 3.2.0.5, use {@link #getInformation()} instead
+ * @return other information
*/
public String getInfomation() {
return getInformation();
Modified: isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SimulationInformationTest.java
===================================================================
--- isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SimulationInformationTest.java 2009-09-02 13:47:17 UTC (rev 2575)
+++ isis-fish/trunk/src/test/java/fr/ifremer/isisfish/datastore/SimulationInformationTest.java 2009-09-02 13:47:36 UTC (rev 2576)
@@ -26,8 +26,9 @@
import java.text.SimpleDateFormat;
import java.util.Date;
-import junit.framework.Assert;
-
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Assert;
import org.junit.Test;
/**
@@ -43,6 +44,9 @@
*/
public class SimulationInformationTest {
+ /** Log. */
+ protected static Log log = LogFactory.getLog(SimulationInformationTest.class);
+
/**
* Test simulation information with no data.
*
@@ -60,6 +64,7 @@
Assert.assertFalse(info.hasError());
Assert.assertNull(info.getException());
Assert.assertEquals(0, info.getExportTime("test"));
+ Assert.assertNotNull(info.toString());
}
/**
@@ -84,6 +89,7 @@
Assert.assertFalse(info.hasError());
Assert.assertTrue(info.getOptimizationUsage().indexOf("Cache used") > 0);
Assert.assertNull(info.getStatistic());
+ Assert.assertTrue(info.toString().indexOf("VesselMargin.java") > 0);
}
/**
@@ -101,6 +107,7 @@
SimulationInformation info = new SimulationInformation(file);
Assert.assertTrue(info.hasError());
Assert.assertTrue(info.getException().indexOf("TopiaException") > 0);
+ Assert.assertTrue(info.toString().indexOf("TopiaException") > 0);
}
/**
@@ -130,6 +137,7 @@
SimulationInformation testInfo = new SimulationInformation(file);
Assert.assertEquals(d1, testInfo.getSimulationStart());
Assert.assertEquals(d2, testInfo.getSimulationEnd());
+ Assert.assertTrue(testInfo.toString().indexOf("15:50:47") > 0);
}
/**
@@ -152,6 +160,7 @@
SimulationInformation testInfo = new SimulationInformation(file);
Assert.assertTrue(testInfo.hasError());
Assert.assertTrue(testInfo.getException().indexOf("grave") > 0);
+ Assert.assertTrue(testInfo.toString().indexOf("grave") > 0);
}
@@ -178,5 +187,45 @@
Assert.assertEquals(40, testInfo.getExportTime("export2"));
Assert.assertEquals(50, testInfo.getExportTime("export3"));
Assert.assertEquals(60, testInfo.getExportTime("export4"));
+ Assert.assertTrue(testInfo.toString().indexOf("export1") > 0);
}
+
+ /**
+ * Test simulation rule time.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testSimulationRuleTime() throws IOException {
+ File file = File.createTempFile("information-rule", ".txt");
+ file.deleteOnExit();
+
+ SimulationInformation info = new SimulationInformation(file);
+ info.addRuleInitTime("rule1", 30);
+ info.addRuleInitTime("rule2", 8);
+ info.addRuleInitTime("rule3", 321);
+ info.addRuleInitTime("rule4", 321);
+
+ // time must be added
+ info.addRulePreTime("rule1", 20);
+ info.addRulePostTime("rule1", 25);
+ info.addRulePreTime("rule1", 20);
+ info.addRulePostTime("rule1", 25);
+
+ info.addRulePreTime("rule2", 20);
+ info.addRulePostTime("rule2", 25);
+
+ info.addRulePreTime("rule3", 20);
+ // no additional time for rule 4
+
+ info.store();
+
+ SimulationInformation testInfo = new SimulationInformation(file);
+ Assert.assertFalse(testInfo.hasError());
+ //Assert.assertEquals(30, testInfo.getExportTime("export1"));
+ //Assert.assertEquals(40, testInfo.getExportTime("export2"));
+ //Assert.assertEquals(50, testInfo.getExportTime("export3"));
+ //Assert.assertEquals(60, testInfo.getExportTime("export4"));
+ //Assert.assertTrue(testInfo.toString().indexOf("export1") > 0);
+ }
}
1
0
r2575 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/export
by chatellier@users.labs.libre-entreprise.org 02 Sep '09
by chatellier@users.labs.libre-entreprise.org 02 Sep '09
02 Sep '09
Author: chatellier
Date: 2009-09-02 13:47:17 +0000 (Wed, 02 Sep 2009)
New Revision: 2575
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/export/Export.java
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/export/ExportHelper.java
Log:
Update export doc.
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/export/Export.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/export/Export.java 2009-09-02 13:28:25 UTC (rev 2574)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/export/Export.java 2009-09-02 13:47:17 UTC (rev 2575)
@@ -24,7 +24,7 @@
import fr.ifremer.isisfish.datastore.SimulationStorage;
/**
- * Interface que doivent implanter les classes d'export de resultats
+ * Interface que doivent implanter les classes d'export de resultats.
*
* Le nom du fichier d'export qui sera utilisé sera le basé sur le nom de la
* classe d'export
@@ -40,30 +40,35 @@
public interface Export {
/**
+ * Necessary results names for export execution.
+ *
* @return the necessaryResult name
*/
public String[] getNecessaryResult();
/**
- * Return Export description
+ * Return Export description.
+ *
* @return string displayable to the end user
*/
public String getDescription();
/**
- * Return filename used to contains export data
+ * Return filename used to contains export data.
+ *
* @return filename by example "myexport"
*/
public String getExportFilename();
/**
- * Return extension used as filename name extension
+ * Return extension used as filename name extension.
+ *
* @return extension by example ".csv"
*/
public String getExtensionFilename();
/**
- * Exporte les resultat
+ * Exporte les resultat.
*
* @param simulation la simulation dont on souhaite exporter les resultats
* @param out la sortie sur lequel il faut ecrire l'export
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/export/ExportHelper.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/export/ExportHelper.java 2009-09-02 13:28:25 UTC (rev 2574)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/export/ExportHelper.java 2009-09-02 13:47:17 UTC (rev 2575)
@@ -38,7 +38,7 @@
import fr.ifremer.isisfish.util.ConverterUtil;
/**
- * Export helper.
+ * Helper for exports manipulation.
*
* Created: 20 janv. 2006 01:52:04
*
1
0