r3612 - in branches/4.1/src/main: java/fr/ifremer/isisfish/entities java/fr/ifremer/isisfish/simulator java/fr/ifremer/isisfish/ui/input/variable xmi
Author: echatellier Date: 2012-02-17 16:36:52 +0100 (Fri, 17 Feb 2012) New Revision: 3612 Url: http://forge.codelutin.com/repositories/revision/isis-fish/3612 Log: Add variable's equation and matrix support Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/entities/VariableImpl.java branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationVariable.java branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableHandler.java branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableUI.jaxx branches/4.1/src/main/xmi/isis-fish.zargo Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/entities/VariableImpl.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/entities/VariableImpl.java 2012-02-17 09:19:34 UTC (rev 3611) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/entities/VariableImpl.java 2012-02-17 15:36:52 UTC (rev 3612) @@ -25,19 +25,47 @@ package fr.ifremer.isisfish.entities; -import org.nuiton.math.matrix.MatrixND; +import static org.nuiton.i18n.I18n._; +import org.nuiton.topia.TopiaException; + +import fr.ifremer.isisfish.IsisFishDAOHelper; +import fr.ifremer.isisfish.IsisFishRuntimeException; +import fr.ifremer.isisfish.equation.Language; +import fr.ifremer.isisfish.equation.VariableEquation; + public class VariableImpl extends VariableAbstract { private static final long serialVersionUID = 3978428224373810278L; + /* + private static Log log = LogFactory.getLog(VariableImpl.class); + @Override public void setDoubleValue(double doubleValue) { super.setDoubleValue(doubleValue); super.setMatrixValue(null); + + deletePreviousEquation(); super.setEquationValue(null); } + /* + * Manually delete equation since topia (or hibernate) can't delete + * orphan object with many-to-one relations. + * + protected void deletePreviousEquation() { + if (super.getEquationValue() != null) { + try { + IsisFishDAOHelper.getEquationDAO(getTopiaContext()).delete(super.getEquationValue()); + } catch (TopiaException ex) { + if (log.isErrorEnabled()) { + log.error("Can't delete equation", ex); + } + } + } + } + @Override public void setEquationValue(Equation equationValue) { super.setEquationValue(equationValue); @@ -49,7 +77,40 @@ public void setMatrixValue(MatrixND matrixValue) { super.setMatrixValue(matrixValue); super.setDoubleValue(0); + + deletePreviousEquation(); super.setEquationValue(null); + }*/ + + public void setEquationValueContent(String content) { + try { + Equation eq = getEquationValue(); + + if (eq == null) { + EquationDAO dao = IsisFishDAOHelper + .getEquationDAO(getTopiaContext()); + // create Growth equation + eq = dao.create(); + eq.setCategory("Variable"); + eq.setJavaInterface(VariableEquation.class); + eq.setLanguage(Language.JAVA); + setEquationValue(eq); + } + + eq.setName(getName()); + + // Fire + String _oldValue = eq.getContent(); + fireOnPreWrite("content", _oldValue, content); + + eq.setContent(content); + eq.update(); + + fireOnPostWrite("content", _oldValue, content); + + } catch (TopiaException eee) { + throw new IsisFishRuntimeException(_("isisfish.change.equation"), eee); + } } } //VariableImpl Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationVariable.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationVariable.java 2012-02-17 09:19:34 UTC (rev 3611) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/simulator/SimulationVariable.java 2012-02-17 15:36:52 UTC (rev 3612) @@ -104,6 +104,19 @@ } /** + * Return variable value as matrix. + * + * @param name variable name + * @return value as matrix + * @throws TopiaException if can't restore variable from db + */ + public MatrixND getAsMatrix(String name) throws TopiaException { + Variable v = getVariableEntity(name); + MatrixND result = v.getMatrixValue(); + return result; + } + + /** * Set variable value. * * @param name variable name Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableHandler.java =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableHandler.java 2012-02-17 09:19:34 UTC (rev 3611) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableHandler.java 2012-02-17 15:36:52 UTC (rev 3612) @@ -40,8 +40,6 @@ import fr.ifremer.isisfish.IsisFishDAOHelper; import fr.ifremer.isisfish.IsisFishRuntimeException; -import fr.ifremer.isisfish.entities.Equation; -import fr.ifremer.isisfish.entities.EquationImpl; import fr.ifremer.isisfish.entities.Variable; import fr.ifremer.isisfish.entities.VariableDAO; import fr.ifremer.isisfish.ui.input.model.TopiaEntityListModel; @@ -151,7 +149,7 @@ JList variableList = view.getVariablesList(); Variable variable = (Variable)variableList.getSelectedValue(); view.setVariable(variable); - if (variable != null) { + /*if (variable != null) { view.getVariableNameField().setText(variable.getName()); String type = variable.getType(); @@ -160,11 +158,11 @@ if ("double".equals(type)) { view.getVariableDoubleValue().setText(String.valueOf(variable.getDoubleValue())); } else if ("matrix".equals(type)) { - //cardLayout.show(view.getVariableTypePanel(), "matrixtype"); + //view.get } else if ("equation".equals(type)) { //cardLayout.show(view.getVariableTypePanel(), "equationtype"); } - } + }*/ } /** @@ -175,6 +173,7 @@ public void showSelectedType(EntityVariableUI view) { CardLayout cardLayout = view.getVariableTypeLayout(); String type = (String)view.getVariableTypeCombo().getSelectedItem(); + view.getVariable().setType(type); if ("double".equals(type)) { cardLayout.show(view.getVariableTypePanel(), "doubletype"); } else if ("matrix".equals(type)) { @@ -195,7 +194,7 @@ variable.setName(view.getVariableNameField().getText().trim()); String type = (String)view.getVariableTypeCombo().getSelectedItem(); - variable.setType((String)view.getVariableTypeCombo().getSelectedItem()); + //variable.setType((String)view.getVariableTypeCombo().getSelectedItem()); if ("double".equals(type)) { try { @@ -208,14 +207,14 @@ } } else if ("matrix".equals(type)) { variable.setMatrixValue(view.getMatrixPanel().getMatrix()); - } else if ("equation".equals(type)) { + } /*else if ("equation".equals(type)) { Equation eq = variable.getEquationValue(); if (eq == null) { eq = new EquationImpl(); } eq.setContent(view.getVariableDoubleValue().getText()); variable.setEquationValue(eq); - } + }*/ try { // save in db Modified: branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableUI.jaxx =================================================================== --- branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableUI.jaxx 2012-02-17 09:19:34 UTC (rev 3611) +++ branches/4.1/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableUI.jaxx 2012-02-17 15:36:52 UTC (rev 3612) @@ -58,7 +58,7 @@ <row> <cell fill="horizontal"> <JButton text="isisfish.variables.addvariable" onActionPerformed="getVarHandler().addNewVariable(this)" - enabled='{isActive()}'/> + enabled='{isActive()}' decorator='boxed' /> </cell> </row> </Table> @@ -71,8 +71,12 @@ enabled='{isActive() && getVariable() != null}'/> </cell> <cell fill="horizontal" weightx='1.0'> - <JTextField id="variableNameField" - enabled='{isActive() && getVariable() != null}'/> + <JTextField id="variableNameField" text="{getVariable().getName()}" + enabled='{isActive() && getVariable() != null}' decorator='boxed' /> + <javax.swing.text.Document + initializer="variableNameField.getDocument()" + onInsertUpdate='getVariable().setName(variableNameField.getText())' + onRemoveUpdate='getVariable().setName(variableNameField.getText())' /> </cell> </row> <row> @@ -82,8 +86,9 @@ </cell> <cell fill="horizontal" weightx='1.0'> <JComboBox id="variableTypeCombo" model="{new VariableTypeComboModel()}" + selectedItem="{getVariable().getType()}" onActionPerformed="getVarHandler().showSelectedType(this)" - enabled='{isActive() && getVariable() != null}'/> + enabled='{isActive() && getVariable() != null}' decorator='boxed' /> </cell> </row> <row> @@ -98,7 +103,9 @@ <JLabel text="isisfish.variables.double.value" enabled='{isActive() && getVariable() != null}' /> </cell> <cell fill="horizontal" weightx='1.0' anchor="northeast" weighty='1.0'> - <JTextField id="variableDoubleValue" enabled='{isActive() && getVariable() != null}' /> + <JTextField id="variableDoubleValue" decorator='boxed' + text="{String.valueOf(getVariable().getDoubleValue())}" + enabled='{isActive() && getVariable() != null}' /> </cell> </row> </Table> @@ -114,7 +121,9 @@ <row> <cell fill="both" weightx='1.0' weighty='1.0'> <org.nuiton.math.matrix.gui.MatrixPanelEditor id="matrixPanel" - enabled='{isActive() && getVariable() != null}'/> + enabled='{isActive() && getVariable() != null}' + matrix="{getVariable().getMatrixValue() != null ? getVariable().getMatrixValue().copy() : null}" + dimensionEdit='true' decorator='boxed' /> </cell> </row> </Table> @@ -124,7 +133,13 @@ <row> <cell fill="both" weightx='1.0' weighty='1.0'> <fr.ifremer.isisfish.ui.input.InputOneEquationUI id="variableEquationValue" - active='{isActive() && getVariable() != null}'/> + constructorParams='this' + active='{isActive() && getVariable() != null}' + text='isisfish.common.equation' formuleCategory='Variable' + clazz='{fr.ifremer.isisfish.equation.VariableEquation.class}' + bean='{getVariable()}' beanProperty='EquationValue' + _sensitivityBean='{fr.ifremer.isisfish.entities.Variable.class}' _sensitivityMethod='"EquationValue"' + decorator='boxed' /> </cell> </row> </Table> @@ -135,12 +150,14 @@ <cell anchor="west"> <JButton text="isisfish.variables.deletevariable" onActionPerformed="getVarHandler().deleteVariable(this)" - enabled='{isActive() && getVariable() != null}'/> + enabled='{isActive() && getVariable() != null}' + decorator='boxed' /> </cell> <cell anchor="east" weightx='1.0'> <JButton text="isisfish.variables.savevariable" onActionPerformed="getVarHandler().saveVariable(this)" - enabled='{isActive() && getVariable() != null}'/> + enabled='{isActive() && getVariable() != null}' + decorator='boxed' /> </cell> </row> </Table> Modified: branches/4.1/src/main/xmi/isis-fish.zargo =================================================================== (Binary files differ)
participants (1)
-
echatellier@users.forge.codelutin.com