r1975 - in isis-fish/trunk/src/main: java/fr/ifremer/isisfish/ui/sensitivity java/fr/ifremer/isisfish/ui/simulator resources/i18n
Author: sletellier Date: 2009-03-16 15:51:48 +0000 (Mon, 16 Mar 2009) New Revision: 1975 Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainer.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanel.jaxx Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties Log: Matrix continue enabled Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainer.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainer.jaxx (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/ContinuousPanelContainer.jaxx 2009-03-16 15:51:48 UTC (rev 1975) @@ -0,0 +1,41 @@ +<!-- +/* *##% + * Copyright (C) 2005 + * Ifremer, Code Lutin, Cedric Pineau, Benjamin Poussin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + +/* * + * IsisFish.java + * + * Created: 1 aout 2005 18:37:25 CEST + * + * @author Benjamin POUSSIN <poussin at codelutin.com> + * @version $Revision: 1312 $ + * + * Last update: $Date: 2008-08-28 10:21:07 +0200 (jeu, 28 aoû 2008) $ + * by : $Author: sletellier $ + */ + --> +<JPanel id='continuousPanelContainer' layout='{new BorderLayout()}'> + + <Boolean id='continuePossible' javaBean='true'/> + + <Boolean id='continueSelected' javaBean='false'/> + + <JPanel id='content' constraints='BorderLayout.CENTER'/> + +</JPanel> \ No newline at end of file Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx 2009-03-16 15:51:48 UTC (rev 1975) @@ -0,0 +1,106 @@ +<!-- +/* *##% + * Copyright (C) 2005 + * Ifremer, Code Lutin, Cedric Pineau, Benjamin Poussin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + +/* * + * IsisFish.java + * + * Created: 1 aout 2005 18:37:25 CEST + * + * @author Benjamin POUSSIN <poussin at codelutin.com> + * @version $Revision: 1312 $ + * + * Last update: $Date: 2008-08-28 10:21:07 +0200 (jeu, 28 aoû 2008) $ + * by : $Author: sletellier $ + */ + --> +<ContinuousPanelContainer> + <script><![CDATA[ + +protected JTextField continueMax = null; +protected JTextField continueMin = null; + +addPropertyChangeListener("continuePossible", new PropertyChangeListener(){ + + @Override + public void propertyChange(PropertyChangeEvent evt) { + continueMax.setVisible((Boolean)evt.getNewValue()); + continueMin.setVisible((Boolean)evt.getNewValue()); + } + +}); + +addPropertyChangeListener("continueSelected", new PropertyChangeListener(){ + + @Override + public void propertyChange(PropertyChangeEvent evt) { + continueMax.setEnabled((Boolean)evt.getNewValue()); + continueMin.setEnabled((Boolean)evt.getNewValue()); + } + +}); + +public void init(JTextField cMax, JTextField cMin, int inc){ + continueMax = cMax; + continueMin = cMin; + continueMax.setEnabled(isContinueSelected()); + continueMin.setEnabled(isContinueSelected()); + continueMax.setVisible(isContinuePossible()); + continueMin.setVisible(isContinuePossible()); + + increment.setText(String.valueOf(inc)); + continueMaxPanel.add(continueMax, BorderLayout.CENTER); + continueMinPanel.add(continueMin, BorderLayout.CENTER); +} +public String getMin(){ + return continueMin.getText(); +} +public String getMax(){ + return continueMax.getText(); +} +public String getInc(){ + return increment.getText(); +} + ]]> + </script> + <Table id='content' constraints='BorderLayout.CENTER'> + <row> + <cell fill='horizontal'> + <JLabel text='isisfish.factor.firstValue' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> + </cell> + <cell fill='horizontal' weightx='0.5'> + <JPanel id='continueMinPanel' layout='{new BorderLayout()}'/> + </cell> + <cell fill='horizontal'> + <JLabel text='isisfish.factor.lastValue' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> + </cell> + <cell fill='horizontal' weightx='0.5'> + <JPanel id='continueMaxPanel' layout='{new BorderLayout()}'/> + </cell> + </row> + <row> + <cell fill='horizontal'> + <JLabel text='isisfish.factor.increment' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> + </cell> + <cell fill='horizontal' weightx='1' columns='3'> + <JTextField id='increment' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> + </cell> + </row> + </Table> +</ContinuousPanelContainer> \ No newline at end of file Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-03-16 14:42:04 UTC (rev 1974) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-03-16 15:51:48 UTC (rev 1975) @@ -19,6 +19,8 @@ package fr.ifremer.isisfish.ui.sensitivity; import fr.ifremer.isisfish.entities.Formule; +import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; +import fr.ifremer.isisfish.simulator.sensitivity.domain.MatrixContinuousDomain; import fr.ifremer.isisfish.types.Month; import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.input.InputOneEquationUI; @@ -43,6 +45,7 @@ import org.codelutin.math.matrix.gui.MatrixPanelEditor; import org.codelutin.topia.persistence.TopiaEntity; import fr.ifremer.isisfish.ui.input.RangeOfValuesUI; +import javax.swing.JPanel; /** * @@ -62,12 +65,17 @@ if (result instanceof JTextField) { ((JTextComponent) result).setText(String.valueOf(callMethod(e, fieldName))); + } else if (result instanceof MatrixPanelEditor){ + MatrixPanelEditor ui = (MatrixPanelEditor) c; + MatrixPanelEditor matrix = new MatrixPanelEditor(); + matrix.setMatrix((MatrixND)callMethod(e, fieldName)); + matrix.setLinearModel(ui.isLinearModel()); + matrix.setLinearModelShowDefault(ui.isLinearModelShowDefault()); + result = matrix; + } else if (result instanceof JTable){ ((JTable) result).setModel(((JTable)c).getModel()); - } else if (result instanceof MatrixPanelEditor){ - ((MatrixPanelEditor) result).setMatrix((MatrixND)callMethod(e, fieldName)); - } else if (result instanceof JComboBox){ JComboBox combo = (JComboBox)c; JComboBox comboResult = new JComboBox(); @@ -142,7 +150,79 @@ } return result; } - + public static ContinuousPanelContainer getContinuousPanel(JComponent c, TopiaEntity e){ + ContinuousPanelContainer result = null; + try { + String fieldName = getMethod(c); + DefaultContinuousPanel continuousPanel = null; + if (c instanceof InputOneEquationUI){ + InputOneEquationUI origine = (InputOneEquationUI) c; + InputOneEquationUI ui = new InputOneEquationUI(new JAXXInitialContext().add(new InputAction())); + ui.setLblText(origine.getLblText()); + ui.setNameEquation(origine.getNameEquation()); + ui.setClazz(origine.getClazz()); + ui.setMethodGet(origine.getMethodGet()); + ui.setMethodSet(origine.getMethodSet()); + ui.setBean(e); + ui.setActif(true); + ui.refresh(); +// result = ui; + } else if (c instanceof MatrixPanelEditor){ + MatrixContinuousPanel matrixPanel = new MatrixContinuousPanel(); + matrixPanel.setMatrix((MatrixND)callMethod(e, fieldName)); + continuousPanel = matrixPanel.getDefaultContinuousPanel(); + result = matrixPanel; + } else { + continuousPanel = new DefaultContinuousPanel(); + result = continuousPanel; + } + continuousPanel.init(getNewBoundEditor(c, e), getNewBoundEditor(c, e), 0); + } catch (Exception ex) { + Logger.getLogger(EditorHelper.class.getName()).log(Level.SEVERE, null, ex); + } + return result; + } + public static JTextField getNewBoundEditor(JComponent c, TopiaEntity e) { + String fieldName = getMethod(c); + Object value = callMethod(e, fieldName); + if (JTextComponent.class.isInstance(c)){ + return new JTextField(String.valueOf(value)); + } + return new JTextField(); + } + public static ContinuousPanelContainer getContinuousPanelWithValue(JComponent c, ContinuousDomain domain) { + ContinuousPanelContainer result = null; + try { + DefaultContinuousPanel continuousPanel = null; + if (c instanceof InputOneEquationUI){ + InputOneEquationUI origine = (InputOneEquationUI) c; + InputOneEquationUI ui = new InputOneEquationUI(new JAXXInitialContext().add(new InputAction())); + ui.setLblText(origine.getLblText()); + ui.setNameEquation(origine.getNameEquation()); + ui.setClazz(origine.getClazz()); + ui.setMethodGet(origine.getMethodGet()); + ui.setMethodSet(origine.getMethodSet()); +// ui.setBean(e); + ui.setActif(true); + ui.refresh(); +// result = ui; + } else if (c instanceof MatrixPanelEditor){ + MatrixContinuousPanel panel = new MatrixContinuousPanel(); + MatrixContinuousDomain matrixDomain = (MatrixContinuousDomain)domain; + panel.setMatrix(matrixDomain.getMatrix()); + continuousPanel = panel.getDefaultContinuousPanel(); + panel.getOperator().setSelectedItem(matrixDomain.getOperator()); + result = panel; + } else { + continuousPanel = new DefaultContinuousPanel(); + result = continuousPanel; + } + continuousPanel.init(new JTextField(String.valueOf(domain.getMinBound())), new JTextField(String.valueOf(domain.getMaxBound())), domain.getCardinality()); + } catch (Exception ex) { + Logger.getLogger(EditorHelper.class.getName()).log(Level.SEVERE, null, ex); + } + return result; + } public static JComponent getEditorWithValue(JComponent c, Object value) { JComponent result = null; try { @@ -155,8 +235,12 @@ // ((JTable) result).setModel(((JTable)c).getModel()); } else if (result instanceof MatrixPanelEditor){ - ((MatrixPanelEditor) result).setMatrix((MatrixND)value); - + MatrixPanelEditor ui = (MatrixPanelEditor) c; + MatrixPanelEditor matrix = new MatrixPanelEditor(); + matrix.setMatrix((MatrixND)value); + matrix.setLinearModel(ui.isLinearModel()); + matrix.setLinearModelShowDefault(ui.isLinearModelShowDefault()); + result = ui; } else if (result instanceof JComboBox){ JComboBox combo = (JComboBox)c; JComboBox comboResult = new JComboBox(); @@ -269,7 +353,11 @@ if (c instanceof JTextComponent) { Object o = callMethod(e, fieldName); return canBeContinue(c, o); - } + } else if (c instanceof InputOneEquationUI){ + return true; + } else if (c instanceof MatrixPanelEditor){ + return true; + } return false; } public static boolean canBeContinue(JComponent c, Object o){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java 2009-03-16 14:42:04 UTC (rev 1974) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorAction.java 2009-03-16 15:51:48 UTC (rev 1975) @@ -23,22 +23,43 @@ import java.util.ArrayList; import java.util.List; import javax.swing.JComponent; +import javax.swing.text.JTextComponent; +import org.codelutin.math.matrix.MatrixND; /** * * @author letellier */ public class FactorAction { - public static void saveContinue(JComponent cOrigine, String name, String path, JComponent min, JComponent max, String increment, SimulAction action, boolean exist){ - Serializable oMin = (Serializable)EditorHelper.getValue(min); - Serializable oMax = (Serializable)EditorHelper.getValue(max); - action.addContinueFactors(name, path, oMin, oMax, Integer.parseInt(increment), cOrigine, exist); + public static void saveContinue(JComponent cOrigine, String name, String path, ContinuousPanelContainer panel, SimulAction action, boolean exist){ + DefaultContinuousPanel defaultPanel = null; + if (MatrixContinuousPanel.class.isInstance(panel)){ + MatrixContinuousPanel matrixPanel = (MatrixContinuousPanel)panel; + defaultPanel = matrixPanel.getDefaultContinuousPanel(); + MatrixND matrix = matrixPanel.getMatrix(); + String operateur = (String)matrixPanel.getOperator().getSelectedItem(); + action.addContinuousMatrixFactor(name, path, getMin(defaultPanel), getMax(defaultPanel), getInc(defaultPanel), matrix, operateur, cOrigine, exist); + + }else if (DefaultContinuousPanel.class.isInstance(panel)){ + defaultPanel = (DefaultContinuousPanel)panel; + action.addContinuousFactor(name, path, getMin(defaultPanel), getMax(defaultPanel), getInc(defaultPanel), cOrigine, exist); + } } + protected static Serializable getMin(DefaultContinuousPanel defaultPanel){ + return (Serializable)Double.parseDouble(defaultPanel.getMin()); + } + protected static Serializable getMax(DefaultContinuousPanel defaultPanel){ + return (Serializable)Double.parseDouble(defaultPanel.getMax()); + } + protected static int getInc(DefaultContinuousPanel defaultPanel){ + return Integer.parseInt(defaultPanel.getInc()); + } public static void saveDiscret(JComponent cOrigine, String name, String path, List<JComponent> components, SimulAction action, boolean exist){ List<Serializable> values = new ArrayList<Serializable>(); for(JComponent c: components){ values.add((Serializable)EditorHelper.getValue(c)); } - action.addDiscreteFactors(name, path, values, cOrigine, exist); + action.addDiscreteFactor(name, path, values, cOrigine, exist); } } +; \ No newline at end of file Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx 2009-03-16 14:42:04 UTC (rev 1974) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx 2009-03-16 15:51:48 UTC (rev 1975) @@ -53,18 +53,17 @@ import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain; protected JComponent cOrigine = null; -protected JComponent continueMax = null; -protected JComponent continueMin = null; protected TopiaEntity bean = null; protected java.util.List<JComponent> discretComponents = new ArrayList<JComponent>(); protected String path = null; - +protected ContinuousPanelContainer continuousPanel = null; addPropertyChangeListener("continuePossible", new PropertyChangeListener(){ @Override public void propertyChange(PropertyChangeEvent evt) { - continueMax.setVisible((Boolean)evt.getNewValue()); - continueMin.setVisible((Boolean)evt.getNewValue()); + if (continuousPanel != null){ + continuousPanel.setContinuePossible((Boolean)evt.getNewValue()); + } } }); @@ -73,19 +72,17 @@ @Override public void propertyChange(PropertyChangeEvent evt) { - continueMax.setEnabled((Boolean)evt.getNewValue()); - continueMin.setEnabled((Boolean)evt.getNewValue()); + if (continuousPanel != null){ + continuousPanel.setContinueSelected((Boolean)evt.getNewValue()); + } } }); -public void initNew(JComponent c, TopiaEntity bean, Boolean b){ - this.bean = bean; +public void initNew(JComponent c, TopiaEntity be, Boolean b){ + this.bean = be; this.cOrigine = c; - continueMax = getNewComponent(); - continueMin = getNewComponent(); - // path is topiaId#property // ex : fwn#fsd#0.3425345#name // for JAXX : cOrigine start with upper case @@ -93,9 +90,13 @@ String methodName = StringUtils.uncapitalize(EditorHelper.getMethod(cOrigine)); this.path = bean.getTopiaId() + "#" + methodName; - factorName.setText(bean.toString() + "." + EditorHelper.getMethod(cOrigine)); + factorName.setText(bean.toString() + "." + methodName); setContinuePossible(b); - init(); + if (isContinuePossible()){ + continuousPanel = EditorHelper.getContinuousPanel(cOrigine, bean); + init(); + } + setSaveEnabled(!factorName.getText().equals("")); } public void initExisting(JComponent cOrigine, Factor f){ @@ -107,16 +108,15 @@ if (ContinuousDomain.class.isInstance(domain)){ ContinuousDomain cDomain = (ContinuousDomain) domain; - continueMax = EditorHelper.getEditorWithValue(cOrigine, cDomain.getMaxBound()); - continueMin = EditorHelper.getEditorWithValue(cOrigine, cDomain.getMinBound()); - increment.setText(String.valueOf(cDomain.getCardinality())); + + continuousPanel = EditorHelper.getContinuousPanelWithValue(cOrigine, cDomain); + init(); + continueRadion.setSelected(true); setContinueSelected(true); setContinuePossible(true); }else{ DiscreteDomain dDomain = (DiscreteDomain)domain; - continueMax = EditorHelper.getEditorWithValue(cOrigine, null); - continueMin = EditorHelper.getEditorWithValue(cOrigine, null); int nb = dDomain.getValues().size(); discretNumber.setText(nb + ""); @@ -135,21 +135,16 @@ tabPane.add(c, "Factor " + (i+1)); } setContinuePossible(EditorHelper.canBeContinue(cOrigine, cache)); + setTabVisible(true); this.pack(); } - init(); + setSaveEnabled(!factorName.getText().equals("")); } protected void init(){ - continueMax.setEnabled(isContinueSelected()); - continueMin.setEnabled(isContinueSelected()); - continueMax.setVisible(isContinuePossible()); - continueMin.setVisible(isContinuePossible()); - - continueMaxPanel.add(continueMax, BorderLayout.CENTER); - continueMinPanel.add(continueMin, BorderLayout.CENTER); - - setSaveEnabled(!factorName.getText().equals("")); + continuousPanelContainer.add(continuousPanel, BorderLayout.CENTER); + setTabVisible(true); + this.pack(); } protected JComponent getNewComponent(){ return EditorHelper.getEditor(cOrigine, bean); @@ -174,7 +169,7 @@ } protected void save(){ if (continueRadion.isSelected()){ - getFactorAction().saveContinue(cOrigine, factorName.getText(), path, continueMin, continueMax, increment.getText(), getSimulAction(), isExistingValue()); + getFactorAction().saveContinue(cOrigine, factorName.getText(), path, continuousPanel, getSimulAction(), isExistingValue()); } else { getFactorAction().saveDiscret(cOrigine, factorName.getText(), path, discretComponents, getSimulAction(), isExistingValue()); } @@ -203,28 +198,11 @@ </cell> </row> <row> - <cell fill='horizontal'> - <JLabel text='isisfish.factor.firstValue' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> + <cell fill='both' columns='4' weightx='1' weighty='0.5'> + <JPanel id='continuousPanelContainer' layout='{new BorderLayout()}'/> </cell> - <cell fill='horizontal' weightx='0.5'> - <JPanel id='continueMinPanel' layout='{new BorderLayout()}'/> - </cell> - <cell fill='horizontal'> - <JLabel text='isisfish.factor.lastValue' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> - </cell> - <cell fill='horizontal' weightx='0.5'> - <JPanel id='continueMaxPanel' layout='{new BorderLayout()}'/> - </cell> </row> <row> - <cell fill='horizontal'> - <JLabel text='isisfish.factor.increment' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> - </cell> - <cell fill='horizontal' weightx='1' columns='3'> - <JTextField id='increment' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> - </cell> - </row> - <row> <cell columns='4' fill='horizontal' weightx='1'> <JRadioButton id='discret' text='isisfish.factor.discret' selected='true' buttonGroup='factorType' onActionPerformed='setContinueSelected(continueRadion.isSelected())'/> </cell> Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanel.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanel.jaxx (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanel.jaxx 2009-03-16 15:51:48 UTC (rev 1975) @@ -0,0 +1,74 @@ +<!-- +/* *##% + * Copyright (C) 2005 + * Ifremer, Code Lutin, Cedric Pineau, Benjamin Poussin + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + +/* * + * IsisFish.java + * + * Created: 1 aout 2005 18:37:25 CEST + * + * @author Benjamin POUSSIN <poussin at codelutin.com> + * @version $Revision: 1312 $ + * + * Last update: $Date: 2008-08-28 10:21:07 +0200 (jeu, 28 aoû 2008) $ + * by : $Author: sletellier $ + */ + --> +<ContinuousPanelContainer> + + <org.codelutin.math.matrix.MatrixND id='matrix' javaBean='null'/> + + <script><![CDATA[ +import org.codelutin.math.matrix.MatrixND; +import org.codelutin.math.matrix.gui.MatrixPanelEditor; + + + ]]> + </script> + <Table id='content' constraints='BorderLayout.CENTER'> + <row> + <cell fill='both' columns='2' weightx='1' weighty='1'> + <DefaultContinuousPanel id='defaultContinuousPanel' continuePossible='{isContinuePossible()}' continueSelected='{isContinueSelected()}'/> + </cell> + </row> + <row> + <cell fill='horizontal'> + <JLabel text='isisfish.factor.value' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> + </cell> + <cell fill='both' weightx='1' weighty='1'> + <JScrollPane> + <MatrixPanelEditor id='componentPanel' matrix='{getMatrix()}'/> + </JScrollPane> + </cell> + </row> + <row> + <cell fill='horizontal'> + <JLabel text='isisfish.factor.operateur' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> + </cell> + <cell fill='horizontal' weightx='1' columns='3'> + <JComboBox id='operator' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'> + <item id='plus' value="+"/> + <item id='moins' value="-"/> + <item id='mult' value="*"/> + <item id='div' value="/"/> + </JComboBox> + </cell> + </row> + </Table> +</ContinuousPanelContainer> \ No newline at end of file Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx 2009-03-16 14:42:04 UTC (rev 1974) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx 2009-03-16 15:51:48 UTC (rev 1975) @@ -100,13 +100,15 @@ } protected void factorSelected(){ DefaultMutableTreeNode node = (DefaultMutableTreeNode)factors.getSelectionValue(); - Object o = node.getUserObject(); - if (Factor.class.isInstance(o)){ - Factor f = (Factor)o; - FactorWizard wizard = new FactorWizard(this); - wizard.initExisting(getSimulAction().getFactorComponent(f.getPath()), f); - wizard.pack(); - wizard.setVisible(true); + if (node != null){ + Object o = node.getUserObject(); + if (Factor.class.isInstance(o)){ + Factor f = (Factor)o; + FactorWizard wizard = new FactorWizard(this); + wizard.initExisting(getSimulAction().getFactorComponent(f.getPath()), f); + wizard.pack(); + wizard.setVisible(true); + } } } public void setTreeModel(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-03-16 14:42:04 UTC (rev 1974) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-03-16 15:51:48 UTC (rev 1975) @@ -70,6 +70,8 @@ import fr.ifremer.isisfish.simulator.sensitivity.SensitivityCalculator; import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain; +import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationContinuousDomain; +import fr.ifremer.isisfish.simulator.sensitivity.domain.MatrixContinuousDomain; import fr.ifremer.isisfish.ui.simulator.filter.SimulationFilterUtil; import fr.ifremer.isisfish.ui.widget.ErrorDialogUI; import fr.ifremer.isisfish.ui.widget.filter.FilterModel; @@ -673,7 +675,7 @@ public Factor<? extends Serializable> getFactor(String name){ return factors.get(name); } - public void addContinueFactors(String name, String path, Serializable min, Serializable max, int inc, JComponent c, boolean exist){ + public void addContinuousFactor(String name, String path, Serializable min, Serializable max, int inc, JComponent c, boolean exist){ Factor f = new Factor(name); ContinuousDomain<Serializable> domain = new ContinuousDomain<Serializable>(); domain.setMinBound(min); @@ -685,7 +687,7 @@ removeFactor(path); addFactor(path, f, c); } - public void addDiscreteFactors(String name, String path, List<Serializable> values, JComponent c, boolean exist){ + public void addDiscreteFactor(String name, String path, List<Serializable> values, JComponent c, boolean exist){ Factor f = new Factor(name); DiscreteDomain<Serializable> domain = new DiscreteDomain<Serializable>(); int i = 0; @@ -702,6 +704,34 @@ removeFactor(path); addFactor(path, f, c); } + public void addContinuousMatrixFactor(String name, String path, Serializable min, Serializable max, int inc, MatrixND matrix, String operateur, JComponent c, boolean exist){ + Factor f = new Factor(name); + MatrixContinuousDomain<Serializable> domain = new MatrixContinuousDomain<Serializable>(); + domain.setMatrix(matrix); + domain.setOperator(operateur); + domain.setCardinality(inc); + domain.setMaxBound(max); + domain.setMinBound(min); + f.setDomain(domain); + f.setPath(path); + if (exist) + removeFactor(path); + addFactor(path, f, c); + } + public void addContinuousEquationFactor(String name, String path, String varName, Serializable min, Serializable max, int inc, MatrixND matrix, String operateur, JComponent c, boolean exist){ + Factor f = new Factor(name); + EquationContinuousDomain<Serializable> domain = new EquationContinuousDomain<Serializable>(); + domain.setVariableName(varName); + domain.setOperator(operateur); + domain.setCardinality(inc); + domain.setMaxBound(max); + domain.setMinBound(min); + f.setDomain(domain); + f.setPath(path); + if (exist) + removeFactor(path); + addFactor(path, f, c); + } public JComponent getFactorComponent(String path){ return factorComponent.get(path); } Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties =================================================================== --- isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-03-16 14:42:04 UTC (rev 1974) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-en_GB.properties 2009-03-16 15:51:48 UTC (rev 1975) @@ -356,11 +356,13 @@ isisfish.factor.discret=Discret factor isisfish.factor.firstValue=First value isisfish.factor.increment=Cardinality +isisfish.factor.operateur=Operator isisfish.factor.lastValue=Last value isisfish.factor.name=Factor name isisfish.factor.selectDiscretNumber=Number of factors isisfish.factor.title=Factor input isisfish.factor.validDiscretNumber=Ok +isisfish.factor.value=Value isisfish.filter=Filter isisfish.filter.apply=Apply filter isisfish.filter.cancel=Cancel Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties =================================================================== --- isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-03-16 14:42:04 UTC (rev 1974) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish-fr_FR.properties 2009-03-16 15:51:48 UTC (rev 1975) @@ -356,11 +356,13 @@ isisfish.factor.discret=Facteur discret isisfish.factor.firstValue=Premi\u00E8re valeur isisfish.factor.increment=Cardinalit\u00E9e +isisfish.factor.operateur=Op\u00E9rateur isisfish.factor.lastValue=Derin\u00E8re valeur isisfish.factor.name=Nom du facteur isisfish.factor.selectDiscretNumber=Nombre de facteurs isisfish.factor.title=Saisie d'un facteur isisfish.factor.validDiscretNumber=Valider +isisfish.factor.value=Valeur isisfish.filter=Filtrer isisfish.filter.apply=Appliquer le filtre isisfish.filter.cancel=Annuler
participants (1)
-
sletellier@users.labs.libre-entreprise.org