r3432 - in isis-fish/trunk: . src/main/java/fr/ifremer/isisfish src/main/java/fr/ifremer/isisfish/datastore/migration src/main/java/fr/ifremer/isisfish/datastore/update src/main/java/fr/ifremer/isisfish/entities src/main/java/fr/ifremer/isisfish/ui/input src/main/java/fr/ifremer/isisfish/ui/input/check src/main/resources src/main/resources/i18n src/main/xmi
Author: chatellier Date: 2011-07-06 14:24:29 +0000 (Wed, 06 Jul 2011) New Revision: 3432 Log: Remove population's maturity group adn group reproduction rate. Add maturity ogive equation. Add reproduction rate equation. Move isis fish version to 4.0.0.0. Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationPriceUI.jaxx Removed: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V34.java Modified: isis-fish/trunk/pom.xml isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/DatabaseMigrationClass.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationGroupImpl.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationImpl.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/WizardGroupCreationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/check/CheckRegion.java isis-fish/trunk/src/main/resources/i18n/isis-fish_en_GB.properties isis-fish/trunk/src/main/resources/i18n/isis-fish_fr_FR.properties isis-fish/trunk/src/main/resources/log4j.properties isis-fish/trunk/src/main/resources/sensitivity.properties isis-fish/trunk/src/main/xmi/isis-fish.zargo Modified: isis-fish/trunk/pom.xml =================================================================== --- isis-fish/trunk/pom.xml 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/pom.xml 2011-07-06 14:24:29 UTC (rev 3432) @@ -11,7 +11,7 @@ <groupId>fr.ifremer</groupId> <artifactId>isis-fish</artifactId> - <version>3.4.0.0-SNAPSHOT</version> + <version>4.0.0.0-SNAPSHOT</version> <!-- POM Relationships : Inheritance : Dependencies --> <dependencies> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2011-07-06 14:24:29 UTC (rev 3432) @@ -132,8 +132,9 @@ * migration de donnees demande automatiquement un changement de version * d'application. */ - protected final static Version version = new Version(3, 4, 0, 0); + protected final static Version version = new Version(4, 0, 0, 0); + protected final static Version majorVersion = new Version(version.getNumber(0)); protected final static Version databaseVersion = new Version( version.getNumber(0), version.getNumber(1)); protected final static Version apiVersion = new Version( @@ -1006,7 +1007,7 @@ /** Serveur accessible par ssh : user home directory */ SIMULATOR_SSH_USER_HOME("simulation.ssh.userhome", n_("isisfish.config.main.simulation.ssh.userhome.description"), ""), /** Serveur accessible par ssh : remote data path */ - SIMULATOR_SSH_DATAPATH("simulation.ssh.datapath", n_("isisfish.config.main.simulation.ssh.datapath.description"), "isis-database-3"), + SIMULATOR_SSH_DATAPATH("simulation.ssh.datapath", n_("isisfish.config.main.simulation.ssh.datapath.description"), "isis-database-" + majorVersion.toString()), /** Serveur accessible par ssh : remote isis home install */ SIMULATOR_SSH_ISIS_HOME("simulation.ssh.isis.home", n_("isisfish.config.main.simulation.ssh.isis.home.description"), "/home3/caparmor/poussin/isis-fish-" + IsisConfig.getApiVersion()), /** Serveur accessible par ssh : remote tmp path */ @@ -1041,7 +1042,7 @@ // SSH (global, for both VCS and caparmor) SSH_KEY_FILE("ssh.key.file", n_("isisfish.config.ssh.key.file.description"), getUserHome() + File.separator + ".ssh" + File.separator + "isis_rsa"), - DATABASE_DIRECTORY("database.directory", n_("isisfish.config.vcs.localDatabasePath.description"), getUserHome() + File.separator + "isis-database-3"), + DATABASE_DIRECTORY("database.directory", n_("isisfish.config.vcs.localDatabasePath.description"), getUserHome() + File.separator + "isis-database-" + majorVersion.toString()), VCS_TYPE(VCS.VCS_TYPE, n_("isisfish.config.vcs.type.description"), VCS.TYPE_SVN), VCS_PROTOCOL(VCS.VCS_PROTOCOL, n_("isisfish.config.vcs.protocol.description"), "svn"), VCS_USER_NAME(VCS.VCS_USER_NAME, n_("isisfish.config.vcs.userName.description"), ""), @@ -1050,7 +1051,7 @@ VCS_PATH(VCS.VCS_PATH, n_("isisfish.config.vcs.remotePath.description"), "/svnroot/isis-fish-data/"), // community vsc - COMMUNITY_DATABASE_DIRECTORY("community.database.directory", n_("isisfish.config.vcs.localCommunityDatabasePath.description"), getUserHome() + File.separator + "isis-community-database-3"), + COMMUNITY_DATABASE_DIRECTORY("community.database.directory", n_("isisfish.config.vcs.localCommunityDatabasePath.description"), getUserHome() + File.separator + "isis-community-database-" + majorVersion.toString()), VCS_COMMUNITY_TYPE("vcs.community.type", n_("isisfish.config.vcs.community.type.description"), VCS.TYPE_SVN), VCS_COMMUNITY_PROTOCOL("vcs.community.protocole", n_("isisfish.config.vcs.community.protocol.description"), "http"), VCS_COMMUNITY_USER_NAME("vcs.community.username", n_("isisfish.config.vcs.community.username.description"), ""), Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/DatabaseMigrationClass.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/DatabaseMigrationClass.java 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/DatabaseMigrationClass.java 2011-07-06 14:24:29 UTC (rev 3432) @@ -49,7 +49,7 @@ protected static final Version VERSION_32 = new Version("3.2"); protected static final Version VERSION_33 = new Version("3.3"); - protected static final Version VERSION_34 = new Version("3.4"); + protected static final Version VERSION_40 = new Version("4.0"); public DatabaseMigrationClass() { super(new MigrationResolver()); @@ -69,8 +69,8 @@ else if (version.equals(VERSION_33)) { result = MigrationV32V33.class; } - else if (version.equals(VERSION_34)) { - result = MigrationV33V34.class; + else if (version.equals(VERSION_40)) { + result = MigrationV33V40.class; } return result; } @@ -82,7 +82,7 @@ */ @Override public Version[] getAvailableVersions() { - Version[] result = new Version[] { VERSION_32, VERSION_33, VERSION_34 }; + Version[] result = new Version[] { VERSION_32, VERSION_33, VERSION_40 }; return result; } Deleted: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V34.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V34.java 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V34.java 2011-07-06 14:24:29 UTC (rev 3432) @@ -1,70 +0,0 @@ -/* - * #%L - * - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2011 Codelutin, Chatellier Eric - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-2.0.html>. - * #L% - */ - -package fr.ifremer.isisfish.datastore.migration; - -import java.util.List; - -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaContextImplementor; -import org.nuiton.topia.migration.TopiaMigrationCallbackByClass; -import org.nuiton.topia.migration.TopiaMigrationCallbackByClass.MigrationCallBackForVersion; -import org.nuiton.util.Version; - -/** - * Migration between version 3.3 and 3.4. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class MigrationV33V34 extends MigrationCallBackForVersion { - - /** - * Constructor. - * - * @param version version - * @param callback callback - */ - public MigrationV33V34(Version version, TopiaMigrationCallbackByClass callback) { - super(version, callback); - } - - /* - * @see org.nuiton.topia.migration.TopiaMigrationCallbackByClass.MigrationCallBackForVersion#prepareMigrationScript(org.nuiton.topia.framework.TopiaContextImplementor, java.util.List, boolean, boolean) - */ - @Override - protected void prepareMigrationScript(TopiaContextImplementor tx, - List<String> queries, boolean showSql, boolean showProgression) - throws TopiaException { - // remove maturity group - // CONSTRAINT_0 est la nom généré de la constainte d'unicité - // sur les maturityGroup - // en v3.3, il n'y a qu'une contrainte sur la table population - queries.add("ALTER TABLE POPULATION DROP CONSTRAINT IF EXISTS CONSTRAINT_0;"); - } -} Copied: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java (from rev 3393, isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V34.java) =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java 2011-07-06 14:24:29 UTC (rev 3432) @@ -0,0 +1,69 @@ +/* + * #%L + * + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 Ifremer, Codelutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-2.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.datastore.migration; + +import java.util.List; + +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.migration.TopiaMigrationCallbackByClass; +import org.nuiton.topia.migration.TopiaMigrationCallbackByClass.MigrationCallBackForVersion; +import org.nuiton.util.Version; + +/** + * Migration between version 3.3 and 4.0. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class MigrationV33V40 extends MigrationCallBackForVersion { + + /** + * Constructor. + * + * @param version version + * @param callback callback + */ + public MigrationV33V40(Version version, TopiaMigrationCallbackByClass callback) { + super(version, callback); + } + + /* + * @see org.nuiton.topia.migration.TopiaMigrationCallbackByClass.MigrationCallBackForVersion#prepareMigrationScript(org.nuiton.topia.framework.TopiaContextImplementor, java.util.List, boolean, boolean) + */ + @Override + protected void prepareMigrationScript(TopiaContextImplementor tx, + List<String> queries, boolean showSql, boolean showProgression) + throws TopiaException { + queries.add("alter table POPULATIONGROUP drop column REPRODUCTIONRATE;"); + queries.add("alter table POPULATION drop column MATURITYGROUP;"); + queries.add("alter table POPULATION add column MATURITYOGIVEEQUATION VARCHAR(255);"); + queries.add("alter table POPULATION add column REPRODUCTIONRATEEQUATION VARCHAR(255);"); + } +} Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/update/ImportFromV2.java 2011-07-06 14:24:29 UTC (rev 3432) @@ -550,7 +550,7 @@ "if (group == null) return 0;\n" + " switch (group.getId()) {\n"; - int classMat = getIntValue(pop, "classeMature"); + //int classMat = getIntValue(pop, "classeMature"); List<Node> classes = getListValue(pop, "classes"); for (Node classeId : classes) { Node classe = getElementById(classeId.getText()); @@ -563,7 +563,8 @@ group.setId(getIntValue(classe, "id")); group.setAge(getDoubleValue(classe, "age")); - group.setReproductionRate(getDoubleValue(classe, "coefficientFecondite")); + // group's reproduction rate removed in isis 3.4 + //group.setReproductionRate(getDoubleValue(classe, "coefficientFecondite")); group.setMinLength(getDoubleValue(classe, "longueurMin")); group.setMaxLength(getDoubleValue(classe, "longueurMax")); group.setComment(getStringValue(classe, "commentaire")); @@ -572,9 +573,10 @@ eqMeanWeight += " case " + group.getId() + ": return " + getStringValue(classe, "poidsMoyen") + ";\n"; eqPrice += " case " + group.getId() + ": return " + getStringValue(classe, "price") + ";\n"; + /* MaturityGroup removed in isis 3.4 if (group.getId() == classMat) { pop3.setMaturityGroup(group); - } + }*/ } eqMeanWeight += @@ -804,8 +806,8 @@ * @throws Exception */ private void importTripTypes(TopiaContext context, Element region) throws Exception { - String regionId = getId(region); -// log.error(regionId + "******" + root.selectNodes("/dbobjects/dbobject[@type='TripType']/attribute[@name='region' and text()='" + regionId + "']").size()); + //String regionId = getId(region); + //log.error(regionId + "******" + root.selectNodes("/dbobjects/dbobject[@type='TripType']/attribute[@name='region' and text()='" + regionId + "']").size()); List<Node> tripTypes = getListValue("TripType", "region", getId(region)); log.info("import de " + tripTypes.size() + " TripTypes"); for (Node tripType : tripTypes) { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationGroupImpl.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationGroupImpl.java 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationGroupImpl.java 2011-07-06 14:24:29 UTC (rev 3432) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2006 - 2010 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin + * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Cédric 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 @@ -156,7 +156,51 @@ return result; } + /* + * @see fr.ifremer.isisfish.entities.PopulationGroup#getMaturityOgive() + */ @Override + public double getMaturityOgive() { + double result = 0; + try { + Equation eq = getPopulation().getMaturityOgiveEquation(); + if (eq != null) { + result = eq.evaluate("group", this); + } + } catch (Exception eee) { + if (log.isWarnEnabled()) { + log.warn("Error in maturityOgive equation"); + } + if (log.isDebugEnabled()) { + log.debug("StackTrace", eee); + } + } + return result; + } + + /* + * @see fr.ifremer.isisfish.entities.PopulationGroup#getReproductionRate() + */ + @Override + public double getReproductionRate() { + double result = 0; + try { + Equation eq = getPopulation().getReproductionRateEquation(); + if (eq != null) { + result = eq.evaluate("group", this); + } + } catch (Exception eee) { + if (log.isWarnEnabled()) { + log.warn("Error in reproductionRate equation"); + } + if (log.isDebugEnabled()) { + log.debug("StackTrace", eee); + } + } + return result; + } + + @Override public String toString() { return _("isisfish.populationGroup.toString", this.getPopulation(), this.getId()); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationImpl.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationImpl.java 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/entities/PopulationImpl.java 2011-07-06 14:24:29 UTC (rev 3432) @@ -5,7 +5,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2006 - 2010 Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin + * Copyright (C) 2006 - 2011 Ifremer, Code Lutin, Cédric 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 @@ -45,10 +45,12 @@ import fr.ifremer.isisfish.equation.Language; import fr.ifremer.isisfish.equation.PopulationGrowth; import fr.ifremer.isisfish.equation.PopulationGrowthReverse; +import fr.ifremer.isisfish.equation.PopulationMaturityOgiveEquation; import fr.ifremer.isisfish.equation.PopulationMeanWeight; import fr.ifremer.isisfish.equation.PopulationNaturalDeathRate; import fr.ifremer.isisfish.equation.PopulationPrice; import fr.ifremer.isisfish.equation.PopulationReproductionEquation; +import fr.ifremer.isisfish.equation.PopulationReproductionRateEquation; import fr.ifremer.isisfish.types.Month; /** @@ -129,6 +131,14 @@ if (eq != null) { eq.setName(getName()); } + eq = getMaturityOgiveEquation(); + if (eq != null) { + eq.setName(getName()); + } + eq = getReproductionRateEquation(); + if (eq != null) { + eq.setName(getName()); + } } public void setReproductionEquationContent(String content) { @@ -290,7 +300,71 @@ _("isisfish.error.change.equation"), eee); } } + + public void setMaturityOgiveEquationContent(String content) { + try { + Equation eq = getMaturityOgiveEquation(); + if (eq == null) { + EquationDAO dao = IsisFishDAOHelper + .getEquationDAO(getTopiaContext()); + // create MaturityOgive equation + eq = dao.create(); + eq.setCategory("MaturityOgive"); + eq.setJavaInterface(PopulationMaturityOgiveEquation.class); + eq.setLanguage(Language.JAVA); + setMaturityOgiveEquation(eq); + } + + eq.setName(getName()); + + // Fire + String _oldValue = eq.getContent(); + fireOnPreWrite("content", _oldValue, content); + + eq.setContent(content); + eq.update(); + + fireOnPostWrite("content", _oldValue, content); + + } catch (TopiaException eee) { + throw new IsisFishRuntimeException(_("isisfish.change.equation"), + eee); + } + } + + public void setReproductionRateEquationContent(String content) { + try { + Equation eq = getReproductionRateEquation(); + + if (eq == null) { + EquationDAO dao = IsisFishDAOHelper + .getEquationDAO(getTopiaContext()); + // create ReproductionRate equation + eq = dao.create(); + eq.setCategory("ReproductionRate"); + eq.setJavaInterface(PopulationReproductionRateEquation.class); + eq.setLanguage(Language.JAVA); + setReproductionRateEquation(eq); + } + + eq.setName(getName()); + + // Fire + String _oldValue = eq.getContent(); + fireOnPreWrite("content", _oldValue, content); + + eq.setContent(content); + eq.update(); + + fireOnPostWrite("content", _oldValue, content); + + } catch (TopiaException eee) { + throw new IsisFishRuntimeException(_("isisfish.change.equation"), + eee); + } + } + public void setPriceContent(String content) { try { Equation eq = getPrice(); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx 2011-07-06 14:24:29 UTC (rev 3432) @@ -54,13 +54,9 @@ fieldPopulationBasicsGeographicID.setText(""); fieldPopulationBasicsNbClasses.setText(""); fieldPopulationBasicsComment.setText(""); - fieldPopulationBasicsMatureClass.setSelectedItem(null); tableAgeLength.setModel(new DefaultTableModel()); } if (evt.getNewValue() != null) { - if (getBean().getPopulationGroup() != null) { - jaxx.runtime.SwingUtil.fillComboBox(fieldPopulationBasicsMatureClass, getBean().getPopulationGroup(), getBean().getMaturityGroup(), true); - } setTableAgeLengthModel(); } } @@ -76,9 +72,6 @@ setBean(population); if (getBean() != null) { - if (getBean().getPopulationGroup() != null) { - jaxx.runtime.SwingUtil.fillComboBox(fieldPopulationBasicsMatureClass, getBean().getPopulationGroup(), getBean().getMaturityGroup(), true); - } setTableAgeLengthModel(); } //getSaveVerifier().addCurrentPanel(growthEquation, growthReverseEquation); @@ -112,12 +105,7 @@ } } -protected void matureClassChanged(){ - Object selected = fieldPopulationBasicsMatureClass.getSelectedItem(); - if (getBean() != null){ - getBean().setMaturityGroup((PopulationGroup) selected); - } -} + protected void setTableAgeLengthModel() { java.util.List<PopulationGroup> popGroup = getBean().getPopulationGroup(); if (popGroup != null){ @@ -189,15 +177,9 @@ </cell> </row> <row> - <cell anchor='east'> - <JLabel text="isisfish.populationBasics.maturityGroup" enabled='{getBean() != null}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <JAXXComboBox id="fieldPopulationBasicsMatureClass" onActionPerformed='matureClassChanged()' - enabled='{isActive()}' decorator='boxed'/> - </cell> - <cell fill='horizontal'> + <cell fill='horizontal' columns="3"> <JCheckBox id="fieldPopulationBasicsPlusGroup" text="isisfish.populationBasics.plusGroup" + toolTipText="isisfish.populationBasics.plusGroupTip" selected='{getBean().getPlusGroup()}' onActionPerformed='getBean().setPlusGroup(fieldPopulationBasicsPlusGroup.isSelected())' enabled='{isActive()}' decorator='boxed' _sensitivityBean='{Population.class}' _sensitivityMethod='"PlusGroup"'/> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx 2011-07-06 14:24:29 UTC (rev 3432) @@ -71,14 +71,23 @@ </row> <row> <cell columns='2' fill='both' weightx='1.0' weighty='0.3'> - <InputOneEquationUI id='price' constructorParams='this' - text='isisfish.populationEquation.price' active="{isActive()}" - bean='{getBean()}' formuleCategory='Price' beanProperty='Price' - clazz='{fr.ifremer.isisfish.equation.PopulationPrice.class}' - decorator='boxed' _sensitivityBean='{Population.class}' _sensitivityMethod='"Price"'/> + <InputOneEquationUI id='maturityOgive' constructorParams='this' + text='isisfish.populationEquation.MaturityOgive' active="{isActive()}" + bean='{getBean()}' formuleCategory='MaturityOgive' beanProperty='MaturityOgiveEquation' + clazz='{fr.ifremer.isisfish.equation.PopulationMaturityOgiveEquation.class}' + decorator='boxed' _sensitivityBean='{Population.class}' _sensitivityMethod='"MaturityOgiveEquation"'/> </cell> </row> <row> + <cell columns='2' fill='both' weightx='1.0' weighty='0.3'> + <InputOneEquationUI id='reproductionRate' constructorParams='this' + text='isisfish.populationEquation.reproductionRate' active="{isActive()}" + bean='{getBean()}' formuleCategory='ReproductionRate' beanProperty='ReproductionRateEquation' + clazz='{fr.ifremer.isisfish.equation.PopulationReproductionRateEquation.class}' + decorator='boxed' _sensitivityBean='{Population.class}' _sensitivityMethod='"ReproductionRateEquation"'/> + </cell> + </row> + <row> <cell fill='horizontal' weightx='0.5'> <JButton id='save' decorator='boxed' text="isisfish.common.save" Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2011-07-06 14:24:29 UTC (rev 3432) @@ -150,11 +150,23 @@ <JLabel text="isisfish.common.populationGroup" enabled='{isActive()}'/> </cell> <cell columns='2' fill='horizontal' weightx='1.0'> - <JAXXComboBox id='populationGroupPopulationGroupComboBox' onActionPerformed='populationGroupChanged()' enabled='{isActive()}'/> + <JAXXComboBox id='populationGroupPopulationGroupComboBox' onActionPerformed='populationGroupChanged()' + enabled='{isActive()}'/> </cell> </row> <row> <cell fill='horizontal' anchor='east'> + <JLabel text="isisfish.populationGroup.naturalDeathRate" enabled='{getPopulationGroup() != null}'/> + </cell> + <cell columns='2' fill='both' weightx='1.0' weighty='0.5'> + <org.nuiton.math.matrix.gui.MatrixPanelEditor id='fieldPopulationGroupNaturalDeathRate' + enabled='false' decorator='boxed' _sensitivityBean='{Population.class}' _sensitivityMethod='"NaturalDeathRateMatrix"' /> + <!-- this bindings totally break UI + matrix='{getBean() == null || getPopulationGroup() == null ? null : ((AbstractMatrixND)getBean().getNaturalDeathRateMatrix()).getSubMatrixOnSemantic(0, getPopulationGroup())}' --> + </cell> + </row> + <row> + <cell fill='horizontal' anchor='east'> <JLabel text="isisfish.populationGroup.meanWeigth" enabled='{getPopulationGroup() != null}'/> </cell> <cell columns='2' fill='horizontal' weightx='1.0'> @@ -165,37 +177,32 @@ </row> <row> <cell fill='horizontal' anchor='east'> - <JLabel text="isisfish.populationGroup.price" enabled='{getPopulationGroup() != null}'/> + <JLabel text="isisfish.populationGroup.maturityOgive" enabled='{getPopulationGroup() != null}'/> </cell> <cell columns='2' fill='horizontal' weightx='1.0'> - <JTextField id="fieldPopulationGroupPrice" text='{String.valueOf(getPopulationGroup().getPrice())}' + <JTextField id="fieldPopulationGroupMaturityOgive" text='{String.valueOf(getPopulationGroup().getMaturityOgive())}' editable="false" enabled='{getPopulationGroup() != null}' decorator='boxed'/> </cell> </row> <row> <cell fill='horizontal' anchor='east'> - <JLabel text="isisfish.populationGroup.naturalDeathRate" enabled='{getPopulationGroup() != null}'/> + <JLabel text="isisfish.populationGroup.reproductionRate" enabled='{getPopulationGroup() != null}'/> </cell> - <cell columns='2' fill='both' weightx='1.0' weighty='0.5'> - <org.nuiton.math.matrix.gui.MatrixPanelEditor id='fieldPopulationGroupNaturalDeathRate' - enabled='false' decorator='boxed' _sensitivityBean='{Population.class}' _sensitivityMethod='"NaturalDeathRateMatrix"' /> - <!-- this bindings totally break UI - matrix='{getBean() == null || getPopulationGroup() == null ? null : ((AbstractMatrixND)getBean().getNaturalDeathRateMatrix()).getSubMatrixOnSemantic(0, getPopulationGroup())}' --> + <cell columns='2' fill='horizontal' weightx='1.0'> + <JTextField id="fieldPopulationGroupReproductionRate" text='{String.valueOf(getPopulationGroup().getReproductionRate())}' + editable="false" + enabled='{getPopulationGroup() != null}' decorator='boxed'/> </cell> </row> <row> <cell fill='horizontal' anchor='east'> - <JLabel text="isisfish.populationGroup.reproductionRate" enabled='{getPopulationGroup() != null}'/> + <JLabel text="isisfish.populationGroup.price" enabled='{getPopulationGroup() != null}'/> </cell> <cell columns='2' fill='horizontal' weightx='1.0'> - <!--NumberEditor id='fieldPopulationGroupReproductionRate' constructorParams='this' - bean='{getPopulationGroup()}' property='reproductionRate' - useSign='true' enabled='{isPopGroupNotNull()}' decorator='boxed' - _sensitivityBean='{PopulationGroup.class}' _sensitivityMethod='"ReproductionRate"'/--> - <JTextField id="fieldPopulationGroupReproductionRate" text='{String.valueOf(getPopulationGroup().getReproductionRate())}' - onKeyReleased='getPopulationGroup().setReproductionRate(Double.parseDouble(fieldPopulationGroupReproductionRate.getText()))' - enabled='{getPopulationGroup() != null}' decorator='boxed' _sensitivityBean='{PopulationGroup.class}' _sensitivityMethod='"ReproductionRate"'/> + <JTextField id="fieldPopulationGroupPrice" text='{String.valueOf(getPopulationGroup().getPrice())}' + editable="false" + enabled='{getPopulationGroup() != null}' decorator='boxed'/> </cell> </row> <row> Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationPriceUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationPriceUI.jaxx (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationPriceUI.jaxx 2011-07-06 14:24:29 UTC (rev 3432) @@ -0,0 +1,79 @@ +<!-- + #%L + IsisFish + + $Id$ + $HeadURL$ + %% + Copyright (C) 2009 - 2011 Ifremer, Code Lutin, Chatellier Eric + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 2 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-2.0.html>. + #L% + --> +<fr.ifremer.isisfish.ui.input.InputContentUI superGenericType='Population'> + + <!-- bean property --> + <fr.ifremer.isisfish.entities.Population id='bean' javaBean='null'/> + + <import> + fr.ifremer.isisfish.entities.Population; + </import> + + <BeanValidator id='validator' context="equation" + bean='{getBean()}' beanClass='fr.ifremer.isisfish.entities.Population' + uiClass="jaxx.runtime.validator.swing.ui.ImageValidationUI"> + </BeanValidator> + + <script><![CDATA[ +/*public void refresh() { + Population population = getSaveVerifier().getEntity(Population.class); + + // add null before, for second to be considered as a changed event + // otherwize, setBean has no effect + setBean(null); + setBean(population); + + getSaveVerifier().addCurrentPanel(naturalDeathRate, meanWeight, price); +}*/ + ]]> + </script> + <JPanel id="body"> + <Table> + <row> + <cell columns='2' fill='both' weightx='1.0' weighty='0.3'> + <InputOneEquationUI id='price' constructorParams='this' + text='isisfish.populationEquation.price' active="{isActive()}" + bean='{getBean()}' formuleCategory='Price' beanProperty='Price' + clazz='{fr.ifremer.isisfish.equation.PopulationPrice.class}' + decorator='boxed' _sensitivityBean='{Population.class}' _sensitivityMethod='"Price"'/> + </cell> + </row> + <row> + <cell fill='horizontal' weightx='0.5'> + <JButton id='save' decorator='boxed' + text="isisfish.common.save" + enabled="{validator.isValid() && validator.isChanged()}" + onActionPerformed="getSaveVerifier().save();validator.setChanged(false);"/> + </cell> + <cell fill='horizontal' weightx='0.5'> + <JButton id='cancel' decorator='boxed' + text="isisfish.common.cancel" + enabled="{validator.isChanged()}" + onActionPerformed="getSaveVerifier().cancel()"/> + </cell> + </row> + </Table> + </JPanel> +</fr.ifremer.isisfish.ui.input.InputContentUI> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationUI.jaxx 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationUI.jaxx 2011-07-06 14:24:29 UTC (rev 3432) @@ -58,6 +58,7 @@ populationGroupUI.setLayer(active); populationCapturabilityUI.setLayer(active); populationMigrationUI.setLayer(active); + populationPriceUI.setLayer(active); } ]]> </script> @@ -95,6 +96,10 @@ <tab title='isisfish.populationMigration.title'> <PopulationMigrationUI id='populationMigrationUI' bean="{getBean()}" active="{isActive()}" constructorParams='this'/> </tab> + <!-- Price --> + <tab title='isisfish.populationPrice.title'> + <PopulationPriceUI id='populationPriceUI' bean="{getBean()}" active="{isActive()}" constructorParams='this'/> + </tab> </JTabbedPane> </JPanel> </fr.ifremer.isisfish.ui.input.InputContentUI> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/WizardGroupCreationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/WizardGroupCreationUI.jaxx 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/WizardGroupCreationUI.jaxx 2011-07-06 14:24:29 UTC (rev 3432) @@ -231,8 +231,6 @@ try { Population pop = popBasic.getBean(); - // remove maturity group - pop.setMaturityGroup(null); // remove all old group pop.clearPopulationGroup(); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/check/CheckRegion.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/check/CheckRegion.java 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/check/CheckRegion.java 2011-07-06 14:24:29 UTC (rev 3432) @@ -307,9 +307,8 @@ if (StringUtils.isBlank(pop.getGeographicId())) { result.addInfo(pop, _("isisfish.error.empty.id.geographic")); } - if (pop.getMaturityGroup() == null) { - result.addInfo(pop, _("isisfish.error.not.null.class.grown")); - } + check(pop, "MaturityOgiveEquation", pop.getMaturityOgiveEquation(), result); + check(pop, "ReproductionRateEquation", pop.getReproductionRateEquation(), result); check(pop, "Growth", pop.getGrowth(), result); check(pop, "GrowthReverse", pop.getGrowthReverse(), result); List<PopulationGroup> classes = pop.getPopulationGroup(); Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish_en_GB.properties =================================================================== --- isis-fish/trunk/src/main/resources/i18n/isis-fish_en_GB.properties 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish_en_GB.properties 2011-07-06 14:24:29 UTC (rev 3432) @@ -678,25 +678,29 @@ isisfish.populationBasics.name=Name isisfish.populationBasics.numberGroup=Number of group isisfish.populationBasics.plusGroup=Plus group +isisfish.populationBasics.plusGroupTip=Collecting survivors in the last group isisfish.populationBasics.recreateClasses=Recreate classes -isisfish.populationBasics.title=Population input +isisfish.populationBasics.title=Population structure isisfish.populationCapturability.comments=Comments isisfish.populationCapturability.selectCoefficient=Select a coefficient per season and per class -isisfish.populationCapturability.title=Capturability input +isisfish.populationCapturability.title=Capturability +isisfish.populationEquation.MaturityOgive=Maturity ogive isisfish.populationEquation.meanWeight=Mean weight isisfish.populationEquation.naturalDeathRate=Natural death rate isisfish.populationEquation.price=Price -isisfish.populationEquation.title=Equations input +isisfish.populationEquation.reproductionRate=Reproduction rate +isisfish.populationEquation.title=Equations isisfish.populationGroup.age=Age isisfish.populationGroup.comments=Comments isisfish.populationGroup.length=Length +isisfish.populationGroup.maturityOgive=Maturity ogive isisfish.populationGroup.maximumLength=Maximum length isisfish.populationGroup.meanWeigth=Mean Weigth isisfish.populationGroup.minimumLength=Minimum length isisfish.populationGroup.naturalDeathRate=Natural death rate isisfish.populationGroup.price=Price isisfish.populationGroup.reproductionRate=Reproduction rate -isisfish.populationGroup.title=Population group input +isisfish.populationGroup.title=Groups isisfish.populationGroup.toString=%1$s Group %2$s isisfish.populationMigration.comments=Comments isisfish.populationMigration.selectSeason=Select a season @@ -712,11 +716,12 @@ isisfish.populationMigrationMigration.coefficient=Coefficient isisfish.populationMigrationMigration.departureZone=Departure zone isisfish.populationMigrationMigration.title=Population migration +isisfish.populationPrice.title=Price isisfish.populationRecruitment.comments=Comments isisfish.populationRecruitment.monthgapgetweenreprorecruitment=Month gap between repro and recruitment isisfish.populationRecruitment.recruitmentDistribution=Recruitment distribution isisfish.populationRecruitment.reproductionEquation=Reproduction equation -isisfish.populationRecruitment.title=Recruitment input +isisfish.populationRecruitment.title=Recruitment isisfish.populationSeasonInfo.arrival=Arrival isisfish.populationSeasonInfo.departure=Departure isisfish.populationSeasonInfo.distributionSpawing=Distribution of spawing Modified: isis-fish/trunk/src/main/resources/i18n/isis-fish_fr_FR.properties =================================================================== --- isis-fish/trunk/src/main/resources/i18n/isis-fish_fr_FR.properties 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/resources/i18n/isis-fish_fr_FR.properties 2011-07-06 14:24:29 UTC (rev 3432) @@ -659,7 +659,7 @@ isisfish.params.toString.strategies=Stratégies d'exploitation \: isisfish.params.useAnalysePlan=Utiliser le plan de simulation isisfish.params.usePreSimulationScript=Utiliser un script de pré-simulation -isisfish.population.capturability=Capturabilit?9e +isisfish.population.capturability=Capturabilité isisfish.population.comments=Commentaires isisfish.population.group=Groupe isisfish.population.groups=Groupes @@ -678,25 +678,29 @@ isisfish.populationBasics.name=Nom isisfish.populationBasics.numberGroup=Nombre de groupes isisfish.populationBasics.plusGroup=Groupe plus +isisfish.populationBasics.plusGroupTip=Cummuler les survivants dans le dernier groupe isisfish.populationBasics.recreateClasses=Reconstruire les groupes -isisfish.populationBasics.title=Saisie des populations +isisfish.populationBasics.title=Structure population isisfish.populationCapturability.comments=Commentaires isisfish.populationCapturability.selectCoefficient=Sélectionnez un coefficient par saison et par classe -isisfish.populationCapturability.title=Saisie de la capturabilité +isisfish.populationCapturability.title=Capturabilité +isisfish.populationEquation.MaturityOgive=Ogive de maturité isisfish.populationEquation.meanWeight=Poids moyen isisfish.populationEquation.naturalDeathRate=Taux de mortalité naturelle isisfish.populationEquation.price=Prix -isisfish.populationEquation.title=Saisie des équations +isisfish.populationEquation.reproductionRate=Taux de reproduction +isisfish.populationEquation.title=Traits de vie isisfish.populationGroup.age=Age isisfish.populationGroup.comments=Commentaires isisfish.populationGroup.length=Longueur +isisfish.populationGroup.maturityOgive=Ogive de maturité isisfish.populationGroup.maximumLength=Longueur maximale isisfish.populationGroup.meanWeigth=Poids principal isisfish.populationGroup.minimumLength=Longueur minimale isisfish.populationGroup.naturalDeathRate=Taux de mortalité naturelle isisfish.populationGroup.price=Prix isisfish.populationGroup.reproductionRate=Taux de reproduction -isisfish.populationGroup.title=Saisie des groupes de population +isisfish.populationGroup.title=Groupes isisfish.populationGroup.toString=%1$s Groupe %2$s isisfish.populationMigration.comments=Commentaires isisfish.populationMigration.selectSeason=Sélectionnez une saison @@ -712,11 +716,12 @@ isisfish.populationMigrationMigration.coefficient=Coefficient isisfish.populationMigrationMigration.departureZone=Zone de départ isisfish.populationMigrationMigration.title=Migration de population +isisfish.populationPrice.title=Prix isisfish.populationRecruitment.comments=Commentaires isisfish.populationRecruitment.monthgapgetweenreprorecruitment=Nombre de mois entre ponte et recrutement isisfish.populationRecruitment.recruitmentDistribution=Distribution du recrutement isisfish.populationRecruitment.reproductionEquation=Equation de reproduction -isisfish.populationRecruitment.title=Saisie des reproductions +isisfish.populationRecruitment.title=Reproductions isisfish.populationSeasonInfo.arrival=Arrivée isisfish.populationSeasonInfo.departure=Départ isisfish.populationSeasonInfo.distributionSpawing=Distribution de la reproduction Modified: isis-fish/trunk/src/main/resources/log4j.properties =================================================================== --- isis-fish/trunk/src/main/resources/log4j.properties 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/resources/log4j.properties 2011-07-06 14:24:29 UTC (rev 3432) @@ -41,3 +41,7 @@ log4j.logger.sensitivity=INFO log4j.logger.sensitivityexports=INFO log4j.logger.simulators=INFO + +log4j.logger.fr.ifremer.isisfish.datastore=DEBUG +log4j.logger.fr.ifremer.isisfish.vcs=DEBUG +log4j.logger.fr.ifremer.isisfish.util=DEBUG \ No newline at end of file Modified: isis-fish/trunk/src/main/resources/sensitivity.properties =================================================================== --- isis-fish/trunk/src/main/resources/sensitivity.properties 2011-07-06 14:17:27 UTC (rev 3431) +++ isis-fish/trunk/src/main/resources/sensitivity.properties 2011-07-06 14:24:29 UTC (rev 3432) @@ -5,7 +5,7 @@ # $Id$ # $HeadURL$ # %% -# Copyright (C) 2009 - 2010 Ifremer, CodeLutin +# Copyright (C) 2009 - 2011 Ifremer, CodeLutin, Chatellier Eric # %% # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as @@ -22,7 +22,7 @@ # <http://www.gnu.org/licenses/gpl-2.0.html>. # #L% ### -#?this file contains authorized entities factors creation +# this file contains authorized entities factors creation EffortDescription.crewFoodCost EffortDescription.crewShareRate EffortDescription.crewSize @@ -38,15 +38,16 @@ Gear.standardisationFactor Metier.gearParameterValue Population.capturability -PopulationGroup.reproductionRate Population.growth Population.growthReverse +Population.maturityOgiveEquation Population.meanWeight Population.monthGapBetweenReproRecrutement Population.naturalDeathRate Population.price Population.recruitmentDistribution Population.reproductionEquation +Population.reproductionRateEquation PopulationSeasonInfo.lengthChangeMatrix PopulationSeasonInfo.migrationEquation PopulationSeasonInfo.emigrationEquation Modified: isis-fish/trunk/src/main/xmi/isis-fish.zargo =================================================================== (Binary files differ)
participants (1)
-
chatellier@users.labs.libre-entreprise.org