From chatellier@users.labs.libre-entreprise.org Mon Jun 15 00:26:48 2026 From: chatellier@users.labs.libre-entreprise.org To: isis-fish-commits@list.isis-fish.org Subject: [Isis-fish-commits] r3347 - in isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui: input sensitivity Date: Wed, 01 Jun 2011 14:32:08 +0200 Message-ID: <20110601123208.D56702F19F@labs.libre-entreprise.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4480495047780282535==" --===============4480495047780282535== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: chatellier Date: 2011-06-01 12:32:08 +0000 (Wed, 01 Jun 2011) New Revision: 3347 Log: Add support for discrete equation domain Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/input/InputO= neEquationUI.jaxx isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/= EquationContinuousPanelUI.jaxx isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/= SensitivityInputHandler.java Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/input= /InputOneEquationUI.jaxx =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/input/Input= OneEquationUI.jaxx 2011-06-01 08:58:32 UTC (rev 3346) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/input/Input= OneEquationUI.jaxx 2011-06-01 12:32:08 UTC (rev 3347) @@ -40,6 +40,8 @@ =20 + + java.lang.reflect.Method; java.io.File; @@ -172,7 +174,13 @@ setFormule((Formule)formuleComboBox.getSelectedItem()); setEditorText(); } - editor.getCurrentEditor().addDocumentListener(listener); + + // utilisee lors de l'edition des equations dans l'interface de sensibil= it=C3=A9 + // le contenu de l'equation ne doit pas automatiquement + // etre sauv=C3=A9 dans l'entit=C3=A9 (pas de sens pour un facteur discr= et de type equation) + if (autoSaveModification) { + editor.getCurrentEditor().addDocumentListener(listener); + } } =20 protected void setComboModel() { Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensi= tivity/EquationContinuousPanelUI.jaxx =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity= /EquationContinuousPanelUI.jaxx 2011-06-01 08:58:32 UTC (rev 3346) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity= /EquationContinuousPanelUI.jaxx 2011-06-01 12:32:08 UTC (rev 3347) @@ -185,7 +185,8 @@ } ]]> - + +
@@ -297,12 +298,14 @@ -
+
Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensi= tivity/SensitivityInputHandler.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity= /SensitivityInputHandler.java 2011-06-01 08:58:32 UTC (rev 3346) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity= /SensitivityInputHandler.java 2011-06-01 12:32:08 UTC (rev 3347) @@ -67,6 +67,7 @@ import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain; import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationContinuousDo= main; +import fr.ifremer.isisfish.simulator.sensitivity.domain.EquationDiscreteDoma= in; import fr.ifremer.isisfish.simulator.sensitivity.domain.MatrixContinuousDoma= in; import fr.ifremer.isisfish.simulator.sensitivity.domain.RuleDiscreteDomain; import fr.ifremer.isisfish.types.RangeOfValues; @@ -74,6 +75,7 @@ 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.tree.FisheryDataProvider; import fr.ifremer.isisfish.ui.input.tree.FisheryTreeHelper; import fr.ifremer.isisfish.ui.input.tree.FisheryTreeNode; @@ -432,7 +434,7 @@ i++; JComponent c =3D null; if (o !=3D null) { - c =3D getEditorWithValue(factorWizardUI, dDomain, o); + c =3D getEditorWithValue(factorWizardUI, factor, dDomain= , o); } else { if (log.isWarnEnabled()) { @@ -557,7 +559,7 @@ *=20 * Il serait plus interessant de le faire sur les types et non sur les * valeur mais pour {@link RangeOfValues} par exemple, seule la valeur - * a un typ Float... donc pas evident. + * a un type Float... donc pas evident. *=20 * @param value value * @return continuous enabled @@ -707,7 +709,7 @@ =20 result =3D ui; } catch (Exception ex) { - throw new IsisFishRuntimeException("Can't restore intial= factor database property", ex); + throw new IsisFishRuntimeException("Can't restore initia= l factor database property", ex); } } // TODO path with no # (normalement pas possible pour les equati= ons) @@ -771,7 +773,7 @@ * @param context for equation * @return component */ - protected JComponent getEditorWithValue(FactorWizardUI factorWizardUI, D= omain domain, Object value) { + protected JComponent getEditorWithValue(FactorWizardUI factorWizardUI, F= actor factor, Domain domain, Object value) { =20 JComponent result =3D null; =20 @@ -791,6 +793,39 @@ result =3D new RuleChooser(factorWizardUI); ((RuleChooser)result).setRulesList((List)value); } + else if (domain instanceof EquationDiscreteDomain) { + String factorPath =3D factor.getPath(); + if (factor.getPath().indexOf('#') !=3D -1) { + String topiaId =3D factorPath.substring(0, factorPath.lastIn= dexOf('#')); + String property =3D factorPath.substring(factorPath.lastInde= xOf('#') + 1); + + // get bean in database + try { + TopiaContext topiaContext =3D factorWizardUI.getContextV= alue(TopiaContext.class); + TopiaEntityContextable entity =3D (TopiaEntityContextabl= e)topiaContext.findByTopiaId(topiaId); + + String getter =3D "get" + StringUtils.capitalize(propert= y); + Method m =3D entity.getClass().getMethod(getter); + Equation equation =3D (Equation)m.invoke(entity); + + // fill component + InputOneEquationUI ui =3D new InputOneEquationUI(factorW= izardUI); + ui.setAutoSaveModification(false); + ui.setFormuleCategory(equation.getCategory()); + ui.setText(_("isisfish.common.equation")); // can't get = real name + ui.setClazz(value.getClass()); + ui.setBeanProperty(property); + ui.setBean(entity); // set bean fire content modificatio= n event + ui.getEditor().setText((String)value); + ui.setActive(true); + + result =3D ui; + } catch (Exception ex) { + throw new IsisFishRuntimeException("Can't restore initia= l factor database property", ex); + } + } + // TODO path with no # (normalement pas possible pour les equati= ons) + } else if (value instanceof String) { // valeur nom typ=C3=A9es ??? result =3D new JTextField(); @@ -812,7 +847,7 @@ * @return component copy */ public JComponent getNewDiscreteComponent(FactorWizardUI factorWizardUI)= { - =20 + JComponent result =3D null; String factorPath =3D factorWizardUI.getFactorPath(); =20 @@ -821,7 +856,6 @@ String property =3D factorPath.substring(factorPath.lastIndexOf(= '#') + 1); TopiaContext topiaContext =3D factorWizardUI.getContextValue(Top= iaContext.class); =20 - =20 try { // get bean in database TopiaEntityContextable entity =3D (TopiaEntityContextable)to= piaContext.findByTopiaId(topiaId); @@ -839,7 +873,21 @@ } else if (value instanceof RangeOfValues) { RangeOfValues rangeOfValues =3D (RangeOfValues)value; result =3D new JTextField(rangeOfValues.getValues()); + } else if (value instanceof Equation) { + Equation equation =3D (Equation)value; + // fill component + InputOneEquationUI ui =3D new InputOneEquationUI(factorW= izardUI); + ui.setAutoSaveModification(false); + ui.setText(equation.getContent()); + ui.setFormuleCategory(equation.getCategory()); + ui.setText(_("isisfish.common.equation")); // can't get = real name + ui.setClazz(value.getClass()); + ui.setBeanProperty(property); + ui.setBean(entity); + ui.setActive(true); + result =3D ui; } + } catch (Exception ex) { throw new IsisFishRuntimeException("Can't restore intial fac= tor database property", ex); } @@ -866,7 +914,11 @@ } } } - =20 + + if (log.isDebugEnabled()) { + log.debug("Component for path " + factorPath + " is " + result); + } + return result; } =20 @@ -910,12 +962,12 @@ /** * Save a continous factor. *=20 - * @param name - * @param comment - * @param path - * @param panel - * @param action - * @param exist + * @param name factor name + * @param comment comment + * @param path factor path + * @param panel panel + * @param action action + * @param exist exist */ protected void saveContinue(String name, String comment, String path, ContinuousPanelContainerUI panel, @@ -992,14 +1044,40 @@ String comment, String path, List components, SimulAction action, boolean exist) { List values =3D new ArrayList(); - for (JComponent c : components) { - values.add(getComponentValue(c)); + =20 + boolean ruleFactor =3D false; + boolean equationFactor =3D false; + for (JComponent component : components) { + + // get internat component value + Object result =3D null; + if (component instanceof JTextComponent) { + result =3D ((JTextComponent) component).getText(); + } else if (component instanceof MatrixPanelEditor) { + result =3D ((MatrixPanelEditor) component).getMatrix(); + } else if (component instanceof InputOneEquationUI) { + result =3D ((InputOneEquationUI) component).getEditor().getT= ext(); + equationFactor =3D true; + } else if (component instanceof RuleChooser) { + result =3D ((RuleChooser)component).getRulesList(); + ruleFactor =3D true; + } + =20 + values.add(result); } - action.addDiscreteFactor(name, comment, path, values, exist); + =20 + if (ruleFactor) { + action.addDiscreteRuleFactor(name, comment, path, values, exist); + } else if (equationFactor) { + action.addDiscreteEquationFactor(name, comment, path, values, ex= ist); + } else { + action.addDiscreteFactor(name, comment, path, values, exist); + } } =20 /** - * Return value in swing component that could be next used into factor. + * Return value in swing component that could be next used into factor + * for discrete factor values. *=20 * @param component component * @return factor value @@ -1010,9 +1088,9 @@ result =3D ((JTextComponent) component).getText(); } else if (component instanceof MatrixPanelEditor) { result =3D ((MatrixPanelEditor) component).getMatrix(); - } /*else if (component instanceof InputOneEquationUI) { - result =3D ((InputOneEquationUI) component).getEditor().getText(= );*/ - else if (component instanceof RuleChooser) { + } else if (component instanceof InputOneEquationUI) { + result =3D ((InputOneEquationUI) component).getEditor().getText(= ); + } else if (component instanceof RuleChooser) { result =3D ((RuleChooser)component).getRulesList(); } if (log.isDebugEnabled()) { --===============4480495047780282535==--