r3931 - in branches/4.0.1/src/main: java/fr/ifremer/isisfish/datastore/migration java/fr/ifremer/isisfish/entities java/fr/ifremer/isisfish/ui/input java/fr/ifremer/isisfish/ui/input/tree java/fr/ifremer/isisfish/ui/input/tree/loadors resources/fr/ifremer/isisfish/entities resources/i18n xmi
Author: echatellier Date: 2014-04-04 10:18:00 +0200 (Fri, 04 Apr 2014) New Revision: 3931 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/3931 Log: refs #4803: Add observation in region Added: branches/4.0.1/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV421V43.java branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/ObservationUI.jaxx branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/loadors/ObservationsNodeLoador.java branches/4.0.1/src/main/resources/fr/ifremer/isisfish/entities/Observation-error-validation.xml Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/datastore/migration/DatabaseMigrationClass.java branches/4.0.1/src/main/java/fr/ifremer/isisfish/entities/FisheryRegionImpl.java branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/InputHandler.java branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/FisheryTreeHelper.java branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/FisheryTreeRenderer.java branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/loadors/PopulationsNodeLoador.java branches/4.0.1/src/main/resources/i18n/isis-fish_en_GB.properties branches/4.0.1/src/main/resources/i18n/isis-fish_fr_FR.properties branches/4.0.1/src/main/xmi/isis-fish.properties branches/4.0.1/src/main/xmi/isis-fish.zargo Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/datastore/migration/DatabaseMigrationClass.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/datastore/migration/DatabaseMigrationClass.java 2014-04-03 18:23:18 UTC (rev 3930) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/datastore/migration/DatabaseMigrationClass.java 2014-04-04 08:18:00 UTC (rev 3931) @@ -50,6 +50,7 @@ protected static final Version VERSION_40 = new Version("4.0"); protected static final Version VERSION_41 = new Version("4.1"); protected static final Version VERSION_421 = new Version("4.2.1"); + protected static final Version VERSION_43 = new Version("4.3"); public DatabaseMigrationClass() { super(new MigrationResolver()); @@ -73,6 +74,8 @@ result = MigrationV40V41.class; } else if (version.equals(VERSION_421)) { result = MigrationV41V421.class; + } else if (version.equals(VERSION_43)) { + result = MigrationV421V43.class; } return result; } @@ -84,7 +87,7 @@ */ @Override public Version[] getAvailableVersions() { - Version[] result = new Version[] { VERSION_32, VERSION_33, VERSION_40, VERSION_41, VERSION_421}; + Version[] result = new Version[] { VERSION_32, VERSION_33, VERSION_40, VERSION_41, VERSION_421, VERSION_43}; return result; } Added: branches/4.0.1/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV421V43.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV421V43.java (rev 0) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV421V43.java 2014-04-04 08:18:00 UTC (rev 3931) @@ -0,0 +1,76 @@ +/* + * #%L + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 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.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 4.1 and 4.2.1. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class MigrationV421V43 extends MigrationCallBackForVersion { + + /** + * Constructor. + * + * @param version version + * @param callback callback + */ + public MigrationV421V43(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 { + + // ajout de la table 'observation' + queries.add("CREATE TABLE observation( " + + "TOPIAID VARCHAR(255) NOT NULL, " + + "TOPIAVERSION BIGINT NOT NULL, " + + "TOPIACREATEDATE DATE, " + + "NAME LONGVARCHAR, " + + "COMMENT LONGVARCHAR, " + + "VALUE_NAME VARCHAR(255), " + + "VALUE_DIM VARCHAR(255), " + + "VALUE_DIMNAMES LONGVARCHAR, " + + "VALUE_SEMANTICS LONGVARCHAR, " + + "VALUE_DATA LONGVARCHAR) "); + } +} Property changes on: branches/4.0.1/src/main/java/fr/ifremer/isisfish/datastore/migration/MigrationV421V43.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/entities/FisheryRegionImpl.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/entities/FisheryRegionImpl.java 2014-04-03 18:23:18 UTC (rev 3930) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/entities/FisheryRegionImpl.java 2014-04-04 08:18:00 UTC (rev 3931) @@ -231,6 +231,17 @@ } } + @Override + public List<Observation> getObservations() { + try { + ObservationDAO dao = IsisFishDAOHelper.getObservationDAO(getTopiaContext()); + List<Observation> result = dao.findAll(); + return result; + } catch (TopiaException eee) { + throw new IsisFishRuntimeException("Can't get observations", eee); + } + } + /* * @see fr.ifremer.isisfish.entities.FisheryRegionAbstract#toString() */ Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java 2014-04-03 18:23:18 UTC (rev 3930) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java 2014-04-04 08:18:00 UTC (rev 3931) @@ -36,6 +36,7 @@ import javax.swing.JOptionPane; import org.apache.commons.io.FileUtils; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.math.matrix.MatrixFactory; @@ -60,6 +61,7 @@ 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; @@ -639,7 +641,7 @@ } } - public Object createRecruitmentDistribution(Population pop) { + public void createRecruitmentDistribution(Population pop) { if (log.isTraceEnabled()) { log.trace("createRecruitmentDistributionon called: " + pop); } @@ -679,9 +681,44 @@ ErrorHelper.showErrorDialog(t("isisfish.error.input.removeentity", "RecruitmentDistribution"), eee); } - return null; } + 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, Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/InputHandler.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/InputHandler.java 2014-04-03 18:23:18 UTC (rev 3930) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/InputHandler.java 2014-04-04 08:18:00 UTC (rev 3931) @@ -23,8 +23,8 @@ package fr.ifremer.isisfish.ui.input; -import static org.nuiton.i18n.I18n.t; import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.t; import java.awt.BorderLayout; import java.awt.event.ActionEvent; @@ -66,6 +66,7 @@ import fr.ifremer.isisfish.entities.FisheryRegion; import fr.ifremer.isisfish.entities.Gear; import fr.ifremer.isisfish.entities.Metier; +import fr.ifremer.isisfish.entities.Observation; import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.Port; import fr.ifremer.isisfish.entities.SetOfVessels; @@ -580,39 +581,30 @@ Class<? extends InputContentUI<?>> uiClass = null; if (FisheryRegion.class.isAssignableFrom(internalClass)) { uiClass = FisheryRegionUI.class; - } - else if (Cell.class.isAssignableFrom(internalClass)) { + } else if (Cell.class.isAssignableFrom(internalClass)) { uiClass = CellUI.class; - } - else if (Gear.class.isAssignableFrom(internalClass)) { + } else if (Gear.class.isAssignableFrom(internalClass)) { uiClass = GearUI.class; - } - else if (Metier.class.isAssignableFrom(internalClass)) { + } else if (Metier.class.isAssignableFrom(internalClass)) { uiClass = MetierUI.class; - } - else if (Population.class.isAssignableFrom(internalClass)) { + } else if (Population.class.isAssignableFrom(internalClass)) { uiClass = PopulationUI.class; - } - else if (Port.class.isAssignableFrom(internalClass)) { + } else if (Port.class.isAssignableFrom(internalClass)) { uiClass = PortUI.class; - } - else if (SetOfVessels.class.isAssignableFrom(internalClass)) { + } else if (SetOfVessels.class.isAssignableFrom(internalClass)) { uiClass = SetOfVesselsUI.class; - } - else if (Species.class.isAssignableFrom(internalClass)) { + } else if (Species.class.isAssignableFrom(internalClass)) { uiClass = SpeciesUI.class; - } - else if (Strategy.class.isAssignableFrom(internalClass)) { + } else if (Strategy.class.isAssignableFrom(internalClass)) { uiClass = StrategyUI.class; - } - else if (TripType.class.isAssignableFrom(internalClass)) { + } else if (TripType.class.isAssignableFrom(internalClass)) { uiClass = TripTypeUI.class; - } - else if (VesselType.class.isAssignableFrom(internalClass)) { + } else if (VesselType.class.isAssignableFrom(internalClass)) { uiClass = VesselTypeUI.class; - } - else if (Zone.class.isAssignableFrom(internalClass)) { + } else if (Zone.class.isAssignableFrom(internalClass)) { uiClass = ZoneUI.class; + } else if (Observation.class.isAssignableFrom(internalClass)) { + uiClass = ObservationUI.class; } // use map to implement UI cache Added: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/ObservationUI.jaxx =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/ObservationUI.jaxx (rev 0) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/ObservationUI.jaxx 2014-04-04 08:18:00 UTC (rev 3931) @@ -0,0 +1,178 @@ +<!-- + #%L + IsisFish + + $Id$ + $HeadURL$ + %% + Copyright (C) 2014 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='fr.ifremer.isisfish.entities.Observation'> + + <!-- bean property --> + <fr.ifremer.isisfish.entities.Observation + id='bean' javaBean='null' /> + + <import> + static org.nuiton.i18n.I18n.t + static org.nuiton.i18n.I18n.n + org.nuiton.math.matrix.gui.MatrixPanelEvent + org.nuiton.math.matrix.MatrixND + java.beans.PropertyChangeEvent + java.beans.PropertyChangeListener + </import> + + <BeanValidator id='validator' + bean='{getBean()}' beanClass='fr.ifremer.isisfish.entities.Observation' + uiClass="jaxx.runtime.validator.swing.ui.ImageValidationUI"> + <field name="name" component="fieldObservationName" /> + </BeanValidator> + + <script><![CDATA[ + +protected void $afterCompleteSetup() { + addPropertyChangeListener(PROPERTY_BEAN, new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + if (evt.getNewValue() == null) { + fieldObservationValue.setMatrix(null); + } + if (evt.getNewValue() != null) { + setObservationValueMatrix(); + } + } + }); +} + +protected void setObservationValueMatrix() { + MatrixND prop = getBean().getValue(); + if (prop != null) { + fieldObservationValue.setMatrix(prop.copy()); + } else { + fieldObservationValue.setMatrix(null); + } +} + +protected void createObservationValueMatrix() { + getAction().createObservationValueMatrix(getBean()); + setObservationValueMatrix(); +} + +protected void observationValueMatrixChanged(MatrixPanelEvent event) { + MatrixND mat = fieldObservationValue.getMatrix(); + if (getBean() != null && mat != null) { + getBean().setValue(mat.copy()); + } +} + + ]]></script> + <JPanel id="body"> + <Table> + <row> + <cell fill='both' weightx='1.0' weighty='1.0'> + <Table> + <row> + <cell columns='2' fill='horizontal' weightx='1.0'> + <JLabel text="isisfish.observation.name" enabled='{isActive()}' /> + </cell> + </row> + <row> + <cell columns='2' fill='horizontal' weightx='1.0'> + <JTextField id="fieldObservationName" + text='{SwingUtil.getStringValue(getBean().getName())}' + onKeyReleased='getBean().setName(fieldObservationName.getText())' + enabled='{isActive()}' decorator='boxed' /> + </cell> + </row> + <row> + <cell columns='2' fill='horizontal' weightx='1.0'> + <JLabel text="isisfish.observation.comment" + enabled='{isActive()}' /> + </cell> + </row> + <row> + <cell columns='2' fill='both' weighty='0.2' weightx='1.0'> + <JScrollPane> + <JTextArea id="fieldObservationComment" + text='{SwingUtil.getStringValue(getBean().getComment())}' + onKeyReleased='getBean().setComment(fieldObservationComment.getText())' + enabled='{isActive()}' decorator='boxed' /> + </JScrollPane> + </cell> + </row> + <row> + <cell columns='2' fill='horizontal' weightx='1.0'> + <JLabel text="isisfish.observation.value" + enabled='{isActive()}' /> + </cell> + </row> + <row> + <cell columns='2' fill='both' weighty='1' weightx='1.0'> + <org.nuiton.math.matrix.gui.MatrixPanelEditor + id="fieldObservationValue" onMatrixChanged="observationValueMatrixChanged(event)" + enabled='{isActive()}' decorator='boxed' + _sensitivityBean='{fr.ifremer.isisfish.entities.Observation.class}' + _sensitivityMethod='"Value"' /> + </cell> + </row> + <row> + <cell> + <JPanel/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <JButton text="isisfish.common.newMatrix" onActionPerformed='createObservationValueMatrix()' enabled='{isActive()}' decorator='boxed'/> + </cell> + </row> + </Table> + </cell> + </row> + <row> + <cell fill='horizontal' weightx='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> + <row> + <cell fill='horizontal' weightx='0.5'> + <JButton id='create' decorator='boxed' + text="isisfish.common.new" enabled="{!validator.isChanged()}" + onActionPerformed="getSaveVerifier().create(Observation.class)" /> + </cell> + <cell fill='horizontal' weightx='0.5'> + <JButton id='delete' decorator='boxed' + text="isisfish.common.remove" + enabled="{!validator.isChanged() && getBean() != null}" + onActionPerformed="getSaveVerifier().delete()" /> + </cell> + </row> + </Table> + </cell> + </row> + </Table> + </JPanel> +</fr.ifremer.isisfish.ui.input.InputContentUI> Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/FisheryTreeHelper.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/FisheryTreeHelper.java 2014-04-03 18:23:18 UTC (rev 3930) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/FisheryTreeHelper.java 2014-04-04 08:18:00 UTC (rev 3931) @@ -37,6 +37,7 @@ import fr.ifremer.isisfish.entities.FisheryRegion; import fr.ifremer.isisfish.entities.Gear; import fr.ifremer.isisfish.entities.Metier; +import fr.ifremer.isisfish.entities.Observation; import fr.ifremer.isisfish.entities.Port; import fr.ifremer.isisfish.entities.SetOfVessels; import fr.ifremer.isisfish.entities.Species; @@ -48,6 +49,7 @@ import fr.ifremer.isisfish.ui.input.tree.loadors.FisheryTreeNodeLoador; import fr.ifremer.isisfish.ui.input.tree.loadors.GearsNodeLoador; import fr.ifremer.isisfish.ui.input.tree.loadors.MetiersNodeLoador; +import fr.ifremer.isisfish.ui.input.tree.loadors.ObservationsNodeLoador; import fr.ifremer.isisfish.ui.input.tree.loadors.PortsNodeLoador; import fr.ifremer.isisfish.ui.input.tree.loadors.SetOfVesselsNodeLoador; import fr.ifremer.isisfish.ui.input.tree.loadors.SpeciesNodeLoador; @@ -90,7 +92,8 @@ loadorCache.put(VesselType.class, new VesselTypesNodeLoador()); loadorCache.put(SetOfVessels.class, new SetOfVesselsNodeLoador()); loadorCache.put(Strategy.class, new StrategiesNodeLoador()); - + loadorCache.put(Observation.class, new ObservationsNodeLoador()); + // first level nodes CellsNodeLoador cellsNodeLoador = new CellsNodeLoador(); FisheryTreeNode cellsChild = new FisheryTreeNode(Cell.class, @@ -142,6 +145,11 @@ n("isisfish.input.tree.strategies"), null, strategiesNodeLoador); loadorCache.put(Strategy.class, strategiesNodeLoador); + ObservationsNodeLoador observationsNodeLoador = new ObservationsNodeLoador(); + FisheryTreeNode observationsChild = new FisheryTreeNode(Observation.class, + n("isisfish.input.tree.observations"), null, observationsNodeLoador); + loadorCache.put(Observation.class, observationsNodeLoador); + root.add(cellsChild); root.add(zonesChild); root.add(portsChild); @@ -152,6 +160,7 @@ root.add(vesselTypesChild); root.add(setOfVesselsChild); root.add(strategiesChild); + root.add(observationsChild); // Create model TreeModel model = createModel(root); Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/FisheryTreeRenderer.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/FisheryTreeRenderer.java 2014-04-03 18:23:18 UTC (rev 3930) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/FisheryTreeRenderer.java 2014-04-04 08:18:00 UTC (rev 3931) @@ -40,6 +40,7 @@ import fr.ifremer.isisfish.entities.FisheryRegionImpl; import fr.ifremer.isisfish.entities.Gear; import fr.ifremer.isisfish.entities.Metier; +import fr.ifremer.isisfish.entities.Observation; import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.Port; import fr.ifremer.isisfish.entities.SetOfVessels; @@ -94,39 +95,30 @@ if (entity != null) { if (FisheryRegion.class.isAssignableFrom(entity.getClass())) { stringValue = ((FisheryRegion)entity).getName(); - } - else if (Cell.class.isAssignableFrom(entity.getClass())) { + } else if (Cell.class.isAssignableFrom(entity.getClass())) { stringValue = ((Cell)entity).getName(); - } - else if (Gear.class.isAssignableFrom(entity.getClass())) { + } else if (Gear.class.isAssignableFrom(entity.getClass())) { stringValue = ((Gear)entity).getName(); - } - else if (Metier.class.isAssignableFrom(entity.getClass())) { + } else if (Metier.class.isAssignableFrom(entity.getClass())) { stringValue = ((Metier)entity).getName(); - } - else if (Population.class.isAssignableFrom(entity.getClass())) { + } else if (Population.class.isAssignableFrom(entity.getClass())) { stringValue = ((Population)entity).getName(); - } - else if (Port.class.isAssignableFrom(entity.getClass())) { + } else if (Port.class.isAssignableFrom(entity.getClass())) { stringValue = ((Port)entity).getName(); - } - else if (SetOfVessels.class.isAssignableFrom(entity.getClass())) { + } else if (SetOfVessels.class.isAssignableFrom(entity.getClass())) { stringValue = ((SetOfVessels)entity).getName(); - } - else if (Species.class.isAssignableFrom(entity.getClass())) { + } else if (Species.class.isAssignableFrom(entity.getClass())) { stringValue = ((Species)entity).getName(); - } - else if (Strategy.class.isAssignableFrom(entity.getClass())) { + } else if (Strategy.class.isAssignableFrom(entity.getClass())) { stringValue = ((Strategy)entity).getName(); - } - else if (TripType.class.isAssignableFrom(entity.getClass())) { + } else if (TripType.class.isAssignableFrom(entity.getClass())) { stringValue = ((TripType)entity).getName(); - } - else if (VesselType.class.isAssignableFrom(entity.getClass())) { + } else if (VesselType.class.isAssignableFrom(entity.getClass())) { stringValue = ((VesselType)entity).getName(); - } - else if (Zone.class.isAssignableFrom(entity.getClass())) { + } else if (Zone.class.isAssignableFrom(entity.getClass())) { stringValue = ((Zone)entity).getName(); + } else if (Observation.class.isAssignableFrom(entity.getClass())) { + stringValue = ((Observation)entity).getName(); } } } catch (TopiaException eee) { Added: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/loadors/ObservationsNodeLoador.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/loadors/ObservationsNodeLoador.java (rev 0) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/loadors/ObservationsNodeLoador.java 2014-04-04 08:18:00 UTC (rev 3931) @@ -0,0 +1,67 @@ +/* + * #%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 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.tree.loadors; + +import java.util.List; + +import jaxx.runtime.swing.nav.NavDataProvider; +import fr.ifremer.isisfish.entities.FisheryRegion; +import fr.ifremer.isisfish.entities.Gear; +import fr.ifremer.isisfish.entities.Observation; +import fr.ifremer.isisfish.ui.input.tree.FisheryDataProvider; +import fr.ifremer.isisfish.ui.input.tree.FisheryTreeNode; + +/** + * Observation tree path node loader. + * + * @author chatellier + * @since 3.4.0.0 + */ +public class ObservationsNodeLoador extends FisheryTreeNodeLoador<Observation> { + + /** serialVersionUID. */ + private static final long serialVersionUID = 6540304326033236054L; + + public ObservationsNodeLoador() { + super(Observation.class); + } + + @Override + public List<Observation> getData(Class<?> parentClass, String parentId, NavDataProvider dataProvider) throws Exception { + FisheryDataProvider ficheryRegionDataProvider = (FisheryDataProvider)dataProvider; + FisheryRegion fisheryRegion = ficheryRegionDataProvider.getFisheryRegion(); + List<Observation> observations = fisheryRegion.getObservations(); + return observations; + } + + @Override + public FisheryTreeNode createNode(Observation observation, NavDataProvider dataProvider) { + + // Create clients static nodes + FisheryTreeNode observationNode = new FisheryTreeNode( + Observation.class, observation.getTopiaId(), + null, null); + + return observationNode; + } +} Property changes on: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/loadors/ObservationsNodeLoador.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/loadors/PopulationsNodeLoador.java =================================================================== --- branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/loadors/PopulationsNodeLoador.java 2014-04-03 18:23:18 UTC (rev 3930) +++ branches/4.0.1/src/main/java/fr/ifremer/isisfish/ui/input/tree/loadors/PopulationsNodeLoador.java 2014-04-04 08:18:00 UTC (rev 3931) @@ -56,7 +56,7 @@ populations = new ArrayList<Population>(species.getPopulation()); } else { - populations = Collections.EMPTY_LIST; + populations = Collections.emptyList(); } return populations; } Added: branches/4.0.1/src/main/resources/fr/ifremer/isisfish/entities/Observation-error-validation.xml =================================================================== --- branches/4.0.1/src/main/resources/fr/ifremer/isisfish/entities/Observation-error-validation.xml (rev 0) +++ branches/4.0.1/src/main/resources/fr/ifremer/isisfish/entities/Observation-error-validation.xml 2014-04-04 08:18:00 UTC (rev 3931) @@ -0,0 +1,33 @@ +<!-- + #%L + $Id$ + $HeadURL$ + %% + Copyright (C) 2014 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% + --> +<!DOCTYPE validators PUBLIC + "-//Apache Struts//XWork Validator 1.0.3//EN" + "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> +<validators> + <field name="name"> + <field-validator type="requiredstring"> + <param name="trim">true</param> + <message>Missing name</message> + </field-validator> + </field> +</validators> Property changes on: branches/4.0.1/src/main/resources/fr/ifremer/isisfish/entities/Observation-error-validation.xml ___________________________________________________________________ Added: svn:mime-type + text/xml Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: branches/4.0.1/src/main/resources/i18n/isis-fish_en_GB.properties =================================================================== --- branches/4.0.1/src/main/resources/i18n/isis-fish_en_GB.properties 2014-04-03 18:23:18 UTC (rev 3930) +++ branches/4.0.1/src/main/resources/i18n/isis-fish_en_GB.properties 2014-04-04 08:18:00 UTC (rev 3931) @@ -510,6 +510,7 @@ isisfish.input.tree.cells=Cells isisfish.input.tree.gears=Gears isisfish.input.tree.metiers=Metiers +isisfish.input.tree.observations=Observations isisfish.input.tree.populations=Populations isisfish.input.tree.ports=Ports isisfish.input.tree.setofvessels=Set of vessels @@ -603,6 +604,7 @@ isisfish.message.new.formule.category=Select the equation model's category isisfish.message.new.formule.title=New equation model isisfish.message.new.region.name=Enter new region name +isisfish.message.observation.value.dimensions=Enter matrix dimensions \: isisfish.message.old.simulation.loaded=Old simulation loaded isisfish.message.page.modified=This page has been modified, do you want to save it ? isisfish.message.presimulation.script.execution=Presimulation Script execution Modified: branches/4.0.1/src/main/resources/i18n/isis-fish_fr_FR.properties =================================================================== --- branches/4.0.1/src/main/resources/i18n/isis-fish_fr_FR.properties 2014-04-03 18:23:18 UTC (rev 3930) +++ branches/4.0.1/src/main/resources/i18n/isis-fish_fr_FR.properties 2014-04-04 08:18:00 UTC (rev 3931) @@ -510,6 +510,7 @@ isisfish.input.tree.cells=Mailles isisfish.input.tree.gears=Engins isisfish.input.tree.metiers=Métiers +isisfish.input.tree.observations=Observations isisfish.input.tree.populations=Populations isisfish.input.tree.ports=Ports isisfish.input.tree.setofvessels=Flottilles @@ -603,6 +604,7 @@ isisfish.message.new.formule.category=Choisissez le catégorie de la formule isisfish.message.new.formule.title=Nouvelle formule isisfish.message.new.region.name=Entrer le nom de la nouvelle région +isisfish.message.observation.value.dimensions=Entrez les dimensions de la matrice \: isisfish.message.old.simulation.loaded=Ancienne simulation chargée isisfish.message.page.modified=Cette page a été modifié, voulez-vous la sauvegarder ? isisfish.message.presimulation.script.execution=Exécution des scripts de Presimulation @@ -653,6 +655,9 @@ isisfish.month.november=novembre isisfish.month.october=octobre isisfish.month.september=septembre +isisfish.observation.comment=Description +isisfish.observation.name=Nom +isisfish.observation.value=Valeur isisfish.optimization.export=Export isisfish.optimization.exports=Exports et observations isisfish.optimization.method=Méthode d'optimisation Modified: branches/4.0.1/src/main/xmi/isis-fish.properties =================================================================== --- branches/4.0.1/src/main/xmi/isis-fish.properties 2014-04-03 18:23:18 UTC (rev 3930) +++ branches/4.0.1/src/main/xmi/isis-fish.properties 2014-04-04 08:18:00 UTC (rev 3931) @@ -57,6 +57,7 @@ fr.ifremer.isisfish.entities.Variable.attribute.entityId.tagvalue.notNull=true fr.ifremer.isisfish.entities.VesselType.class.tagvalue.contextable=true fr.ifremer.isisfish.entities.Zone.class.tagvalue.contextable=true +fr.ifremer.isisfish.entities.Observation.class.tagvalue.contextable=true -#�fix lazy exception on sensitivity export +# fix lazy exception on sensitivity export fr.ifremer.isisfish.entities.Population.attribute.maturityOgiveEquation.tagvalue.lazy=false Modified: branches/4.0.1/src/main/xmi/isis-fish.zargo =================================================================== (Binary files differ)
participants (1)
-
echatellier@users.forge.codelutin.com