Author: tchemit Date: 2013-03-14 07:46:28 +0100 (Thu, 14 Mar 2013) New Revision: 612 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/612 Log: remove nuiton-profiling from build fix svn properties + missing headers Modified: trunk/src/site/rst/mapping.rst trunk/tutti-ui-swing/pom.xml trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentItem.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentItem.jaxx trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties trunk/tutti-ui-swing/src/main/resources/icons/action-open-file.png Modified: trunk/src/site/rst/mapping.rst =================================================================== --- trunk/src/site/rst/mapping.rst 2013-03-14 06:45:16 UTC (rev 611) +++ trunk/src/site/rst/mapping.rst 2013-03-14 06:46:28 UTC (rev 612) @@ -1,307 +1,307 @@ -.. - -.. * #%L -.. * Tutti :: Persistence Adagio (impl) -.. * $Id: referential.rst 301 2013-02-02 14:24:01Z tchemit $ -.. * $HeadURL: http://svn.forge.codelutin.com/svn/tutti/trunk/src/site/rst/referential.rst $ -.. * %% -.. * Copyright (C) 2012 - 2013 Ifremer -.. * %% -.. * 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% -.. - - -============================================= -Tutti - Correspondance écrans/base de données -============================================= - -Présentation -~~~~~~~~~~~~ - -Ce document décrit comment sont stocker les informations visibles dans les écrans. - -Série de campagne -~~~~~~~~~~~~~~~~~ - -Nom - Program.name (PROGRAM.NAME) - -Zone - Program.locations (PROGRAM2LOCATION.LOCATION_FK) - -Commentaire - Program.description (PROGRAM.DESCRIPTION) - -Campagne -~~~~~~~~ - -Série - ScientificCruise.program (SCIENTIFIC_CRUISE.PROGRAM_FK) - -Année - En lecture : year(ScientificCruise.departureDateTime) (SCIENTIFIC_CRUISE.DEPARTURE_DATE_TIME) - En écriture : pas de stockage (car doit logiquement être compatible avec ScientificCruise.departureDateTime) - -Série partielle - ScientificCruise.fishingTrip.surveyMeasurement (SURVEY_MEASUREMENT.ALPHA_NUMERICAL_VALUE, avec PMFM_FK=<PMFM_ID_SURVEY_PART>) - -Name - ScientificCruise.name (SCIENTIFIC_CRUISE.NAME) - -Nombre de poches - En lecture : récupération de la plus grande valeur dans ScientificCruise.fishingTrip.gearPhysicalFeatures.gearPhysicalMeasurement.numericalvalue (GEAR_PHYSICAL_MEASURMENT.NUMERICAL_VALUE avec PMFM_FK=<PMFM_ID_MULTIRIG_NUMBER>) - En écriture : valeur dupliquée pour chaque engin (voir "Engin(s)" ci-dessous) dans ScientificCruise.fishingTrip.gearPhysicalFeatures.gearPhysicalMeasurement.numericalvalue (GEAR_PHYSICAL_MEASURMENT.NUMERICAL_VALUE avec PMFM_FK=<PMFM_ID_MULTIRIG_NUMBER>) - -Pays - En lecture : le pays est calculé à partir de ScientificCruise.departureLocation (SCIENTIFIC_CRUISE.DEPARTURE_LOCATION_FK) - en utilisant la hiérarchie des lieux (LOCATION_HIERARCHY) our être sûr d'obtenir un payx et non un lieux de niveau inférieur (ex : un port, etc.) - En écriture : ScientificCruise.departureLocation (SCIENTIFIC_CRUISE.DEPARTURE_LOCATION_FK) et ScientificCruise.returnLocation (SCIENTIFIC_CRUISE.DEPARTURE_LOCATION_FK) - -Date de début - ScientificCruise.departureDateTime (SCIENTIFIC_CRUISE.DEPARTURE_DATE_TIME) - -Date de fin - ScientificCruise.returnDateTime (SCIENTIFIC_CRUISE.RETURN_DATE_TIME) - -Navire(s) - Le premier navire dans le liste est stocké dans ScientificCruise.vessel (SCIENTIFIC_CRUISE.VESSEL_FK). - Les navires suivants sont stockés dans ScientificCruise.fishingTrip.comments - derrière la balise : #VESSELS=<liste_des_IDs> - Il n'est pas certain qu'il soit nécessaire de stocker cette liste ailleurs, dans la mesure où - elle peut être calculée à partir de la liste des navires associés à chaque opération (voir "Opération > Navire" ci-dessous), - comme c'est le cas actuellement à l'ouverture d'une campagne de données historiques. - -Engin(s) - ScientificCruise.fishingTrip.gearPhysicalFeatures.gear (GEAR_PHYSICAL_FEATURES.GEAR_FK avec RANK_ORDER=<n° d'ordre dans la liste>) - -Chef(s) de mission - La première personne de la liste est stockée sous ScientificCruise.manager (SCIENTIFIC_CRUISE.MANAGER_PERSON_FK) - En v1, les identifiant des personnes suivantes sont stockées dans ScientificCruise.fishingTrip.comments - derrière la balise : #MANAGERS=<liste_des_IDs> - En v2, ce stockage devra se faire dans ScientificCruise.fishingTrip.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_de_campagne> - -Responsable(s) de salle de tri - En v1, tous les identifiants des personnes sélectionnées sont stockées dans ScientificCruise.fishingTrip.comments - derrière la balise : #SORT_MANAGERS=<liste_des_IDs> - En v2, ce stockage devra se faire dans ScientificCruise.fishingTrip.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_salle_de_tri> - -Commentaire - ScientificCruise.comments (SCIENTIFIC_CRUISE.COMMENTS) - -Trait -~~~~~ - -Code Station - Operation.vesselUseFeatures.vesselUseMeasurement (VESSEL_USE_MEASUREMENT.ALPHANUMERICAL_VALUE avec PMFM_FK=<PMFM_ID_STATION_NUMBER>) - -Numéro de trait - Operation.name (OPERATION.NAME) : ajouté à la fin du "name", derrière le code de l'engin, pour rester compatible avec le format des données historiques. - -Numéro de poche - Operation.gearUseFeatures.gearUseMeasurement (GEAR_USE_MEASUREMENT.ALPHANUMERICAL_VALUE avec PMFM_FK=<PMFM_ID_MULTIRIG_AGGREGATION>) - -Strate - Operation.gearUseFeatures.fishingArea.regulationLocation (FISHING_AREA2REG_LOCATION.LOCATION_FK associé au FISHING_AREA de l'opération) - En lecture : sélection en tant que locatlité à partir du locationLevel (LOCATION.LOCATION_LEVEL_FK=<LocationLevelId.STRATA>) - -Sous-strate - Operation.gearUseFeatures.fishingArea.regulationLocation (FISHING_AREA2REG_LOCATION.LOCATION_FK associé au FISHING_AREA de l'opération) - En lecture : sélection en tant que locatlité à partir du locationLevel (LOCATION.LOCATION_LEVEL_FK=<LocationLevelId.SUB_STRATA>) - -Localité - operation.gearUseFeatures.fishingArea.regulationLocation (FISHING_AREA2REG_LOCATION.LOCATION_FK associé au FISHING_AREA de l'opération) - En lecture : sélection en tant que locatlité à partir du locationLevel (LOCATION.LOCATION_LEVEL_FK=<LocationLevelId.LOCALITE>) - -Début de traine > Latitude, Longitude - Operation.vesselPosition (VESSEL_POSITION.LATITUDE et VESSEL_POSITION.LONGITUDE), avec startDateTime = "Début de traine > Date et heure" - -Début de traine > Date et heure - Operation.startDateTime et Operation.fishingStartDateTime (OPERATION.START_DATE_TIME et OPERATION.FISHING_START_DATE_TIME) - -Fin de traine > Latitude, Longitude - Operation.vesselPosition (VESSEL_POSITION.LATITUDE et VESSEL_POSITION.LONGITUDE), avec startDateTime = "Fin de traine > Date et heure" - -Fin de traine > Date et heure - Operation.endDateTime et Operation.fishingEndDateTime (OPERATION.END_DATE_TIME et OPERATION.FISHING_END_DATE_TIME) - -Trait rectiligne - Operation.vesselUseFeatures.vesselUseMeasurement (VESSEL_USE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PMFM_ID_RECTILINEAR_OPERATION>) - -Distance chalutée - Operation.vesselUseFeatures.vesselUseMeasurement (VESSEL_USE_MEASUREMENT.NUMERICAL_VALUE avec PMFM_FK=<PMFM_ID_TRAWL_DISTANCE>) - -Trait valide ou invalide - Operation.vesselUseFeatures.vesselUseMeasurement (VESSEL_USE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PMFM_ID_HAUL_VALID>) - -Saisisseur(s) - En v1, les identifiant des personnes suivantes sont stockées dans ScientificCruise.fishingTrip.comments - derrière la balise : #MANAGERS=<liste_des_IDs> - En v2, ce stockage devra se faire dans ScientificCruise.fishingTrip.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_de_campagne> - -Navire - Si le navire est identique au premier de la liste de la campagne : Operation.vessel (OPERATION.VESSEL_FK) - Sinon : Operation.operationVesselAssociation (OPERATION_VESSEL_ASSOCIATION.VESSEL_FK avec IS_CATCH_ON_OPERATION_VESSEL=0). - Operation.vessel est alors rempli avec le premier navire de la liste de la campagne, pour être compatible avec Allegro (on doit toujours avoir : SCIENTIFIC_CRUISE.VESSEL_FK = OPERATION_VESSEL_FK). - -Engin - Operation.gearPhysicialFeatures (OPERATION.GEAR_PHYSCIAL_FEATURES_FK) : lien vers un engin déjà déclaré au niveau de la campagne. - Le code de l'engin est également dupliqué au début de Operation.name (OPERATION.NAME), devant le numéro du trait, pour rester compatible avec le format des données historiques. - -Commentaire - Operation.comments (OPERATION.COMMENTS) - -Trait > Mise en oeuvre de l'engin -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Valeur - Operation.gearUseFeatures.gearUseMeasurement (GEAR_USE_MEASUREMENT.xxx - en fonction du type de PSFM : NUMERICAL_VALUE, ALPHANUMERICAL_VALUE ou QUALITATIVE_VALUE_FK) - -Trait > Hydrologie et paramètres environnementaux -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Valeur - Operation.gearUseFeatures.vesselUseMeasurement (GEAR_USE_MEASUREMENT.xxx - en fonction du type de PSFM : NUMERICAL_VALUE, ALPHANUMERICAL_VALUE ou QUALITATIVE_VALUE_FK) - En v2 (à confirmer), informations dispatcher dans différent onglet, en fonction du PSFM trouvé dans le protocole - -Capture > Résumé -~~~~~~~~~~~~~~~~ - -Poids TOTAL - Lot "Capture" (BATCH avec IS_CATCH_BATCH=1) - CatchBatch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Poids total VRAC - Lot "Capture > Vrac" - Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Poids total HORS VRAC - Lot "Capture > Hors Vrac" - Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Poids total NON TRIE - Lot "Capture > Non trié" - Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Espèce > Poids TOTAL - Sommme des poids des lots "Capture > xxx > Espèce" - Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Espèce > Poids total VRAC - Lot "Capture > Vrac > Espèce" - Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Espèce > Poids total VRAC trié - Calculé par tutti ? utile seulement si Thalassa ? - -Espèce > Poids total HORS VRAC TRIE - Lot "Capture > Hors Vrac > Espèce" - Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Benthos > Poids TOTAL - Sommme des poids des lots "Capture > xxx > Benthos" - Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Benthos > Poids total VRAC - Lot "Capture > Vrac > Benthos" - Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Benthos > Poids total VRAC trié - Calculé par tutti ? utile seulement si Thalassa ? - -Benthos > Poids total HORS VRAC TRIE - Lot "Capture > Hors Vrac > Benthos" - Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Capture > Espèces -~~~~~~~~~~~~~~~~~ - -Espèce > Poids total VRAC - Lot "Capture > Vrac > Espèce" - Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Poids inerte trié - Lot "Capture > Vrac > Espèce > [TAXON_INERT]" - Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Poids vivant non détaillé trié - Lot "Capture > Vrac > Espèce > Biota" - Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Tableau - Chaque ligne du tableau est stockée sous la forme d'un lot (Batch) positionné - soit sous le lot "Capture > Vrac > Espèce" - soit sous "Capture > Hors Vrac > Espèce" - -Tableau > Espèce - stockage de l'espèce uniquement pour les lot parent - Batch.referenceTaxon (BATCH.REFERENCE_TAXON_FK) - -Tableau > V/HV - Vrac ou Hors Vrac : Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SORTED_UNSORTED>) - Poids : Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) - -Tableau > Class. Tri - Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SIZE_CATEGORY>) - -Tableau > Sexe - Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SEX>) - -Tableau > Maturité - Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.MATURITY>) - -Tableau > Age - Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.AGE>) - -Tableau > Poids sous-échantillonné - Si vide Batch.samplingRatio = 1 - Sinon : - Batch.samplingRatioText (BATCH.SAMPLING_RATIO_TEXT) concaténé à partir des chaines : "<Poids sous-échantillonné>" + "/" + "<Poids V/HV>" - Batch.samplingRatio (BATCH.SAMPLING_RATIO) calculé par le division : <Poids sous-échantillonné> / <Poids V/HV> - Pour la lecture : on parse samplingRatioText pour récupérer le poids sous-échantillonné. si absent on le calculé à partir de samplingRatio (moins précis car perte possible de précision) - -Tableau > Nombre - Calculé à partir de la somme du nombre d'individus des lots fils (BATCH.INDIVIDUAL_COUNT avec PARENT_BATCH_FK=<ID du lot de la ligne du tableau>) - (voir ci-dessous "Mensuration > Tableau") - -Tableau > Commentaire - Batch.comments - -Tableau > Pièces Jointes - Chaque pièce jointes est stockée dans MeasurementFile - (MEASUREMENT_FILE avec PMFM_FK=null, OBJECT_TYPE_FK='BATCH' et OBJECT_ID=<ID du lot de la ligne du tableau>) - MeasurementFile.path : chemin du fichier (copier dans un répertoire, puis stocké en relatif ?) - MeasurementFile.name : nom - MeasurementFile.comments : commentaire - -Mensuration > Type de mesure - Dupliqué pour chaque lot de mensuration créé (un lot pour chaque taille saisie) - Batch.sortingMeasurement.pmfm (SORTING_MEASUREMENT.PMFM_FK) - -Mensuration > Pas de la classe de taille - Non stocké (devrait dépendre de PSFM.precision ?) - Peut-etre peut on le calculé par analyse des mensuration saisie ? Et si aucune mesure prendre la précision du PSFM ? - -Mensuration > Tableau - Chaque ligne du tableau de mensuration est stocké sous la forme d'un lot - relié au lot correspondant à la ligne parent du tableau des espèces. (BATCH avec PARENT_BATCH_FK=<ID du lot parent dans le tableau des espèces>) - -Mensuration > Tableau > Classe de taille - Batch.sortingMeasurement.numericalValue (SORTING_MEASUREMENT.NUMERICAL_VALUE avec PMFM_FK=<ID correspondant au "Type de mesure">) - -Mensuration > Tableau > Nombre - Batch.individualCount (BATCH.INDIVIDUAL_COUNT) - -Mensuration > Tableau > Poids observé - Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) +.. - +.. * #%L +.. * Tutti :: Persistence Adagio (impl) +.. * $Id$ +.. * $HeadURL$ +.. * %% +.. * Copyright (C) 2012 - 2013 Ifremer +.. * %% +.. * 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% +.. - + +============================================= +Tutti - Correspondance écrans/base de données +============================================= + +Présentation +~~~~~~~~~~~~ + +Ce document décrit comment sont stocker les informations visibles dans les écrans. + +Série de campagne +~~~~~~~~~~~~~~~~~ + +Nom + Program.name (PROGRAM.NAME) + +Zone + Program.locations (PROGRAM2LOCATION.LOCATION_FK) + +Commentaire + Program.description (PROGRAM.DESCRIPTION) + +Campagne +~~~~~~~~ + +Série + ScientificCruise.program (SCIENTIFIC_CRUISE.PROGRAM_FK) + +Année + En lecture : year(ScientificCruise.departureDateTime) (SCIENTIFIC_CRUISE.DEPARTURE_DATE_TIME) + En écriture : pas de stockage (car doit logiquement être compatible avec ScientificCruise.departureDateTime) + +Série partielle + ScientificCruise.fishingTrip.surveyMeasurement (SURVEY_MEASUREMENT.ALPHA_NUMERICAL_VALUE, avec PMFM_FK=<PMFM_ID_SURVEY_PART>) + +Name + ScientificCruise.name (SCIENTIFIC_CRUISE.NAME) + +Nombre de poches + En lecture : récupération de la plus grande valeur dans ScientificCruise.fishingTrip.gearPhysicalFeatures.gearPhysicalMeasurement.numericalvalue (GEAR_PHYSICAL_MEASURMENT.NUMERICAL_VALUE avec PMFM_FK=<PMFM_ID_MULTIRIG_NUMBER>) + En écriture : valeur dupliquée pour chaque engin (voir "Engin(s)" ci-dessous) dans ScientificCruise.fishingTrip.gearPhysicalFeatures.gearPhysicalMeasurement.numericalvalue (GEAR_PHYSICAL_MEASURMENT.NUMERICAL_VALUE avec PMFM_FK=<PMFM_ID_MULTIRIG_NUMBER>) + +Pays + En lecture : le pays est calculé à partir de ScientificCruise.departureLocation (SCIENTIFIC_CRUISE.DEPARTURE_LOCATION_FK) + en utilisant la hiérarchie des lieux (LOCATION_HIERARCHY) our être sûr d'obtenir un payx et non un lieux de niveau inférieur (ex : un port, etc.) + En écriture : ScientificCruise.departureLocation (SCIENTIFIC_CRUISE.DEPARTURE_LOCATION_FK) et ScientificCruise.returnLocation (SCIENTIFIC_CRUISE.DEPARTURE_LOCATION_FK) + +Date de début + ScientificCruise.departureDateTime (SCIENTIFIC_CRUISE.DEPARTURE_DATE_TIME) + +Date de fin + ScientificCruise.returnDateTime (SCIENTIFIC_CRUISE.RETURN_DATE_TIME) + +Navire(s) + Le premier navire dans le liste est stocké dans ScientificCruise.vessel (SCIENTIFIC_CRUISE.VESSEL_FK). + Les navires suivants sont stockés dans ScientificCruise.fishingTrip.comments + derrière la balise : #VESSELS=<liste_des_IDs> + Il n'est pas certain qu'il soit nécessaire de stocker cette liste ailleurs, dans la mesure où + elle peut être calculée à partir de la liste des navires associés à chaque opération (voir "Opération > Navire" ci-dessous), + comme c'est le cas actuellement à l'ouverture d'une campagne de données historiques. + +Engin(s) + ScientificCruise.fishingTrip.gearPhysicalFeatures.gear (GEAR_PHYSICAL_FEATURES.GEAR_FK avec RANK_ORDER=<n° d'ordre dans la liste>) + +Chef(s) de mission + La première personne de la liste est stockée sous ScientificCruise.manager (SCIENTIFIC_CRUISE.MANAGER_PERSON_FK) + En v1, les identifiant des personnes suivantes sont stockées dans ScientificCruise.fishingTrip.comments + derrière la balise : #MANAGERS=<liste_des_IDs> + En v2, ce stockage devra se faire dans ScientificCruise.fishingTrip.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_de_campagne> + +Responsable(s) de salle de tri + En v1, tous les identifiants des personnes sélectionnées sont stockées dans ScientificCruise.fishingTrip.comments + derrière la balise : #SORT_MANAGERS=<liste_des_IDs> + En v2, ce stockage devra se faire dans ScientificCruise.fishingTrip.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_salle_de_tri> + +Commentaire + ScientificCruise.comments (SCIENTIFIC_CRUISE.COMMENTS) + +Trait +~~~~~ + +Code Station + Operation.vesselUseFeatures.vesselUseMeasurement (VESSEL_USE_MEASUREMENT.ALPHANUMERICAL_VALUE avec PMFM_FK=<PMFM_ID_STATION_NUMBER>) + +Numéro de trait + Operation.name (OPERATION.NAME) : ajouté à la fin du "name", derrière le code de l'engin, pour rester compatible avec le format des données historiques. + +Numéro de poche + Operation.gearUseFeatures.gearUseMeasurement (GEAR_USE_MEASUREMENT.ALPHANUMERICAL_VALUE avec PMFM_FK=<PMFM_ID_MULTIRIG_AGGREGATION>) + +Strate + Operation.gearUseFeatures.fishingArea.regulationLocation (FISHING_AREA2REG_LOCATION.LOCATION_FK associé au FISHING_AREA de l'opération) + En lecture : sélection en tant que locatlité à partir du locationLevel (LOCATION.LOCATION_LEVEL_FK=<LocationLevelId.STRATA>) + +Sous-strate + Operation.gearUseFeatures.fishingArea.regulationLocation (FISHING_AREA2REG_LOCATION.LOCATION_FK associé au FISHING_AREA de l'opération) + En lecture : sélection en tant que locatlité à partir du locationLevel (LOCATION.LOCATION_LEVEL_FK=<LocationLevelId.SUB_STRATA>) + +Localité + operation.gearUseFeatures.fishingArea.regulationLocation (FISHING_AREA2REG_LOCATION.LOCATION_FK associé au FISHING_AREA de l'opération) + En lecture : sélection en tant que locatlité à partir du locationLevel (LOCATION.LOCATION_LEVEL_FK=<LocationLevelId.LOCALITE>) + +Début de traine > Latitude, Longitude + Operation.vesselPosition (VESSEL_POSITION.LATITUDE et VESSEL_POSITION.LONGITUDE), avec startDateTime = "Début de traine > Date et heure" + +Début de traine > Date et heure + Operation.startDateTime et Operation.fishingStartDateTime (OPERATION.START_DATE_TIME et OPERATION.FISHING_START_DATE_TIME) + +Fin de traine > Latitude, Longitude + Operation.vesselPosition (VESSEL_POSITION.LATITUDE et VESSEL_POSITION.LONGITUDE), avec startDateTime = "Fin de traine > Date et heure" + +Fin de traine > Date et heure + Operation.endDateTime et Operation.fishingEndDateTime (OPERATION.END_DATE_TIME et OPERATION.FISHING_END_DATE_TIME) + +Trait rectiligne + Operation.vesselUseFeatures.vesselUseMeasurement (VESSEL_USE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PMFM_ID_RECTILINEAR_OPERATION>) + +Distance chalutée + Operation.vesselUseFeatures.vesselUseMeasurement (VESSEL_USE_MEASUREMENT.NUMERICAL_VALUE avec PMFM_FK=<PMFM_ID_TRAWL_DISTANCE>) + +Trait valide ou invalide + Operation.vesselUseFeatures.vesselUseMeasurement (VESSEL_USE_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PMFM_ID_HAUL_VALID>) + +Saisisseur(s) + En v1, les identifiant des personnes suivantes sont stockées dans ScientificCruise.fishingTrip.comments + derrière la balise : #MANAGERS=<liste_des_IDs> + En v2, ce stockage devra se faire dans ScientificCruise.fishingTrip.vesselPersonFeatures avec un VesselPersonRole.id=<responsable_de_campagne> + +Navire + Si le navire est identique au premier de la liste de la campagne : Operation.vessel (OPERATION.VESSEL_FK) + Sinon : Operation.operationVesselAssociation (OPERATION_VESSEL_ASSOCIATION.VESSEL_FK avec IS_CATCH_ON_OPERATION_VESSEL=0). + Operation.vessel est alors rempli avec le premier navire de la liste de la campagne, pour être compatible avec Allegro (on doit toujours avoir : SCIENTIFIC_CRUISE.VESSEL_FK = OPERATION_VESSEL_FK). + +Engin + Operation.gearPhysicialFeatures (OPERATION.GEAR_PHYSCIAL_FEATURES_FK) : lien vers un engin déjà déclaré au niveau de la campagne. + Le code de l'engin est également dupliqué au début de Operation.name (OPERATION.NAME), devant le numéro du trait, pour rester compatible avec le format des données historiques. + +Commentaire + Operation.comments (OPERATION.COMMENTS) + +Trait > Mise en oeuvre de l'engin +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Valeur + Operation.gearUseFeatures.gearUseMeasurement (GEAR_USE_MEASUREMENT.xxx - en fonction du type de PSFM : NUMERICAL_VALUE, ALPHANUMERICAL_VALUE ou QUALITATIVE_VALUE_FK) + +Trait > Hydrologie et paramètres environnementaux +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Valeur + Operation.gearUseFeatures.vesselUseMeasurement (GEAR_USE_MEASUREMENT.xxx - en fonction du type de PSFM : NUMERICAL_VALUE, ALPHANUMERICAL_VALUE ou QUALITATIVE_VALUE_FK) + En v2 (à confirmer), informations dispatcher dans différent onglet, en fonction du PSFM trouvé dans le protocole + +Capture > Résumé +~~~~~~~~~~~~~~~~ + +Poids TOTAL + Lot "Capture" (BATCH avec IS_CATCH_BATCH=1) + CatchBatch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Poids total VRAC + Lot "Capture > Vrac" + Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Poids total HORS VRAC + Lot "Capture > Hors Vrac" + Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Poids total NON TRIE + Lot "Capture > Non trié" + Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Espèce > Poids TOTAL + Sommme des poids des lots "Capture > xxx > Espèce" + Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Espèce > Poids total VRAC + Lot "Capture > Vrac > Espèce" + Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Espèce > Poids total VRAC trié + Calculé par tutti ? utile seulement si Thalassa ? + +Espèce > Poids total HORS VRAC TRIE + Lot "Capture > Hors Vrac > Espèce" + Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Benthos > Poids TOTAL + Sommme des poids des lots "Capture > xxx > Benthos" + Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Benthos > Poids total VRAC + Lot "Capture > Vrac > Benthos" + Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Benthos > Poids total VRAC trié + Calculé par tutti ? utile seulement si Thalassa ? + +Benthos > Poids total HORS VRAC TRIE + Lot "Capture > Hors Vrac > Benthos" + Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Capture > Espèces +~~~~~~~~~~~~~~~~~ + +Espèce > Poids total VRAC + Lot "Capture > Vrac > Espèce" + Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Poids inerte trié + Lot "Capture > Vrac > Espèce > [TAXON_INERT]" + Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Poids vivant non détaillé trié + Lot "Capture > Vrac > Espèce > Biota" + Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Tableau + Chaque ligne du tableau est stockée sous la forme d'un lot (Batch) positionné + soit sous le lot "Capture > Vrac > Espèce" + soit sous "Capture > Hors Vrac > Espèce" + +Tableau > Espèce + stockage de l'espèce uniquement pour les lot parent + Batch.referenceTaxon (BATCH.REFERENCE_TAXON_FK) + +Tableau > V/HV + Vrac ou Hors Vrac : Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SORTED_UNSORTED>) + Poids : Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) + +Tableau > Class. Tri + Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SIZE_CATEGORY>) + +Tableau > Sexe + Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.SEX>) + +Tableau > Maturité + Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.MATURITY>) + +Tableau > Age + Batch.sortingMeasurement.qualitativeValue (SORTING_MEASUREMENT.QUALITATIVE_VALUE_FK avec PMFM_FK=<PmfmId.AGE>) + +Tableau > Poids sous-échantillonné + Si vide Batch.samplingRatio = 1 + Sinon : + Batch.samplingRatioText (BATCH.SAMPLING_RATIO_TEXT) concaténé à partir des chaines : "<Poids sous-échantillonné>" + "/" + "<Poids V/HV>" + Batch.samplingRatio (BATCH.SAMPLING_RATIO) calculé par le division : <Poids sous-échantillonné> / <Poids V/HV> + Pour la lecture : on parse samplingRatioText pour récupérer le poids sous-échantillonné. si absent on le calculé à partir de samplingRatio (moins précis car perte possible de précision) + +Tableau > Nombre + Calculé à partir de la somme du nombre d'individus des lots fils (BATCH.INDIVIDUAL_COUNT avec PARENT_BATCH_FK=<ID du lot de la ligne du tableau>) + (voir ci-dessous "Mensuration > Tableau") + +Tableau > Commentaire + Batch.comments + +Tableau > Pièces Jointes + Chaque pièce jointes est stockée dans MeasurementFile + (MEASUREMENT_FILE avec PMFM_FK=null, OBJECT_TYPE_FK='BATCH' et OBJECT_ID=<ID du lot de la ligne du tableau>) + MeasurementFile.path : chemin du fichier (copier dans un répertoire, puis stocké en relatif ?) + MeasurementFile.name : nom + MeasurementFile.comments : commentaire + +Mensuration > Type de mesure + Dupliqué pour chaque lot de mensuration créé (un lot pour chaque taille saisie) + Batch.sortingMeasurement.pmfm (SORTING_MEASUREMENT.PMFM_FK) + +Mensuration > Pas de la classe de taille + Non stocké (devrait dépendre de PSFM.precision ?) + Peut-etre peut on le calculé par analyse des mensuration saisie ? Et si aucune mesure prendre la précision du PSFM ? + +Mensuration > Tableau + Chaque ligne du tableau de mensuration est stocké sous la forme d'un lot + relié au lot correspondant à la ligne parent du tableau des espèces. (BATCH avec PARENT_BATCH_FK=<ID du lot parent dans le tableau des espèces>) + +Mensuration > Tableau > Classe de taille + Batch.sortingMeasurement.numericalValue (SORTING_MEASUREMENT.NUMERICAL_VALUE avec PMFM_FK=<ID correspondant au "Type de mesure">) + +Mensuration > Tableau > Nombre + Batch.individualCount (BATCH.INDIVIDUAL_COUNT) + +Mensuration > Tableau > Poids observé + Batch.quantificationMeasurement.numericalValue (QUANTIFICATION_MEASUREMENT.NUMERICAL_VALUE avec IS_REFERENT=1) \ No newline at end of file Property changes on: trunk/src/site/rst/mapping.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/pom.xml =================================================================== --- trunk/tutti-ui-swing/pom.xml 2013-03-14 06:45:16 UTC (rev 611) +++ trunk/tutti-ui-swing/pom.xml 2013-03-14 06:46:28 UTC (rev 612) @@ -249,11 +249,11 @@ <version>${project.version}</version> </dependency> - <dependency> + <!--dependency> <groupId>org.nuiton</groupId> <artifactId>nuiton-profiling</artifactId> <version>2.7-SNAPSHOT</version> - </dependency> + </dependency--> <dependency> <groupId>org.nuiton</groupId> Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties =================================================================== --- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-03-14 06:45:16 UTC (rev 611) +++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-03-14 06:46:28 UTC (rev 612) @@ -1,28 +1,5 @@ -### -# #%L -# Tutti :: UI -# $Id$ -# $HeadURL$ -# %% -# Copyright (C) 2012 - 2013 Ifremer -# %% -# 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% -### #Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo -#Tue Mar 12 10:47:25 CET 2013 +#Thu Mar 14 07:41:37 CET 2013 tuttihelp.createSpeciesBatch.action.addSpecies.help= tuttihelp.createSpeciesBatch.field.batchWeightField.help= tuttihelp.createSpeciesBatch.field.sortedUnsortedCategoryComboBox.help= @@ -118,6 +95,7 @@ tuttihelp.editProtocol.action.exportProtocolSpecies.help= tuttihelp.editProtocol.action.importProtocolCaracteristic.help= tuttihelp.editProtocol.action.importProtocolSpecies.help= +tuttihelp.editProtocol.action.removeSpeciesProtocol.help= tuttihelp.editProtocol.action.saveProtocol.help= tuttihelp.editProtocol.action.selectOtherSpecies.help= tuttihelp.editProtocol.field.comment.help= Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentItem.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentItem.css 2013-03-14 06:45:16 UTC (rev 611) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentItem.css 2013-03-14 06:46:28 UTC (rev 612) @@ -1,3 +1,26 @@ +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * 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% + */ #attachmentPanel { toolTipText: {attachment != null ? getAttachment().getComment() : null}; } Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentItem.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentItem.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentItem.jaxx 2013-03-14 06:45:16 UTC (rev 611) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentItem.jaxx 2013-03-14 06:46:28 UTC (rev 612) @@ -1,3 +1,26 @@ +<!-- + #%L + Tutti :: UI + $Id$ + $HeadURL$ + %% + Copyright (C) 2012 - 2013 Ifremer + %% + 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% + --> <JPanel id='attachmentPanel' layout='{new BorderLayout()}'> <import> Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/attachment/AttachmentItem.jaxx ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-03-14 06:45:16 UTC (rev 611) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-03-14 06:46:28 UTC (rev 612) @@ -88,6 +88,7 @@ tutti.action.reloadTutti= tutti.action.removeCaracteristic= tutti.action.removeSpeciesBatch= +tutti.action.removeSpeciesProtocol= tutti.action.removeSpeciesSubBatch= tutti.action.renameSpeciesBatch= tutti.action.reset.editFishingOperation= @@ -145,12 +146,17 @@ tutti.dialog.createMelag.error.title= tutti.dialog.createMelag.message= tutti.dialog.createMelag.title= +tutti.dialog.deleteAttachment.message= +tutti.dialog.deleteAttachment.title= tutti.dialog.saveAttachment.button= tutti.dialog.saveAttachment.fail.message= tutti.dialog.saveAttachment.fail.title= tutti.dialog.saveAttachment.success.message= tutti.dialog.saveAttachment.success.title= tutti.dialog.saveAttachment.title= +tutti.dialog.saveAttachment.warning.help= +tutti.dialog.saveAttachment.warning.message= +tutti.dialog.saveAttachment.warning.title= tutti.dialog.warnUser.title= tutti.duration.format= tutti.error.errorpane.htmlmessage= @@ -630,6 +636,7 @@ tuttihelp.editProtocol.action.exportProtocolSpecies.tip= tuttihelp.editProtocol.action.importProtocolCaracteristic.tip= tuttihelp.editProtocol.action.importProtocolSpecies.tip= +tuttihelp.editProtocol.action.removeSpeciesProtocol.tip= tuttihelp.editProtocol.action.saveProtocol.tip= tuttihelp.editProtocol.action.selectOtherSpecies.tip= tuttihelp.editProtocol.field..tip= Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-open-file.png ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL