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@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@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@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@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@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@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@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@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@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@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@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@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@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@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