r4230 - in trunk/src/main/java/fr/ifremer/isisfish/ui: . input input/equation input/fisheryregion input/gear input/metier input/observation input/population input/setofvessels sensitivity sensitivity/wizard simulator
Author: echatellier Date: 2015-05-20 13:37:54 +0000 (Wed, 20 May 2015) New Revision: 4230 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/4230 Log: Remove InputAction and move related code to handlers Removed: trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/InputOneEquationHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/fisheryregion/FisheryRegionHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/gear/SelectivityHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoSpeciesHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoZoneHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/observation/ObservationHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationEmigrationHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationImmigrationHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationMigrationHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationRecruitmentHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationRecruitmentUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationSeasonsHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/wizard/SensitivityWizardHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/OptimizationHandler.java Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -53,7 +53,6 @@ import fr.ifremer.isisfish.ui.config.RConfigHandler; import fr.ifremer.isisfish.ui.config.RConfigUI; import fr.ifremer.isisfish.ui.config.SSHLauncherConfigUI; -import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.input.InputSaveVerifier; import fr.ifremer.isisfish.ui.input.InputUI; import fr.ifremer.isisfish.ui.queue.QueueUI; @@ -153,7 +152,7 @@ * @param welcomeUI */ public void newInputFrame(WelcomeUI welcomeUI) { - openFrame(welcomeUI, new InputUI(new JAXXInitialContext().add(verifier).add(new InputAction()).add(new InputSaveVerifier()).add(this)), t("isisfish.input.title")); + openFrame(welcomeUI, new InputUI(new JAXXInitialContext().add(verifier).add(new InputSaveVerifier()).add(this)), t("isisfish.input.title")); } /** @@ -169,7 +168,7 @@ * @param welcomeUI */ public void newSensitivityFrame(WelcomeUI welcomeUI) { - openFrame(welcomeUI, new SensitivityUI(new JAXXInitialContext().add(new InputAction()).add(new SensitivitySaveVerifier()).add(new SimulAction()).add(this)), t("isisfish.sensitivity.title")); + openFrame(welcomeUI, new SensitivityUI(new JAXXInitialContext().add(new SensitivitySaveVerifier()).add(new SimulAction()).add(this)), t("isisfish.sensitivity.title")); } /** Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx 2015-05-20 13:37:54 UTC (rev 4230) @@ -26,7 +26,6 @@ <import> fr.ifremer.isisfish.ui.simulator.SimulAction jaxx.runtime.context.JAXXInitialContext - fr.ifremer.isisfish.ui.input.InputAction fr.ifremer.isisfish.ui.input.InputSaveVerifier fr.ifremer.isisfish.ui.sensitivity.SensitivitySaveVerifier fr.ifremer.isisfish.ui.sensitivity.SensitivityInputHandler @@ -48,7 +47,7 @@ <JTabbedPane id="simulTabs" tabPlacement='{JTabbedPane.LEFT}' constraints="BorderLayout.CENTER"> <tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/book.gif"))}'> <fr.ifremer.isisfish.ui.input.InputUI id='inputUI' - constructorParams='new JAXXInitialContext().add(getContextValue(WelcomeSaveVerifier.class)).add(new InputAction()).add(new InputSaveVerifier())' /> + constructorParams='new JAXXInitialContext().add(getContextValue(WelcomeSaveVerifier.class)).add(new InputSaveVerifier())' /> </tab> <tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/simulation.gif"))}'> <fr.ifremer.isisfish.ui.simulator.SimulUI id='simulUI' @@ -56,7 +55,7 @@ </tab> <tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/sensitivities.gif"))}'> <fr.ifremer.isisfish.ui.sensitivity.SensitivityUI id="sensitivityUI" - constructorParams='new JAXXInitialContext().add(new InputAction()).add(new SensitivitySaveVerifier()).add(new SimulAction()).add(new SensitivityInputHandler()).add(this)' /> + constructorParams='new JAXXInitialContext().add(new SensitivitySaveVerifier()).add(new SimulAction()).add(new SensitivityInputHandler()).add(this)' /> </tab> <tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/calc.gif"))}'> <fr.ifremer.isisfish.ui.result.ResultUI /> Deleted: 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 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -1,1011 +0,0 @@ -/* - * #%L - * IsisFish - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2005 - 2014 Ifremer, Code Lutin, Cedric Pineau, Benjamin Poussin, Chatellier Eric - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * 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 static org.nuiton.i18n.I18n.t; - -import java.awt.geom.Point2D; -import java.io.File; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import javax.swing.JOptionPane; - -import org.apache.commons.io.FileUtils; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.math.matrix.MatrixFactory; -import org.nuiton.math.matrix.MatrixND; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.util.FileUtil; -import org.nuiton.widget.SwingUtil; -import org.nuiton.widget.editor.Editor; - -import fr.ifremer.isisfish.IsisFishDAOHelper; -import fr.ifremer.isisfish.IsisFishRuntimeException; -import fr.ifremer.isisfish.datastore.FormuleStorage; -import fr.ifremer.isisfish.datastore.RegionStorage; -import fr.ifremer.isisfish.entities.Cell; -import fr.ifremer.isisfish.entities.CellDAO; -import fr.ifremer.isisfish.entities.EffortDescription; -import fr.ifremer.isisfish.entities.EffortDescriptionDAO; -import fr.ifremer.isisfish.entities.FisheryRegion; -import fr.ifremer.isisfish.entities.Formule; -import fr.ifremer.isisfish.entities.Gear; -import fr.ifremer.isisfish.entities.Metier; -import fr.ifremer.isisfish.entities.MetierSeasonInfo; -import fr.ifremer.isisfish.entities.MetierSeasonInfoDAO; -import fr.ifremer.isisfish.entities.Observation; -import fr.ifremer.isisfish.entities.Population; -import fr.ifremer.isisfish.entities.PopulationDAO; -import fr.ifremer.isisfish.entities.PopulationGroup; -import fr.ifremer.isisfish.entities.PopulationSeasonInfo; -import fr.ifremer.isisfish.entities.PopulationSeasonInfoDAO; -import fr.ifremer.isisfish.entities.Selectivity; -import fr.ifremer.isisfish.entities.SelectivityDAO; -import fr.ifremer.isisfish.entities.SetOfVessels; -import fr.ifremer.isisfish.entities.Species; -import fr.ifremer.isisfish.entities.TargetSpecies; -import fr.ifremer.isisfish.entities.TargetSpeciesDAO; -import fr.ifremer.isisfish.entities.Zone; -import fr.ifremer.isisfish.types.Month; -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; - -/** - * All code used in input UI. - * - * Created: 1 aout 2005 18:37:25 CEST - * - * @author Benjamin POUSSIN <poussin@codelutin.com> - * @version $Revision$ - * - * Last update: $Date$ - * by : $Author$ - * - * @deprecated since 4.4.0.0, move code to dedicated handlers - */ -@Deprecated -public class InputAction { - - /** Class logger. */ - private static Log log = LogFactory.getLog(InputAction.class); - - /* - * Permet de creer simplement un nouvelle objet portant un nom par defaut. - * Le nouvel element est automatiquement selectionné dans l'arbre - * - * @param type le type de l'entite a creer, le type est compose seulement du - * nom de l'entite et pas du package. - * @return null ou un fenetre d'erreur - * - public TopiaEntity create(TopiaContext isisContext, String type) { - if (log.isTraceEnabled()) { - log.trace("create called for " + type); - } - try { - //TODO use the IsisFishEntityEnum for this purpose : - //TopiaDAO<TopiaEntity> dao = IsisFishEntityEnum.getEntry(type).getDAO(isisContext); - String name = type + "_new"; - - Method method = MethodUtils.getAccessibleMethod( - IsisFishDAOHelper.class, "get" + type + "DAO", - TopiaContext.class); - TopiaDAO<TopiaEntity> dao = (TopiaDAO<TopiaEntity>) method.invoke( - null, isisContext); - - TopiaEntity entity = dao.create("name", name); - entity.update(); - isisContext.commitTransaction(); - return entity; - - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't create entity", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.region.new"), eee); - } - return null; - }*/ - - /* - * Save entity passed in argument, and commit - * - * @param selected entity to save - * @return the saved entity - * - public TopiaEntity save(TopiaEntity selected) { - if (log.isTraceEnabled()) { - log.trace("save called"); - } - try { - if (selected == null) { - if (log.isWarnEnabled()) { - log.warn("Try to save null entity"); - } - return null; - } - // on est pas en autoUpdate donc il faut faire le update avant le - // commit - selected.update(); - - selected.getTopiaContext().commitTransaction(); - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't save region", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.save"), eee); - } - return selected; - }*/ - - /* - * Cancel all modification on entity (rollback), and force reload it and - * refresh all ui component that name match 'type'Tab - * - * @return the roolbacked entity - * - public TopiaEntity cancel(TopiaEntity selected) { - if (log.isTraceEnabled()) { - log.trace("cancel called"); - } - try { - TopiaContext isisContext = selected.getTopiaContext(); - isisContext.rollbackTransaction(); - - // reload the object - // can't be null here, or allready null before !!! - //if (selected != null) { - // FIXME don't modify parameters - selected = isisContext.findByTopiaId(selected.getTopiaId()); - //} - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't cancel modification in region", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.region.cancel"), eee); - } - return selected; - }*/ - - /* - * Delete one entity and commit the change, try to selected intelligently - * other node in tree. - * <p/> - * Refresh all ui component where name match "input<entity type without - * package >.*" - * - * @return if ok return null else OutView error - * - public String remove(TopiaEntity selected) { - if (log.isTraceEnabled()) { - log.trace("remove called"); - } - String msg = ""; - try { - boolean doDelete; - List<TopiaEntity> allWillBeRemoved = selected.getComposite(); - if (allWillBeRemoved.size() > 0) { - String text = t("isisfish.message.delete.object", selected - .toString()); - for (TopiaEntity e : allWillBeRemoved) { - text += ClassUtils.getShortClassName(e.getClass()) + " - " - + e.toString() + "\n"; - } - int resp = JOptionPane.showConfirmDialog(null, text, - t("isisfish.message.delete.entities"), - JOptionPane.YES_NO_OPTION); - doDelete = resp == JOptionPane.YES_OPTION; - } else { - String text = t("isisfish.message.confirm.delete.object", - selected.toString()); - int resp = JOptionPane.showConfirmDialog(null, text, - t("isisfish.message.delete.entity"), - JOptionPane.YES_NO_OPTION); - doDelete = resp == JOptionPane.YES_OPTION; - } - - if (doDelete) { - selected.delete(); - selected.getTopiaContext().commitTransaction(); - msg = t("isisfish.message.remove.finished"); - } else { - msg = t("isisfish.message.remove.canceled"); - } - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't remove entity: " + selected, eee); - } - showMsgBox(eee); - } - return msg; - }*/ - - /* - * Save an Equation as model, to reuse it for other equation - * - * @param eq equation to put in models - * @return if ok return null else OutputView error message - * - public Object saveEquationAsModel(Equation eq) { - try { - if (eq != null) { - String name = showInputDialog(""); - //if ("".equals(name)) { - // showMsgBox("Error " +t("isisfish.error.invalid.equation.name")); - //} - if (name != null) { - FormuleStorage storage = FormuleStorage.createFormule(eq - .getCategory(), name, eq.getLanguage()); - storage.setContent(eq.getContent()); - } - } - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't save equation as model", eee); - } - showMsgBox(eee); - } - return null; - }*/ - - /** - * Save an Equation as model, to reuse it for other equation - * - * @param category category for this equation - * @param language equation to put in models - * @param content content ? - * @return if ok return null else OutputView error message - */ - public Object saveAsModel(String category, String language, String content) { - try { - String name = JOptionPane - .showInputDialog(t("isisfish.message.saveModel.dialog")); - /*if ("".equals(name)) { - showMsgBox("Error " +t("isisfish.error.invalid.equation.name")); - }*/ - if (name != null) { - FormuleStorage storage = FormuleStorage.createFormule(category, - name, language); - storage.setContent(content); - } - - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't save equation as model", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.equation.savemodel"), - eee); - } - return null; - } - - public Object openEditor(InputOneEquationUI ui, String category, String name, Class<?> javaInterface, - String content, Editor editor) { - if (log.isTraceEnabled()) { - log.trace("openEditor"); - } - try { - EquationEditorPaneUI pane = new EquationEditorPaneUI(ui); - pane.getHandler().setEquation(category, name, javaInterface, content); - pane.setLocationRelativeTo(ui); - pane.setVisible(true); // blocking call - if (pane.isResultOk() && editor != null) { - editor.setText(pane.getEditor().getText()); - } - pane.dispose(); - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't open editor", eee); - } - ErrorHelper.showErrorDialog( - t("isisfish.error.equation.openeditor"), eee); - } - return null; - } - - public List<Formule> getFormules(TopiaContext isisContext, String name) { - return FormuleStorage.getFormules(isisContext, name); - } - - // InputGear - - public Object addSelectivity(Population pop, String equation, Gear gear) { - try { - - SelectivityDAO dao = IsisFishDAOHelper.getSelectivityDAO(pop - .getTopiaContext()); - Selectivity selectivity = dao.create(); - - selectivity.setGear(gear); - selectivity.setPopulation(pop); - selectivity.getEquation().setContent(equation); - selectivity.update(); - - gear.addPopulationSelectivity(selectivity); - gear.update(); - - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't add selectivity", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", - "Selectivity"), eee); - } - return null; - } - - public Object removeSelectivity(Gear gear, Selectivity selectivity) { - if (log.isTraceEnabled()) { - log.trace("removeSelectivity called: " + selectivity); - } - try { - if (gear != null && selectivity != null) { - gear.removePopulationSelectivity(selectivity); - } - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't remove TargetSpecies", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", - "Selectivity"), eee); - } - return null; - } - - // InputMetier - - /*public Object createSeasonInfo(Metier metier) { - if (log.isTraceEnabled()) { - log.trace("createSeasonInfo called"); - } - try { - MetierSeasonInfoDAO metierSeasonInfoPS = IsisFishDAOHelper - .getMetierSeasonInfoDAO(metier.getTopiaContext()); - MetierSeasonInfo metierSeasonInfo = metierSeasonInfoPS.create(); - metierSeasonInfo.setFirstMonth(Month.MONTH[0]); - metierSeasonInfo.setLastMonth(Month.MONTH[3]); - metier.addMetierSeasonInfo(metierSeasonInfo); - metierSeasonInfo.update(); - metier.update(); - // isisContext.commitTransaction(); - - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't create MetierSeasonInfo", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", "SeasonInfo"), eee); - } - return null; - }*/ - - /*public Object removeSeasonInfo(Metier metier, MetierSeasonInfo info) { - if (log.isTraceEnabled()) { - log.trace("removeSeasonInfo called"); - } - try { - metier.removeMetierSeasonInfo(info); - metier.update(); - metier.getTopiaContext().commitTransaction(); - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't create MetierSeasonInfo", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", "SeasonInfo"), eee); - } - return null; - }*/ - - public Object addTargetSpecies(Metier metier, MetierSeasonInfo m, - Species species, String targetFactorEquationContent, - boolean primaryCatch) { - if (log.isDebugEnabled()) { - log.debug("addTargetSpecies called: " + metier + " " + species - + " " + primaryCatch + " " + targetFactorEquationContent); - } - try { - // build targetFactorEquation name - String targetFactorEquationName = metier.getName() + "-" - + species.getName() + "(" + m.getFirstMonth() + "-" - + m.getLastMonth() + ")"; - - TargetSpeciesDAO dao = IsisFishDAOHelper.getTargetSpeciesDAO(metier - .getTopiaContext()); - TargetSpecies targetSpecies = dao.create(); - - targetSpecies.setSpecies(species); - targetSpecies.getTargetFactorEquation().setName( - targetFactorEquationName); - targetSpecies.getTargetFactorEquation().setContent( - targetFactorEquationContent); - targetSpecies.setPrimaryCatch(primaryCatch); - m.addSpeciesTargetSpecies(targetSpecies); - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't add TargetSpecies", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", - "TargetSpecies"), eee); - } - return null; - } - - public Object removeTargetSpecies(MetierSeasonInfo m, - TargetSpecies targetSpecies) { - if (log.isDebugEnabled()) { - log.debug("removeTargetSpecies called: " + targetSpecies); - } - try { - if (targetSpecies != null) { - m.removeSpeciesTargetSpecies(targetSpecies); - } - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't remove TargetSpecies", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", - "TargetSpecies"), eee); - } - return null; - } - - // SetOfVessels - - public void addEffortDescription(SetOfVessels setOfVessels, Metier metier) { - if (log.isDebugEnabled()) { - log.debug("addEffortDescription called: " + setOfVessels - + " metier: " + metier); - } - try { - EffortDescriptionDAO effortDescriptionPS = IsisFishDAOHelper - .getEffortDescriptionDAO(metier.getTopiaContext()); - EffortDescription effortDescription = effortDescriptionPS.create(); - // EC20090715 : c'est la classe d'association - // qui en étant sauvee, sauve les relations en base - // il faut bien faire les set des deux cotes - effortDescription.setSetOfVessels(setOfVessels); - effortDescription.setPossibleMetiers(metier); - effortDescription.update(); - setOfVessels.addPossibleMetiers(effortDescription); - setOfVessels.update(); - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't create EffortDescription", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", - "EffortDescription"), eee); - } - } - - public Object removeEffortDescription(SetOfVessels sov, - EffortDescription effort) { - if (log.isTraceEnabled()) { - log.trace("removeEffortDescription called"); - } - try { - sov.removePossibleMetiers(effort); - // EC-20091112 : commit() twice cause hibernate error: - // Found two representations of same collection: - //sov.getTopiaContext().commitTransaction(); - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't remove entity: " + effort, eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", - "EffortDescription"), eee); - } - return null; - } - - public Population createPopulation(TopiaContext context, Species species) { - Population pop = null; - if (log.isTraceEnabled()) { - log.trace("createPopulation called"); - } - try { - String name = "Population_new"; - - PopulationDAO dao = IsisFishDAOHelper.getPopulationDAO(context); - pop = dao.create(); - pop.setName(name); - - species.addPopulation(pop); - pop.setSpecies(species); - species.update(); - pop.update(); - } catch (TopiaException eee) { - throw new IsisFishRuntimeException(t("isisfish.error.input.addentity", "Population"), eee); - } - return pop; - } - - public PopulationSeasonInfo createPopulationSeasonInfo(Population pop) { - if (log.isDebugEnabled()) { - log.debug("createSeasonInfo called"); - } - PopulationSeasonInfo seasonInfo = null; - try { - PopulationSeasonInfoDAO dao = IsisFishDAOHelper - .getPopulationSeasonInfoDAO(pop.getTopiaContext()); - seasonInfo = dao.create(); - seasonInfo.setFirstMonth(Month.MONTH[0]); - seasonInfo.setLastMonth(Month.MONTH[3]); - pop.addPopulationSeasonInfo(seasonInfo); - seasonInfo.setPopulation(pop); - - // EC-20090710 ajout du code d'initailisation - // d'un populationseasoninfo - // il a du se perdre au changement d'interface - // swiat>jaxx - // moved to entity - //MatrixND matrix = ((PopulationSeasonInfoImpl) seasonInfo) - // .createNoSpacializedChangeGroupMatrix(); - //seasonInfo.setLengthChangeMatrix(matrix); - - seasonInfo.update(); - pop.update(); - // isisContext.commitTransaction(); - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't create PopulationSeasonInfo", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", - "PopulationSeasonInfo"), eee); - } - return seasonInfo; - } - - public void removePopulationSeasonInfo(Population pop, - PopulationSeasonInfo populationSeasonInfo) { - if (log.isDebugEnabled()) { - log.debug("removePopulationSeasonInfo called"); - } - try { - pop.removePopulationSeasonInfo(populationSeasonInfo); - pop.update(); - //pop.getTopiaContext().commitTransaction(); - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't remove PopulationSeasonInfo", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", - "PopulationSeasonInfo"), eee); - } - } - - public MetierSeasonInfo createMetierSeasonInfo(Metier metier) { - MetierSeasonInfo metierSeasonInfo = null; - if (log.isDebugEnabled()) { - log.debug("createMetierSeasonInfo called"); - } - try { - MetierSeasonInfoDAO metierSeasonInfoPS = IsisFishDAOHelper - .getMetierSeasonInfoDAO(metier.getTopiaContext()); - metierSeasonInfo = metierSeasonInfoPS.create(); - metierSeasonInfo.setFirstMonth(Month.MONTH[0]); - metierSeasonInfo.setLastMonth(Month.MONTH[3]); - metier.addMetierSeasonInfo(metierSeasonInfo); - metierSeasonInfo.update(); - metier.update(); - - } catch (TopiaException eee) { - throw new IsisFishRuntimeException("Can't create MetierSeasonInfo", eee); - } - return metierSeasonInfo; - } - - public void removeMetierSeasonInfo(Metier metier, MetierSeasonInfo info) { - if (log.isDebugEnabled()) { - log.debug("removeMetierSeasonInfo called"); - } - try { - metier.removeMetierSeasonInfo(info); - metier.update(); - - // EC-20091112 : commit() twice cause hibernate error: - // Found two representations of same collection: - //metier.getTopiaContext().commitTransaction(); - - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't remove MetierSeasonInfo", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", - "MetierSeasonInfo"), eee); - } - } - - public void createRecruitmentDistribution(Population pop) { - if (log.isTraceEnabled()) { - log.trace("createRecruitmentDistributionon called: " + pop); - } - try { - String val = JOptionPane - .showInputDialog(t("isisfish.message.recruitment.number.month")); - int num = -1; - if (val != null && !"".equals(val)) { - try { - num = Integer.parseInt(val); - } catch (RuntimeException eee) { - if (log.isWarnEnabled()) { - log.warn("Can't parse val: " + val, eee); - } - } - } - - if (num > 0) { - List<String> sem = new ArrayList<String>(num); - for (int i = 0; i < num; i++) { - sem.add(t("isisfish.common.month", i)); - } - MatrixND newMat = MatrixFactory.getInstance().create( - new List[] { sem }); - - MatrixND mat = pop.getRecruitmentDistribution(); - if (mat != null) { - newMat.paste(mat); - } - pop.setRecruitmentDistribution(newMat); - pop.update(); - } - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't remove RecruitmentDistribution", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", - "RecruitmentDistribution"), eee); - } - } - - public void createObservationValueMatrix(Observation observation) { - try { - String val = JOptionPane.showInputDialog(t("isisfish.message.observation.value.dimensions")); - - if (StringUtils.isNotBlank(val)) { - String[] values = val.trim().split("(,|;|\\*|x|\\s)"); - - List<Integer> dims = new ArrayList<Integer>(); - for (String value : values) { - if (!value.isEmpty() && StringUtils.isNumeric(value)) { - dims.add(Integer.valueOf(value)); - } - } - - int[] dim = new int[dims.size()]; - for (int i = 0; i < dims.size(); i++) { - dim[i] = dims.get(i).intValue(); - } - MatrixND newMat = MatrixFactory.getInstance().create(dim); - - MatrixND mat = observation.getValue(); - if (mat != null) { - newMat.paste(mat); - } - observation.setValue(newMat); - observation.update(); - } - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't remove RecruitmentDistribution", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", - "RecruitmentDistribution"), eee); - } - } - - // Migration - - public Object addMigration(PopulationSeasonInfo info, - PopulationGroup group, Zone departure, Zone arrival, double coeff) { - if (log.isTraceEnabled()) { - log.trace("addMigration called"); - } - try { - MatrixND mat = info.getMigrationMatrix().copy(); - mat.setValue(group, departure, arrival, coeff); - info.setMigrationMatrix(mat); - - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't add migration", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", - "Migration"), eee); - } - return null; - } - - public Object addEmigration(PopulationSeasonInfo info, - PopulationGroup group, Zone departure, double coeff) { - if (log.isTraceEnabled()) { - log.trace("addEmigration called"); - } - try { - MatrixND mat = info.getEmigrationMatrix().copy(); - mat.setValue(group, departure, coeff); - info.setEmigrationMatrix(mat); - - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't add emigration", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", - "Emigration"), eee); - } - return null; - } - - public Object addImmigration(PopulationSeasonInfo info, - PopulationGroup group, Zone arrival, double coeff) { - if (log.isTraceEnabled()) { - log.trace("addImmigration called"); - } - try { - MatrixND mat = info.getImmigrationMatrix().copy(); - mat.setValue(group, arrival, coeff); - info.setImmigrationMatrix(mat); - - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't add immigration", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", - "Immigration"), eee); - } - return null; - } - - /** - * Add new map in region. - * - * Since isis-fsih 3.3.0.0, this method supports a multiple file format : - * - http://openmap.bbn.com/cgi-bin/faqw.py?req=all#9.1 - * - * @param fisheryRegion fishery region - */ - public void addMap(FisheryRegion fisheryRegion) { - if (log.isTraceEnabled()) { - log.trace("AddMap called"); - } - - // Openmap suported fileformat - String[] fileFormats = { - // ESRI (http://www.esri.com) Shapefiles - ".*\\.shp", "ESRI Shapefiles (.shp)", - - // NIMA (http://www.nima.mil) - ".*\\.dcw", "Digital Chart of the World (.dcw)", - ".*\\.vpf", "Vector Product Format (.vpf)", - ".*\\.vmap", "Vector Map (.vmap)", - ".*\\.cadrg", "Compressed ARC Digitized Raster Graphics (.cadrg)", - ".*\\.cib", "Controlled Image Base (.cib)", - ".*\\.rpf", "Raster Product Format (.rpf)", - // seams to be a special format with multiples files - //".*\\.dt[0-2]+", "Digital Terrain Elevation Data (levels 0, 1, 2) (.dt0, .dt0, .dt2)", - - // MapInfo (http://www.mapinfo.com) files (.mif) - ".*\\.mif", "MapInfo (.mif)", - - // ArcInfo (.e00) files. - ".*\\.e00", "ArcInfo (.e00)" - }; - - File inputMap = FileUtil.getFile(fileFormats); - try { - if (inputMap != null) { - - // copy inputMapFormat to region map directory - // since isis-fsih-3.3.0.0, we store maps with extension - String filename = inputMap.getName(); - - RegionStorage regionStorage = RegionStorage.getRegion(fisheryRegion.getName()); - File destDir = regionStorage.getMapRepository(); - - // copy map file - File destMap = new File(destDir, filename); - FileUtils.copyFile(inputMap, destMap); - - List<String> maps = fisheryRegion.getMapFileList(); - maps.add(filename); - fisheryRegion.setMapFileList(maps); - } - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't copy map file for : " + inputMap, eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.region.addmap"), eee); - } - } - - /** - * Remove map in a region. - * - * @param fisheryRegion fishery region - * @param selectedMaps la liste de map a retirer - */ - public void removeMap(FisheryRegion fisheryRegion, List<String> selectedMaps) { - if (log.isTraceEnabled()) { - log.trace("removeMap called"); - } - - try { - List<String> maps = fisheryRegion.getMapFileList(); - - RegionStorage regionStorage = RegionStorage.getRegion(fisheryRegion.getName()); - File mapDir = regionStorage.getMapRepository(); - - for (String mapName : selectedMaps) { - maps.remove(mapName); - // remove on disk too, if possible - File mapFile = new File(mapDir, mapName); - mapFile.delete(); - if (log.isDebugEnabled()) { - log.debug("Removing map file : " + mapFile); - } - - // special case, for some format, an index is created - if (mapName.endsWith(".shp")) { - String indexName = mapName.replaceAll("\\.shp$", ".ssx"); - File indexFile = new File(mapDir, indexName); - indexFile.delete(); - if (log.isDebugEnabled()) { - log.debug("Removing index file : " + indexFile); - } - } - } - - fisheryRegion.setMapFileList(maps); - - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error("Can't remove map", eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.region.removemap"), - eee); - } - } - - /* - * Affiche une boite de dialogue demandant a l'utilisateur de rentrer - * un nom de fichier, et met ce nom dans la textField. - * Passe le saveButton en enabled pour marque que la region a ete modifié - * - * @param cellFile file of cells - * - public void loadCellFile(String cellFile) { - if (log.isWarnEnabled()) { - log.warn("loadCell called but not implemented"); - } - // FIXME todo loadCellFile - }*/ - - public void saveFisheryRegion(FisheryRegion fisheryRegion) { - if (log.isTraceEnabled()) { - log.trace("save called"); - } - try { - TopiaContext isisContext = fisheryRegion.getTopiaContext(); - - // frame.setInfoText(t("isisfish.message.checking.cell")); - int latNumber = (int) Math - .round((fisheryRegion.getMaxLatitude() - fisheryRegion - .getMinLatitude()) - / fisheryRegion.getCellLengthLatitude()); - int lonNumber = (int) Math - .round((fisheryRegion.getMaxLongitude() - fisheryRegion - .getMinLongitude()) - / fisheryRegion.getCellLengthLongitude()); - - // frame.setProgressMin(0); - // frame.setProgressMax(latNumber * lonNumber); - int progresscpt = 0; - - // il faut peut-etre creer ou supprimer des mailles - CellPointcomparator cellPointcomparator = new CellPointcomparator(); - CellDAO cellPS = IsisFishDAOHelper.getCellDAO(isisContext); - List<Cell> cells = cellPS.findAll(); - Collections.sort(cells, cellPointcomparator); - Point2D.Float point = new Point2D.Float(); - - for (float lati = fisheryRegion.getMinLatitude(); lati < fisheryRegion - .getMaxLatitude(); lati += fisheryRegion - .getCellLengthLatitude()) { - lati = Math.round(lati * 1000f); - lati = lati / 1000.0f; - for (float longi = fisheryRegion.getMinLongitude(); longi < fisheryRegion - .getMaxLongitude(); longi += fisheryRegion - .getCellLengthLongitude()) { - longi = Math.round(longi * 1000f) / 1000.0f; - point.setLocation(lati, longi); - int position = Collections.binarySearch(cells, point, - cellPointcomparator); - if (position >= 0) { - // deja existant on l'enleve de la liste, et on ne cree rien - cells.remove(position); - } else { - // n'existe pas on la cree - Cell cell = cellPS.create(); - cell.setName("La" + lati + "Lo" + longi); - cell.setLatitude(lati); - cell.setLongitude(longi); - cell.setLand(false); - cell.update(); - } - // frame.setProgressValue(++progresscpt); - } - } - - // on est pas en autoUpdate donc il faut faire le update avant le commit - fisheryRegion.update(); - - // toutes les mailles restantes dans la liste sont des mailles en trop - // on les supprimes - - progresscpt = 0; - for (Cell cell : cells) { - // FIXME il faudrait aussi rechercher les objets dependants - // des mailles que l'on va supprimer et demander confirmation - // a l'utilisateur qu'il souhaite reellement supprimer tous - // ces objets. Si ce n'est pas le cas, on sort tout de suite - // avant le commit - cellPS.delete(cell); - } - isisContext.commitTransaction(); - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error(t("isisfish.error.region.save"), eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.region.save"), eee); - } - } - - public void checkFisheryRegion(FisheryRegion fisheryRegion) { - try { - if (log.isTraceEnabled()) { - log.trace("check called: "); - } - CheckResult result = new CheckResult(); - CheckRegion.check(fisheryRegion, result); - CheckResultFrame dialog = new CheckResultFrame(); - dialog.setCheckResult(result); - SwingUtil.center(dialog); - dialog.setVisible(true); - } catch (Exception eee) { - if (log.isErrorEnabled()) { - log.error(t("isisfish.error.region.check"), eee); - } - ErrorHelper.showErrorDialog(t("isisfish.error.region.check"), eee); - } - } -} Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx 2015-05-20 13:37:54 UTC (rev 4230) @@ -99,9 +99,6 @@ } -public InputAction getAction() { - return getContextValue(InputAction.class); -} public InputSaveVerifier getSaveVerifier() { return getContextValue(InputSaveVerifier.class); } Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/InputOneEquationHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/InputOneEquationHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/equation/InputOneEquationHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -33,6 +33,7 @@ import java.util.List; import javax.swing.DefaultComboBoxModel; +import javax.swing.JOptionPane; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; @@ -41,12 +42,14 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaContext; import org.nuiton.util.FileUtil; +import org.nuiton.widget.editor.Editor; +import fr.ifremer.isisfish.datastore.FormuleStorage; 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; +import fr.ifremer.isisfish.ui.util.ErrorHelper; /** * Equation handler. @@ -187,7 +190,7 @@ 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); + formules = FormuleStorage.getFormules(isisContext, inputContentUI.formuleCategory); GenericComboModel<Formule> formulesModel = new GenericComboModel<>(formules); inputContentUI.formuleComboBox.setModel(formulesModel); // fix default selection @@ -197,24 +200,76 @@ } protected void saveModel() { - inputContentUI.getContextValue(InputAction.class).saveAsModel(inputContentUI.formuleCategory, "Java", inputContentUI.editor.getText()); + saveAsModel(inputContentUI.formuleCategory, "Java", inputContentUI.editor.getText()); setComboModel(); inputContentUI.setInfoText(t("isisfish.message.saveModel.finished")); } + + /** + * Save an Equation as model, to reuse it for other equation + * + * @param category category for this equation + * @param language equation to put in models + * @param content content ? + */ + protected void saveAsModel(String category, String language, String content) { + try { + String name = JOptionPane + .showInputDialog(t("isisfish.message.saveModel.dialog")); + /*if ("".equals(name)) { + showMsgBox("Error " +t("isisfish.error.invalid.equation.name")); + }*/ + if (name != null) { + FormuleStorage storage = FormuleStorage.createFormule(category, + name, language); + storage.setContent(content); + } + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't save equation as model", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.equation.savemodel"), + eee); + } + } + /** * 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(), + openEditor(inputContentUI, e.getCategory(), e.getName(), inputContentUI.clazz, e.getContent(), inputContentUI.editor); } else { - inputContentUI.getContextValue(InputAction.class).openEditor(inputContentUI, inputContentUI.formuleCategory, + openEditor(inputContentUI, inputContentUI.formuleCategory, "new", inputContentUI.clazz, inputContentUI.editor.getText(), inputContentUI.editor); } } + + public void openEditor(InputOneEquationUI ui, String category, String name, Class<?> javaInterface, + String content, Editor editor) { + if (log.isTraceEnabled()) { + log.trace("openEditor"); + } + try { + EquationEditorPaneUI pane = new EquationEditorPaneUI(ui); + pane.getHandler().setEquation(category, name, javaInterface, content); + pane.setLocationRelativeTo(ui); + pane.setVisible(true); // blocking call + if (pane.isResultOk() && editor != null) { + editor.setText(pane.getEditor().getText()); + } + pane.dispose(); + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't open editor", eee); + } + ErrorHelper.showErrorDialog( + t("isisfish.error.equation.openeditor"), eee); + } + } protected void setEditorText() { if (inputContentUI.getFormule() != null) { Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/fisheryregion/FisheryRegionHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/fisheryregion/FisheryRegionHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/fisheryregion/FisheryRegionHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -26,19 +26,34 @@ import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; +import java.awt.geom.Point2D; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.io.File; +import java.util.Collections; import java.util.List; import javax.swing.DefaultListModel; +import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.TopiaContext; +import org.nuiton.util.FileUtil; +import org.nuiton.widget.SwingUtil; +import fr.ifremer.isisfish.IsisFishDAOHelper; +import fr.ifremer.isisfish.datastore.RegionStorage; +import fr.ifremer.isisfish.entities.Cell; +import fr.ifremer.isisfish.entities.CellDAO; import fr.ifremer.isisfish.entities.FisheryRegion; -import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.input.InputContentHandler; import fr.ifremer.isisfish.ui.input.InputUI; +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.util.ErrorHelper; +import fr.ifremer.isisfish.util.CellPointcomparator; /** * FisheryRegion handler. @@ -84,10 +99,6 @@ inputContentUI.setBean(region); } - protected InputAction getInputAction() { - return inputContentUI.getContextValue(InputAction.class); - } - protected void setFieldMapfilesModel(FisheryRegion region) { DefaultListModel<String> model = new DefaultListModel<>(); List<String> mapList = region.getMapFileList(); @@ -102,23 +113,152 @@ } protected void addMap() { - getInputAction().addMap(inputContentUI.getBean()); + addMap(inputContentUI.getBean()); setFieldMapfilesModel(inputContentUI.getBean()); } protected void delMap() { - getInputAction().removeMap(inputContentUI.getBean(), inputContentUI.fieldMapfiles.getSelectedValuesList()); + removeMap(inputContentUI.getBean(), inputContentUI.fieldMapfiles.getSelectedValuesList()); setFieldMapfilesModel(inputContentUI.getBean()); } + + /** + * Add new map in region. + * + * Since isis-fsih 3.3.0.0, this method supports a multiple file format : + * - http://openmap.bbn.com/cgi-bin/faqw.py?req=all#9.1 + * + * @param fisheryRegion fishery region + */ + public void addMap(FisheryRegion fisheryRegion) { + if (log.isTraceEnabled()) { + log.trace("AddMap called"); + } + // Openmap suported fileformat + String[] fileFormats = { + // ESRI (http://www.esri.com) Shapefiles + ".*\\.shp", "ESRI Shapefiles (.shp)", + + // NIMA (http://www.nima.mil) + ".*\\.dcw", "Digital Chart of the World (.dcw)", + ".*\\.vpf", "Vector Product Format (.vpf)", + ".*\\.vmap", "Vector Map (.vmap)", + ".*\\.cadrg", "Compressed ARC Digitized Raster Graphics (.cadrg)", + ".*\\.cib", "Controlled Image Base (.cib)", + ".*\\.rpf", "Raster Product Format (.rpf)", + // seams to be a special format with multiples files + //".*\\.dt[0-2]+", "Digital Terrain Elevation Data (levels 0, 1, 2) (.dt0, .dt0, .dt2)", + + // MapInfo (http://www.mapinfo.com) files (.mif) + ".*\\.mif", "MapInfo (.mif)", + + // ArcInfo (.e00) files. + ".*\\.e00", "ArcInfo (.e00)" + }; + + File inputMap = FileUtil.getFile(fileFormats); + try { + if (inputMap != null) { + + // copy inputMapFormat to region map directory + // since isis-fsih-3.3.0.0, we store maps with extension + String filename = inputMap.getName(); + + RegionStorage regionStorage = RegionStorage.getRegion(fisheryRegion.getName()); + File destDir = regionStorage.getMapRepository(); + + // copy map file + File destMap = new File(destDir, filename); + FileUtils.copyFile(inputMap, destMap); + + List<String> maps = fisheryRegion.getMapFileList(); + maps.add(filename); + fisheryRegion.setMapFileList(maps); + } + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't copy map file for : " + inputMap, eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.region.addmap"), eee); + } + } + + /** + * Remove map in a region. + * + * @param fisheryRegion fishery region + * @param selectedMaps la liste de map a retirer + */ + public void removeMap(FisheryRegion fisheryRegion, List<String> selectedMaps) { + if (log.isTraceEnabled()) { + log.trace("removeMap called"); + } + + try { + List<String> maps = fisheryRegion.getMapFileList(); + + RegionStorage regionStorage = RegionStorage.getRegion(fisheryRegion.getName()); + File mapDir = regionStorage.getMapRepository(); + + for (String mapName : selectedMaps) { + maps.remove(mapName); + // remove on disk too, if possible + File mapFile = new File(mapDir, mapName); + mapFile.delete(); + if (log.isDebugEnabled()) { + log.debug("Removing map file : " + mapFile); + } + + // special case, for some format, an index is created + if (mapName.endsWith(".shp")) { + String indexName = mapName.replaceAll("\\.shp$", ".ssx"); + File indexFile = new File(mapDir, indexName); + indexFile.delete(); + if (log.isDebugEnabled()) { + log.debug("Removing index file : " + indexFile); + } + } + } + + fisheryRegion.setMapFileList(maps); + + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't remove map", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.region.removemap"), + eee); + } + } + /*protected void cellFile() { getInputAction().loadCellFile(fieldCellFile.getText()); }*/ protected void check() { - inputContentUI.getContextValue(InputAction.class).checkFisheryRegion(inputContentUI.getBean()); + checkFisheryRegion(inputContentUI.getBean()); inputContentUI.setInfoText(t("isisfish.message.check.finished")); } + + public void checkFisheryRegion(FisheryRegion fisheryRegion) { + try { + if (log.isTraceEnabled()) { + log.trace("check called: "); + } + CheckResult result = new CheckResult(); + CheckRegion.check(fisheryRegion, result); + CheckResultFrame dialog = new CheckResultFrame(); + dialog.setCheckResult(result); + SwingUtil.center(dialog); + dialog.setVisible(true); + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error(t("isisfish.error.region.check"), eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.region.check"), eee); + } + } protected void save() { inputContentUI.setInfoText(t("isisfish.message.checking.cell")); @@ -128,7 +268,7 @@ inputContentUI.getSaveVerifier().reset(); // save generating cells - getInputAction().saveFisheryRegion(inputContentUI.getBean()); + saveFisheryRegion(inputContentUI.getBean()); // reload tree InputUI inputUI = inputContentUI.getParentContainer(InputUI.class); @@ -136,4 +276,84 @@ inputContentUI.setInfoText(t("isisfish.message.save.finished")); } + + public void saveFisheryRegion(FisheryRegion fisheryRegion) { + if (log.isTraceEnabled()) { + log.trace("save called"); + } + try { + TopiaContext isisContext = fisheryRegion.getTopiaContext(); + + // frame.setInfoText(t("isisfish.message.checking.cell")); + int latNumber = (int) Math + .round((fisheryRegion.getMaxLatitude() - fisheryRegion + .getMinLatitude()) + / fisheryRegion.getCellLengthLatitude()); + int lonNumber = (int) Math + .round((fisheryRegion.getMaxLongitude() - fisheryRegion + .getMinLongitude()) + / fisheryRegion.getCellLengthLongitude()); + + // frame.setProgressMin(0); + // frame.setProgressMax(latNumber * lonNumber); + int progresscpt = 0; + + // il faut peut-etre creer ou supprimer des mailles + CellPointcomparator cellPointcomparator = new CellPointcomparator(); + CellDAO cellPS = IsisFishDAOHelper.getCellDAO(isisContext); + List<Cell> cells = cellPS.findAll(); + Collections.sort(cells, cellPointcomparator); + Point2D.Float point = new Point2D.Float(); + + for (float lati = fisheryRegion.getMinLatitude(); lati < fisheryRegion + .getMaxLatitude(); lati += fisheryRegion + .getCellLengthLatitude()) { + lati = Math.round(lati * 1000f); + lati = lati / 1000.0f; + for (float longi = fisheryRegion.getMinLongitude(); longi < fisheryRegion + .getMaxLongitude(); longi += fisheryRegion + .getCellLengthLongitude()) { + longi = Math.round(longi * 1000f) / 1000.0f; + point.setLocation(lati, longi); + int position = Collections.binarySearch(cells, point, + cellPointcomparator); + if (position >= 0) { + // deja existant on l'enleve de la liste, et on ne cree rien + cells.remove(position); + } else { + // n'existe pas on la cree + Cell cell = cellPS.create(); + cell.setName("La" + lati + "Lo" + longi); + cell.setLatitude(lati); + cell.setLongitude(longi); + cell.setLand(false); + cell.update(); + } + // frame.setProgressValue(++progresscpt); + } + } + + // on est pas en autoUpdate donc il faut faire le update avant le commit + fisheryRegion.update(); + + // toutes les mailles restantes dans la liste sont des mailles en trop + // on les supprimes + + progresscpt = 0; + for (Cell cell : cells) { + // FIXME il faudrait aussi rechercher les objets dependants + // des mailles que l'on va supprimer et demander confirmation + // a l'utilisateur qu'il souhaite reellement supprimer tous + // ces objets. Si ce n'est pas le cas, on sort tout de suite + // avant le commit + cellPS.delete(cell); + } + isisContext.commitTransaction(); + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error(t("isisfish.error.region.save"), eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.region.save"), eee); + } + } } Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/gear/SelectivityHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/gear/SelectivityHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/gear/SelectivityHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -23,6 +23,8 @@ package fr.ifremer.isisfish.ui.input.gear; +import static org.nuiton.i18n.I18n.t; + import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; @@ -31,12 +33,16 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import fr.ifremer.isisfish.IsisFishDAOHelper; import fr.ifremer.isisfish.entities.Equation; +import fr.ifremer.isisfish.entities.Gear; import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.Selectivity; +import fr.ifremer.isisfish.entities.SelectivityDAO; import fr.ifremer.isisfish.entities.Species; import fr.ifremer.isisfish.ui.input.InputContentHandler; import fr.ifremer.isisfish.ui.models.common.GenericComboModel; +import fr.ifremer.isisfish.ui.util.ErrorHelper; import fr.ifremer.isisfish.ui.widget.editor.EquationTableEditor; /** @@ -108,7 +114,7 @@ } protected void addSelectivity() { - inputContentUI.getAction().addSelectivity(inputContentUI.getPopulation(), + addSelectivity(inputContentUI.getPopulation(), inputContentUI.selectivityEquation.getEditor().getText(), inputContentUI.getBean()); setSelectivityTableModel(); } @@ -116,12 +122,53 @@ protected void removeSelectivity() { GearPopulationSelectivityModel model = (GearPopulationSelectivityModel)inputContentUI.selectivityTable.getModel(); Selectivity selectedSelectivity = model.getSelectivities().get(inputContentUI.selectivityTable.getSelectedRow()); - inputContentUI.getAction().removeSelectivity(inputContentUI.getBean(), selectedSelectivity); + removeSelectivity(inputContentUI.getBean(), selectedSelectivity); inputContentUI.getSaveVerifier().removeCurrentEntity(selectedSelectivity.getTopiaId()); setSelectivityTableModel(); inputContentUI.removeSelectivityButton.setEnabled(false); } + + protected void addSelectivity(Population pop, String equation, Gear gear) { + try { + SelectivityDAO dao = IsisFishDAOHelper.getSelectivityDAO(pop + .getTopiaContext()); + Selectivity selectivity = dao.create(); + + selectivity.setGear(gear); + selectivity.setPopulation(pop); + selectivity.getEquation().setContent(equation); + selectivity.update(); + + gear.addPopulationSelectivity(selectivity); + gear.update(); + + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't add selectivity", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", + "Selectivity"), eee); + } + } + + protected void removeSelectivity(Gear gear, Selectivity selectivity) { + if (log.isTraceEnabled()) { + log.trace("removeSelectivity called: " + selectivity); + } + try { + if (gear != null && selectivity != null) { + gear.removePopulationSelectivity(selectivity); + } + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't remove TargetSpecies", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", + "Selectivity"), eee); + } + } + protected GenericComboModel<Population> getSelectivityPopulationModel() { List<Species> species = inputContentUI.getFisheryRegion().getSpecies(); List<Population> populations = new ArrayList<>(); Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoSpeciesHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoSpeciesHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoSpeciesHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -23,18 +23,26 @@ package fr.ifremer.isisfish.ui.input.metier; +import static org.nuiton.i18n.I18n.t; + import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import fr.ifremer.isisfish.IsisFishDAOHelper; import fr.ifremer.isisfish.entities.Equation; +import fr.ifremer.isisfish.entities.Metier; import fr.ifremer.isisfish.entities.MetierSeasonInfo; import fr.ifremer.isisfish.entities.Species; import fr.ifremer.isisfish.entities.TargetSpecies; -import fr.ifremer.isisfish.ui.input.InputAction; +import fr.ifremer.isisfish.entities.TargetSpeciesDAO; import fr.ifremer.isisfish.ui.input.InputContentHandler; import fr.ifremer.isisfish.ui.models.common.GenericComboModel; +import fr.ifremer.isisfish.ui.util.ErrorHelper; import fr.ifremer.isisfish.ui.widget.editor.EquationTableEditor; /** @@ -42,6 +50,9 @@ */ public class MetierSeasonInfoSpeciesHandler extends InputContentHandler<MetierSeasonInfoSpeciesUI> { + /** Class logger. */ + private static final Log log = LogFactory.getLog(MetierSeasonInfoSpeciesHandler.class); + protected void init(final MetierSeasonInfoSpeciesUI inputContentUI) { super.init(inputContentUI); @@ -118,7 +129,7 @@ if (selectedSpecies != null) { // il n'y en a pas a la creation de la base //Formule selectedFormule = (Formule)targetFactor.getFormuleComboBox().getSelectedItem(); - inputContentUI.getContextValue(InputAction.class).addTargetSpecies( + addTargetSpecies( inputContentUI.getBean(), inputContentUI.getMetierSeasonInfo(), selectedSpecies, @@ -135,9 +146,60 @@ Object o = targetSpecies[inputContentUI.tableTargetSpecies.getSelectedRow()]; if (o != null) { TargetSpecies ts = (TargetSpecies)o; - inputContentUI.getAction().removeTargetSpecies(inputContentUI.getMetierSeasonInfo(), ts); + removeTargetSpecies(inputContentUI.getMetierSeasonInfo(), ts); inputContentUI.getSaveVerifier().removeCurrentEntity(ts.getTopiaId()); setTableTargetSpeciesModel(); } } + + public void addTargetSpecies(Metier metier, MetierSeasonInfo m, + Species species, String targetFactorEquationContent, + boolean primaryCatch) { + if (log.isDebugEnabled()) { + log.debug("addTargetSpecies called: " + metier + " " + species + + " " + primaryCatch + " " + targetFactorEquationContent); + } + try { + // build targetFactorEquation name + String targetFactorEquationName = metier.getName() + "-" + + species.getName() + "(" + m.getFirstMonth() + "-" + + m.getLastMonth() + ")"; + + TargetSpeciesDAO dao = IsisFishDAOHelper.getTargetSpeciesDAO(metier + .getTopiaContext()); + TargetSpecies targetSpecies = dao.create(); + + targetSpecies.setSpecies(species); + targetSpecies.getTargetFactorEquation().setName( + targetFactorEquationName); + targetSpecies.getTargetFactorEquation().setContent( + targetFactorEquationContent); + targetSpecies.setPrimaryCatch(primaryCatch); + m.addSpeciesTargetSpecies(targetSpecies); + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't add TargetSpecies", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", + "TargetSpecies"), eee); + } + } + + public void removeTargetSpecies(MetierSeasonInfo m, + TargetSpecies targetSpecies) { + if (log.isDebugEnabled()) { + log.debug("removeTargetSpecies called: " + targetSpecies); + } + try { + if (targetSpecies != null) { + m.removeSpeciesTargetSpecies(targetSpecies); + } + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't remove TargetSpecies", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", + "TargetSpecies"), eee); + } + } } Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoZoneHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoZoneHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/metier/MetierSeasonInfoZoneHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -23,6 +23,8 @@ package fr.ifremer.isisfish.ui.input.metier; +import static org.nuiton.i18n.I18n.t; + import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; @@ -32,14 +34,19 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.TopiaException; +import fr.ifremer.isisfish.IsisFishDAOHelper; +import fr.ifremer.isisfish.IsisFishRuntimeException; +import fr.ifremer.isisfish.entities.Metier; import fr.ifremer.isisfish.entities.MetierSeasonInfo; +import fr.ifremer.isisfish.entities.MetierSeasonInfoDAO; import fr.ifremer.isisfish.entities.Zone; import fr.ifremer.isisfish.types.Month; -import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.input.InputContentHandler; import fr.ifremer.isisfish.ui.models.common.GenericComboModel; import fr.ifremer.isisfish.ui.models.common.GenericListModel; +import fr.ifremer.isisfish.ui.util.ErrorHelper; import fr.ifremer.isisfish.ui.widget.Interval; /** @@ -96,17 +103,59 @@ } protected void create() { - MetierSeasonInfo newMSI = inputContentUI.getContextValue(InputAction.class).createMetierSeasonInfo(inputContentUI.getBean()); + MetierSeasonInfo newMSI = createMetierSeasonInfo(inputContentUI.getBean()); inputContentUI.setMetierSeasonInfo(newMSI); setMetierSeasonInfoCombo(); } protected void delete() { - inputContentUI.getContextValue(InputAction.class).removeMetierSeasonInfo(inputContentUI.getBean(), inputContentUI.getMetierSeasonInfo()); + removeMetierSeasonInfo(inputContentUI.getBean(), inputContentUI.getMetierSeasonInfo()); inputContentUI.setMetierSeasonInfo(null); setMetierSeasonInfoCombo(); } + public MetierSeasonInfo createMetierSeasonInfo(Metier metier) { + MetierSeasonInfo metierSeasonInfo = null; + if (log.isDebugEnabled()) { + log.debug("createMetierSeasonInfo called"); + } + try { + MetierSeasonInfoDAO metierSeasonInfoPS = IsisFishDAOHelper + .getMetierSeasonInfoDAO(metier.getTopiaContext()); + metierSeasonInfo = metierSeasonInfoPS.create(); + metierSeasonInfo.setFirstMonth(Month.MONTH[0]); + metierSeasonInfo.setLastMonth(Month.MONTH[3]); + metier.addMetierSeasonInfo(metierSeasonInfo); + metierSeasonInfo.update(); + metier.update(); + + } catch (TopiaException eee) { + throw new IsisFishRuntimeException("Can't create MetierSeasonInfo", eee); + } + return metierSeasonInfo; + } + + public void removeMetierSeasonInfo(Metier metier, MetierSeasonInfo info) { + if (log.isDebugEnabled()) { + log.debug("removeMetierSeasonInfo called"); + } + try { + metier.removeMetierSeasonInfo(info); + metier.update(); + + // EC-20091112 : commit() twice cause hibernate error: + // Found two representations of same collection: + //metier.getTopiaContext().commitTransaction(); + + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't remove MetierSeasonInfo", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", + "MetierSeasonInfo"), eee); + } + } + public void refresh() { inputContentUI.setMetierSeasonInfo(null); Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/observation/ObservationHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/observation/ObservationHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/observation/ObservationHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -23,19 +23,35 @@ package fr.ifremer.isisfish.ui.input.observation; +import static org.nuiton.i18n.I18n.t; + import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.ArrayList; +import java.util.List; +import javax.swing.JOptionPane; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.math.matrix.MatrixFactory; import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.gui.MatrixPanelEvent; +import fr.ifremer.isisfish.entities.Observation; import fr.ifremer.isisfish.ui.input.InputContentHandler; +import fr.ifremer.isisfish.ui.input.metier.MetierSeasonInfoSpeciesHandler; +import fr.ifremer.isisfish.ui.util.ErrorHelper; /** * Observation handler. */ public class ObservationHandler extends InputContentHandler<ObservationUI> { + /** Class logger. */ + private static final Log log = LogFactory.getLog(ObservationHandler.class); + protected void init(final ObservationUI inputContentUI) { super.init(inputContentUI); @@ -61,10 +77,46 @@ } protected void createObservationValueMatrix() { - inputContentUI.getAction().createObservationValueMatrix(inputContentUI.getBean()); + createObservationValueMatrix(inputContentUI.getBean()); setObservationValueMatrix(); } + + public void createObservationValueMatrix(Observation observation) { + try { + String val = JOptionPane.showInputDialog(t("isisfish.message.observation.value.dimensions")); + if (StringUtils.isNotBlank(val)) { + String[] values = val.trim().split("(,|;|\\*|x|\\s)"); + + List<Integer> dims = new ArrayList<Integer>(); + for (String value : values) { + if (!value.isEmpty() && StringUtils.isNumeric(value)) { + dims.add(Integer.valueOf(value)); + } + } + + int[] dim = new int[dims.size()]; + for (int i = 0; i < dims.size(); i++) { + dim[i] = dims.get(i).intValue(); + } + MatrixND newMat = MatrixFactory.getInstance().create(dim); + + MatrixND mat = observation.getValue(); + if (mat != null) { + newMat.paste(mat); + } + observation.setValue(newMat); + observation.update(); + } + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't remove RecruitmentDistribution", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", + "RecruitmentDistribution"), eee); + } + } + protected void observationValueMatrixChanged(MatrixPanelEvent event) { MatrixND mat = inputContentUI.fieldObservationValue.getMatrix(); if (inputContentUI.getBean() != null && mat != null) { Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -34,10 +34,17 @@ import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; + +import fr.ifremer.isisfish.IsisFishDAOHelper; +import fr.ifremer.isisfish.IsisFishRuntimeException; import fr.ifremer.isisfish.entities.Population; +import fr.ifremer.isisfish.entities.PopulationDAO; import fr.ifremer.isisfish.entities.PopulationGroup; import fr.ifremer.isisfish.entities.Species; -import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.input.InputContentHandler; import fr.ifremer.isisfish.ui.input.InputUI; import jaxx.runtime.JAXXUtil; @@ -47,6 +54,9 @@ */ public class PopulationBasicsHandler extends InputContentHandler<PopulationBasicsUI> { + /** Class logger. */ + private static final Log log = LogFactory.getLog(PopulationBasicsHandler.class); + protected void init(final PopulationBasicsUI inputContentUI) { super.init(inputContentUI); @@ -130,8 +140,30 @@ InputUI inputUI = inputContentUI.getContextValue(InputUI.class, JAXXUtil.PARENT); Species species = inputUI.getHandler().findSpecies(inputUI); // create node and select it - Population population = inputContentUI.getContextValue(InputAction.class).createPopulation(inputContentUI.getTopiaContext(), species); + Population population = createPopulation(inputContentUI.getTopiaContext(), species); inputUI.getHandler().insertTreeNode(inputUI, Population.class, population); inputContentUI.setInfoText(t("isisfish.message.creation.finished")); } + + protected Population createPopulation(TopiaContext context, Species species) { + Population pop = null; + if (log.isTraceEnabled()) { + log.trace("createPopulation called"); + } + try { + String name = "Population_new"; + + PopulationDAO dao = IsisFishDAOHelper.getPopulationDAO(context); + pop = dao.create(); + pop.setName(name); + + species.addPopulation(pop); + pop.setSpecies(species); + species.update(); + pop.update(); + } catch (TopiaException eee) { + throw new IsisFishRuntimeException(t("isisfish.error.input.addentity", "Population"), eee); + } + return pop; + } } Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationEmigrationHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationEmigrationHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationEmigrationHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -23,24 +23,31 @@ package fr.ifremer.isisfish.ui.input.population; +import static org.nuiton.i18n.I18n.t; + import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.gui.MatrixPanelEvent; import fr.ifremer.isisfish.entities.PopulationGroup; import fr.ifremer.isisfish.entities.PopulationSeasonInfo; import fr.ifremer.isisfish.entities.Zone; -import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.input.InputContentHandler; import fr.ifremer.isisfish.ui.models.common.GenericComboModel; +import fr.ifremer.isisfish.ui.util.ErrorHelper; /** * Population handler. */ public class PopulationMigrationEmigrationHandler extends InputContentHandler<PopulationMigrationEmigrationUI> { + /** Class logger. */ + private static final Log log = LogFactory.getLog(PopulationMigrationEmigrationHandler.class); + protected void init(final PopulationMigrationEmigrationUI inputContentUI) { super.init(inputContentUI); @@ -94,13 +101,33 @@ } protected void add() { - inputContentUI.getContextValue(InputAction.class).addEmigration(inputContentUI.getPopInfo(), + addEmigration(inputContentUI.getPopInfo(), (PopulationGroup)inputContentUI.fieldPopulationMigrationEmigrationGroupChooser.getSelectedItem(), (Zone)inputContentUI.fieldPopulationMigrationEmigrationDepartureZoneChooser.getSelectedItem(), Double.parseDouble(inputContentUI.fieldPopulationMigrationEmigrationCoefficient.getText())); inputContentUI.populationMigrationEmigrationTable.setMatrix(inputContentUI.getPopInfo().getEmigrationMatrix().clone()); } + + public Object addEmigration(PopulationSeasonInfo info, + PopulationGroup group, Zone departure, double coeff) { + if (log.isTraceEnabled()) { + log.trace("addEmigration called"); + } + try { + MatrixND mat = info.getEmigrationMatrix().copy(); + mat.setValue(group, departure, coeff); + info.setEmigrationMatrix(mat); + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't add emigration", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", + "Emigration"), eee); + } + return null; + } + protected void remove() { int row = inputContentUI.populationMigrationEmigrationTable.getTable().getSelectedRow(); if (row != -1) { Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationImmigrationHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationImmigrationHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationImmigrationHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -23,24 +23,31 @@ package fr.ifremer.isisfish.ui.input.population; +import static org.nuiton.i18n.I18n.t; + import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.gui.MatrixPanelEvent; import fr.ifremer.isisfish.entities.PopulationGroup; import fr.ifremer.isisfish.entities.PopulationSeasonInfo; import fr.ifremer.isisfish.entities.Zone; -import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.input.InputContentHandler; import fr.ifremer.isisfish.ui.models.common.GenericComboModel; +import fr.ifremer.isisfish.ui.util.ErrorHelper; /** * Population handler. */ public class PopulationMigrationImmigrationHandler extends InputContentHandler<PopulationMigrationImmigrationUI> { + /** Class logger. */ + private static final Log log = LogFactory.getLog(PopulationMigrationImmigrationHandler.class); + protected void init(final PopulationMigrationImmigrationUI inputContentUI) { super.init(inputContentUI); @@ -93,13 +100,33 @@ } protected void add() { - inputContentUI.getContextValue(InputAction.class).addImmigration(inputContentUI.getPopInfo(), + addImmigration(inputContentUI.getPopInfo(), (PopulationGroup)inputContentUI.fieldPopulationMigrationImmigrationGroupChooser.getSelectedItem(), (Zone)inputContentUI.fieldPopulationMigrationImmigrationArrivalZoneChooser.getSelectedItem(), Double.parseDouble(inputContentUI.fieldPopulationMigrationImmigrationCoefficient.getText())); inputContentUI.populationMigrationImmigrationTable.setMatrix(inputContentUI.getPopInfo().getImmigrationMatrix().clone()); } + + public Object addImmigration(PopulationSeasonInfo info, + PopulationGroup group, Zone arrival, double coeff) { + if (log.isTraceEnabled()) { + log.trace("addImmigration called"); + } + try { + MatrixND mat = info.getImmigrationMatrix().copy(); + mat.setValue(group, arrival, coeff); + info.setImmigrationMatrix(mat); + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't add immigration", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", + "Immigration"), eee); + } + return null; + } + protected void remove() { int row = inputContentUI.populationMigrationImmigrationTable.getTable().getSelectedRow(); if (row != -1) { Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationMigrationHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationMigrationHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationMigrationMigrationHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -23,9 +23,13 @@ package fr.ifremer.isisfish.ui.input.population; +import static org.nuiton.i18n.I18n.t; + import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.gui.MatrixPanelEvent; @@ -34,12 +38,16 @@ import fr.ifremer.isisfish.entities.Zone; import fr.ifremer.isisfish.ui.input.InputContentHandler; import fr.ifremer.isisfish.ui.models.common.GenericComboModel; +import fr.ifremer.isisfish.ui.util.ErrorHelper; /** * Population handler. */ public class PopulationMigrationMigrationHandler extends InputContentHandler<PopulationMigrationMigrationUI> { + /** Class logger. */ + private static final Log log = LogFactory.getLog(PopulationMigrationMigrationHandler.class); + protected void init(final PopulationMigrationMigrationUI inputContentUI) { super.init(inputContentUI); @@ -102,13 +110,33 @@ } protected void add() { - inputContentUI.getAction().addMigration(inputContentUI.getPopInfo(), (PopulationGroup)inputContentUI.fieldPopulationMigrationMigrationGroupChooser.getSelectedItem(), + addMigration(inputContentUI.getPopInfo(), (PopulationGroup)inputContentUI.fieldPopulationMigrationMigrationGroupChooser.getSelectedItem(), (Zone)inputContentUI.fieldPopulationMigrationMigrationDepartureZoneChooser.getSelectedItem(), (Zone)inputContentUI.fieldPopulationMigrationMigrationArrivalZoneChooser.getSelectedItem(), Double.parseDouble(inputContentUI.fieldPopulationMigrationMigrationCoefficient.getText())); inputContentUI.populationMigrationMigrationTable.setMatrix(inputContentUI.getPopInfo().getMigrationMatrix().clone()); } + + public Object addMigration(PopulationSeasonInfo info, + PopulationGroup group, Zone departure, Zone arrival, double coeff) { + if (log.isTraceEnabled()) { + log.trace("addMigration called"); + } + try { + MatrixND mat = info.getMigrationMatrix().copy(); + mat.setValue(group, departure, arrival, coeff); + info.setMigrationMatrix(mat); + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't add migration", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", + "Migration"), eee); + } + return null; + } + protected void remove() { int row = inputContentUI.populationMigrationMigrationTable.getTable().getSelectedRow(); if (row != -1) { Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationRecruitmentHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationRecruitmentHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationRecruitmentHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -23,18 +23,33 @@ package fr.ifremer.isisfish.ui.input.population; +import static org.nuiton.i18n.I18n.t; + import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.ArrayList; +import java.util.List; +import javax.swing.JOptionPane; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.math.matrix.MatrixFactory; +import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.gui.MatrixPanelEvent; +import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.ui.input.InputContentHandler; +import fr.ifremer.isisfish.ui.util.ErrorHelper; /** * Population handler. */ public class PopulationRecruitmentHandler extends InputContentHandler<PopulationRecruitmentUI> { + /** Class logger. */ + private static final Log log = LogFactory.getLog(PopulationRecruitmentHandler.class); + protected void init(final PopulationRecruitmentUI inputContentUI) { super.init(inputContentUI); @@ -58,4 +73,46 @@ } } } + + public void createRecruitmentDistribution(Population pop) { + if (log.isTraceEnabled()) { + log.trace("createRecruitmentDistributionon called: " + pop); + } + try { + String val = JOptionPane + .showInputDialog(t("isisfish.message.recruitment.number.month")); + int num = -1; + if (val != null && !"".equals(val)) { + try { + num = Integer.parseInt(val); + } catch (RuntimeException eee) { + if (log.isWarnEnabled()) { + log.warn("Can't parse val: " + val, eee); + } + } + } + + if (num > 0) { + List<String> sem = new ArrayList<String>(num); + for (int i = 0; i < num; i++) { + sem.add(t("isisfish.common.month", i)); + } + MatrixND newMat = MatrixFactory.getInstance().create( + new List[] { sem }); + + MatrixND mat = pop.getRecruitmentDistribution(); + if (mat != null) { + newMat.paste(mat); + } + pop.setRecruitmentDistribution(newMat); + pop.update(); + } + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't remove RecruitmentDistribution", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", + "RecruitmentDistribution"), eee); + } + } } 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 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationRecruitmentUI.jaxx 2015-05-20 13:37:54 UTC (rev 4230) @@ -80,7 +80,7 @@ </cell> <cell> <JButton icon="table.png" toolTipText="isisfish.common.newMatrix" - onActionPerformed="getAction().createRecruitmentDistribution(getBean())" + onActionPerformed="handler.createRecruitmentDistribution(getBean())" enabled='{isActive()}' decorator='boxed' /> </cell> </row> Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationSeasonsHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationSeasonsHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationSeasonsHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -23,6 +23,8 @@ package fr.ifremer.isisfish.ui.input.population; +import static org.nuiton.i18n.I18n.t; + import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -31,11 +33,14 @@ import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.gui.MatrixPanelEvent; +import fr.ifremer.isisfish.IsisFishDAOHelper; +import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.PopulationSeasonInfo; +import fr.ifremer.isisfish.entities.PopulationSeasonInfoDAO; import fr.ifremer.isisfish.types.Month; -import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.input.InputContentHandler; import fr.ifremer.isisfish.ui.models.common.GenericComboModel; +import fr.ifremer.isisfish.ui.util.ErrorHelper; import fr.ifremer.isisfish.ui.widget.Interval; /** @@ -91,17 +96,71 @@ } protected void create() { - PopulationSeasonInfo seasonNew = inputContentUI.getContextValue(InputAction.class).createPopulationSeasonInfo(inputContentUI.getBean()); + PopulationSeasonInfo seasonNew = createPopulationSeasonInfo(inputContentUI.getBean()); inputContentUI.setPopulationSeasonInfo(seasonNew); setPopulationSeasonInfoCombo(); } protected void delete() { - inputContentUI.getContextValue(InputAction.class).removePopulationSeasonInfo(inputContentUI.getBean(), inputContentUI.getPopulationSeasonInfo()); + removePopulationSeasonInfo(inputContentUI.getBean(), inputContentUI.getPopulationSeasonInfo()); inputContentUI.setPopulationSeasonInfo(null); setPopulationSeasonInfoCombo(); } + + protected PopulationSeasonInfo createPopulationSeasonInfo(Population pop) { + if (log.isDebugEnabled()) { + log.debug("createSeasonInfo called"); + } + PopulationSeasonInfo seasonInfo = null; + try { + PopulationSeasonInfoDAO dao = IsisFishDAOHelper + .getPopulationSeasonInfoDAO(pop.getTopiaContext()); + seasonInfo = dao.create(); + seasonInfo.setFirstMonth(Month.MONTH[0]); + seasonInfo.setLastMonth(Month.MONTH[3]); + pop.addPopulationSeasonInfo(seasonInfo); + seasonInfo.setPopulation(pop); + // EC-20090710 ajout du code d'initailisation + // d'un populationseasoninfo + // il a du se perdre au changement d'interface + // swiat>jaxx + // moved to entity + //MatrixND matrix = ((PopulationSeasonInfoImpl) seasonInfo) + // .createNoSpacializedChangeGroupMatrix(); + //seasonInfo.setLengthChangeMatrix(matrix); + + seasonInfo.update(); + pop.update(); + // isisContext.commitTransaction(); + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't create PopulationSeasonInfo", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", + "PopulationSeasonInfo"), eee); + } + return seasonInfo; + } + + protected void removePopulationSeasonInfo(Population pop, + PopulationSeasonInfo populationSeasonInfo) { + if (log.isDebugEnabled()) { + log.debug("removePopulationSeasonInfo called"); + } + try { + pop.removePopulationSeasonInfo(populationSeasonInfo); + pop.update(); + //pop.getTopiaContext().commitTransaction(); + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't remove PopulationSeasonInfo", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", + "PopulationSeasonInfo"), eee); + } + } + protected void save() { inputContentUI.getSaveVerifier().save(); setPopulationSeasonInfoCombo(); Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/setofvessels/EffortDescriptionHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -23,22 +23,33 @@ package fr.ifremer.isisfish.ui.input.setofvessels; +import static org.nuiton.i18n.I18n.t; + import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import fr.ifremer.isisfish.IsisFishDAOHelper; import fr.ifremer.isisfish.entities.EffortDescription; +import fr.ifremer.isisfish.entities.EffortDescriptionDAO; import fr.ifremer.isisfish.entities.Metier; -import fr.ifremer.isisfish.ui.input.InputAction; +import fr.ifremer.isisfish.entities.SetOfVessels; import fr.ifremer.isisfish.ui.input.InputContentHandler; import fr.ifremer.isisfish.ui.models.common.GenericListModel; +import fr.ifremer.isisfish.ui.util.ErrorHelper; /** * set of vessels handler. */ public class EffortDescriptionHandler extends InputContentHandler<EffortDescriptionUI> { + /** Class logger. */ + private static final Log log = LogFactory.getLog(EffortDescriptionHandler.class); + protected void init(final EffortDescriptionUI inputContentUI) { super.init(inputContentUI); @@ -56,14 +67,6 @@ }); } - /** - * Get input action from context. - */ - @Deprecated - protected InputAction getInputAction() { - return inputContentUI.getContextValue(InputAction.class); - } - protected void onFieldEffortDescriptionMetierListValueChanged() { // active le bouton seulement si l'interface est active // dans le cas de sensitivity par exemple @@ -92,15 +95,61 @@ protected void addEffortDescriptions() { List<Metier> selectedValues = inputContentUI.fieldEffortDescriptionMetierList.getSelectedValuesList(); for (Metier selectedMetier : selectedValues) { - getInputAction().addEffortDescription(inputContentUI.getBean(), selectedMetier); + addEffortDescription(inputContentUI.getBean(), selectedMetier); } setEffortDescriptionEffortDescriptionList(); } + protected void removeEffortDescriptions() { List<EffortDescription> selectedValues = inputContentUI.fieldEffortDescriptionEffortDescriptionList.getSelectedValuesList(); for (EffortDescription selectedEffortDescription : selectedValues) { - getInputAction().removeEffortDescription(inputContentUI.getBean(), selectedEffortDescription); + removeEffortDescription(inputContentUI.getBean(), selectedEffortDescription); } setEffortDescriptionEffortDescriptionList(); } + + public void addEffortDescription(SetOfVessels setOfVessels, Metier metier) { + if (log.isDebugEnabled()) { + log.debug("addEffortDescription called: " + setOfVessels + + " metier: " + metier); + } + try { + EffortDescriptionDAO effortDescriptionPS = IsisFishDAOHelper + .getEffortDescriptionDAO(metier.getTopiaContext()); + EffortDescription effortDescription = effortDescriptionPS.create(); + // EC20090715 : c'est la classe d'association + // qui en étant sauvee, sauve les relations en base + // il faut bien faire les set des deux cotes + effortDescription.setSetOfVessels(setOfVessels); + effortDescription.setPossibleMetiers(metier); + effortDescription.update(); + setOfVessels.addPossibleMetiers(effortDescription); + setOfVessels.update(); + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't create EffortDescription", eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.addentity", + "EffortDescription"), eee); + } + } + + public void removeEffortDescription(SetOfVessels sov, + EffortDescription effort) { + if (log.isTraceEnabled()) { + log.trace("removeEffortDescription called"); + } + try { + sov.removePossibleMetiers(effort); + // EC-20091112 : commit() twice cause hibernate error: + // Found two representations of same collection: + //sov.getTopiaContext().commitTransaction(); + } catch (Exception eee) { + if (log.isErrorEnabled()) { + log.error("Can't remove entity: " + effort, eee); + } + ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", + "EffortDescription"), eee); + } + } } Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx 2015-05-20 13:37:54 UTC (rev 4230) @@ -27,7 +27,6 @@ javax.swing.tree.DefaultTreeModel fr.ifremer.isisfish.datastore.RegionStorage fr.ifremer.isisfish.ui.WelcomePanelUI - fr.ifremer.isisfish.ui.input.InputAction fr.ifremer.isisfish.ui.input.InputSaveVerifier fr.ifremer.isisfish.ui.simulator.SimulAction fr.ifremer.isisfish.simulator.sensitivity.FactorGroup @@ -43,10 +42,6 @@ <fr.ifremer.isisfish.entities.FisheryRegion id='fisheryRegion' javaBean='null'/> <script><![CDATA[ -protected InputAction getInputAction() { - return getContextValue(InputAction.class); -} - protected SimulAction getSimulAction() { return getContextValue(SimulAction.class); } Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx 2015-05-20 13:37:54 UTC (rev 4230) @@ -25,7 +25,6 @@ <fr.ifremer.isisfish.ui.SimulationUI> <import> - fr.ifremer.isisfish.ui.input.InputAction fr.ifremer.isisfish.ui.sensitivity.SensitivitySaveVerifier jaxx.runtime.context.JAXXInitialContext jaxx.runtime.JAXXContext @@ -79,11 +78,11 @@ <JTabbedPane id="bodyTabbedPane"> <tab title='isisfish.params.title'> <fr.ifremer.isisfish.ui.simulator.ParamsUI id='paramsUI' sensitivity='true' regionStorage="{getRegionStorage()}" - constructorParams='new JAXXInitialContext().add(new InputAction()).add(new SensitivitySaveVerifier()).add("SimulationUI", this).add(this)' /> + constructorParams='new JAXXInitialContext().add(new SensitivitySaveVerifier()).add("SimulationUI", this).add(this)' /> </tab> <tab title='isisfish.sensitivity.title' enabled="false"> <fr.ifremer.isisfish.ui.sensitivity.SensitivityTabUI id="sensitivityTabUI" - constructorParams='new JAXXInitialContext().add(new InputAction()).add(new SensitivitySaveVerifier()).add("SimulationUI", this).add(this)' /> + constructorParams='new JAXXInitialContext().add(new SensitivitySaveVerifier()).add("SimulationUI", this).add(this)' /> </tab> <tab title='isisfish.sensitivityChooser.title' enabled="false"> <SensitivityChooserUI id="sensitivityChooserUI" constructorParams='this'/> 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 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/wizard/SensitivityWizardHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -72,7 +72,6 @@ import fr.ifremer.isisfish.types.TimeStep; 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.equation.InputOneEquationUI; import fr.ifremer.isisfish.ui.simulator.RuleChooser; import fr.ifremer.isisfish.ui.simulator.SimulAction; @@ -364,7 +363,7 @@ result = new ContinuousDistributionPanel(min); } else if (value instanceof Equation) { Equation equation = (Equation)value; - EquationContinuousPanelUI ui = new EquationContinuousPanelUI(new JAXXInitialContext().add(new InputAction())); + EquationContinuousPanelUI ui = new EquationContinuousPanelUI(); ui.setSelectedEquation(equation); ui.setText(t("isisfish.common.equation")); // can't get real name ui.setFormuleCategory(equation.getCategory()); @@ -575,7 +574,7 @@ result = new ContinuousDistributionPanel(min); } else if (value instanceof Equation) { Equation equation = (Equation)value; - EquationContinuousPanelUI ui = new EquationContinuousPanelUI(new JAXXInitialContext().add(new InputAction())); + EquationContinuousPanelUI ui = new EquationContinuousPanelUI(); ui.setSelectedEquation(equation); ui.setText(t("isisfish.common.equation")); // can't get real name ui.setFormuleCategory(equation.getCategory()); Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/OptimizationHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/OptimizationHandler.java 2015-05-20 13:11:09 UTC (rev 4229) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/OptimizationHandler.java 2015-05-20 13:37:54 UTC (rev 4230) @@ -52,7 +52,6 @@ import fr.ifremer.isisfish.simulator.sensitivity.Factor; import fr.ifremer.isisfish.simulator.sensitivity.FactorGroup; import fr.ifremer.isisfish.ui.SimulationUI; -import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.models.common.GenericComboModel; import fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellEditor; import fr.ifremer.isisfish.ui.models.common.ScriptParametersTableCellRenderer; @@ -182,7 +181,6 @@ // init new sensitivity tav ui hierarchy final SensitivityTabUI sensitivityTabUI = new SensitivityTabUI(view); - sensitivityTabUI.setContextValue(new InputAction()); sensitivityTabUI.setContextValue(new SensitivitySaveVerifier()); // prevent NPE sensitivityTabUI.setContextValue(view.getParentContainer(SimulationUI.class), "SimulationUI"); // prevent NPE
participants (1)
-
echatellier@users.forge.codelutin.com