r4228 - in trunk/src/main/java/fr/ifremer/isisfish: datastore/migration ui/input ui/input/equation ui/input/gear ui/input/metier ui/input/population ui/input/setofvessels ui/input/strategy ui/input/variable ui/sensitivity ui/sensitivity/wizard ui/widget/editor
Author: echatellier Date: 2015-05-20 12:58:46 +0000 (Wed, 20 May 2015) New Revision: 4228 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/4228 Log: Move script code to dedicated handler (equation) Added: trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/ trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/EquationEditorPaneHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/EquationEditorPaneUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/FormuleComboRenderer.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/InputOneEquationHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/InputOneEquationUI.jaxx Removed: trunk/src/main/java/fr/ifremer/isisfish/ui/input/EquationEditorPaneUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/FormuleComboRenderer.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/gear/SelectivityUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoSpeciesUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationCapturabilityUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationEquationUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationEquationUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationPriceUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationRecruitmentUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/SetOfVesselsBasicsUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/strategy/StrategyTabUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/wizard/EquationContinuousPanelUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/wizard/SensitivityWizardHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/EquationTableEditor.java Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java 2015-05-20 12:58:46 UTC (rev 4228) @@ -43,7 +43,7 @@ import fr.ifremer.isisfish.entities.Equation; import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.PopulationImpl; -import fr.ifremer.isisfish.ui.input.EquationEditorPaneUI; +import fr.ifremer.isisfish.ui.input.equation.EquationEditorPaneUI; import fr.ifremer.isisfish.util.EvaluatorHelper; /** @@ -159,7 +159,7 @@ frame.setTitle(t("isisfish.message.import.equation.convert")); try { - frame.setEquation(equation.getCategory(), equation.getName(), + frame.getHandler().setEquation(equation.getCategory(), equation.getName(), equation.getJavaInterface(), content); } catch (Exception ex) { if (log.isErrorEnabled()) { Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/input/EquationEditorPaneUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/EquationEditorPaneUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/EquationEditorPaneUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -1,141 +0,0 @@ -<!-- - #%L - IsisFish - - $Id$ - $HeadURL$ - %% - Copyright (C) 2009 - 2011 Ifremer, Code Lutin, 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 - 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 Public License for more details. - - You should have received a copy of the GNU General Public - License along with this program. If not, see - <http://www.gnu.org/licenses/gpl-3.0.html>. - #L% - --> -<JDialog id="EquationEditorPane" modal="true" title="isisfish.equation.editor.title" - width="400" height="400" layout="{new BorderLayout()}" - modalityType="{Dialog.ModalityType.APPLICATION_MODAL}"> - - <Boolean id="resultOk" javaBean="false" /> - - <import> - fr.ifremer.isisfish.util.CompileHelper; - fr.ifremer.isisfish.util.EvaluatorHelper; - org.nuiton.util.FileUtil; - javax.swing.text.html.HTMLEditorKit; - javax.swing.text.html.HTMLDocument; - javax.swing.event.HyperlinkListener; - javax.swing.text.html.HTMLFrameHyperlinkEvent; - javax.swing.event.HyperlinkEvent; - java.io.PrintWriter; - java.io.StringWriter; - java.awt.Color - java.awt.Desktop - </import> - - <script><![CDATA[ -Class javaInterface = null; - -protected void $afterCompleteSetup() { - split.setDividerLocation(0.8); -} - -public void setEquation(String category, String name, Class javaInterface, String content) throws Exception { - this.javaInterface = javaInterface; - getDoc().setText(CompileHelper.extractDoc(category, name, javaInterface)); - getEditor().open(FileUtil.getTempFile(content, ".java")); -} - -public void docEditorHyperlinkUpdate(HyperlinkEvent e) { - if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { - if (e instanceof HTMLFrameHyperlinkEvent) { - ((HTMLDocument)doc.getDocument()).processHTMLFrameHyperlinkEvent( - (HTMLFrameHyperlinkEvent)e); - } else { - try { - if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { - Desktop.getDesktop().browse(e.getURL().toURI()); - } else { - doc.setPage(e.getURL()); - } - } catch (Exception ex) { - if (log.isErrorEnabled()) { - log.error("Error for : " + e.getURL(), ex); - } - } - } - } -} - -public void check() { - try { - String content = editor.getText(); - - StringWriter result = new StringWriter(); - PrintWriter out = new PrintWriter(result); - int compileResult = 0; - try { - compileResult = EvaluatorHelper.check(javaInterface, content, out); - } catch (Exception eee) { - compileResult = -1; - } - - out.flush(); - if (compileResult != 0) { - checkWindow.setText(result.toString()); - checkWindow.setBackground(Color.RED); - } else { - checkWindow.setText("Compilation Ok"); - checkWindow.setBackground(Color.WHITE); - } - - } catch(Exception e){ - log.error("Can't check script", e); - } -} - - ]]></script> - - <Table constraints="BorderLayout.CENTER"> - <row> - <cell columns='3' weighty="1" fill='both'> - <JScrollPane> - <JEditorPane id="doc" editable="false" editorKit="{new HTMLEditorKit()}" - onHyperlinkUpdate="docEditorHyperlinkUpdate(event)" /> - </JScrollPane> - </cell> - </row> - <row columns='3' weightx="1" weighty="5" fill='both'> - <cell> - <JSplitPane id='split' orientation='vertical' - oneTouchExpandable='true' resizeWeight='0.8'> - <org.nuiton.widget.editor.Editor id="editor" askIfNotSaved="false" /> - <JScrollPane> - <JTextArea id="checkWindow" editable="false" /> - </JScrollPane> - </JSplitPane> - </cell> - </row> - <row fill='horizontal'> - <cell> - <JButton text='isisfish.common.check' onActionPerformed='check()' /> - </cell> - <cell weightx="1" fill="none" anchor="east"> - <JButton id='okButton' text='isisfish.common.ok' onActionPerformed='setResultOk(true); setVisible(false)' /> - </cell> - <cell anchor="east"> - <JButton id='cancelButton' text='isisfish.common.cancel' onActionPerformed='setVisible(false)' /> - </cell> - </row> - </Table> -</JDialog> Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/input/FormuleComboRenderer.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/FormuleComboRenderer.java 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/FormuleComboRenderer.java 2015-05-20 12:58:46 UTC (rev 4228) @@ -1,69 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 Ifremer, CodeLutin - * %% - * 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 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 Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.ui.input; - -import java.awt.Component; - -import javax.swing.DefaultListCellRenderer; -import javax.swing.JLabel; -import javax.swing.JList; - -import fr.ifremer.isisfish.entities.Formule; - -/** - * Renderer pour la combo des {@link Formule}. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class FormuleComboRenderer extends DefaultListCellRenderer { - - /** serialVersionUID. */ - private static final long serialVersionUID = -8277883340386163087L; - - /* - * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) - */ - @Override - public Component getListCellRendererComponent(JList<?> list, Object value, - int index, boolean isSelected, boolean cellHasFocus) { - - // this must be used to have alterned highlight rows and default - // selection color - JLabel c = (JLabel) super.getListCellRendererComponent(list, value, - index, isSelected, cellHasFocus); - - // there is no default selection - if (value != null) { - Formule formule = (Formule) value; - c.setText(formule.getName()); - } - return c; - } -} Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java 2015-05-20 12:58:46 UTC (rev 4228) @@ -78,6 +78,8 @@ import fr.ifremer.isisfish.ui.input.check.CheckRegion; import fr.ifremer.isisfish.ui.input.check.CheckResult; import fr.ifremer.isisfish.ui.input.check.CheckResultFrame; +import fr.ifremer.isisfish.ui.input.equation.EquationEditorPaneUI; +import fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI; import fr.ifremer.isisfish.ui.util.ErrorHelper; import fr.ifremer.isisfish.util.CellPointcomparator; @@ -91,7 +93,10 @@ * * Last update: $Date$ * by : $Author$ + * + * @deprecated since 4.4.0.0, move code to dedicated handlers */ +@Deprecated public class InputAction { /** Class logger. */ @@ -313,7 +318,7 @@ } try { EquationEditorPaneUI pane = new EquationEditorPaneUI(ui); - pane.setEquation(category, name, javaInterface, content); + pane.getHandler().setEquation(category, name, javaInterface, content); pane.setLocationRelativeTo(ui); pane.setVisible(true); // blocking call if (pane.isResultOk() && editor != null) { @@ -330,7 +335,7 @@ return null; } - protected List<Formule> getFormules(TopiaContext isisContext, String name) { + public List<Formule> getFormules(TopiaContext isisContext, String name) { return FormuleStorage.getFormules(isisContext, name); } Deleted: trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -1,271 +0,0 @@ -<!-- - #%L - IsisFish - - $Id$ - $HeadURL$ - %% - Copyright (C) 2009 - 2015 Ifremer, Code Lutin, 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 - 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 Public License for more details. - - You should have received a copy of the GNU General Public - License along with this program. If not, see - <http://www.gnu.org/licenses/gpl-3.0.html>. - #L% - --> -<fr.ifremer.isisfish.ui.input.InputContentUI superGenericType='org.nuiton.topia.persistence.TopiaEntityContextable'> - - <!-- Equation name (just for display purpose, not mandatory) --> - <String id='text' javaBean='null'/> - <!-- Bean containing equation --> - <org.nuiton.topia.persistence.TopiaEntityContextable id='bean' javaBean='null'/> - <!-- Bean property used to access equation --> - <String id='beanProperty' javaBean='null'/> - <!-- Used to get documentation in opened editor (not mandatory) --> - <Class id='clazz' javaBean='null'/> - - <!-- Bean property --> - <fr.ifremer.isisfish.entities.Formule id='formule' javaBean='null'/> - <!-- Equation name used to auto select formule in combo box --> - <String id='formuleCategory' javaBean='null'/> - <!-- Selected equation --> - <fr.ifremer.isisfish.entities.Equation id='selectedEquation' javaBean='null'/> - - <Boolean id="autoSaveModification" javaBean="true" /> - - <import> - static org.nuiton.i18n.I18n.t - java.lang.reflect.Method; - java.io.File; - fr.ifremer.isisfish.entities.Formule; - fr.ifremer.isisfish.entities.Equation; - fr.ifremer.isisfish.ui.models.common.GenericComboModel; - org.apache.commons.lang3.StringUtils; - org.nuiton.topia.TopiaContext; - javax.swing.event.DocumentListener; - javax.swing.event.DocumentEvent - java.beans.PropertyChangeEvent; - java.beans.PropertyChangeListener; - java.io.IOException - javax.swing.DefaultComboBoxModel - </import> - <script><![CDATA[ - -protected DocumentListener listener = null; - -protected void $afterCompleteSetup() { - addPropertyChangeListener(PROPERTY_BEAN, new PropertyChangeListener() { - public void propertyChange(PropertyChangeEvent evt) { - if (evt.getNewValue() == null) { - formuleComboBox.setModel(new DefaultComboBoxModel()); - try { - File nullFile = org.nuiton.util.FileUtil.getTempFile("", ".java"); - editor.open(nullFile); - editor.setEnabled(false); // editor is replaced at each launch - } catch (IOException e) { - if (log.isErrorEnabled()) { - log.error("Error on property change", e); - } - } - } - if (evt.getNewValue() != null) { - // chatellier 20090526 : force refresh in bean change ? - refresh(); - } - } - }); - - if (listener == null) { - listener = new DocumentListener() { - @Override - public void insertUpdate(DocumentEvent e) { - setEquation(); - } - @Override - public void removeUpdate(DocumentEvent e) { - setEquation(); - } - @Override - public void changedUpdate(DocumentEvent e) { - } - }; - } - setComboModel(); -} - -/** - * Get equation on entity. - */ -protected Equation getEquation() { - Equation result = null; - try { - // can be null in some uis - // content is managed by caller, can do anythings here - if (bean != null && beanProperty != null) { - String localBeanProperty = StringUtils.capitalize(beanProperty); - Method m = bean.getClass().getMethod("get" + localBeanProperty); - result = (Equation)m.invoke(bean); - } - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Can't get equation", e); - } - } - return result; -} - -/** - * Call setXXXContent on topia entity (convention). - */ -protected void setEquation() { - try { - // can be null in some uis - // content is managed by caller, can do anythings here - if (bean != null && beanProperty != null) { - if (log.isDebugEnabled()) { - log.debug("Saving equation content (" + bean.getClass().getSimpleName() + - "#" + beanProperty + ")"); - } - String localBeanProperty = StringUtils.capitalize(beanProperty); - Method m = bean.getClass().getMethod("set" + localBeanProperty + "Content", String.class); - m.invoke(bean, editor.getText()); - } - else { - if (log.isDebugEnabled()) { - log.debug("No bean property defined, skipping content saving"); - } - } - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Can't set equation content", e); - } - } -} - -public void refresh() { - - // TODO binding don't work - if (getText() == null) { - setText(t("isisfish.common.equation")); - } - - editor.getCurrentEditor().removeDocumentListener(listener); - try { - File equationContentFile = org.nuiton.util.FileUtil.getTempFile("", ".java"); - editor.open(equationContentFile); - editor.setEnabled(isActive()); - } catch (IOException ex) { - if (log.isErrorEnabled()) { - log.error("Can't refresh editor", ex); - } - } - if (formuleCategory != null) { - // chatellier 20090526 (change to get combo selected on this equation) - selectedEquation = getEquation(); - setComboModel(); - setFormule((Formule)formuleComboBox.getSelectedItem()); - setEditorText(); - } - - // utilisee lors de l'edition des equations dans l'interface de sensibilité - // le contenu de l'equation ne doit pas automatiquement - // etre sauvé dans l'entité (pas de sens pour un facteur discret de type equation) - if (autoSaveModification) { - editor.getCurrentEditor().addDocumentListener(listener); - } -} - -protected void setComboModel() { - if (getBean() != null){ - TopiaContext isisContext = ((org.nuiton.topia.persistence.TopiaEntityAbstract)getBean()).getTopiaContext(); - java.util.List<Formule> formules = null; - if (formuleCategory != null) { - formules = getAction().getFormules(isisContext, formuleCategory); - GenericComboModel formulesModel = new GenericComboModel(formules); - formuleComboBox.setModel(formulesModel); - // fix default selection - formuleComboBox.setSelectedItem(selectedEquation); - } - } -} -protected void saveModel() { - getContextValue(InputAction.class).saveAsModel(formuleCategory, "Java", editor.getText()); - setComboModel(); - setInfoText(t("isisfish.message.saveModel.finished")); -} - -/** - * Open external editor, with equation documentation. - */ -protected void openEditor() { - Formule e = (Formule)formuleComboBox.getSelectedItem(); - if (e != null) { - getContextValue(InputAction.class).openEditor(this, e.getCategory(), e.getName(), clazz, e.getContent(), editor); - } - else { - getContextValue(InputAction.class).openEditor(this, formuleCategory, "new", clazz, editor.getText(), editor); - } -} -protected void setEditorText() { - if (getFormule() != null) { - editor.setText(getFormule().getContent()); - } - else { - try { - File nullFile = org.nuiton.util.FileUtil.getTempFile("", ".java"); - editor.open(nullFile); - } catch (IOException e) { - if (log.isErrorEnabled()) { - log.error("Open editor", e); - } - } - } -} - -/** - * New formule selected, replace content. - */ -protected void formuleChanged() { - Formule selectedFormule = (Formule)formuleComboBox.getSelectedItem(); - setFormule(selectedFormule); - setEditorText(); -} - ]]> - </script> - <JPanel id="body"> - <Table insets="0"> - <row> - <cell fill='horizontal' anchor='east'> - <JLabel text='{getText()}' enabled='{isActive()}'/> - </cell> - <cell fill='horizontal'> - <JComboBox id="formuleComboBox" onActionPerformed='formuleChanged()' enabled='{isActive()}' - genericType="fr.ifremer.isisfish.entities.Formule" - renderer="{new FormuleComboRenderer()}" /> - </cell> - </row> - <row> - <cell fill='horizontal' anchor='north'> - <JButton text="isisfish.common.saveModel" onActionPerformed='saveModel()' enabled='{isActive() && formuleCategory != null}'/> - </cell> - <cell fill='both' weightx='1.0' weighty='1.0' rows="2"> - <org.nuiton.widget.editor.Editor id='editor' askIfNotSaved="false" enabled='{isActive()}'/> - </cell> - </row> - <row> - <cell fill='horizontal' anchor='north' weighty='1.0'> - <JButton text="isisfish.common.openEditor" onActionPerformed='openEditor()' enabled='{isActive() && clazz != null && formuleCategory != null}'/> - </cell> - </row> - </Table> - </JPanel> -</fr.ifremer.isisfish.ui.input.InputContentUI> Added: trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/EquationEditorPaneHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/EquationEditorPaneHandler.java (rev 0) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/EquationEditorPaneHandler.java 2015-05-20 12:58:46 UTC (rev 4228) @@ -0,0 +1,113 @@ +/* + * #%L + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2015 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 + * 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 Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.input.equation; + +import java.awt.Color; +import java.awt.Desktop; +import java.io.PrintWriter; +import java.io.StringWriter; + +import javax.swing.event.HyperlinkEvent; +import javax.swing.text.html.HTMLDocument; +import javax.swing.text.html.HTMLFrameHyperlinkEvent; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.FileUtil; + +import fr.ifremer.isisfish.util.CompileHelper; +import fr.ifremer.isisfish.util.EvaluatorHelper; + +/** + * Equation editor handler. + */ +public class EquationEditorPaneHandler { + + /** Class logger. */ + private static final Log log = LogFactory.getLog(EquationEditorPaneHandler.class); + + protected EquationEditorPaneUI equationUI; + + protected Class javaInterface = null; + + protected void init(final EquationEditorPaneUI equationUI) { + this.equationUI = equationUI; + + equationUI.split.setDividerLocation(0.8); + } + + public void setEquation(String category, String name, Class javaInterface, String content) throws Exception { + this.javaInterface = javaInterface; + equationUI.getDoc().setText(CompileHelper.extractDoc(category, name, javaInterface)); + equationUI.getEditor().open(FileUtil.getTempFile(content, ".java")); + } + + public void docEditorHyperlinkUpdate(HyperlinkEvent e) { + if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { + if (e instanceof HTMLFrameHyperlinkEvent) { + ((HTMLDocument)equationUI.doc.getDocument()).processHTMLFrameHyperlinkEvent( + (HTMLFrameHyperlinkEvent)e); + } else { + try { + if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { + Desktop.getDesktop().browse(e.getURL().toURI()); + } else { + equationUI.doc.setPage(e.getURL()); + } + } catch (Exception ex) { + if (log.isErrorEnabled()) { + log.error("Error for : " + e.getURL(), ex); + } + } + } + } + } + + public void check() { + try { + String content = equationUI.editor.getText(); + + StringWriter result = new StringWriter(); + PrintWriter out = new PrintWriter(result); + int compileResult = 0; + try { + compileResult = EvaluatorHelper.check(javaInterface, content, out); + } catch (Exception eee) { + compileResult = -1; + } + + out.flush(); + if (compileResult != 0) { + equationUI.checkWindow.setText(result.toString()); + equationUI.checkWindow.setBackground(Color.RED); + } else { + equationUI.checkWindow.setText("Compilation Ok"); + equationUI.checkWindow.setBackground(Color.WHITE); + } + + } catch(Exception e){ + log.error("Can't check script", e); + } + } +} Property changes on: trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/EquationEditorPaneHandler.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Copied: trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/EquationEditorPaneUI.jaxx (from rev 4226, trunk/src/main/java/fr/ifremer/isisfish/ui/input/EquationEditorPaneUI.jaxx) =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/EquationEditorPaneUI.jaxx (rev 0) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/EquationEditorPaneUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -0,0 +1,71 @@ +<!-- + #%L + IsisFish + + $Id$ + $HeadURL$ + %% + Copyright (C) 2009 - 2015 Ifremer, Code Lutin, 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 + 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 Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> +<JDialog id="EquationEditorPane" modal="true" title="isisfish.equation.editor.title" + width="400" height="400" layout="{new BorderLayout()}" + modalityType="{Dialog.ModalityType.APPLICATION_MODAL}"> + + <Boolean id="resultOk" javaBean="false" /> + + <EquationEditorPaneHandler id="handler" /> + + <script><![CDATA[ + protected void $afterCompleteSetup() { + handler.init(this); + } + ]]></script> + + <Table constraints="BorderLayout.CENTER"> + <row> + <cell columns='3' weighty="1" fill='both'> + <JScrollPane> + <JEditorPane id="doc" editable="false" editorKit="{new javax.swing.text.html.HTMLEditorKit()}" + onHyperlinkUpdate="handler.docEditorHyperlinkUpdate(event)" /> + </JScrollPane> + </cell> + </row> + <row columns='3' weightx="1" weighty="5" fill='both'> + <cell> + <JSplitPane id='split' orientation='vertical' + oneTouchExpandable='true' resizeWeight='0.8'> + <org.nuiton.widget.editor.Editor id="editor" askIfNotSaved="false" /> + <JScrollPane> + <JTextArea id="checkWindow" editable="false" /> + </JScrollPane> + </JSplitPane> + </cell> + </row> + <row fill='horizontal'> + <cell> + <JButton text='isisfish.common.check' onActionPerformed='handler.check()' /> + </cell> + <cell weightx="1" fill="none" anchor="east"> + <JButton id='okButton' text='isisfish.common.ok' onActionPerformed='setResultOk(true); setVisible(false)' /> + </cell> + <cell anchor="east"> + <JButton id='cancelButton' text='isisfish.common.cancel' onActionPerformed='setVisible(false)' /> + </cell> + </row> + </Table> +</JDialog> Copied: trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/FormuleComboRenderer.java (from rev 4227, trunk/src/main/java/fr/ifremer/isisfish/ui/input/FormuleComboRenderer.java) =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/FormuleComboRenderer.java (rev 0) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/FormuleComboRenderer.java 2015-05-20 12:58:46 UTC (rev 4228) @@ -0,0 +1,69 @@ +/* + * #%L + * IsisFish + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2009 - 2010 Ifremer, CodeLutin + * %% + * 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 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 Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.input.equation; + +import java.awt.Component; + +import javax.swing.DefaultListCellRenderer; +import javax.swing.JLabel; +import javax.swing.JList; + +import fr.ifremer.isisfish.entities.Formule; + +/** + * Renderer pour la combo des {@link Formule}. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class FormuleComboRenderer extends DefaultListCellRenderer { + + /** serialVersionUID. */ + private static final long serialVersionUID = -8277883340386163087L; + + /* + * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) + */ + @Override + public Component getListCellRendererComponent(JList<?> list, Object value, + int index, boolean isSelected, boolean cellHasFocus) { + + // this must be used to have alterned highlight rows and default + // selection color + JLabel c = (JLabel) super.getListCellRendererComponent(list, value, + index, isSelected, cellHasFocus); + + // there is no default selection + if (value != null) { + Formule formule = (Formule) value; + c.setText(formule.getName()); + } + return c; + } +} Added: trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/InputOneEquationHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/InputOneEquationHandler.java (rev 0) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/InputOneEquationHandler.java 2015-05-20 12:58:46 UTC (rev 4228) @@ -0,0 +1,242 @@ +/* + * #%L + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2015 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 + * 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 Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.input.equation; + +import static org.nuiton.i18n.I18n.t; + +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.io.File; +import java.io.IOException; +import java.lang.reflect.Method; +import java.util.List; + +import javax.swing.DefaultComboBoxModel; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.TopiaContext; +import org.nuiton.util.FileUtil; + +import fr.ifremer.isisfish.entities.Equation; +import fr.ifremer.isisfish.entities.Formule; +import fr.ifremer.isisfish.ui.input.InputAction; +import fr.ifremer.isisfish.ui.input.InputContentHandler; +import fr.ifremer.isisfish.ui.models.common.GenericComboModel; + +/** + * Equation handler. + */ +public class InputOneEquationHandler extends InputContentHandler<InputOneEquationUI> { + + /** Class logger. */ + private static final Log log = LogFactory.getLog(InputOneEquationHandler.class); + + protected DocumentListener listener = null; + + protected void init(final InputOneEquationUI inputContentUI) { + super.init(inputContentUI); + + inputContentUI.addPropertyChangeListener(InputOneEquationUI.PROPERTY_BEAN, new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + if (evt.getNewValue() == null) { + inputContentUI.formuleComboBox.setModel(new DefaultComboBoxModel<Formule>()); + try { + File nullFile = org.nuiton.util.FileUtil.getTempFile("", ".java"); + inputContentUI.editor.open(nullFile); + inputContentUI.editor.setEnabled(false); // editor is replaced at each launch + } catch (IOException e) { + if (log.isErrorEnabled()) { + log.error("Error on property change", e); + } + } + } + if (evt.getNewValue() != null) { + // chatellier 20090526 : force refresh in bean change ? + refresh(); + } + } + }); + + if (listener == null) { + listener = new DocumentListener() { + @Override + public void insertUpdate(DocumentEvent e) { + setEquation(); + } + @Override + public void removeUpdate(DocumentEvent e) { + setEquation(); + } + @Override + public void changedUpdate(DocumentEvent e) { + } + }; + } + setComboModel(); + } + + /** + * Get equation on entity. + */ + protected Equation getEquation() { + Equation result = null; + try { + // can be null in some uis + // content is managed by caller, can do anythings here + if (inputContentUI.bean != null && inputContentUI.beanProperty != null) { + String localBeanProperty = StringUtils.capitalize(inputContentUI.beanProperty); + Method m = inputContentUI.bean.getClass().getMethod("get" + localBeanProperty); + result = (Equation)m.invoke(inputContentUI.bean); + } + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Can't get equation", e); + } + } + return result; + } + + /** + * Call setXXXContent on topia entity (convention). + */ + protected void setEquation() { + try { + // can be null in some uis + // content is managed by caller, can do anythings here + if (inputContentUI.bean != null && inputContentUI.beanProperty != null) { + if (log.isDebugEnabled()) { + log.debug("Saving equation content (" + inputContentUI.bean.getClass().getSimpleName() + + "#" + inputContentUI.beanProperty + ")"); + } + String localBeanProperty = StringUtils.capitalize(inputContentUI.beanProperty); + Method m = inputContentUI.bean.getClass().getMethod("set" + localBeanProperty + "Content", String.class); + m.invoke(inputContentUI.bean, inputContentUI.editor.getText()); + } + else { + if (log.isDebugEnabled()) { + log.debug("No bean property defined, skipping content saving"); + } + } + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Can't set equation content", e); + } + } + } + + public void refresh() { + + // TODO binding don't work + if (inputContentUI.getText() == null) { + inputContentUI.setText(t("isisfish.common.equation")); + } + + inputContentUI.editor.getCurrentEditor().removeDocumentListener(listener); + try { + File equationContentFile = FileUtil.getTempFile("", ".java"); + inputContentUI.editor.open(equationContentFile); + inputContentUI.editor.setEnabled(inputContentUI.isActive()); + } catch (IOException ex) { + if (log.isErrorEnabled()) { + log.error("Can't refresh editor", ex); + } + } + if (inputContentUI.formuleCategory != null) { + // chatellier 20090526 (change to get combo selected on this equation) + inputContentUI.selectedEquation = getEquation(); + setComboModel(); + inputContentUI.setFormule((Formule)inputContentUI.formuleComboBox.getSelectedItem()); + setEditorText(); + } + + // utilisee lors de l'edition des equations dans l'interface de sensibilité + // le contenu de l'equation ne doit pas automatiquement + // etre sauvé dans l'entité (pas de sens pour un facteur discret de type equation) + if (inputContentUI.autoSaveModification) { + inputContentUI.editor.getCurrentEditor().addDocumentListener(listener); + } + } + + protected void setComboModel() { + if (inputContentUI.getBean() != null){ + TopiaContext isisContext = ((org.nuiton.topia.persistence.TopiaEntityAbstract)inputContentUI.getBean()).getTopiaContext(); + List<Formule> formules = null; + if (inputContentUI.formuleCategory != null) { + formules = inputContentUI.getAction().getFormules(isisContext, inputContentUI.formuleCategory); + GenericComboModel<Formule> formulesModel = new GenericComboModel<>(formules); + inputContentUI.formuleComboBox.setModel(formulesModel); + // fix default selection + inputContentUI.formuleComboBox.setSelectedItem(inputContentUI.selectedEquation); + } + } + } + + protected void saveModel() { + inputContentUI.getContextValue(InputAction.class).saveAsModel(inputContentUI.formuleCategory, "Java", inputContentUI.editor.getText()); + setComboModel(); + inputContentUI.setInfoText(t("isisfish.message.saveModel.finished")); + } + + /** + * Open external editor, with equation documentation. + */ + protected void openEditor() { + Formule e = (Formule)inputContentUI.formuleComboBox.getSelectedItem(); + if (e != null) { + inputContentUI.getContextValue(InputAction.class).openEditor(inputContentUI, e.getCategory(), + e.getName(), inputContentUI.clazz, e.getContent(), inputContentUI.editor); + } else { + inputContentUI.getContextValue(InputAction.class).openEditor(inputContentUI, inputContentUI.formuleCategory, + "new", inputContentUI.clazz, inputContentUI.editor.getText(), inputContentUI.editor); + } + } + + protected void setEditorText() { + if (inputContentUI.getFormule() != null) { + inputContentUI.editor.setText(inputContentUI.getFormule().getContent()); + } else { + try { + File nullFile = org.nuiton.util.FileUtil.getTempFile("", ".java"); + inputContentUI.editor.open(nullFile); + } catch (IOException e) { + if (log.isErrorEnabled()) { + log.error("Open editor", e); + } + } + } + } + + /** + * New formule selected, replace content. + */ + protected void formuleChanged() { + Formule selectedFormule = (Formule)inputContentUI.formuleComboBox.getSelectedItem(); + inputContentUI.setFormule(selectedFormule); + setEditorText(); + } +} Property changes on: trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/InputOneEquationHandler.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Copied: trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/InputOneEquationUI.jaxx (from rev 4227, trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx) =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/InputOneEquationUI.jaxx (rev 0) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/InputOneEquationUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -0,0 +1,81 @@ +<!-- + #%L + IsisFish + + $Id$ + $HeadURL$ + %% + Copyright (C) 2009 - 2015 Ifremer, Code Lutin, 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 + 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 Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> +<fr.ifremer.isisfish.ui.input.InputContentUI superGenericType='org.nuiton.topia.persistence.TopiaEntityContextable'> + + <!-- Equation name (just for display purpose, not mandatory) --> + <String id='text' javaBean='null'/> + <!-- Bean containing equation --> + <org.nuiton.topia.persistence.TopiaEntityContextable id='bean' javaBean='null'/> + <!-- Bean property used to access equation --> + <String id='beanProperty' javaBean='null'/> + <!-- Used to get documentation in opened editor (not mandatory) --> + <Class id='clazz' javaBean='null'/> + + <!-- Bean property --> + <fr.ifremer.isisfish.entities.Formule id='formule' javaBean='null'/> + <!-- Equation name used to auto select formule in combo box --> + <String id='formuleCategory' javaBean='null'/> + <!-- Selected equation --> + <fr.ifremer.isisfish.entities.Equation id='selectedEquation' javaBean='null'/> + + <Boolean id="autoSaveModification" javaBean="true" /> + + <InputOneEquationHandler id="handler" /> + + <script><![CDATA[ + protected void $afterCompleteSetup() { + handler.init(this); + } + ]]></script> + + <JPanel id="body"> + <Table insets="0"> + <row> + <cell fill='horizontal' anchor='east'> + <JLabel text='{getText()}' enabled='{isActive()}'/> + </cell> + <cell fill='horizontal'> + <JComboBox id="formuleComboBox" onActionPerformed='handler.formuleChanged()' enabled='{isActive()}' + genericType="fr.ifremer.isisfish.entities.Formule" + renderer="{new FormuleComboRenderer()}" /> + </cell> + </row> + <row> + <cell fill='horizontal' anchor='north'> + <JButton text="isisfish.common.saveModel" onActionPerformed='handler.saveModel()' enabled='{isActive() && formuleCategory != null}'/> + </cell> + <cell fill='both' weightx='1.0' weighty='1.0' rows="2"> + <org.nuiton.widget.editor.Editor id='editor' askIfNotSaved="false" enabled='{isActive()}'/> + </cell> + </row> + <row> + <cell fill='horizontal' anchor='north' weighty='1.0'> + <JButton text="isisfish.common.openEditor" onActionPerformed='handler.openEditor()' + enabled='{isActive() && clazz != null && formuleCategory != null}'/> + </cell> + </row> + </Table> + </JPanel> +</fr.ifremer.isisfish.ui.input.InputContentUI> Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/gear/SelectivityUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/gear/SelectivityUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/gear/SelectivityUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -67,7 +67,7 @@ </row> <row> <cell columns='2' fill='both' weightx='1.0' weighty='1.0' insets="0"> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='selectivityEquation' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='selectivityEquation' constructorParams='this' text='isisfish.selectivity.equation' bean='{getBean()}' formuleCategory='Selectivity' active='{getPopulation() != null}' clazz='{fr.ifremer.isisfish.equation.SelectivityEquation.class}' Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoSpeciesUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoSpeciesUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoSpeciesUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -85,7 +85,7 @@ </row> <row> <cell columns='2' fill='both' weightx='1.0' weighty='1.0'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='targetFactor' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='targetFactor' constructorParams='this' active='{isActive() && getMetierSeasonInfo() != null}' text='isisfish.metierSeasonInfoSpecies.targetFactor' bean='{getMetierSeasonInfo()}' formuleCategory='TargetFactor' Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -122,7 +122,7 @@ </row> <row> <cell columns='4' fill='both' weightx='1.0' weighty='1.0'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='growthEquation' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='growthEquation' constructorParams='this' text='isisfish.populationBasics.growth' active='{isActive()}' bean='{getBean()}' beanProperty='growth' formuleCategory='Growth' clazz='{fr.ifremer.isisfish.equation.PopulationGrowth.class}' @@ -131,7 +131,7 @@ </row> <row> <cell columns='4' fill='both' weightx='1.0' weighty='1.0'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='growthReverseEquation' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='growthReverseEquation' constructorParams='this' text='isisfish.populationBasics.growthReverse' active='{isActive()}' bean='{getBean()}' formuleCategory='GrowthReverse' beanProperty='GrowthReverse' clazz='{fr.ifremer.isisfish.equation.PopulationGrowthReverse.class}' Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationCapturabilityUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationCapturabilityUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationCapturabilityUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -63,7 +63,7 @@ enabled='{isActive()}' decorator='boxed' _sensitivityBean='{Population.class}' _sensitivityMethod='"Capturability"' onMatrixChanged="handler.populationCapturabilityMatrixChanged(event)" constraints='"fieldUseMatrix"' /> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='capturabilityEquation' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='capturabilityEquation' constructorParams='this' text='isisfish.common.capturability' active='{isActive()}' bean='{getBean()}' formuleCategory='Capturability' beanProperty='CapturabilityEquation' clazz='{fr.ifremer.isisfish.equation.PopulationCapturabilityEquation.class}' Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationEquationUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationEquationUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationEquationUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -44,7 +44,7 @@ <Table> <row> <cell columns='2' fill='both' weightx='0.5' weighty='0.3'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='naturalDeathRate' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='naturalDeathRate' constructorParams='this' text='isisfish.populationEquation.naturalDeathRate' active="{isActive()}" bean='{getBean()}' formuleCategory='NaturalDeathRate' beanProperty='NaturalDeathRate' clazz='{fr.ifremer.isisfish.equation.PopulationNaturalDeathRate.class}' @@ -53,7 +53,7 @@ </row> <row> <cell columns='2' fill='both' weightx='1.0' weighty='0.3'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='meanWeight' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='meanWeight' constructorParams='this' text='isisfish.populationEquation.meanWeight' active="{isActive()}" bean='{getBean()}' formuleCategory='MeanWeight' beanProperty='MeanWeight' clazz='{fr.ifremer.isisfish.equation.PopulationMeanWeight.class}' @@ -62,7 +62,7 @@ </row> <row> <cell columns='2' fill='both' weightx='1.0' weighty='0.3'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='maturityOgive' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='maturityOgive' constructorParams='this' text='isisfish.populationEquation.MaturityOgive' active="{isActive()}" bean='{getBean()}' formuleCategory='MaturityOgive' beanProperty='MaturityOgiveEquation' clazz='{fr.ifremer.isisfish.equation.PopulationMaturityOgiveEquation.class}' @@ -71,7 +71,7 @@ </row> <row> <cell columns='2' fill='both' weightx='1.0' weighty='0.3'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='reproductionRate' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='reproductionRate' constructorParams='this' text='isisfish.populationEquation.reproductionRate' active="{isActive()}" bean='{getBean()}' formuleCategory='ReproductionRate' beanProperty='ReproductionRateEquation' clazz='{fr.ifremer.isisfish.equation.PopulationReproductionRateEquation.class}' Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationEquationUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationEquationUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationEquationUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -47,7 +47,7 @@ <Table> <row> <cell fill='both' weightx='1.0' weighty='1.0'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='migrationEquation' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='migrationEquation' constructorParams='this' text='isisfish.common.migration' active='{isActive()}' bean='{getPopInfo()}' formuleCategory='Migration' beanProperty='MigrationEquation' clazz='{fr.ifremer.isisfish.equation.MigrationEquation.class}' @@ -56,7 +56,7 @@ </row> <row> <cell fill='both' weightx='1.0' weighty='1.0'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='emigrationEquation' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='emigrationEquation' constructorParams='this' text='isisfish.common.emigration' active='{isActive()}' bean='{getPopInfo()}' formuleCategory='Emigration' beanProperty='EmigrationEquation' clazz='{fr.ifremer.isisfish.equation.EmigrationEquation.class}' @@ -65,7 +65,7 @@ </row> <row> <cell fill='both' weightx='1.0' weighty='1.0'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='immigrationEquation' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='immigrationEquation' constructorParams='this' text='isisfish.common.immigration' active='{isActive()}' bean='{getPopInfo()}' formuleCategory='Immigration' beanProperty='ImmigrationEquation' clazz='{fr.ifremer.isisfish.equation.ImmigrationEquation.class}' Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationPriceUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationPriceUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationPriceUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -44,7 +44,7 @@ <Table> <row> <cell columns='2' fill='both' weightx='1.0' weighty='0.3'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='price' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='price' constructorParams='this' text='isisfish.populationEquation.price' active="{isActive()}" bean='{getBean()}' formuleCategory='Price' beanProperty='Price' clazz='{fr.ifremer.isisfish.equation.PopulationPrice.class}' Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationRecruitmentUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationRecruitmentUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationRecruitmentUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -47,7 +47,7 @@ <Table> <row> <cell columns='3' fill='both' weightx='1.0' weighty='1'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='reproductionEquation' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='reproductionEquation' constructorParams='this' active="{isActive()}" text='isisfish.populationEquation.reproductionEquation' bean='{getBean()}' formuleCategory='Reproduction' beanProperty='ReproductionEquation' clazz='{fr.ifremer.isisfish.equation.PopulationReproductionEquation.class}' @@ -86,7 +86,7 @@ </row> <row> <cell columns='3' fill='both' weightx='1.0' weighty='1'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='recruitmentEquation' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='recruitmentEquation' constructorParams='this' active="{isActive()}" text='isisfish.populationEquation.recruitmentEquation' bean='{getBean()}' formuleCategory='Recruitment' beanProperty='RecruitmentEquation' clazz='{fr.ifremer.isisfish.equation.PopulationRecruitmentEquation.class}' Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/SetOfVesselsBasicsUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/SetOfVesselsBasicsUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/SetOfVesselsBasicsUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -104,7 +104,7 @@ </row> <row> <cell columns='2' fill='both' weightx='1.0' weighty='0.3'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='technicalEfficiency' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='technicalEfficiency' constructorParams='this' text='isisfish.setOfVessels.technicalEfficiency' active='{isActive()}' bean='{getBean()}' formuleCategory='TechnicalEfficiency' beanProperty='TechnicalEfficiencyEquation' clazz='{fr.ifremer.isisfish.equation.SoVTechnicalEfficiencyEquation.class}' Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/strategy/StrategyTabUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/strategy/StrategyTabUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/strategy/StrategyTabUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -92,7 +92,7 @@ </row> <row> <cell columns="2" fill='both' weightx='1.0' weighty='0.5'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id="strategyInactivity" constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id="strategyInactivity" constructorParams='this' text='isisfish.strategy.inactivity' active="{isActive() && getBean() != null && bean.isInactivityEquationUsed()}" bean='{getBean()}' formuleCategory='Inactivity' beanProperty='InactivityEquation' Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/variable/EntityVariableUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -141,7 +141,7 @@ <Table constraints='"equationtype"' insets="0"> <row> <cell fill="both" weightx='1.0' weighty='1.0'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id="variableEquationValue" + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id="variableEquationValue" constructorParams='this' active='{isActive() && getVariable() != null}' text='isisfish.common.equation' formuleCategory='Variable' Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java 2015-05-20 12:58:46 UTC (rev 4228) @@ -63,7 +63,7 @@ import fr.ifremer.isisfish.types.TimeStep; 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.equation.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; Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/wizard/EquationContinuousPanelUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/wizard/EquationContinuousPanelUI.jaxx 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/wizard/EquationContinuousPanelUI.jaxx 2015-05-20 12:58:46 UTC (rev 4228) @@ -191,7 +191,7 @@ </row> <row> <cell fill='both' columns='2' weightx='1' weighty='1'> - <fr.ifremer.isisfish.ui.input.InputOneEquationUI id='editor' constructorParams='this' + <fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI id='editor' constructorParams='this' autoSaveModification="false" formule='{getFormule()}' text='{getText()}' bean='{getBean()}' clazz='{getClazz()}' beanProperty='{getBeanProperty()}' formuleCategory='{getFormuleCategory()}' selectedEquation='{getSelectedEquation()}' Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/wizard/SensitivityWizardHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/wizard/SensitivityWizardHandler.java 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/wizard/SensitivityWizardHandler.java 2015-05-20 12:58:46 UTC (rev 4228) @@ -73,7 +73,7 @@ import fr.ifremer.isisfish.types.TimeUnit; import fr.ifremer.isisfish.ui.SimulationUI; import fr.ifremer.isisfish.ui.input.InputAction; -import fr.ifremer.isisfish.ui.input.InputOneEquationUI; +import fr.ifremer.isisfish.ui.input.equation.InputOneEquationUI; import fr.ifremer.isisfish.ui.simulator.RuleChooser; import fr.ifremer.isisfish.ui.simulator.SimulAction; import fr.ifremer.isisfish.ui.widget.editor.MonthComponent; Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/EquationTableEditor.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/EquationTableEditor.java 2015-05-20 12:09:09 UTC (rev 4227) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/widget/editor/EquationTableEditor.java 2015-05-20 12:58:46 UTC (rev 4228) @@ -44,7 +44,7 @@ import fr.ifremer.isisfish.IsisFishRuntimeException; import fr.ifremer.isisfish.entities.Equation; -import fr.ifremer.isisfish.ui.input.EquationEditorPaneUI; +import fr.ifremer.isisfish.ui.input.equation.EquationEditorPaneUI; /** * Equation table cell editor. @@ -102,7 +102,7 @@ this.setText(equation.getName()); try { - getFrame().setEquation(equation.getCategory(), equation.getName(), + getFrame().getHandler().setEquation(equation.getCategory(), equation.getName(), equation.getJavaInterface(), equation.getContent()); } catch (Exception eee) { throw new IsisFishRuntimeException(
participants (1)
-
echatellier@users.forge.codelutin.com