Author: echatellier Date: 2015-06-23 13:10:39 +0000 (Tue, 23 Jun 2015) New Revision: 4281 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/4281 Log: close #7224: Ajout des nouveaux parametres dans un onglets 'stock' Added: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationStockHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationStockUI.jaxx Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV43V44.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationUI.jaxx trunk/src/main/resources/i18n/isis-fish_en_GB.properties trunk/src/main/resources/i18n/isis-fish_fr_FR.properties trunk/src/main/xmi/isis-fish.zargo Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java 2015-06-22 09:13:37 UTC (rev 4280) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV33V40.java 2015-06-23 13:10:39 UTC (rev 4281) @@ -104,12 +104,13 @@ tx.executeSQL("alter table POPULATION add column CAPTURABILITYEQUATIONUSED BIT default false;"); // migration v 4.1.2 (mais necessaire de la faire avant sinon le findByTopiaId va planter) - tx.executeSQL("alter table POPULATION add column groupmin integer default 0"); - tx.executeSQL("alter table POPULATION add column groupmax integer default 0"); + tx.executeSQL("alter table POPULATION add column fbargroupmin integer default 0"); + tx.executeSQL("alter table POPULATION add column fbargroupmax integer default 0"); // migration v 4.4 (mais necessaire de la faire avant sinon le from va planter) tx.executeSQL("alter table POPULATION add column IF NOT EXISTS RecruitmentEQUATION VARCHAR(255);"); - tx.executeSQL("alter table POPULATION add column IF NOT EXISTS representativeAbundanceMonth integer;"); + tx.executeSQL("alter table POPULATION add column IF NOT EXISTS abundanceReferenceMonth integer default null;"); + tx.executeSQL("alter table POPULATION add column IF NOT EXISTS computeFOnLandings BIT default false;"); // build new equation for maturity group for (Object[] maturityRow : maturityGroupResult) { @@ -177,6 +178,10 @@ } } } + + // migration v 4.1.2 (resuppression des colunnes pour que la suite de la migration soit cohérente) + tx.executeSQL("alter table POPULATION drop column fbargroupmin"); + tx.executeSQL("alter table POPULATION drop column fbargroupmax"); } /** Modified: trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV43V44.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV43V44.java 2015-06-22 09:13:37 UTC (rev 4280) +++ trunk/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV43V44.java 2015-06-23 13:10:39 UTC (rev 4281) @@ -63,8 +63,17 @@ List<String> queries, boolean showSql, boolean showProgression) throws TopiaException { + // add recruitment equation tx.executeSQL("alter table POPULATION add column IF NOT EXISTS RecruitmentEQUATION VARCHAR(255);"); - tx.executeSQL("alter table POPULATION add column IF NOT EXISTS representativeAbundanceMonth integer;"); + // add abundanceReferenceMonth field + tx.executeSQL("alter table POPULATION add column IF NOT EXISTS abundanceReferenceMonth integer default null;"); + tx.executeSQL("update POPULATION set abundanceReferenceMonth = null;"); // strange default + // rename groupMin/groupMax + tx.executeSQL("alter table POPULATION alter column groupMin RENAME TO fbarGroupMin;"); + tx.executeSQL("alter table POPULATION alter column groupMax RENAME TO fbarGroupMax;"); + // add representativeAbundanceMonth field + tx.executeSQL("alter table POPULATION add column IF NOT EXISTS computeFOnLandings BIT default false;"); + // build new equation for maturity group and reproduction rate List<Population> pops = tx.findAll("from " + Population.class.getName()); 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-06-22 09:13:37 UTC (rev 4280) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsHandler.java 2015-06-23 13:10:39 UTC (rev 4281) @@ -26,7 +26,6 @@ import static org.nuiton.i18n.I18n.t; import java.awt.BorderLayout; -import java.awt.event.ItemEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.List; @@ -48,7 +47,6 @@ import fr.ifremer.isisfish.entities.PopulationDAO; import fr.ifremer.isisfish.entities.PopulationGroup; import fr.ifremer.isisfish.entities.Species; -import fr.ifremer.isisfish.types.Month; import fr.ifremer.isisfish.ui.input.InputContentHandler; import fr.ifremer.isisfish.ui.input.InputUI; @@ -76,11 +74,8 @@ inputContentUI.fieldPopulationBasicsNbClasses.setText(""); inputContentUI.fieldPopulationBasicsComment.setText(""); inputContentUI.tableAgeLength.setModel(new DefaultTableModel()); - inputContentUI.fieldPopulationMcacf.setSelectedItem(null); } if (evt.getNewValue() != null) { - Population bean = (Population)evt.getNewValue(); - inputContentUI.fieldPopulationMcacf.setSelectedItem(bean.getRepresentativeAbundanceMonth()); setTableAgeLengthModel(); } init = false; @@ -178,11 +173,4 @@ } return pop; } - - public void onRepresentativeAbundanceMonthChanged() { - if (!init) { - Month month = (Month)inputContentUI.fieldPopulationMcacf.getSelectedItem(); - inputContentUI.getBean().setRepresentativeAbundanceMonth(month); - } - } } Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsUI.jaxx 2015-06-22 09:13:37 UTC (rev 4280) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationBasicsUI.jaxx 2015-06-23 13:10:39 UTC (rev 4281) @@ -92,39 +92,6 @@ </cell> </row> <row> - <cell anchor='east' insets="0"> - <JLabel text="isisfish.populationBasics.groupMin" enabled='{isActive()}'/> - </cell> - <cell fill='horizontal' columns='3' insets="0"> - <Table> - <row> - <cell fill='horizontal' weightx='1.0'> - <JTextField id="fieldPopulationGroupMin" text='{String.valueOf(getBean().getGroupMin())}' - onKeyReleased='getBean().setGroupMin(Integer.parseInt(fieldPopulationGroupMin.getText()))' - enabled='{isActive()}' decorator='boxed' _sensitivityBean='{Population.class}' _sensitivityMethod='"MinAge"'/> - </cell> - <cell> - <JLabel text="isisfish.populationBasics.groupMax" enabled='{isActive()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <JTextField id="fieldPopulationGroupMax" text='{String.valueOf(getBean().getGroupMax())}' - onKeyReleased='getBean().setGroupMax(Integer.parseInt(fieldPopulationGroupMax.getText()))' - enabled='{isActive()}' decorator='boxed' _sensitivityBean='{Population.class}' _sensitivityMethod='"MaxAge"'/> - </cell> - <cell> - <JLabel text="isisfish.populationBasics.mcacf" toolTipText="isisfish.populationBasics.mcacf.tip" enabled='{isActive()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <JComboBox id="fieldPopulationMcacf" - model="{new fr.ifremer.isisfish.ui.models.misc.MonthComboModel()}" - onActionPerformed="handler.onRepresentativeAbundanceMonthChanged()" - enabled='{isActive()}' decorator='boxed' /> - </cell> - </row> - </Table> - </cell> - </row> - <row> <cell columns='4' fill='both' weightx='1.0'> <JTable id='tableAgeLength' rowHeight='24' enabled='false' decorator='boxed'/> </cell> Added: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationStockHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationStockHandler.java (rev 0) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationStockHandler.java 2015-06-23 13:10:39 UTC (rev 4281) @@ -0,0 +1,76 @@ +/* + * #%L + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2015 Ifremer, Codelutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.ui.input.population; + +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import fr.ifremer.isisfish.entities.Population; +import fr.ifremer.isisfish.types.Month; +import fr.ifremer.isisfish.ui.input.InputContentHandler; + +/** + * Population stock handler. + */ +public class PopulationStockHandler extends InputContentHandler<PopulationStockUI> { + + /** Class logger. */ + private static final Log log = LogFactory.getLog(PopulationStockHandler.class); + + protected boolean init; + + protected PopulationStockHandler(PopulationStockUI inputContentUI) { + super(inputContentUI); + } + + protected void afterInit() { + inputContentUI.addPropertyChangeListener(PopulationBasicsUI.PROPERTY_BEAN, new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + init = true; + if (evt.getNewValue() == null) { + inputContentUI.fieldPopulationAbundanceReferenceMonth.setSelectedItem(null); + } + if (evt.getNewValue() != null) { + Population bean = (Population)evt.getNewValue(); + inputContentUI.fieldPopulationAbundanceReferenceMonth.setSelectedItem(bean.getAbundanceReferenceMonth()); + } + init = false; + } + }); + } + + public void refresh() { + + } + + public void onRepresentativeAbundanceMonthChanged() { + if (!init) { + Month month = (Month)inputContentUI.fieldPopulationAbundanceReferenceMonth.getSelectedItem(); + inputContentUI.getBean().setAbundanceReferenceMonth(month); + } + } +} Property changes on: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationStockHandler.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationStockUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationStockUI.jaxx (rev 0) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationStockUI.jaxx 2015-06-23 13:10:39 UTC (rev 4281) @@ -0,0 +1,116 @@ +<!-- + #%L + IsisFish + + $Id: PopulationBasicsUI.jaxx 4279 2015-06-21 19:35:29Z echatellier $ + $HeadURL: http://svn.codelutin.com/isis-fish/trunk/src/main/java/fr/ifremer/isisfish/u... $ + %% + Copyright (C) 2009 - 2015 Ifremer, Code Lutin, Chatellier Eric + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> +<fr.ifremer.isisfish.ui.input.InputContentUI superGenericType='Population'> + + <!-- bean property --> + <fr.ifremer.isisfish.entities.Population id='bean' javaBean='null'/> + + <PopulationStockHandler id="handler" constructorParams="this" /> + + <BeanValidator id='validator' context="basics" + bean='{getBean()}' beanClass='fr.ifremer.isisfish.entities.Population' + uiClass="jaxx.runtime.validator.swing.ui.ImageValidationUI"> + </BeanValidator> + + <script><![CDATA[ + protected void $afterCompleteSetup() { + handler.afterInit(); + } + ]]></script> + + <JPanel id="body"> + <Table> + <row> + <cell columns="2" fill='horizontal'> + <JLabel text="isisfish.populationStock.desc" font-weight="bold" enabled='{isActive()}'/> + </cell> + </row> + <row> + <cell fill='horizontal'> + <JLabel text="isisfish.populationStock.fbarGroupMin" enabled='{isActive()}'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <JTextField id="fieldPopulationFbarGroupMin" text='{String.valueOf(getBean().getFbarGroupMin())}' + onKeyReleased='getBean().setFbarGroupMin(Integer.parseInt(fieldPopulationFbarGroupMin.getText()))' + enabled='{isActive()}' decorator='boxed' _sensitivityBean='{Population.class}' _sensitivityMethod='"FbarGroupMin"'/> + </cell> + </row> + <row> + <cell fill='horizontal'> + <JLabel text="isisfish.populationStock.fbarGroupMax" enabled='{isActive()}'/> + </cell> + <cell fill='horizontal'> + <JTextField id="fieldPopulationFbarGroupMax" text='{String.valueOf(getBean().getFbarGroupMax())}' + onKeyReleased='getBean().setFbarGroupMax(Integer.parseInt(fieldPopulationFbarGroupMax.getText()))' + enabled='{isActive()}' decorator='boxed' _sensitivityBean='{Population.class}' _sensitivityMethod='"FbarGroupMax"'/> + </cell> + </row> + <row> + <cell fill='horizontal'> + <JLabel text="isisfish.populationStock.abundanceReferenceMonth" + toolTipText="isisfish.populationStock.abundanceReferenceMonth.tip" enabled='{isActive()}'/> + </cell> + <cell fill='horizontal'> + <JComboBox id="fieldPopulationAbundanceReferenceMonth" + model="{new fr.ifremer.isisfish.ui.models.misc.MonthComboModel()}" + onActionPerformed="handler.onRepresentativeAbundanceMonthChanged()" + enabled='{isActive()}' decorator='boxed' /> + </cell> + </row> + <row> + <cell fill='horizontal'> + <JLabel text="isisfish.populationStock.computeF" enabled='{isActive()}'/> + </cell> + <cell fill='horizontal'> + <JCheckBox id="fieldPopulationComputeFOnLandings" + text="isisfish.populationStock.computeFOnLandings" + onActionPerformed="getBean().setComputeFOnLandings(fieldPopulationComputeFOnLandings.isSelected())" + selected="{getBean().isComputeFOnLandings()}" + enabled='{isActive()}' decorator='boxed' /> + </cell> + </row> + <row> + <cell columns="2" fill='horizontal' anchor="south" weightx='1.0' weighty='1.0'> + <Table> + <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> + </cell> + </row> + </Table> + </JPanel> +</fr.ifremer.isisfish.ui.input.InputContentUI> Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationUI.jaxx 2015-06-22 09:13:37 UTC (rev 4280) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/population/PopulationUI.jaxx 2015-06-23 13:10:39 UTC (rev 4281) @@ -46,6 +46,7 @@ populationCapturabilityUI.setLayer(active); populationMigrationUI.setLayer(active); populationPriceUI.setLayer(active); + populationStockUI.setLayer(active); variablesUI.setLayer(active); } @@ -60,6 +61,7 @@ populationCapturabilityUI.resetChangeModel(); populationMigrationUI.resetChangeModel(); populationPriceUI.resetChangeModel(); + populationStockUI.resetChangeModel(); variablesUI.resetChangeModel(); } ]]></script> @@ -102,6 +104,10 @@ <tab title='isisfish.populationPrice.title'> <PopulationPriceUI id='populationPriceUI' bean="{getBean()}" active="{isActive()}" sensitivity="{isSensitivity()}" constructorParams='this'/> </tab> + <!-- Stcck --> + <tab title='isisfish.populationStock.title'> + <PopulationStockUI id='populationStockUI' bean="{getBean()}" active="{isActive()}" sensitivity="{isSensitivity()}" constructorParams='this'/> + </tab> <tab title='isisfish.variables.tabtitle'> <fr.ifremer.isisfish.ui.input.variable.EntityVariableUI id="variablesUI" bean="{getBean()}" active="{isActive()}" Modified: trunk/src/main/resources/i18n/isis-fish_en_GB.properties =================================================================== --- trunk/src/main/resources/i18n/isis-fish_en_GB.properties 2015-06-22 09:13:37 UTC (rev 4280) +++ trunk/src/main/resources/i18n/isis-fish_en_GB.properties 2015-06-23 13:10:39 UTC (rev 4281) @@ -671,8 +671,6 @@ isisfish.populationBasics.groupMin=Fbar min group isisfish.populationBasics.growth=Growth isisfish.populationBasics.growthReverse=Reverse growth -isisfish.populationBasics.mcacf=Rmacf -isisfish.populationBasics.mcacf.tip=Representative month for abundance to compute F isisfish.populationBasics.name=Name isisfish.populationBasics.numberGroup=Number of group isisfish.populationBasics.plusGroup=Plus group @@ -741,6 +739,14 @@ isisfish.populationSeasons.spacialized=Spacialized isisfish.populationSeasons.spacialized.visualisation=Spacialized isisfish.populationSeasons.title=Seasons +isisfish.populationStock.abundanceReferenceMonth=Abundance reference month +isisfish.populationStock.abundanceReferenceMonth.tip=Representative month for abundance to compute F +isisfish.populationStock.computeF=F computing +isisfish.populationStock.computeFOnLandings=F computed on landings (discards ignored) +isisfish.populationStock.desc=Parameters of the assessment model \: +isisfish.populationStock.fbarGroupMax=Fbar max group +isisfish.populationStock.fbarGroupMin=Fbar min group +isisfish.populationStock.title=Stocks isisfish.populationZones.betweenSpawningRecruitmentAreas=Match between spawning and recruitment areas isisfish.populationZones.selectPopulationAreas=Select the population areas isisfish.populationZones.selectRecruitmentAreas=Select the recruitment areas Modified: trunk/src/main/resources/i18n/isis-fish_fr_FR.properties =================================================================== --- trunk/src/main/resources/i18n/isis-fish_fr_FR.properties 2015-06-22 09:13:37 UTC (rev 4280) +++ trunk/src/main/resources/i18n/isis-fish_fr_FR.properties 2015-06-23 13:10:39 UTC (rev 4281) @@ -671,8 +671,6 @@ isisfish.populationBasics.groupMin=Fbar group min isisfish.populationBasics.growth=Croissance isisfish.populationBasics.growthReverse=Croissance inverse -isisfish.populationBasics.mcacf=Mcacf -isisfish.populationBasics.mcacf.tip=Mois de considération de l abondance pour le calcul de F isisfish.populationBasics.name=Nom isisfish.populationBasics.numberGroup=Nombre de groupes isisfish.populationBasics.plusGroup=Groupe plus @@ -741,6 +739,14 @@ isisfish.populationSeasons.spacialized=spatialisé isisfish.populationSeasons.spacialized.visualisation=Coefficients spatialisés isisfish.populationSeasons.title=Saisons +isisfish.populationStock.abundanceReferenceMonth=Mois de référence de l'abondance +isisfish.populationStock.abundanceReferenceMonth.tip=Mois de considération de l'abondance pour le calcul de F +isisfish.populationStock.computeF=Calcul de F +isisfish.populationStock.computeFOnLandings=F calculé sur les débarquements (rejets ignorés) +isisfish.populationStock.desc=Paramètres du modèle d'évaluation de stock \: +isisfish.populationStock.fbarGroupMax=Fbar group max +isisfish.populationStock.fbarGroupMin=Fbar group min +isisfish.populationStock.title=Stocks isisfish.populationZones.betweenSpawningRecruitmentAreas=Correspondance entre les zones de reproduction et de recrutement isisfish.populationZones.selectPopulationAreas=Sélectionnez les zones des populations isisfish.populationZones.selectRecruitmentAreas=Sélectionnez les zones de recrutement Modified: trunk/src/main/xmi/isis-fish.zargo =================================================================== (Binary files differ)