Jmexico-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
- 164 discussions
r18 - in trunk: jmexico-model/src/main/java/fr/reseaumexico/model jmexico-model/src/main/java/fr/reseaumexico/model/event jmexico-model/src/main/java/fr/reseaumexico/model/parser jmexico-model/src/main/java/fr/reseaumexico/model/writer jmexico-swing-editor/src/main/resources/i18n
by sletellier@users.forge.codelutin.com 04 Jan '12
by sletellier@users.forge.codelutin.com 04 Jan '12
04 Jan '12
Author: sletellier
Date: 2012-01-04 14:58:53 +0100 (Wed, 04 Jan 2012)
New Revision: 18
Url: http://forge.codelutin.com/repositories/revision/jmexico/18
Log:
Improve javadoc
Modified:
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/DateFormatFactory.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/MexicoTechnicalException.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignFactorEvent.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignScenarioEvent.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/ScenarioFactorValueEvent.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/InputDesignParser.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/MexicoXmlParser.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/XmlParser.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/InputDesignXmlWriter.java
trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_en_GB.properties
trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/DateFormatFactory.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/DateFormatFactory.java 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/DateFormatFactory.java 2012-01-04 13:58:53 UTC (rev 18)
@@ -28,8 +28,11 @@
import java.text.SimpleDateFormat;
/**
+ * Factory for format all jmexico dates using {@link SimpleDateFormat}
+ *
* @author sletellier <letellier(a)codelutin.com>
* @since 0.1
+ * @see SimpleDateFormat
*/
public class DateFormatFactory {
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java 2012-01-04 13:58:53 UTC (rev 18)
@@ -39,6 +39,8 @@
import javax.swing.event.EventListenerList;
/**
+ * Implementation of {@link InputDesign} to provide listener API
+ *
* @author sletellier <letellier(a)codelutin.com>
* @since 0.1
*/
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/MexicoTechnicalException.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/MexicoTechnicalException.java 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/MexicoTechnicalException.java 2012-01-04 13:58:53 UTC (rev 18)
@@ -25,6 +25,8 @@
package fr.reseaumexico.model;
/**
+ * Mexico technical exception
+ *
* @author sletellier <letellier(a)codelutin.com>
* @since 0.1
*/
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java 2012-01-04 13:58:53 UTC (rev 18)
@@ -31,6 +31,8 @@
import javax.swing.event.EventListenerList;
/**
+ * Implementation of {@link Scenario} to provide listener API
+ *
* @author sletellier <letellier(a)codelutin.com>
* @since 0.1
*/
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignFactorEvent.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignFactorEvent.java 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignFactorEvent.java 2012-01-04 13:58:53 UTC (rev 18)
@@ -28,6 +28,8 @@
import fr.reseaumexico.model.Scenario;
/**
+ * Event fired when {@link fr.reseaumexico.model.Factor} change on {@link InputDesign}
+ *
* @author sletellier <letellier(a)codelutin.com>
* @since 0.1
*/
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignScenarioEvent.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignScenarioEvent.java 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignScenarioEvent.java 2012-01-04 13:58:53 UTC (rev 18)
@@ -29,6 +29,8 @@
import java.util.EventObject;
/**
+ * Event fired when {@link Scenario} change on {@link InputDesign}
+ *
* @author sletellier <letellier(a)codelutin.com>
* @since 0.1
*/
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/ScenarioFactorValueEvent.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/ScenarioFactorValueEvent.java 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/ScenarioFactorValueEvent.java 2012-01-04 13:58:53 UTC (rev 18)
@@ -28,6 +28,8 @@
import java.util.EventObject;
/**
+ * Event fired when {@link fr.reseaumexico.model.Factor} change on {@link Scenario}
+ *
* @author sletellier <letellier(a)codelutin.com>
* @since 0.1
*/
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java 2012-01-04 13:58:53 UTC (rev 18)
@@ -77,6 +77,8 @@
import static fr.reseaumexico.model.MexicoXmlConstant.LEVEL_WEIGHT;
/**
+ * Parser for experiment design xml files, build a {@link ExperimentDesign} model
+ *
* @author sletellier <letellier(a)codelutin.com>
* @since 0.1
*/
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/InputDesignParser.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/InputDesignParser.java 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/InputDesignParser.java 2012-01-04 13:58:53 UTC (rev 18)
@@ -51,6 +51,8 @@
import static fr.reseaumexico.model.MexicoXmlConstant.SCENARIO_ORDER_NUMBER;
/**
+ * Parser for input design xml files, build a {@link InputDesign} model
+ *
* @author sletellier <letellier(a)codelutin.com>
* @since 0.1
*/
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/MexicoXmlParser.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/MexicoXmlParser.java 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/MexicoXmlParser.java 2012-01-04 13:58:53 UTC (rev 18)
@@ -31,6 +31,8 @@
import java.util.Date;
/**
+ * Abstract parser to get model from xml file using XPP3 for mexico
+ *
* @author sletellier <letellier(a)codelutin.com>
* @since 0.1
*/
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/XmlParser.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/XmlParser.java 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/XmlParser.java 2012-01-04 13:58:53 UTC (rev 18)
@@ -38,6 +38,7 @@
*
* @author sletellier <letellier(a)codelutin.com>
* @since 0.1
+ * @see XmlPullParser
*/
public abstract class XmlParser<M> extends FileReader {
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/InputDesignXmlWriter.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/InputDesignXmlWriter.java 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/InputDesignXmlWriter.java 2012-01-04 13:58:53 UTC (rev 18)
@@ -41,7 +41,7 @@
import static fr.reseaumexico.model.MexicoXmlConstant.SCENARIO_ORDER_NUMBER;
/**
- * Writer to create input design file with {@link fr.reseaumexico.model.InputDesign} model
+ * Writer to create input design file with {@link InputDesign} model
*
* @author sletellier <letellier(a)codelutin.com>
* @since 0.1
Modified: trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_en_GB.properties
===================================================================
--- trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_en_GB.properties 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_en_GB.properties 2012-01-04 13:58:53 UTC (rev 18)
@@ -1,14 +1,14 @@
-jmexico.add.scenario=Ajout d'un scenario
+jmexico.add.scenario=Add a scenario
jmexico.error.scenario.name.used=Error \: scenario name '%1$s' is already used.
jmexico.error.title=Error
jmexico.factor.name=Factor
jmexico.file.open.dialog=Open an InputDesign file.
-jmexico.input.msg=
+jmexico.input.msg=New value
jmexico.menu.file=File
jmexico.menu.file.open=Open
jmexico.menu.file.save=Save
-jmexico.remove.scenario=Suppression d'un scenario
+jmexico.remove.scenario=Delete a scenario
jmexico.scenario.inputName=Name of scenario to add \:
-jmexico.scenario.inputName.title=
-jmexico.scenario.selectRemove=
-jmexico.scenario.selectRemove.title=
+jmexico.scenario.inputName.title=Input a name for scenario to add
+jmexico.scenario.selectRemove=Select scenario to delete
+jmexico.scenario.selectRemove.title=Select scenario to remove
Modified: trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties
===================================================================
--- trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties 2012-01-04 10:55:47 UTC (rev 17)
+++ trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties 2012-01-04 13:58:53 UTC (rev 18)
@@ -3,12 +3,12 @@
jmexico.error.title=Erreur
jmexico.factor.name=Facteur
jmexico.file.open.dialog=Ouvrir un fichier InputDesign
-jmexico.input.msg=
+jmexico.input.msg=Nouvelle valeur
jmexico.menu.file=Fichier
jmexico.menu.file.open=Ouvrir
jmexico.menu.file.save=Sauvegarder
jmexico.remove.scenario=Suppression d'un scenario
jmexico.scenario.inputName=Nom du scénario à ajouter \:
-jmexico.scenario.inputName.title=
-jmexico.scenario.selectRemove=
-jmexico.scenario.selectRemove.title=
+jmexico.scenario.inputName.title=Enter un nom pour le scenario à ajouter
+jmexico.scenario.selectRemove=Selection du scénario à supprimer
+jmexico.scenario.selectRemove.title=Select scenario to remove
1
0
r17 - in trunk: jmexico-model jmexico-swing-editor jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/decorator
by sletellier@users.forge.codelutin.com 04 Jan '12
by sletellier@users.forge.codelutin.com 04 Jan '12
04 Jan '12
Author: sletellier
Date: 2012-01-04 11:55:47 +0100 (Wed, 04 Jan 2012)
New Revision: 17
Url: http://forge.codelutin.com/repositories/revision/jmexico/17
Log:
Update files headers
Modified:
trunk/jmexico-model/LICENSE.txt
trunk/jmexico-swing-editor/LICENSE.txt
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/decorator/MexicoDecoratorProvider.java
Modified: trunk/jmexico-model/LICENSE.txt
===================================================================
--- trunk/jmexico-model/LICENSE.txt 2012-01-03 17:28:12 UTC (rev 16)
+++ trunk/jmexico-model/LICENSE.txt 2012-01-04 10:55:47 UTC (rev 17)
@@ -163,3 +163,4 @@
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.
+
Modified: trunk/jmexico-swing-editor/LICENSE.txt
===================================================================
--- trunk/jmexico-swing-editor/LICENSE.txt 2012-01-03 17:28:12 UTC (rev 16)
+++ trunk/jmexico-swing-editor/LICENSE.txt 2012-01-04 10:55:47 UTC (rev 17)
@@ -163,3 +163,4 @@
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.
+
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/decorator/MexicoDecoratorProvider.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/decorator/MexicoDecoratorProvider.java 2012-01-03 17:28:12 UTC (rev 16)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/decorator/MexicoDecoratorProvider.java 2012-01-04 10:55:47 UTC (rev 17)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * JMexico :: Swing Editor
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 - 2012 Réseau Mexico, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package fr.reseaumexico.editor.ui.decorator;
import fr.reseaumexico.model.Factor;
1
0
r16 - in trunk: jmexico-model/src/main/java/fr/reseaumexico/model jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model jmexico-swing-editor/src/main/resources/i18n
by sletellier@users.forge.codelutin.com 03 Jan '12
by sletellier@users.forge.codelutin.com 03 Jan '12
03 Jan '12
Author: sletellier
Date: 2012-01-03 18:28:12 +0100 (Tue, 03 Jan 2012)
New Revision: 16
Url: http://forge.codelutin.com/repositories/revision/jmexico/16
Log:
- Debug table model
- Debug specific editor
- Add missing traductions
Modified:
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/FactorValueCellEditor.java
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditorHandler.java
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java
trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_en_GB.properties
trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java 2011-12-29 14:16:05 UTC (rev 15)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java 2012-01-03 17:28:12 UTC (rev 16)
@@ -83,4 +83,9 @@
listener.onFactorValueChange(event);
}
}
+
+ @Override
+ public String toString() {
+ return getName();
+ }
}
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/FactorValueCellEditor.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/FactorValueCellEditor.java 2011-12-29 14:16:05 UTC (rev 15)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/FactorValueCellEditor.java 2012-01-03 17:28:12 UTC (rev 16)
@@ -26,9 +26,14 @@
import fr.reseaumexico.model.Factor;
import java.awt.Component;
+import java.awt.Insets;
import java.awt.TextField;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import javax.swing.AbstractCellEditor;
+import javax.swing.JButton;
import javax.swing.JTable;
+import javax.swing.SwingConstants;
import javax.swing.table.TableCellEditor;
/**
@@ -36,13 +41,25 @@
* @since 0.1
*/
public class FactorValueCellEditor extends AbstractCellEditor
- implements TableCellEditor {
+ implements TableCellEditor, ActionListener {
private static final long serialVersionUID = 1L;
- protected String currentValue;
+ protected JTable table;
+ protected Factor factor;
+ protected Object currentValue;
+ protected JButton button;
public FactorValueCellEditor() {
+ //Set up the editor (from the table's point of view),
+ //which is a button.
+ //This button brings up the color chooser dialog,
+ //which is the editor from the user's point of view.
+ button = new JButton();
+ button.addActionListener(this);
+ button.setBorderPainted(false);
+ button.setHorizontalAlignment(SwingConstants.LEFT);
+ button.setMargin(new Insets(0,0,0,0));
}
@Override
@@ -51,13 +68,25 @@
}
@Override
- public Component getTableCellEditorComponent(JTable table, Object oldValue, boolean isSelected, int row, int column) {
-
+ public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
// get factor
// TODO sletellier 20111221 : Take care of type
- Factor factor = (Factor) table.getValueAt(row, 0);
- currentValue = (String)FactorValueEditorFactory.getInstance().edit(table, factor, oldValue);
+ factor = (Factor) table.getValueAt(row, 0);
- return new TextField(currentValue);
+ currentValue = value;
+ button.setText(String.valueOf(currentValue));
+ return button;
}
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ // get factor
+ // TODO sletellier 20111221 : Take care of type
+ Object editedValue = FactorValueEditorFactory.getInstance().edit(table, factor, currentValue);
+ if (editedValue != null) {
+ currentValue = editedValue;
+ button.setText(String.valueOf(currentValue));
+ }
+ fireEditingStopped();
+ }
}
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditorHandler.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditorHandler.java 2011-12-29 14:16:05 UTC (rev 15)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditorHandler.java 2012-01-03 17:28:12 UTC (rev 16)
@@ -44,7 +44,10 @@
public void addScenario(InputDesignEditor editor) {
InputDesign inputDesign = editor.getInputDesign();
- String selectedName = JOptionPane.showInputDialog(editor, _("jmexico.scenario.inputName"));
+ String selectedName = JOptionPane.showInputDialog(editor,
+ _("jmexico.scenario.inputName"),
+ _("jmexico.scenario.inputName.title"),
+ JOptionPane.QUESTION_MESSAGE);
// check that name is never used
Collection<Scenario> scenarios = inputDesign.getScenario();
@@ -88,6 +91,22 @@
}
public void removeScenario(InputDesignEditor editor) {
+ InputDesign inputDesign = editor.getInputDesign();
+ // show scenario select dialog
+ Collection<Scenario> scenarios = inputDesign.getScenario();
+ Scenario scenario = (Scenario)JOptionPane.showInputDialog(
+ editor,
+ _("jmexico.scenario.selectRemove"),
+ _("jmexico.scenario.selectRemove.title"),
+ JOptionPane.PLAIN_MESSAGE,
+ null,
+ scenarios.toArray(),
+ null);
+
+ // if scenario is selected
+ if (scenario != null) {
+ inputDesign.removeScenario(scenario);
+ }
}
}
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java 2011-12-29 14:16:05 UTC (rev 15)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java 2012-01-03 17:28:12 UTC (rev 16)
@@ -29,11 +29,12 @@
import fr.reseaumexico.model.Scenario;
import fr.reseaumexico.model.event.InputDesignScenarioEvent;
import fr.reseaumexico.model.event.InputDesignScenarioListener;
-import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
@@ -50,6 +51,7 @@
protected TableModel delegate;
protected InputDesign inputDesign;
+ protected List<Factor> factors;
public InputDesignTableModel() {
delegate = new DefaultTableModel();
@@ -59,6 +61,18 @@
this.inputDesign = inputDesign;
inputDesign.addInputDesignScenarioListener(this);
+ // extract factors
+ factors = new LinkedList<Factor>(inputDesign.getExperimentDesign().getFactor());
+
+ // sort on id
+ Collections.sort(factors, new Comparator<Factor>() {
+
+ @Override
+ public int compare(Factor o1, Factor o2) {
+ return o1.getId().compareTo(o2.getId());
+ }
+ });
+
fireTableStructureChanged();
}
@@ -85,7 +99,7 @@
}
public Factor getFactor(int i) {
- return inputDesign.getExperimentDesign().getFactor(i);
+ return factors.get(i);
}
@Override
@@ -93,7 +107,6 @@
if (inputDesign == null) {
return delegate.getRowCount();
}
- Collection<Factor> factors = inputDesign.getExperimentDesign().getFactor();
return factors == null ? 0 : factors.size();
}
@@ -162,7 +175,8 @@
}
Map<Factor,Object> factorValues = scenario.getFactorValues();
- return factorValues.get(factor);
+ Object result = factorValues.get(factor);
+ return result;
}
@Override
@@ -181,9 +195,7 @@
Map<Factor,Object> factorValues = scenario.getFactorValues();
// get key if rowIndex
- Set<Factor> factors = factorValues.keySet();
- List<Factor> factorsList = new ArrayList<Factor>(factors);
- Factor factor = factorsList.get(rowIndex);
+ Factor factor = getFactor(rowIndex);
factorValues.put(factor, o);
scenario.setFactorValues(factorValues);
Modified: trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_en_GB.properties
===================================================================
--- trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_en_GB.properties 2011-12-29 14:16:05 UTC (rev 15)
+++ trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_en_GB.properties 2012-01-03 17:28:12 UTC (rev 16)
@@ -9,3 +9,6 @@
jmexico.menu.file.save=Save
jmexico.remove.scenario=Suppression d'un scenario
jmexico.scenario.inputName=Name of scenario to add \:
+jmexico.scenario.inputName.title=
+jmexico.scenario.selectRemove=
+jmexico.scenario.selectRemove.title=
Modified: trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties
===================================================================
--- trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties 2011-12-29 14:16:05 UTC (rev 15)
+++ trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties 2012-01-03 17:28:12 UTC (rev 16)
@@ -9,3 +9,6 @@
jmexico.menu.file.save=Sauvegarder
jmexico.remove.scenario=Suppression d'un scenario
jmexico.scenario.inputName=Nom du scénario à ajouter \:
+jmexico.scenario.inputName.title=
+jmexico.scenario.selectRemove=
+jmexico.scenario.selectRemove.title=
1
0
r15 - trunk/jmexico-model/src/main/java/fr/reseaumexico/model
by sletellier@users.forge.codelutin.com 29 Dec '11
by sletellier@users.forge.codelutin.com 29 Dec '11
29 Dec '11
Author: sletellier
Date: 2011-12-29 15:16:05 +0100 (Thu, 29 Dec 2011)
New Revision: 15
Url: http://forge.codelutin.com/repositories/revision/jmexico/15
Log:
Use same listener list
Modified:
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java 2011-12-28 16:13:13 UTC (rev 14)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java 2011-12-29 14:16:05 UTC (rev 15)
@@ -46,15 +46,13 @@
private static final long serialVersionUID = 1L;
- protected final EventListenerList scenarioListenerList;
- protected final EventListenerList factorListenerList;
+ protected final EventListenerList listenerList;
protected final Map<Scenario, ScenarioFactorValueListener> scenarioFactorValueListenerMap;
public InputDesignImpl() {
this.scenarioFactorValueListenerMap = Maps.newHashMap();
- this.scenarioListenerList = new EventListenerList();
- this.factorListenerList = new EventListenerList();
+ this.listenerList = new EventListenerList();
addPropertyChangeListener(PROPERTY_SCENARIO, new PropertyChangeListener() {
@Override
@@ -126,27 +124,27 @@
@Override
public void addInputDesignScenarioListener(InputDesignScenarioListener scenarioListener) {
- scenarioListenerList.add(InputDesignScenarioListener.class, scenarioListener);
+ listenerList.add(InputDesignScenarioListener.class, scenarioListener);
}
@Override
public void removeInputDesignScenarioListener(InputDesignScenarioListener scenarioListener) {
- scenarioListenerList.remove(InputDesignScenarioListener.class, scenarioListener);
+ listenerList.remove(InputDesignScenarioListener.class, scenarioListener);
}
@Override
public void addInputDesignFactorListener(InputDesignFactorListener factorListener) {
- factorListenerList.add(InputDesignFactorListener.class, factorListener);
+ listenerList.add(InputDesignFactorListener.class, factorListener);
}
@Override
public void removeInputDesignFactorListener(InputDesignFactorListener factorListener) {
- factorListenerList.remove(InputDesignFactorListener.class, factorListener);
+ listenerList.remove(InputDesignFactorListener.class, factorListener);
}
protected void fireInputDesignScenarioAdded(Scenario scenario) {
InputDesignScenarioEvent event = new InputDesignScenarioEvent(this, scenario);
- InputDesignScenarioListener[] listeners = scenarioListenerList.getListeners(InputDesignScenarioListener.class);
+ InputDesignScenarioListener[] listeners = listenerList.getListeners(InputDesignScenarioListener.class);
for (InputDesignScenarioListener listener : listeners) {
listener.onScenarioAdded(event);
}
@@ -154,7 +152,7 @@
protected void fireInputDesignScenarioRemoved(Scenario scenario) {
InputDesignScenarioEvent event = new InputDesignScenarioEvent(this, scenario);
- InputDesignScenarioListener[] listeners = scenarioListenerList.getListeners(InputDesignScenarioListener.class);
+ InputDesignScenarioListener[] listeners = listenerList.getListeners(InputDesignScenarioListener.class);
for (InputDesignScenarioListener listener : listeners) {
listener.onScenarioRemoved(event);
}
@@ -162,7 +160,7 @@
protected void fireFactorChanged(Scenario scenario, String factorId, Object oldValue, Object newValue) {
InputDesignFactorEvent event = new InputDesignFactorEvent(this, scenario, factorId, oldValue, newValue);
- InputDesignFactorListener[] listeners = factorListenerList.getListeners(InputDesignFactorListener.class);
+ InputDesignFactorListener[] listeners = listenerList.getListeners(InputDesignFactorListener.class);
for (InputDesignFactorListener listener : listeners) {
listener.onFactorValueChange(event);
}
1
0
r14 - in trunk: jmexico-model/src/main/java/fr/reseaumexico/model jmexico-model/src/main/java/fr/reseaumexico/model/parser jmexico-model/src/main/java/fr/reseaumexico/model/writer jmexico-model/src/main/xmi jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model
by sletellier@users.forge.codelutin.com 28 Dec '11
by sletellier@users.forge.codelutin.com 28 Dec '11
28 Dec '11
Author: sletellier
Date: 2011-12-28 17:13:13 +0100 (Wed, 28 Dec 2011)
New Revision: 14
Url: http://forge.codelutin.com/repositories/revision/jmexico/14
Log:
- Remove s for association names
Modified:
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/MexicoXmlConstant.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/InputDesignParser.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/ExperimentDesignXmlWriter.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/InputDesignXmlWriter.java
trunk/jmexico-model/src/main/xmi/mexico.zargo
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditorHandler.java
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java 2011-12-27 09:54:49 UTC (rev 13)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java 2011-12-28 16:13:13 UTC (rev 14)
@@ -55,7 +55,7 @@
this.scenarioFactorValueListenerMap = Maps.newHashMap();
this.scenarioListenerList = new EventListenerList();
this.factorListenerList = new EventListenerList();
- addPropertyChangeListener(PROPERTY_SCENARIOS, new PropertyChangeListener() {
+ addPropertyChangeListener(PROPERTY_SCENARIO, new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
@@ -75,11 +75,11 @@
}
@Override
- public void addScenarios(final Scenario scenarios) {
- if (this.scenarios == null) {
- this.scenarios = Lists.newArrayList();
+ public void addScenario(final Scenario scenarios) {
+ if (this.scenario == null) {
+ this.scenario = Lists.newArrayList();
}
- super.addScenarios(scenarios);
+ super.addScenario(scenarios);
ScenarioFactorValueListener scenarioFactorValueListener = new ScenarioFactorValueListener() {
@@ -95,31 +95,31 @@
}
@Override
- public void addAllScenarios(Collection<Scenario> scenarios) {
+ public void addAllScenario(Collection<Scenario> scenarios) {
for (Scenario scenario : scenarios) {
- addScenarios(scenario);
+ addScenario(scenario);
}
}
- public void setScenarios(Collection<Scenario> scenarios) {
- addAllScenarios(scenarios);
+ public void setScenario(Collection<Scenario> scenarios) {
+ addAllScenario(scenarios);
}
@Override
- public boolean removeScenarios(Scenario scenarios) {
+ public boolean removeScenario(Scenario scenario) {
// Remove listener
- scenarios.removeFactorValueListener(scenarioFactorValueListenerMap.get(scenarios));
- scenarioFactorValueListenerMap.remove(scenarios);
+ scenario.removeFactorValueListener(scenarioFactorValueListenerMap.get(scenario));
+ scenarioFactorValueListenerMap.remove(scenario);
- return super.removeScenarios(scenarios);
+ return super.removeScenario(scenario);
}
@Override
- public boolean removeAllScenarios(Collection<Scenario> scenarios) {
+ public boolean removeAllScenario(Collection<Scenario> scenarios) {
boolean removed = false;
for (Scenario scenario : scenarios) {
- removed = removeScenarios(scenario);
+ removed = removeScenario(scenario);
}
return removed;
}
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/MexicoXmlConstant.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/MexicoXmlConstant.java 2011-12-27 09:54:49 UTC (rev 13)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/MexicoXmlConstant.java 2011-12-28 16:13:13 UTC (rev 14)
@@ -40,7 +40,7 @@
public static final String EXPERIMENT_DESIGN_AUTHOR = ExperimentDesign.PROPERTY_AUTHOR;
public static final String EXPERIMENT_DESIGN_LICENCE = ExperimentDesign.PROPERTY_LICENCE;
public static final String EXPERIMENT_DESIGN_DESCRIPTION = ExperimentDesign.PROPERTY_DESCRIPTION;
- public static final String FACTORS = ExperimentDesign.PROPERTY_FACTORS;
+ public static final String FACTORS = "factors";
public static final String FACTOR = Introspector.decapitalize(Factor.class.getSimpleName());
public static final String FACTOR_ID = Factor.PROPERTY_ID;
public static final String FACTOR_NAME = Factor.PROPERTY_NAME;
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java 2011-12-27 09:54:49 UTC (rev 13)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java 2011-12-28 16:13:13 UTC (rev 14)
@@ -147,7 +147,7 @@
// factor
factors.add(parseFactor(parser));
}
- model.setFactors(factors);
+ model.setFactor(factors);
}
// read experience design next tag
@@ -199,7 +199,7 @@
// read next tag
parser.nextTag();
}
- factor.setFeatures(features);
+ factor.setFeature(features);
}
}
@@ -262,7 +262,7 @@
// read next start tag
eventType = parser.nextTag();
}
- domain.setDistributionParameters(distributionParameters);
+ domain.setDistributionParameter(distributionParameters);
}
// level
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/InputDesignParser.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/InputDesignParser.java 2011-12-27 09:54:49 UTC (rev 13)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/InputDesignParser.java 2011-12-28 16:13:13 UTC (rev 14)
@@ -104,7 +104,7 @@
// factor
scenarios.add(parseScenario(parser));
}
- model.setScenarios(scenarios);
+ model.setScenario(scenarios);
}
}
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/ExperimentDesignXmlWriter.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/ExperimentDesignXmlWriter.java 2011-12-27 09:54:49 UTC (rev 13)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/ExperimentDesignXmlWriter.java 2011-12-28 16:13:13 UTC (rev 14)
@@ -103,7 +103,7 @@
}
protected void composeFactors(XmlNode rootXmlNode) {
- Collection<Factor> factors = model.getFactors();
+ Collection<Factor> factors = model.getFactor();
// do nothing if no factors in model
if (factors.isEmpty()) {
@@ -136,7 +136,7 @@
addParameter(domainXmlNode, DOMAIN_DISTRIBUTION_NAME, domain.getDistributionName());
// distributionParameters
- Collection<DistributionParameter> distributionParameters = domain.getDistributionParameters();
+ Collection<DistributionParameter> distributionParameters = domain.getDistributionParameter();
if (distributionParameters != null) {
for (DistributionParameter distributionParameter : distributionParameters) {
XmlNode distributionParameterXmlNode = XmlNode.createElement(domainXmlNode, DOMAIN_DISTRIBUTION_PARAMETER);
@@ -158,7 +158,7 @@
}
// features
- addAllFeature(factorXmlNode, factor.getFeatures());
+ addAllFeature(factorXmlNode, factor.getFeature());
}
}
}
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/InputDesignXmlWriter.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/InputDesignXmlWriter.java 2011-12-27 09:54:49 UTC (rev 13)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/InputDesignXmlWriter.java 2011-12-28 16:13:13 UTC (rev 14)
@@ -77,7 +77,7 @@
protected void composeScenarios(XmlNode rootXmlNode) {
// scenarios
- for (Scenario scenario : model.getScenarios()) {
+ for (Scenario scenario : model.getScenario()) {
XmlNode scenariosXmlNode = XmlNode.createElement(rootXmlNode, SCENARIO);
addParameter(scenariosXmlNode, SCENARIO_NAME, scenario.getName());
addParameter(scenariosXmlNode, SCENARIO_ORDER_NUMBER, scenario.getOrderNumber());
@@ -91,7 +91,7 @@
}
// features
- addAllFeature(scenariosXmlNode, scenario.getFeatures());
+ addAllFeature(scenariosXmlNode, scenario.getFeature());
}
}
}
Modified: trunk/jmexico-model/src/main/xmi/mexico.zargo
===================================================================
(Binary files differ)
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditorHandler.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditorHandler.java 2011-12-27 09:54:49 UTC (rev 13)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditorHandler.java 2011-12-28 16:13:13 UTC (rev 14)
@@ -47,7 +47,7 @@
String selectedName = JOptionPane.showInputDialog(editor, _("jmexico.scenario.inputName"));
// check that name is never used
- Collection<Scenario> scenarios = inputDesign.getScenarios();
+ Collection<Scenario> scenarios = inputDesign.getScenario();
int maxOrder = 0;
for (Scenario scenario : scenarios) {
@@ -77,14 +77,14 @@
scenarioToAdd.setName(selectedName);
// create all empty factor values
- Collection<Factor> factors = inputDesign.getExperimentDesign().getFactors();
+ Collection<Factor> factors = inputDesign.getExperimentDesign().getFactor();
Map<Factor, Object> factorValues = Maps.newHashMap();
for (Factor factor : factors) {
factorValues.put(factor, null);
}
scenarioToAdd.setFactorValues(factorValues);
- inputDesign.addScenarios(scenarioToAdd);
+ inputDesign.addScenario(scenarioToAdd);
}
public void removeScenario(InputDesignEditor editor) {
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java 2011-12-27 09:54:49 UTC (rev 13)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java 2011-12-28 16:13:13 UTC (rev 14)
@@ -77,15 +77,15 @@
}
public Collection<Scenario> getScenarios() {
- return inputDesign.getScenarios();
+ return inputDesign.getScenario();
}
public Scenario getScenario(int i) {
- return inputDesign.getScenarios(i);
+ return inputDesign.getScenario(i);
}
public Factor getFactor(int i) {
- return inputDesign.getExperimentDesign().getFactors(i);
+ return inputDesign.getExperimentDesign().getFactor(i);
}
@Override
@@ -93,7 +93,7 @@
if (inputDesign == null) {
return delegate.getRowCount();
}
- Collection<Factor> factors = inputDesign.getExperimentDesign().getFactors();
+ Collection<Factor> factors = inputDesign.getExperimentDesign().getFactor();
return factors == null ? 0 : factors.size();
}
1
0
27 Dec '11
Author: sletellier
Date: 2011-12-27 10:54:49 +0100 (Tue, 27 Dec 2011)
New Revision: 13
Url: http://forge.codelutin.com/repositories/revision/jmexico/13
Log:
- up to nuiton-utils 2.4.1
- generate manifest and copy dependencies tu run jar file
Modified:
trunk/jmexico-swing-editor/pom.xml
trunk/pom.xml
Modified: trunk/jmexico-swing-editor/pom.xml
===================================================================
--- trunk/jmexico-swing-editor/pom.xml 2011-12-27 09:25:58 UTC (rev 12)
+++ trunk/jmexico-swing-editor/pom.xml 2011-12-27 09:54:49 UTC (rev 13)
@@ -62,6 +62,9 @@
<description>JMexico - Swing Editor module</description>
<properties>
+
+ <maven.jar.main.class>fr.reseaumexico.editor.RunMexico</maven.jar.main.class>
+
<!-- jaxx configuration -->
<jaxx.addProjectClassPath>true</jaxx.addProjectClassPath>
<jaxx.addSourcesToClassPath>true</jaxx.addSourcesToClassPath>
@@ -75,6 +78,33 @@
<build>
+ <pluginManagement>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <useUniqueVersions>true</useUniqueVersions>
+ <addClasspath>true</addClasspath>
+ <classpathPrefix>./lib/</classpathPrefix>
+ </manifest>
+ </archive>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+
+ </pluginManagement>
+
<plugins>
<plugin>
@@ -90,6 +120,25 @@
</plugin>
<plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-dependencies</id>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ <outputDirectory>${project.build.directory}/lib</outputDirectory>
+ <silent>true</silent>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
<groupId>org.nuiton.i18n</groupId>
<artifactId>maven-i18n-plugin</artifactId>
<executions>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-12-27 09:25:58 UTC (rev 12)
+++ trunk/pom.xml 2011-12-27 09:54:49 UTC (rev 13)
@@ -77,7 +77,7 @@
<!-- libraries version -->
<nuitonI18nVersion>2.4.1</nuitonI18nVersion>
- <nuitonUtilsVersion>2.4</nuitonUtilsVersion>
+ <nuitonUtilsVersion>2.4.1</nuitonUtilsVersion>
<eugenePluginVersion>2.4.1</eugenePluginVersion>
<jaxxVersion>2.4.2</jaxxVersion>
1
0
r12 - trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser
by sletellier@users.forge.codelutin.com 27 Dec '11
by sletellier@users.forge.codelutin.com 27 Dec '11
27 Dec '11
Author: sletellier
Date: 2011-12-27 10:25:58 +0100 (Tue, 27 Dec 2011)
New Revision: 12
Url: http://forge.codelutin.com/repositories/revision/jmexico/12
Log:
Allow change order of children tags
Modified:
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java 2011-12-22 16:52:06 UTC (rev 11)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java 2011-12-27 09:25:58 UTC (rev 12)
@@ -65,6 +65,7 @@
import static fr.reseaumexico.model.MexicoXmlConstant.EXPERIMENT_DESIGN_DESCRIPTION;
import static fr.reseaumexico.model.MexicoXmlConstant.EXPERIMENT_DESIGN_ID;
import static fr.reseaumexico.model.MexicoXmlConstant.EXPERIMENT_DESIGN_LICENCE;
+import static fr.reseaumexico.model.MexicoXmlConstant.FACTOR;
import static fr.reseaumexico.model.MexicoXmlConstant.FACTORS;
import static fr.reseaumexico.model.MexicoXmlConstant.FACTOR_DESCRIPTION;
import static fr.reseaumexico.model.MexicoXmlConstant.FACTOR_ID;
@@ -161,40 +162,45 @@
String id = parser.getAttributeValue(null, FACTOR_ID);
factor.setId(id);
- // parse description
- int eventType = parser.nextTag();
- if (eventType == XmlPullParser.START_TAG &&
- parserEqual(parser, FACTOR_DESCRIPTION)) {
- factor.setDescription(parser.nextText());
+ // while all child attributes is not parsed
+ while (!(parser.getEventType() == XmlPullParser.END_TAG &&
+ parserEqual(parser, FACTOR))) {
- // read function close tag
- eventType = parser.nextTag();
- }
+ // parse description
+ int eventType = parser.nextTag();
+ if (eventType == XmlPullParser.START_TAG &&
+ parserEqual(parser, FACTOR_DESCRIPTION)) {
+ factor.setDescription(parser.nextText());
- // domain
- if (eventType == XmlPullParser.START_TAG &&
- parserEqual(parser, DOMAIN)) {
- factor.setDomain(parseDomain(parser));
- }
+ // read function close tag
+ eventType = parser.nextTag();
+ }
- // features
- if (parser.getEventType() == XmlPullParser.START_TAG &&
- parserEqual(parser, FEATURE)) {
+ // domain
+ if (eventType == XmlPullParser.START_TAG &&
+ parserEqual(parser, DOMAIN)) {
+ factor.setDomain(parseDomain(parser));
+ }
- List<Feature> features = Lists.newArrayList();
+ // features
+ if (parser.getEventType() == XmlPullParser.START_TAG &&
+ parserEqual(parser, FEATURE)) {
- while (parserEqual(parser, FEATURE)) {
+ List<Feature> features = Lists.newArrayList();
- // feature
- features.add(parseFeature(parser));
+ while (parserEqual(parser, FEATURE)) {
- // read feature close tag
- parser.nextTag();
+ // feature
+ features.add(parseFeature(parser));
- // read next tag
- parser.nextTag();
+ // read feature close tag
+ parser.nextTag();
+
+ // read next tag
+ parser.nextTag();
+ }
+ factor.setFeatures(features);
}
- factor.setFeatures(features);
}
// keep factors
@@ -222,58 +228,63 @@
String nominaleValue = parser.getAttributeValue(null, DOMAIN_NOMINAL_VALUE);
domain.setNominalValue(nominaleValue);
- // distributionParameters
- int eventType = parser.nextTag();
- if (eventType == XmlPullParser.START_TAG &&
- parserEqual(parser, DOMAIN_DISTRIBUTION_PARAMETER)) {
+ // while all child attributes is not parsed
+ while (!(parser.getEventType() == XmlPullParser.END_TAG &&
+ parserEqual(parser, DOMAIN))) {
- List<DistributionParameter> distributionParameters = Lists.newArrayList();
- while (parserEqual(parser, DOMAIN_DISTRIBUTION_PARAMETER)) {
- DistributionParameter distributionParameter = new DistributionParameterImpl();
+ // distributionParameters
+ int eventType = parser.nextTag();
+ if (eventType == XmlPullParser.START_TAG &&
+ parserEqual(parser, DOMAIN_DISTRIBUTION_PARAMETER)) {
- // name
- String name = parser.getAttributeValue(null, DISTRIBUTION_PARAMETER_NAME);
- distributionParameter.setName(name);
+ List<DistributionParameter> distributionParameters = Lists.newArrayList();
+ while (parserEqual(parser, DOMAIN_DISTRIBUTION_PARAMETER)) {
+ DistributionParameter distributionParameter = new DistributionParameterImpl();
- // value
- // TODO sletellier 20111215 : take care of type
- String value = parser.getAttributeValue(null, DISTRIBUTION_PARAMETER_VALUE);
- distributionParameter.setValue(value);
+ // name
+ String name = parser.getAttributeValue(null, DISTRIBUTION_PARAMETER_NAME);
+ distributionParameter.setName(name);
- // valueType
- String valueType = parser.getAttributeValue(null, DISTRIBUTION_PARAMETER_VALUE_TYPE);
- distributionParameter.setValueType(ValueType.valueOf(valueType));
+ // value
+ // TODO sletellier 20111215 : take care of type
+ String value = parser.getAttributeValue(null, DISTRIBUTION_PARAMETER_VALUE);
+ distributionParameter.setValue(value);
- distributionParameters.add(distributionParameter);
+ // valueType
+ String valueType = parser.getAttributeValue(null, DISTRIBUTION_PARAMETER_VALUE_TYPE);
+ distributionParameter.setValueType(ValueType.valueOf(valueType));
- // read close tag
- parser.nextTag();
+ distributionParameters.add(distributionParameter);
- // read next start tag
- eventType = parser.nextTag();
+ // read close tag
+ parser.nextTag();
+
+ // read next start tag
+ eventType = parser.nextTag();
+ }
+ domain.setDistributionParameters(distributionParameters);
}
- domain.setDistributionParameters(distributionParameters);
- }
- // level
- if (eventType == XmlPullParser.START_TAG &&
- parserEqual(parser, DOMAIN_LEVEL)) {
+ // level
+ if (eventType == XmlPullParser.START_TAG &&
+ parserEqual(parser, DOMAIN_LEVEL)) {
- List<Level> levels = Lists.newArrayList();
- while (parserEqual(parser, DOMAIN_LEVEL)) {
- Level level = new LevelImpl();
+ List<Level> levels = Lists.newArrayList();
+ while (parserEqual(parser, DOMAIN_LEVEL)) {
+ Level level = new LevelImpl();
- // value
- String value = parser.getAttributeValue(null, LEVEL_VALUE);
- level.setValue(value);
+ // value
+ String value = parser.getAttributeValue(null, LEVEL_VALUE);
+ level.setValue(value);
- // weight
- String weight = parser.getAttributeValue(null, LEVEL_WEIGHT);
- level.setWeight(Integer.valueOf(weight));
+ // weight
+ String weight = parser.getAttributeValue(null, LEVEL_WEIGHT);
+ level.setWeight(Integer.valueOf(weight));
- levels.add(level);
+ levels.add(level);
+ }
+ domain.setLevels(levels);
}
- domain.setLevels(levels);
}
return domain;
}
1
0
r11 - in trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui: . model
by sletellier@users.forge.codelutin.com 22 Dec '11
by sletellier@users.forge.codelutin.com 22 Dec '11
22 Dec '11
Author: sletellier
Date: 2011-12-22 17:52:06 +0100 (Thu, 22 Dec 2011)
New Revision: 11
Url: http://forge.codelutin.com/repositories/revision/jmexico/11
Log:
- Add exit menu
- Fix table model for empty input design
Modified:
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/MexicoMainUI.css
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/MexicoMainUI.jaxx
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/MexicoMainUI.css
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/MexicoMainUI.css 2011-12-21 17:35:27 UTC (rev 10)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/MexicoMainUI.css 2011-12-22 16:52:06 UTC (rev 11)
@@ -33,4 +33,7 @@
#menuFileSave {
text:"jmexico.menu.file.save";
mnemonic:S;
+}
+#exit {
+ text:"masc.menu.exit";
}
\ No newline at end of file
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/MexicoMainUI.jaxx
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/MexicoMainUI.jaxx 2011-12-21 17:35:27 UTC (rev 10)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/MexicoMainUI.jaxx 2011-12-22 16:52:06 UTC (rev 11)
@@ -47,6 +47,11 @@
enabled='{selectedFile != null}'
onActionPerformed="getHandler().saveFile(this)"/>
+ <JSeparator/>
+
+ <JMenuItem id='exit'
+ onActionPerformed="getHandler().closeApplication(this)"/>
+
</JMenu>
</JMenuBar>
<InputDesignEditor id='inputDesignEditor' constraints='BorderLayout.CENTER'/>
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java 2011-12-21 17:35:27 UTC (rev 10)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java 2011-12-22 16:52:06 UTC (rev 11)
@@ -84,13 +84,17 @@
return inputDesign.getScenarios(i);
}
+ public Factor getFactor(int i) {
+ return inputDesign.getExperimentDesign().getFactors(i);
+ }
+
@Override
public int getRowCount() {
if (inputDesign == null) {
return delegate.getRowCount();
}
- Map<Factor, Object> factorValues = getScenario(0).getFactorValues();
- return factorValues == null ? 0 : factorValues.size();
+ Collection<Factor> factors = inputDesign.getExperimentDesign().getFactors();
+ return factors == null ? 0 : factors.size();
}
@Override
@@ -142,23 +146,22 @@
return delegate.getValueAt(rowIndex, columnIndex);
}
- boolean isFirstColumn = columnIndex == 0;
- if (!isFirstColumn) {
- columnIndex = columnIndex - 1;
+ // get key on rowIndex
+ Factor factor = getFactor(rowIndex);
+
+ // first column is factors
+ if (columnIndex == 0) {
+ return factor;
}
+
+ // others are scenarios
+ columnIndex = columnIndex - 1;
Scenario scenario = getScenario(columnIndex);
if (scenario == null) {
return null;
}
Map<Factor,Object> factorValues = scenario.getFactorValues();
- // get key if rowIndex
- Set<Factor> factors = factorValues.keySet();
- List<Factor> factorsList = new ArrayList<Factor>(factors);
- Factor factor = factorsList.get(rowIndex);
- if (isFirstColumn) {
- return factor;
- }
return factorValues.get(factor);
}
1
0
21 Dec '11
Author: sletellier
Date: 2011-12-21 18:35:27 +0100 (Wed, 21 Dec 2011)
New Revision: 10
Url: http://forge.codelutin.com/repositories/revision/jmexico/10
Log:
- Optimize imports
- Introduce MexicoDecoratorProvider using Jaxx decorator API
- Add method getFactorValue in scenario
Added:
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/decorator/
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/decorator/MexicoDecoratorProvider.java
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/FactorValueCellEditor.java
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/FactorValueEditorFactory.java
Modified:
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/DateFormatFactory.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignFactorEvent.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignScenarioEvent.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/ScenarioFactorValueEvent.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/InputDesignParser.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/MexicoXmlParser.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/XmlParser.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/ExperimentDesignXmlWriter.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/InputDesignXmlWriter.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/MexicoXmlWriter.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/XmlNode.java
trunk/jmexico-model/src/main/xmi/mexico.zargo
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/RunMexico.java
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/MexicoMainUIHandler.java
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditor.jaxx
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditorHandler.java
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java
trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_en_GB.properties
trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/DateFormatFactory.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/DateFormatFactory.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/DateFormatFactory.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -29,6 +29,7 @@
/**
* @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
*/
public class DateFormatFactory {
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -32,15 +32,15 @@
import fr.reseaumexico.model.event.InputDesignScenarioListener;
import fr.reseaumexico.model.event.ScenarioFactorValueEvent;
import fr.reseaumexico.model.event.ScenarioFactorValueListener;
-
-import javax.swing.event.EventListenerList;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Collection;
import java.util.Map;
+import javax.swing.event.EventListenerList;
/**
* @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
*/
public class InputDesignImpl extends InputDesign {
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -27,16 +27,16 @@
import com.google.common.collect.Maps;
import fr.reseaumexico.model.event.ScenarioFactorValueEvent;
import fr.reseaumexico.model.event.ScenarioFactorValueListener;
-
+import java.util.Map;
import javax.swing.event.EventListenerList;
-import java.util.Map;
/**
* @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
*/
public class ScenarioImpl extends Scenario {
- private static final long serialVersionUID = -5655227169239067227L;
+ private static final long serialVersionUID = 1L;
protected final EventListenerList factorListenerList;
@@ -45,6 +45,15 @@
}
@Override
+ public Object getFactorValue(Factor factor) {
+ Map<Factor, Object> factorValues = getFactorValues();
+ if (factorValues == null) {
+ return null;
+ }
+ return factorValues.get(factor);
+ }
+
+ @Override
public void setFactorValue(Factor factor, Object value) {
Map<Factor, Object> oldFactorValues = getFactorValues();
if (factorValues == null) {
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignFactorEvent.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignFactorEvent.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignFactorEvent.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -29,10 +29,11 @@
/**
* @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
*/
public class InputDesignFactorEvent extends InputDesignScenarioEvent {
- private static final long serialVersionUID = -6197099063976776986L;
+ private static final long serialVersionUID = 1L;
protected String factorId;
protected Object factorOldValue;
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignScenarioEvent.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignScenarioEvent.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignScenarioEvent.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -26,11 +26,11 @@
import fr.reseaumexico.model.InputDesign;
import fr.reseaumexico.model.Scenario;
-
import java.util.EventObject;
/**
* @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
*/
public class InputDesignScenarioEvent extends EventObject {
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/ScenarioFactorValueEvent.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/ScenarioFactorValueEvent.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/ScenarioFactorValueEvent.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -25,11 +25,11 @@
package fr.reseaumexico.model.event;
import fr.reseaumexico.model.Scenario;
-
import java.util.EventObject;
/**
* @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
*/
public class ScenarioFactorValueEvent extends EventObject {
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/ExperimentDesignParser.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -40,22 +40,21 @@
import fr.reseaumexico.model.LevelImpl;
import fr.reseaumexico.model.MexicoTechnicalException;
import fr.reseaumexico.model.ValueType;
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import static fr.reseaumexico.model.MexicoXmlConstant.DISTRIBUTION_PARAMETER_NAME;
+import static fr.reseaumexico.model.MexicoXmlConstant.DISTRIBUTION_PARAMETER_VALUE;
+import static fr.reseaumexico.model.MexicoXmlConstant.DISTRIBUTION_PARAMETER_VALUE_TYPE;
import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN;
import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN_DISTRIBUTION_NAME;
import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN_DISTRIBUTION_PARAMETER;
-import static fr.reseaumexico.model.MexicoXmlConstant.DISTRIBUTION_PARAMETER_NAME;
-import static fr.reseaumexico.model.MexicoXmlConstant.DISTRIBUTION_PARAMETER_VALUE;
-import static fr.reseaumexico.model.MexicoXmlConstant.DISTRIBUTION_PARAMETER_VALUE_TYPE;
import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN_LEVEL;
import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN_NAME;
import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN_NOMINAL_VALUE;
@@ -78,6 +77,7 @@
/**
* @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
*/
public class ExperimentDesignParser extends MexicoXmlParser<ExperimentDesign> {
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/InputDesignParser.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/InputDesignParser.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/InputDesignParser.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -33,15 +33,14 @@
import fr.reseaumexico.model.MexicoTechnicalException;
import fr.reseaumexico.model.Scenario;
import fr.reseaumexico.model.ScenarioImpl;
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
import static fr.reseaumexico.model.MexicoXmlConstant.FACTOR;
import static fr.reseaumexico.model.MexicoXmlConstant.INPUT_DESIGN;
@@ -53,6 +52,7 @@
/**
* @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
*/
public class InputDesignParser extends MexicoXmlParser<InputDesign> {
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/MexicoXmlParser.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/MexicoXmlParser.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/MexicoXmlParser.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -25,7 +25,6 @@
package fr.reseaumexico.model.parser;
import fr.reseaumexico.model.DateFormatFactory;
-
import java.io.File;
import java.io.FileNotFoundException;
import java.text.ParseException;
@@ -33,6 +32,7 @@
/**
* @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
*/
public abstract class MexicoXmlParser<M> extends XmlParser<M> {
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/XmlParser.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/XmlParser.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/parser/XmlParser.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -24,15 +24,14 @@
*/
package fr.reseaumexico.model.parser;
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-import org.xmlpull.v1.XmlPullParserFactory;
-
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.text.ParseException;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlPullParserFactory;
/**
* Abstract parser to get model from xml file using XPP3
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/ExperimentDesignXmlWriter.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/ExperimentDesignXmlWriter.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/ExperimentDesignXmlWriter.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -29,22 +29,19 @@
import fr.reseaumexico.model.ExperimentDesign;
import fr.reseaumexico.model.Factor;
import fr.reseaumexico.model.Level;
-import org.apache.commons.lang3.StringUtils;
-
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.Date;
+import org.apache.commons.lang3.StringUtils;
-import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN;
-import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN_DISTRIBUTION_NAME;
-import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN_DISTRIBUTION_PARAMETER;
import static fr.reseaumexico.model.MexicoXmlConstant.DISTRIBUTION_PARAMETER_NAME;
import static fr.reseaumexico.model.MexicoXmlConstant.DISTRIBUTION_PARAMETER_VALUE;
import static fr.reseaumexico.model.MexicoXmlConstant.DISTRIBUTION_PARAMETER_VALUE_TYPE;
+import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN;
+import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN_DISTRIBUTION_NAME;
+import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN_DISTRIBUTION_PARAMETER;
import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN_LEVEL;
-import static fr.reseaumexico.model.MexicoXmlConstant.LEVEL_VALUE;
-import static fr.reseaumexico.model.MexicoXmlConstant.LEVEL_WEIGHT;
import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN_NAME;
import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN_NOMINAL_VALUE;
import static fr.reseaumexico.model.MexicoXmlConstant.DOMAIN_VALUE_TYPE;
@@ -60,6 +57,8 @@
import static fr.reseaumexico.model.MexicoXmlConstant.FACTOR_ID;
import static fr.reseaumexico.model.MexicoXmlConstant.FACTOR_NAME;
import static fr.reseaumexico.model.MexicoXmlConstant.FACTOR_UNIT;
+import static fr.reseaumexico.model.MexicoXmlConstant.LEVEL_VALUE;
+import static fr.reseaumexico.model.MexicoXmlConstant.LEVEL_WEIGHT;
/**
* Writer to create experiment design file with {@link ExperimentDesign} model
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/InputDesignXmlWriter.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/InputDesignXmlWriter.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/InputDesignXmlWriter.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -27,7 +27,6 @@
import fr.reseaumexico.model.Factor;
import fr.reseaumexico.model.InputDesign;
import fr.reseaumexico.model.Scenario;
-
import java.io.File;
import java.io.IOException;
import java.util.Date;
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/MexicoXmlWriter.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/MexicoXmlWriter.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/MexicoXmlWriter.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -26,7 +26,6 @@
import fr.reseaumexico.model.DateFormatFactory;
import fr.reseaumexico.model.Feature;
-
import java.io.File;
import java.io.IOException;
import java.util.Collection;
Modified: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/XmlNode.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/XmlNode.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/writer/XmlNode.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -26,12 +26,11 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
-import org.apache.commons.lang3.StringEscapeUtils;
-import org.apache.commons.lang3.StringUtils;
-
import java.util.LinkedList;
import java.util.Map;
import java.util.Set;
+import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.commons.lang3.StringUtils;
/**
* Represent an XML node
Modified: trunk/jmexico-model/src/main/xmi/mexico.zargo
===================================================================
(Binary files differ)
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/RunMexico.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/RunMexico.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/RunMexico.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -24,8 +24,8 @@
*/
package fr.reseaumexico.editor;
+import fr.reseaumexico.editor.ui.MexicoMainUI;
import fr.reseaumexico.editor.ui.MexicoMainUIHandler;
-import fr.reseaumexico.editor.ui.MexicoMainUI;
import jaxx.runtime.context.JAXXInitialContext;
import jaxx.runtime.swing.ErrorDialogUI;
import org.apache.commons.logging.Log;
@@ -33,6 +33,7 @@
/**
* @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
*/
public class RunMexico {
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/MexicoMainUIHandler.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/MexicoMainUIHandler.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/MexicoMainUIHandler.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -26,14 +26,13 @@
import fr.reseaumexico.model.InputDesign;
import fr.reseaumexico.model.parser.InputDesignParser;
+import java.io.File;
+import javax.swing.JFileChooser;
import jaxx.runtime.context.JAXXInitialContext;
import jaxx.runtime.swing.ErrorDialogUI;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import javax.swing.*;
-import java.io.File;
-
import static org.nuiton.i18n.I18n._;
/**
Added: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/decorator/MexicoDecoratorProvider.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/decorator/MexicoDecoratorProvider.java (rev 0)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/decorator/MexicoDecoratorProvider.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -0,0 +1,15 @@
+package fr.reseaumexico.editor.ui.decorator;
+
+import fr.reseaumexico.model.Factor;
+import jaxx.runtime.decorator.DecoratorProvider;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ */
+public class MexicoDecoratorProvider extends DecoratorProvider {
+
+ @Override
+ protected void loadDecorators() {
+ registerJXPathDecorator(Factor.class, "${" + Factor.PROPERTY_ID + "}$s");
+ }
+}
Added: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/FactorValueCellEditor.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/FactorValueCellEditor.java (rev 0)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/FactorValueCellEditor.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -0,0 +1,63 @@
+/*
+ * #%L
+ * JMexico :: Swing Editor
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Réseau Mexico, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package fr.reseaumexico.editor.ui.editor;
+
+import fr.reseaumexico.model.Factor;
+import java.awt.Component;
+import java.awt.TextField;
+import javax.swing.AbstractCellEditor;
+import javax.swing.JTable;
+import javax.swing.table.TableCellEditor;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
+ */
+public class FactorValueCellEditor extends AbstractCellEditor
+ implements TableCellEditor {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String currentValue;
+
+ public FactorValueCellEditor() {
+ }
+
+ @Override
+ public Object getCellEditorValue() {
+ return currentValue;
+ }
+
+ @Override
+ public Component getTableCellEditorComponent(JTable table, Object oldValue, boolean isSelected, int row, int column) {
+
+ // get factor
+ // TODO sletellier 20111221 : Take care of type
+ Factor factor = (Factor) table.getValueAt(row, 0);
+ currentValue = (String)FactorValueEditorFactory.getInstance().edit(table, factor, oldValue);
+
+ return new TextField(currentValue);
+ }
+}
Added: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/FactorValueEditorFactory.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/FactorValueEditorFactory.java (rev 0)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/FactorValueEditorFactory.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -0,0 +1,58 @@
+/*
+ * #%L
+ * JMexico :: Swing Editor
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Réseau Mexico, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package fr.reseaumexico.editor.ui.editor;
+
+import fr.reseaumexico.model.Factor;
+import java.awt.Component;
+import javax.swing.JOptionPane;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Factory used to open specific editor to input factor value
+ *
+ * @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
+ */
+public class FactorValueEditorFactory {
+
+ private static FactorValueEditorFactory instance;
+
+ // use singleton
+ public static FactorValueEditorFactory getInstance() {
+ if (instance == null) {
+ instance = new FactorValueEditorFactory();
+ }
+ return instance;
+ }
+
+ public Object edit(Component parent, Factor factor, Object oldValue) {
+
+ // TODO sletellier 20121221 : open specific editor
+ String inputValue = JOptionPane.showInputDialog(parent, _("jmexico.input.msg"), oldValue);
+
+ return inputValue;
+ }
+}
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditor.jaxx
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditor.jaxx 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditor.jaxx 2011-12-21 17:35:27 UTC (rev 10)
@@ -28,15 +28,33 @@
javax.swing.table.TableModel
javax.swing.table.DefaultTableModel
fr.reseaumexico.model.InputDesign
+fr.reseaumexico.model.Factor
fr.reseaumexico.editor.ui.model.InputDesignTableModel
+fr.reseaumexico.editor.ui.editor.FactorValueCellEditor
+fr.reseaumexico.editor.ui.decorator.MexicoDecoratorProvider
+jaxx.runtime.swing.renderer.DecoratorProviderTableCellRenderer
</import>
<InputDesignEditorHandler id='handler'/>
<InputDesignTableModel id='model' javaBean="new InputDesignTableModel()"/>
+ <FactorValueCellEditor id='cellEditor'/>
+
<script>
<![CDATA[
+
+private void $afterCompleteSetup() {
+
+ // table renderer
+ // TODO sletellier 20111221 : do on time for all, put in context ?
+ MexicoDecoratorProvider mexicoDecoratorProvider = new MexicoDecoratorProvider();
+ inputDesignTable.setDefaultRenderer(Factor.class, new DecoratorProviderTableCellRenderer(mexicoDecoratorProvider));
+
+ // cell editor
+ inputDesignTable.setDefaultEditor(Object.class, getCellEditor());
+}
+
public void setInputDesign(InputDesign inputDesign) {
getModel().setInputDesign(inputDesign);
}
@@ -48,7 +66,8 @@
</script>
<JScrollPane constraints='BorderLayout.CENTER'>
- <JTable id='inputDesignTable' model='{getModel()}'/>
+ <JTable id='inputDesignTable'
+ model='{getModel()}'/>
</JScrollPane>
<JPanel id='factorActionPanel' constraints='BorderLayout.SOUTH'>
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditorHandler.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditorHandler.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/editor/InputDesignEditorHandler.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -29,11 +29,9 @@
import fr.reseaumexico.model.InputDesign;
import fr.reseaumexico.model.Scenario;
import fr.reseaumexico.model.ScenarioImpl;
-
-import javax.swing.*;
-
import java.util.Collection;
import java.util.Map;
+import javax.swing.JOptionPane;
import static org.nuiton.i18n.I18n._;
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java 2011-12-21 17:35:27 UTC (rev 10)
@@ -29,20 +29,20 @@
import fr.reseaumexico.model.Scenario;
import fr.reseaumexico.model.event.InputDesignScenarioEvent;
import fr.reseaumexico.model.event.InputDesignScenarioListener;
-
-import javax.swing.table.AbstractTableModel;
-import javax.swing.table.DefaultTableModel;
-import javax.swing.table.TableModel;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import javax.swing.table.AbstractTableModel;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableModel;
import static org.nuiton.i18n.I18n._;
/**
* @author sletellier <letellier(a)codelutin.com>
+ * @since 0.1
*/
public class InputDesignTableModel extends AbstractTableModel implements InputDesignScenarioListener {
@@ -123,7 +123,7 @@
return delegate.getColumnClass(rowIndex);
}
if (rowIndex == 0) {
- return String.class;
+ return Factor.class;
}
return Object.class;
}
@@ -157,7 +157,7 @@
List<Factor> factorsList = new ArrayList<Factor>(factors);
Factor factor = factorsList.get(rowIndex);
if (isFirstColumn) {
- return factor.getId();
+ return factor;
}
return factorValues.get(factor);
}
@@ -182,8 +182,6 @@
List<Factor> factorsList = new ArrayList<Factor>(factors);
Factor factor = factorsList.get(rowIndex);
- // TODO sletellier 20111219 : open specific editor
-
factorValues.put(factor, o);
scenario.setFactorValues(factorValues);
Modified: trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_en_GB.properties
===================================================================
--- trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_en_GB.properties 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_en_GB.properties 2011-12-21 17:35:27 UTC (rev 10)
@@ -3,6 +3,7 @@
jmexico.error.title=Error
jmexico.factor.name=Factor
jmexico.file.open.dialog=Open an InputDesign file.
+jmexico.input.msg=
jmexico.menu.file=File
jmexico.menu.file.open=Open
jmexico.menu.file.save=Save
Modified: trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties
===================================================================
--- trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties 2011-12-21 11:31:51 UTC (rev 9)
+++ trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties 2011-12-21 17:35:27 UTC (rev 10)
@@ -3,6 +3,7 @@
jmexico.error.title=Erreur
jmexico.factor.name=Facteur
jmexico.file.open.dialog=Ouvrir un fichier InputDesign
+jmexico.input.msg=
jmexico.menu.file=Fichier
jmexico.menu.file.open=Ouvrir
jmexico.menu.file.save=Sauvegarder
1
0
r9 - in trunk: jmexico-model/src/main/java/fr/reseaumexico/model jmexico-model/src/main/java/fr/reseaumexico/model/event jmexico-model/src/main/xmi jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model jmexico-swing-editor/src/main/resources/i18n
by sletellier@users.forge.codelutin.com 21 Dec '11
by sletellier@users.forge.codelutin.com 21 Dec '11
21 Dec '11
Author: sletellier
Date: 2011-12-21 12:31:51 +0100 (Wed, 21 Dec 2011)
New Revision: 9
Url: http://forge.codelutin.com/repositories/revision/jmexico/9
Log:
Create listener api for scenario and input design
Added:
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignFactorEvent.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignScenarioEvent.java
trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/ScenarioFactorValueEvent.java
Modified:
trunk/jmexico-model/src/main/xmi/mexico.zargo
trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java
trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties
Added: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java (rev 0)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/InputDesignImpl.java 2011-12-21 11:31:51 UTC (rev 9)
@@ -0,0 +1,170 @@
+/*
+ * #%L
+ * JMexico :: Model
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Réseau Mexico, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package fr.reseaumexico.model;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import fr.reseaumexico.model.event.InputDesignFactorEvent;
+import fr.reseaumexico.model.event.InputDesignFactorListener;
+import fr.reseaumexico.model.event.InputDesignScenarioEvent;
+import fr.reseaumexico.model.event.InputDesignScenarioListener;
+import fr.reseaumexico.model.event.ScenarioFactorValueEvent;
+import fr.reseaumexico.model.event.ScenarioFactorValueListener;
+
+import javax.swing.event.EventListenerList;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.Collection;
+import java.util.Map;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ */
+public class InputDesignImpl extends InputDesign {
+
+ private static final long serialVersionUID = 1L;
+
+ protected final EventListenerList scenarioListenerList;
+ protected final EventListenerList factorListenerList;
+
+ protected final Map<Scenario, ScenarioFactorValueListener> scenarioFactorValueListenerMap;
+
+ public InputDesignImpl() {
+ this.scenarioFactorValueListenerMap = Maps.newHashMap();
+ this.scenarioListenerList = new EventListenerList();
+ this.factorListenerList = new EventListenerList();
+ addPropertyChangeListener(PROPERTY_SCENARIOS, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
+ Scenario newValue = (Scenario) propertyChangeEvent.getNewValue();
+ Scenario oldValue = (Scenario) propertyChangeEvent.getOldValue();
+ if (newValue == null) {
+ // was removed
+ fireInputDesignScenarioRemoved(oldValue);
+ }
+
+ if (oldValue == null) {
+ // was added
+ fireInputDesignScenarioAdded(newValue);
+ }
+ }
+ });
+ }
+
+ @Override
+ public void addScenarios(final Scenario scenarios) {
+ if (this.scenarios == null) {
+ this.scenarios = Lists.newArrayList();
+ }
+ super.addScenarios(scenarios);
+
+ ScenarioFactorValueListener scenarioFactorValueListener = new ScenarioFactorValueListener() {
+
+ @Override
+ public void onFactorValueChange(ScenarioFactorValueEvent event) {
+ fireFactorChanged(scenarios, event.getFactorId(), event.getFactorOldValue(), event.getFactorNewValue());
+ }
+ };
+
+ // keep listener
+ scenarioFactorValueListenerMap.put(scenarios, scenarioFactorValueListener);
+ scenarios.addFactorValueListener(scenarioFactorValueListener);
+ }
+
+ @Override
+ public void addAllScenarios(Collection<Scenario> scenarios) {
+ for (Scenario scenario : scenarios) {
+ addScenarios(scenario);
+ }
+ }
+
+ public void setScenarios(Collection<Scenario> scenarios) {
+ addAllScenarios(scenarios);
+ }
+
+ @Override
+ public boolean removeScenarios(Scenario scenarios) {
+
+ // Remove listener
+ scenarios.removeFactorValueListener(scenarioFactorValueListenerMap.get(scenarios));
+ scenarioFactorValueListenerMap.remove(scenarios);
+
+ return super.removeScenarios(scenarios);
+ }
+
+ @Override
+ public boolean removeAllScenarios(Collection<Scenario> scenarios) {
+ boolean removed = false;
+ for (Scenario scenario : scenarios) {
+ removed = removeScenarios(scenario);
+ }
+ return removed;
+ }
+
+ @Override
+ public void addInputDesignScenarioListener(InputDesignScenarioListener scenarioListener) {
+ scenarioListenerList.add(InputDesignScenarioListener.class, scenarioListener);
+ }
+
+ @Override
+ public void removeInputDesignScenarioListener(InputDesignScenarioListener scenarioListener) {
+ scenarioListenerList.remove(InputDesignScenarioListener.class, scenarioListener);
+ }
+
+ @Override
+ public void addInputDesignFactorListener(InputDesignFactorListener factorListener) {
+ factorListenerList.add(InputDesignFactorListener.class, factorListener);
+ }
+
+ @Override
+ public void removeInputDesignFactorListener(InputDesignFactorListener factorListener) {
+ factorListenerList.remove(InputDesignFactorListener.class, factorListener);
+ }
+
+ protected void fireInputDesignScenarioAdded(Scenario scenario) {
+ InputDesignScenarioEvent event = new InputDesignScenarioEvent(this, scenario);
+ InputDesignScenarioListener[] listeners = scenarioListenerList.getListeners(InputDesignScenarioListener.class);
+ for (InputDesignScenarioListener listener : listeners) {
+ listener.onScenarioAdded(event);
+ }
+ }
+
+ protected void fireInputDesignScenarioRemoved(Scenario scenario) {
+ InputDesignScenarioEvent event = new InputDesignScenarioEvent(this, scenario);
+ InputDesignScenarioListener[] listeners = scenarioListenerList.getListeners(InputDesignScenarioListener.class);
+ for (InputDesignScenarioListener listener : listeners) {
+ listener.onScenarioRemoved(event);
+ }
+ }
+
+ protected void fireFactorChanged(Scenario scenario, String factorId, Object oldValue, Object newValue) {
+ InputDesignFactorEvent event = new InputDesignFactorEvent(this, scenario, factorId, oldValue, newValue);
+ InputDesignFactorListener[] listeners = factorListenerList.getListeners(InputDesignFactorListener.class);
+ for (InputDesignFactorListener listener : listeners) {
+ listener.onFactorValueChange(event);
+ }
+ }
+}
Added: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java (rev 0)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/ScenarioImpl.java 2011-12-21 11:31:51 UTC (rev 9)
@@ -0,0 +1,77 @@
+/*
+ * #%L
+ * JMexico :: Model
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Réseau Mexico, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package fr.reseaumexico.model;
+
+import com.google.common.collect.Maps;
+import fr.reseaumexico.model.event.ScenarioFactorValueEvent;
+import fr.reseaumexico.model.event.ScenarioFactorValueListener;
+
+import javax.swing.event.EventListenerList;
+import java.util.Map;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ */
+public class ScenarioImpl extends Scenario {
+
+ private static final long serialVersionUID = -5655227169239067227L;
+
+ protected final EventListenerList factorListenerList;
+
+ public ScenarioImpl() {
+ this.factorListenerList = new EventListenerList();
+ }
+
+ @Override
+ public void setFactorValue(Factor factor, Object value) {
+ Map<Factor, Object> oldFactorValues = getFactorValues();
+ if (factorValues == null) {
+ factorValues = Maps.newHashMap();
+ }
+ Object oldValue = factorValues.get(factor);
+ factorValues.put(factor, value);
+
+ firePropertyChange(PROPERTY_FACTOR_VALUES, oldFactorValues, factorValues);
+ fireFactorValueChanged(factor.getId(), oldValue, value);
+ }
+
+ @Override
+ public void addFactorValueListener(ScenarioFactorValueListener factorListener) {
+ factorListenerList.add(ScenarioFactorValueListener.class, factorListener);
+ }
+
+ @Override
+ public void removeFactorValueListener(ScenarioFactorValueListener factorListener) {
+ factorListenerList.remove(ScenarioFactorValueListener.class, factorListener);
+ }
+
+ protected void fireFactorValueChanged(String factorId, Object oldValue, Object newValue) {
+ ScenarioFactorValueEvent event = new ScenarioFactorValueEvent(this, factorId, oldValue, newValue);
+ ScenarioFactorValueListener[] listeners = factorListenerList.getListeners(ScenarioFactorValueListener.class);
+ for (ScenarioFactorValueListener listener : listeners) {
+ listener.onFactorValueChange(event);
+ }
+ }
+}
Added: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignFactorEvent.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignFactorEvent.java (rev 0)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignFactorEvent.java 2011-12-21 11:31:51 UTC (rev 9)
@@ -0,0 +1,63 @@
+/*
+ * #%L
+ * JMexico :: Model
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Réseau Mexico, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package fr.reseaumexico.model.event;
+
+import fr.reseaumexico.model.InputDesign;
+import fr.reseaumexico.model.Scenario;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ */
+public class InputDesignFactorEvent extends InputDesignScenarioEvent {
+
+ private static final long serialVersionUID = -6197099063976776986L;
+
+ protected String factorId;
+ protected Object factorOldValue;
+ protected Object factorNewValue;
+
+ public InputDesignFactorEvent(InputDesign inputDesign,
+ Scenario scenario,
+ String factorId,
+ Object oldValue,
+ Object newValue) {
+ super(inputDesign, scenario);
+ this.factorId = factorId;
+ this.factorOldValue = oldValue;
+ this.factorNewValue = newValue;
+ }
+
+ public String getFactorId() {
+ return factorId;
+ }
+
+ public Object getFactorOldValue() {
+ return factorOldValue;
+ }
+
+ public Object getFactorNewValue() {
+ return factorNewValue;
+ }
+}
Added: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignScenarioEvent.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignScenarioEvent.java (rev 0)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/InputDesignScenarioEvent.java 2011-12-21 11:31:51 UTC (rev 9)
@@ -0,0 +1,54 @@
+/*
+ * #%L
+ * JMexico :: Model
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Réseau Mexico, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package fr.reseaumexico.model.event;
+
+import fr.reseaumexico.model.InputDesign;
+import fr.reseaumexico.model.Scenario;
+
+import java.util.EventObject;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ */
+public class InputDesignScenarioEvent extends EventObject {
+
+ private static final long serialVersionUID = 1L;
+
+ protected Scenario scenario;
+
+ public InputDesignScenarioEvent(InputDesign inputDesign, Scenario scenario) {
+ super(inputDesign);
+ this.scenario = scenario;
+ }
+
+ @Override
+ public InputDesign getSource() {
+ return (InputDesign) super.getSource();
+ }
+
+ public Scenario getScenario() {
+ return scenario;
+ }
+}
Added: trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/ScenarioFactorValueEvent.java
===================================================================
--- trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/ScenarioFactorValueEvent.java (rev 0)
+++ trunk/jmexico-model/src/main/java/fr/reseaumexico/model/event/ScenarioFactorValueEvent.java 2011-12-21 11:31:51 UTC (rev 9)
@@ -0,0 +1,65 @@
+/*
+ * #%L
+ * JMexico :: Model
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2011 Réseau Mexico, Codelutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package fr.reseaumexico.model.event;
+
+import fr.reseaumexico.model.Scenario;
+
+import java.util.EventObject;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ */
+public class ScenarioFactorValueEvent extends EventObject {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String factorId;
+ protected Object factorOldValue;
+ protected Object factorNewValue;
+
+ public ScenarioFactorValueEvent(Scenario scenario, String factorId, Object factorOldValue, Object factorNewValue) {
+ super(scenario);
+ this.factorId = factorId;
+ this.factorOldValue = factorOldValue;
+ this.factorNewValue = factorNewValue;
+ }
+
+ @Override
+ public Scenario getSource() {
+ return (Scenario) super.getSource();
+ }
+
+ public String getFactorId() {
+ return factorId;
+ }
+
+ public Object getFactorOldValue() {
+ return factorOldValue;
+ }
+
+ public Object getFactorNewValue() {
+ return factorNewValue;
+ }
+}
Modified: trunk/jmexico-model/src/main/xmi/mexico.zargo
===================================================================
(Binary files differ)
Modified: trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java
===================================================================
--- trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java 2011-12-19 17:40:54 UTC (rev 8)
+++ trunk/jmexico-swing-editor/src/main/java/fr/reseaumexico/editor/ui/model/InputDesignTableModel.java 2011-12-21 11:31:51 UTC (rev 9)
@@ -27,12 +27,12 @@
import fr.reseaumexico.model.Factor;
import fr.reseaumexico.model.InputDesign;
import fr.reseaumexico.model.Scenario;
+import fr.reseaumexico.model.event.InputDesignScenarioEvent;
+import fr.reseaumexico.model.event.InputDesignScenarioListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -44,8 +44,10 @@
/**
* @author sletellier <letellier(a)codelutin.com>
*/
-public class InputDesignTableModel extends AbstractTableModel {
+public class InputDesignTableModel extends AbstractTableModel implements InputDesignScenarioListener {
+ private static final long serialVersionUID = 1L;
+
protected TableModel delegate;
protected InputDesign inputDesign;
@@ -55,32 +57,18 @@
public void setInputDesign(InputDesign inputDesign) {
this.inputDesign = inputDesign;
- inputDesign.addPropertyChangeListener(InputDesign.PROPERTY_SCENARIOS, new PropertyChangeListener() {
+ inputDesign.addInputDesignScenarioListener(this);
- @Override
- public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
- Object newValue = propertyChangeEvent.getNewValue();
- if (newValue == null) {
- // was removed
- scenarioRemoved();
- }
-
- Object oldValue = propertyChangeEvent.getOldValue();
- if (oldValue == null) {
- // was added
- scenarioAdded();
- }
- }
- });
-
fireTableStructureChanged();
}
- protected void scenarioAdded() {
+ @Override
+ public void onScenarioAdded(InputDesignScenarioEvent event) {
fireTableStructureChanged();
}
- protected void scenarioRemoved() {
+ @Override
+ public void onScenarioRemoved(InputDesignScenarioEvent event) {
fireTableStructureChanged();
}
Modified: trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties
===================================================================
--- trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties 2011-12-19 17:40:54 UTC (rev 8)
+++ trunk/jmexico-swing-editor/src/main/resources/i18n/jmexico-swing-editor_fr_FR.properties 2011-12-21 11:31:51 UTC (rev 9)
@@ -7,4 +7,4 @@
jmexico.menu.file.open=Ouvrir
jmexico.menu.file.save=Sauvegarder
jmexico.remove.scenario=Suppression d'un scenario
-jmexico.scenario.inputName=Nom du scénario à ajouter \:
\ No newline at end of file
+jmexico.scenario.inputName=Nom du scénario à ajouter \:
1
0