Author: chatellier Date: 2011-03-29 16:01:45 +0000 (Tue, 29 Mar 2011) New Revision: 3215 Log: Fix rule factor edition (params). Fix initial population factors. Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableCellEditor.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizardUI.jaxx isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanelUI.jaxx isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/RuleChooser.jaxx isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterTableCellEditor.java Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2011-03-29 15:32:40 UTC (rev 3214) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2011-03-29 16:01:45 UTC (rev 3215) @@ -53,6 +53,7 @@ import org.apache.commons.lang.time.DurationFormatUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.math.matrix.MatrixND; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; import org.nuiton.util.FileUtil; @@ -535,8 +536,13 @@ // cas special 1 : population de départ if (factor.getPath().startsWith("parameters.population.")) { - Object stringValue = beanUtils.convert(factor.getValue()); - buffer.append("params.setProperty(\"").append(factor.getPath()).append("\",\"").append(stringValue).append("\");\n"); + String paramName = StringUtils.removeStart(factor.getPath(), "parameters."); + paramName += ".number"; + // pas de convert, c'est fait comme ca dans + // SimulationParameters.toProperties(); + MatrixND matrix = (MatrixND)factor.getValue(); + Object stringValue = String.valueOf(matrix.toList()); + buffer.append("params.setProperty(\"").append(paramName).append("\",\"").append(stringValue).append("\");\n"); } // cas special 2 : regles else if (factor.getPath().equals("parameters.rules")) { Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableCellEditor.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableCellEditor.java 2011-03-29 15:32:40 UTC (rev 3214) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/models/rule/RuleParametersTableCellEditor.java 2011-03-29 16:01:45 UTC (rev 3215) @@ -57,8 +57,6 @@ * @param rule rule */ public RuleParametersTableCellEditor(Rule rule) { - super(); - this.rule = rule; ruleParametersTypes = new ArrayList<Class<?>>(); //TODO map may be sorted Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizardUI.jaxx =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizardUI.jaxx 2011-03-29 15:32:40 UTC (rev 3214) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizardUI.jaxx 2011-03-29 16:01:45 UTC (rev 3215) @@ -43,7 +43,7 @@ <SensitivityInputHandler id="handler" /> - <Boolean id='continuePossible' javaBean='true'/> + <Boolean id='continuePossible' javaBean='false'/> <Boolean id='continueSelected' javaBean='false'/> Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanelUI.jaxx =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanelUI.jaxx 2011-03-29 15:32:40 UTC (rev 3214) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanelUI.jaxx 2011-03-29 16:01:45 UTC (rev 3215) @@ -5,7 +5,7 @@ $Id$ $HeadURL$ %% - Copyright (C) 2009 - 2010 Ifremer, CodeLutin + Copyright (C) 2009 - 2011 Ifremer, CodeLutin, Chatellier Eric %% This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2011-03-29 15:32:40 UTC (rev 3214) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2011-03-29 16:01:45 UTC (rev 3215) @@ -49,6 +49,7 @@ fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorParametersTableModel; java.awt.CardLayout javax.swing.ComboBoxModel + fr.ifremer.isisfish.datastore.RegionStorage; </import> <script><![CDATA[ @@ -212,7 +213,7 @@ exportParamsTable.setModel(model); exportParamsTable.getColumnModel().getColumn(0).setCellRenderer(new SensitivityExportParametersTableCellRenderer(export)); SensitivityExportParametersTableCellEditor cellEditor = new SensitivityExportParametersTableCellEditor(export); - cellEditor.setRegion(simulAction.getRegionStorage()); + cellEditor.setRegionStorage(getContextValue(RegionStorage.class)); exportParamsTable.getColumnModel().getColumn(1).setCellEditor(cellEditor); } else { Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java 2011-03-29 15:32:40 UTC (rev 3214) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java 2011-03-29 16:01:45 UTC (rev 3215) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2011 Codelutin, Chatellier Eric + * Copyright (C) 2011 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -29,20 +29,15 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; -import java.io.Serializable; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.SortedMap; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; import javax.swing.JComponent; -import javax.swing.JList; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPopupMenu; -import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.event.TreeSelectionEvent; @@ -52,7 +47,6 @@ import javax.swing.tree.TreePath; import jaxx.runtime.context.JAXXInitialContext; -import jaxx.runtime.swing.editor.NumberEditor; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; @@ -60,7 +54,6 @@ import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.gui.MatrixPanelEditor; import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaEntityContextable; @@ -81,14 +74,6 @@ import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.input.InputContentUI; import fr.ifremer.isisfish.ui.input.InputHandler; -import fr.ifremer.isisfish.ui.input.InputOneEquationUI; -import fr.ifremer.isisfish.ui.input.MetierSeasonInfoSpeciesEditorUI; -import fr.ifremer.isisfish.ui.input.PopulationMigrationEmigrationUI; -import fr.ifremer.isisfish.ui.input.PopulationMigrationImmigrationUI; -import fr.ifremer.isisfish.ui.input.PopulationMigrationMigrationUI; -import fr.ifremer.isisfish.ui.input.PopulationZonesEditorUI; -import fr.ifremer.isisfish.ui.input.SelectivityEditorUI; -import fr.ifremer.isisfish.ui.input.SpeciesStructuredUI; import fr.ifremer.isisfish.ui.input.tree.FisheryDataProvider; import fr.ifremer.isisfish.ui.input.tree.FisheryTreeHelper; import fr.ifremer.isisfish.ui.input.tree.FisheryTreeNode; @@ -135,7 +120,6 @@ // global context value : fisheryRegion, regionStorage, treeHelper sensitivityTabUI.setContextValue(fisheryRegion); - //sensitivityTabUI.setContextValue(regionStorage); sensitivityTabUI.setContextValue(treeHelper); sensitivityTabUI.setContextValue(model); sensitivityTabUI.setContextValue(fisheryRegion.getTopiaContext()); @@ -289,42 +273,21 @@ protected void factorSelected(SensitivityTabUI sensitivityTabUI) { // get selected factor TreePath selectedPath = sensitivityTabUI.getFactorsTree().getSelectionPath(); - Object[] pathWay = selectedPath.getPath(); - Object selectedObject = pathWay[pathWay.length - 1]; - - if (selectedObject != null) { - if (!(selectedObject instanceof FactorGroup)) { - Factor selectedFactor = (Factor)selectedObject; - FactorWizardUI factorWizardUI = new FactorWizardUI(sensitivityTabUI); - SensitivityInputHandler handler = factorWizardUI.getHandler(); - /*JComponent component = sensitivityTabUI.getSimulAction().getFactorComponent(selectedFactor); - if (component != null) { - wizard.initExisting(component, selectedFactor); - wizard.pack(); - wizard.setLocationRelativeTo(sensitivityTabUI); - wizard.setVisible(true); + + // method appelee au clic, donc pas forcement de selection + if (selectedPath != null) { + Object[] pathWay = selectedPath.getPath(); + Object selectedObject = pathWay[pathWay.length - 1]; + if (selectedObject != null) { + if (!(selectedObject instanceof FactorGroup)) { + Factor selectedFactor = (Factor)selectedObject; + FactorWizardUI factorWizardUI = new FactorWizardUI(sensitivityTabUI); + SensitivityInputHandler handler = factorWizardUI.getHandler(); + handler.initExistingFactor(factorWizardUI, selectedFactor); + factorWizardUI.pack(); + factorWizardUI.setLocationRelativeTo(sensitivityTabUI.getFactorsTree()); + factorWizardUI.setVisible(true); } - else {*/ - - // cas d'un rechargement de simulation - // le facteur n'a pas d'instance de composant associé - // method 2 - //JComponent component2 = EditorHelper.getEditorForFactor(selectedFactor, sensitivityTabUI.getFisheryRegion().getTopiaContext()); - //if (component2 != null) { - //if (log.isDebugEnabled()) { - // log.debug("Component found is " + component2); - //} - handler.initExistingFactor(factorWizardUI, selectedFactor); - factorWizardUI.pack(); - factorWizardUI.setLocationRelativeTo(sensitivityTabUI.getFactorsTree()); - factorWizardUI.setVisible(true); - //} - /*else { - if (log.isDebugEnabled()) { - log.debug("No component found, skip edition of factor " + selectedFactor.getName()); - } - }*/ - //} } } } @@ -458,7 +421,7 @@ cache = o; JComponent c = null; if (o != null) { - c = getEditorWithValue(dDomain, o); + c = getEditorWithValue(factorWizardUI, dDomain, o); } else { if (log.isWarnEnabled()) { @@ -636,6 +599,8 @@ * Get copy of component with original entity value as default value. * * @param value value + * @param bean bean + * @param property property * @return component copy */ public ContinuousPanelContainerUI getContinuousPanel(Object value, TopiaEntityContextable bean, String property) { @@ -760,12 +725,13 @@ /** * Get editor for value (discrete). * + * @param factorWizardUI context for context value (RegionStorage) * @param value type to get editor * @param factorPath for equation * @param context for equation * @return component */ - protected JComponent getEditorWithValue(Domain domain, Object value) { + protected JComponent getEditorWithValue(FactorWizardUI factorWizardUI, Domain domain, Object value) { JComponent result = null; @@ -782,7 +748,7 @@ ((MatrixPanelEditor)result).setMatrix((MatrixND)value); } else if (domain instanceof RuleDomain) { - result = new RuleChooser(); + result = new RuleChooser(factorWizardUI); ((RuleChooser)result).setRulesList((List<Rule>)value); } else if (value instanceof String) { @@ -842,7 +808,7 @@ // dans ce cas c'est des regles ou pop de départ if (factorPath.equals("parameters.rules")) { - result = new RuleChooser(); + result = new RuleChooser(factorWizardUI); } else if (factorPath.startsWith("parameters.population.")) { // todo @@ -890,14 +856,13 @@ protected void saveContinue(String name, String comment, String path, ContinuousPanelContainerUI panel, SimulAction action, boolean exist) { - System.out.println(" panel = " + panel); DefaultContinuousPanelUI defaultPanel = null; if (panel instanceof MatrixContinuousPanelUI) { MatrixContinuousPanelUI matrixPanel = (MatrixContinuousPanelUI) panel; Double coef = Double.valueOf(matrixPanel.getCoef().getText()) / 100; - MatrixND matrix = matrixPanel.getMatrix(); - String operateur = (String) matrixPanel.getOperator() - .getSelectedItem(); + //MatrixND matrix = matrixPanel.getMatrix(); + MatrixND matrix = matrixPanel.getComponentPanel().getMatrix(); + String operateur = (String)matrixPanel.getOperator().getSelectedItem(); action.addContinuousMatrixFactor(name, comment, path, coef, matrix, operateur, exist); @@ -970,9 +935,9 @@ protected void saveDiscret(String name, String comment, String path, List<JComponent> components, SimulAction action, boolean exist) { - List<Serializable> values = new ArrayList<Serializable>(); + List<Object> values = new ArrayList<Object>(); for (JComponent c : components) { - values.add((Serializable) getComponentValue(c)); + values.add(getComponentValue(c)); } action.addDiscreteFactor(name, comment, path, values, exist); } @@ -991,7 +956,9 @@ result = ((MatrixPanelEditor) component).getMatrix(); } /*else if (component instanceof InputOneEquationUI) { result = ((InputOneEquationUI) component).getEditor().getText();*/ - + else if (component instanceof RuleChooser) { + result = ((RuleChooser)component).getRulesList(); + } if (log.isDebugEnabled()) { log.debug("Value for component : " + component.getClass().getSimpleName() + " is " + result); } Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2011-03-29 15:32:40 UTC (rev 3214) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2011-03-29 16:01:45 UTC (rev 3215) @@ -152,7 +152,7 @@ protected void setSensitivityTabRegion() { if (isSensitivity()) { try { - // FIXME this transation in nerver closed + // FIXME this transation in never closed TopiaContext tx = simulAction.getRegionStorage().getStorage().beginTransaction(); FisheryRegion fisheryRegion = RegionStorage.getFisheryRegion(tx); getParentContainer(SensitivityUI.class).getSensitivityTabUI().setFisheryRegion(fisheryRegion); @@ -495,7 +495,7 @@ <Table> <row> <cell fill="both" weightx="1" weighty="1"> - <RuleChooser id="ruleChooser" + <RuleChooser id="ruleChooser" constructorParams='this' active="{getRegionStorage() != null}" /> </cell> <cell> Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/RuleChooser.jaxx =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/RuleChooser.jaxx 2011-03-29 15:32:40 UTC (rev 3214) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/RuleChooser.jaxx 2011-03-29 16:01:45 UTC (rev 3215) @@ -32,6 +32,8 @@ <Boolean id="active" javaBean="true"/> <import> + java.beans.PropertyChangeEvent; + java.beans.PropertyChangeListener; fr.ifremer.isisfish.IsisFishException; fr.ifremer.isisfish.datastore.RuleStorage; fr.ifremer.isisfish.rule.Rule; @@ -40,8 +42,6 @@ fr.ifremer.isisfish.ui.models.rule.RuleParametersTableCellEditor; fr.ifremer.isisfish.ui.models.rule.RuleParametersTableCellRenderer; fr.ifremer.isisfish.ui.util.ErrorHelper; - java.beans.PropertyChangeEvent; - java.beans.PropertyChangeListener; fr.ifremer.isisfish.datastore.RegionStorage; </import> @@ -114,7 +114,7 @@ RuleParametersTableModel model = new RuleParametersTableModel(selectedRule); selectedRuleParameterTable.setModel(model); RuleParametersTableCellEditor cellEditor = new RuleParametersTableCellEditor(selectedRule); - cellEditor.setRegion(getContextValue(RegionStorage.class)); + cellEditor.setRegionStorage(getContextValue(RegionStorage.class)); RuleParametersTableCellRenderer cellRenderer = new RuleParametersTableCellRenderer(selectedRule); selectedRuleParameterTable.getColumnModel().getColumn(0).setCellRenderer(cellRenderer); selectedRuleParameterTable.getColumnModel().getColumn(1).setCellEditor(cellEditor); Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx 2011-03-29 15:32:40 UTC (rev 3214) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx 2011-03-29 16:01:45 UTC (rev 3215) @@ -24,6 +24,7 @@ --> <Table> <import> + java.awt.Dimension javax.swing.table.DefaultTableModel; fr.ifremer.isisfish.datastore.AnalysePlanStorage; fr.ifremer.isisfish.datastore.StorageChangeEvent; @@ -36,7 +37,7 @@ fr.ifremer.isisfish.ui.models.analyzeplan.AnalyzePlanParametersTableModel; fr.ifremer.isisfish.ui.models.analyzeplan.AnalyzePlanParametersTableCellEditor; fr.ifremer.isisfish.ui.models.analyzeplan.AnalyzePlanParametersTableCellRenderer; - java.awt.Dimension + fr.ifremer.isisfish.datastore.RegionStorage; </import> <SimulAction id='simulAction' javaBean='getContextValue(SimulAction.class)' /> @@ -124,7 +125,7 @@ AnalyzePlanParametersTableModel model = new AnalyzePlanParametersTableModel(selectedAnalyzePlan); simulParamsAnalysePlans.setModel(model); AnalyzePlanParametersTableCellEditor cellEditor = new AnalyzePlanParametersTableCellEditor(selectedAnalyzePlan); - cellEditor.setRegion(simulAction.getRegionStorage()); + cellEditor.setRegionStorage(getContextValue(RegionStorage.class)); simulParamsAnalysePlans.getColumnModel().getColumn(0).setCellRenderer(new AnalyzePlanParametersTableCellRenderer(selectedAnalyzePlan)); simulParamsAnalysePlans.getColumnModel().getColumn(1).setCellEditor(cellEditor); } Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2011-03-29 15:32:40 UTC (rev 3214) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2011-03-29 16:01:45 UTC (rev 3215) @@ -264,6 +264,7 @@ */ public void regionChange(ParamsUI paramsUI, String regionName) { regionStorage = RegionStorage.getRegion(regionName); + paramsUI.getParentContainer(SimulationUI.class).setContextValue(regionStorage); paramsUI.getParentContainer(SimulationUI.class).setRegionStorage(regionStorage); param.setRegionName(regionName); } @@ -906,17 +907,27 @@ } public void addDiscreteFactor(String name, String comment, String path, - List<Serializable> values, boolean exist) { + List<Object> values, boolean exist) { Factor f = new Factor(name); - DiscreteDomain domain = new DiscreteDomain(); - int i = 0; - for (Serializable value : values) { + DiscreteDomain domain = null; + // FIXME echatellier gere le path mieux que ca + if ("parameters.rules".equals(path)) { + domain = new RuleDomain(); + } + else { + domain = new DiscreteDomain(); + } + + SortedMap<Object, Object> domainValues = new TreeMap<Object, Object>(); + int label = 0; + for (Object value : values) { // FIXME test when integer // Don't work with String ;( - domain.getValues().put(i, value); + domainValues.put(label, value); // and start at 0 - i++; + label++; } + domain.setValues(domainValues); f.setDomain(domain); f.setComment(comment); f.setPath(path); @@ -1250,7 +1261,7 @@ SensitivityInputHandler handler = wizard.getHandler(); handler.initExistingFactor(wizard, selectedFactor); wizard.pack(); - wizard.setLocationRelativeTo(source); + wizard.setLocationRelativeTo(paramsUI); wizard.setVisible(true); } } Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterTableCellEditor.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterTableCellEditor.java 2011-03-29 15:32:40 UTC (rev 3214) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/widget/editor/ParameterTableCellEditor.java 2011-03-29 16:01:45 UTC (rev 3215) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2006 - 2010 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin + * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -56,8 +56,6 @@ import fr.ifremer.isisfish.util.ConverterUtil; /** - * ParameterTableCellEditor. - * * Un editeur generic de champs qui se base sur le model de données * a editer. * @@ -77,7 +75,7 @@ /** Class logger. */ private static Log log = LogFactory.getLog(ParameterTableCellEditor.class); - protected RegionStorage region = null; + protected RegionStorage regionStorage = null; protected Component editor = null; @@ -122,18 +120,24 @@ } /** - * @return Returns the topiaContext. + * Return region storage. + * + * @return returns the region storage. */ public RegionStorage getRegion() { - return this.region; + return regionStorage; } /** - * @param region - * The topiaContext to set. + * Set region storage. + * + * @param regionStorage the region storage to set. */ - public void setRegion(RegionStorage region) { - this.region = region; + public void setRegionStorage(RegionStorage regionStorage) { + this.regionStorage = regionStorage; + if (regionStorage == null && log.isWarnEnabled()) { + log.warn("setRegionStorage called with null value in parameters table cell editor"); + } } public Component getTableCellEditorComponent(JTable table, Object value, @@ -149,10 +153,10 @@ case Topia: // on a un bean comme parametre try { - if (region == null) { + if (regionStorage == null) { return null; } - TopiaContext context = region.getStorage().beginTransaction(); + TopiaContext context = regionStorage.getStorage().beginTransaction(); if (context != null) { List list = context.find("from " + type.getName()); c = new JComboBox(list.toArray()); @@ -184,14 +188,11 @@ } int month = date.getMonth().getMonthNumber(); int yea = date.getYear(); - editor = new DateComponent(month, yea, region == null ? null : region - .getStorage()); + editor = new DateComponent(month, yea); //editor = new JTextField(String.valueOf(date.getDate())); break; case Mounth: - editor = DateComponent.createMounthCombo(((Month) value) - .getMonthNumber(), region == null ? null : region - .getStorage()); + editor = DateComponent.createMounthCombo(((Month) value).getMonthNumber()); break; case File: // break; @@ -287,8 +288,9 @@ } if (result instanceof String && !String.class.equals(type)) { - if (region != null) - context = region.getStorage(); + if (regionStorage != null) { + context = regionStorage.getStorage(); + } ConvertUtilsBean cub = ConverterUtil.getConverter(context); result = cub.convert((String) result, type); } @@ -321,10 +323,10 @@ protected JComboBox year; - public DateComponent(int mounth, int year, TopiaContext context) { + public DateComponent(int mounth, int year) { super(new GridLayout(0, 2)); - this.mounth = createMounthCombo(mounth, context); + this.mounth = createMounthCombo(mounth); this.year = createYearCombo(200, year); this.add(this.mounth); @@ -355,48 +357,19 @@ public int getSelectedValue() { int selectedYear = getSelectedYear(); int selectedMounth = getSelectedMounth(); - if (log.isInfoEnabled()) { - log.info("selected mounth " + selectedMounth); - log.info("selected year " + selectedYear); + if (log.isDebugEnabled()) { + log.debug("selected mounth " + selectedMounth); + log.debug("selected year " + selectedYear); } return selectedMounth + selectedYear * 12; } - public static JComboBox createMounthCombo(int mounth, - TopiaContext context) { + public static JComboBox createMounthCombo(int mounth) { JComboBox combo = EnumEditor.newEditor(MonthEnum.class); combo.setSelectedIndex(mounth); return combo; } - /*public static JComboBox createMounthCombo(int mounth, TopiaContext context) { - JComboBox combo = createMounthCombo0(context); - combo.setSelectedIndex(mounth); - return combo; - } - - private static JComboBox createMounthCombo0(TopiaContext context) { - - List<String> listM = new ArrayList<String>(); - // TODO Should use database ? data instead of thoses awfull hardcore - // code... - listM.add("janvier"); - listM.add("fevrier"); - listM.add("mars"); - listM.add("avril"); - listM.add("mai"); - listM.add("juin"); - listM.add("juillet"); - listM.add("aout"); - listM.add("septembre"); - listM.add("octobre"); - listM.add("novembre"); - listM.add("decembre"); - JComboBox combo = new JComboBox(listM.toArray()); - listM.clear(); - return combo; - }*/ - public static JComboBox createYearCombo(int nb, int selectedYear) { List<Integer> listI = new ArrayList<Integer>(); for (int i = 0; i < nb; i++)