r1469 - in trunk/tutti-ui-swing/src/main: help/en help/fr help/js java/fr/ifremer/tutti/ui/swing/content/operation/catches java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency resources/i18n
Author: tchemit Date: 2013-12-19 14:28:53 +0100 (Thu, 19 Dec 2013) New Revision: 1469 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1469 Log: fixes #4048: [MENSURATIONS] Suppression du mode simple fixes #3981: Metre ?\195?\160 jour l'aide en ligne suite ajout RAPPORT fixes #4046: [CAPTURE] ?\195?\160 l'enregistrement, si il y a des classes de taille avec et sans poids, les classes de taille sans poids ne sont pas sauvegard?\195?\169es et il n'y a pas de warning : ajouter un warning Added: trunk/tutti-ui-swing/src/main/help/en/navbar.js trunk/tutti-ui-swing/src/main/help/fr/navbar.js Removed: trunk/tutti-ui-swing/src/main/help/js/navbar.js Modified: trunk/tutti-ui-swing/src/main/help/en/config.html trunk/tutti-ui-swing/src/main/help/en/dbManager.html trunk/tutti-ui-swing/src/main/help/en/editCruise.html trunk/tutti-ui-swing/src/main/help/en/editFishingOperation.html trunk/tutti-ui-swing/src/main/help/en/editProgram.html trunk/tutti-ui-swing/src/main/help/en/editProtocol.html trunk/tutti-ui-swing/src/main/help/en/editSampleCategory.html trunk/tutti-ui-swing/src/main/help/en/faq.html trunk/tutti-ui-swing/src/main/help/en/fonctionnalites_transversales.html trunk/tutti-ui-swing/src/main/help/en/index.html trunk/tutti-ui-swing/src/main/help/en/manageTemporaryReferential.html trunk/tutti-ui-swing/src/main/help/en/menu.html trunk/tutti-ui-swing/src/main/help/en/report.html trunk/tutti-ui-swing/src/main/help/en/selectCruise.html trunk/tutti-ui-swing/src/main/help/fr/config.html trunk/tutti-ui-swing/src/main/help/fr/dbManager.html trunk/tutti-ui-swing/src/main/help/fr/editCruise.html trunk/tutti-ui-swing/src/main/help/fr/editFishingOperation.html trunk/tutti-ui-swing/src/main/help/fr/editProgram.html trunk/tutti-ui-swing/src/main/help/fr/editProtocol.html trunk/tutti-ui-swing/src/main/help/fr/editSampleCategory.html trunk/tutti-ui-swing/src/main/help/fr/faq.html trunk/tutti-ui-swing/src/main/help/fr/fonctionnalites_transversales.html trunk/tutti-ui-swing/src/main/help/fr/index.html trunk/tutti-ui-swing/src/main/help/fr/manageTemporaryReferential.html trunk/tutti-ui-swing/src/main/help/fr/menu.html trunk/tutti-ui-swing/src/main/help/fr/report.html trunk/tutti-ui-swing/src/main/help/fr/selectCruise.html trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/FrequencyConfigurationMode.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java 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_fr_FR.properties Modified: trunk/tutti-ui-swing/src/main/help/en/config.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/config.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/config.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head><!-- #%L Tutti :: UI @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> Modified: trunk/tutti-ui-swing/src/main/help/en/dbManager.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/dbManager.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/dbManager.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head> <!-- #%L @@ -31,9 +31,9 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> <div class="container"> <div class="page-header"> Modified: trunk/tutti-ui-swing/src/main/help/en/editCruise.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/editCruise.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/editCruise.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head><!-- #%L Tutti :: UI @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Créer / Éditer une campagne</h1> Modified: trunk/tutti-ui-swing/src/main/help/en/editFishingOperation.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/editFishingOperation.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/editFishingOperation.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head><!-- #%L Tutti :: UI @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Saisie du trait et de la capture</h1> Modified: trunk/tutti-ui-swing/src/main/help/en/editProgram.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/editProgram.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/editProgram.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -22,7 +22,7 @@ #L% --> <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head> <meta charset="utf-8"/> @@ -31,11 +31,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Éditer une série de campagne</h1> Modified: trunk/tutti-ui-swing/src/main/help/en/editProtocol.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/editProtocol.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/editProtocol.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head><!-- #%L Tutti :: UI @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Éditer un protocole</h1> Modified: trunk/tutti-ui-swing/src/main/help/en/editSampleCategory.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/editSampleCategory.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/editSampleCategory.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head><!-- #%L Tutti :: UI @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Configurer les catégories</h1> Modified: trunk/tutti-ui-swing/src/main/help/en/faq.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/faq.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/faq.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head><!-- #%L Tutti :: UI @@ -30,13 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> - - <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Foire aux questions</h1> Modified: trunk/tutti-ui-swing/src/main/help/en/fonctionnalites_transversales.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/fonctionnalites_transversales.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/fonctionnalites_transversales.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head><!-- #%L Tutti :: UI @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Fonctionnalités transversales</h1> Modified: trunk/tutti-ui-swing/src/main/help/en/index.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/index.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/index.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -22,7 +22,7 @@ #L% --> <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head> <meta charset="utf-8"> @@ -31,13 +31,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> - - <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Documentation de Allegro Campagne</h1> Modified: trunk/tutti-ui-swing/src/main/help/en/manageTemporaryReferential.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/manageTemporaryReferential.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/manageTemporaryReferential.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head><!-- #%L Tutti :: UI @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Gérer les référentiels temporaires</h1> Modified: trunk/tutti-ui-swing/src/main/help/en/menu.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/menu.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/menu.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head><!-- #%L Tutti :: UI @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Description du menu</h1> Added: trunk/tutti-ui-swing/src/main/help/en/navbar.js =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/navbar.js (rev 0) +++ trunk/tutti-ui-swing/src/main/help/en/navbar.js 2013-12-19 13:28:53 UTC (rev 1469) @@ -0,0 +1,136 @@ +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL: https://svn.forge.codelutin.com/svn/tutti/trunk/tutti-ui-swing/src/main/help... $ + * %% + * 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% + */ +// TODO Translate Me +document.write('<div class="navbar navbar-inverse navbar-fixed-top">'); +document.write(' <div class="navbar-inner">'); +document.write(' <div class="container" id="menu"><a class="brand" href="index.html">Allegro Campagne</a>'); +document.write(' <ul class="nav">'); +document.write(' <li class="dropdown">'); +document.write(' <a href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">'); +document.write(' Table des matières <strong class="caret"></strong>'); +document.write(' </a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="menu.html">Description du Menu</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="menu.html#menu_fichier">Menu Fichier</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="menu.html#menu_fichier_configuration">Configuration</a></li>'); +document.write(' <li><a href="menu.html#menu_fichier_mise_a_jour_logicelle">Vérifier les mises à jour logicielles</a></li>'); +document.write(' <li><a href="menu.html#menu_fichier_mise_a_jour_rapport">Vérifier les mises à jour des rapports</a></li>'); +document.write(' <li><a href="menu.html#menu_fichier_gestionnaire_base">Gestionnaire de bases</a></li>'); +document.write(' <li><a href="menu.html#menu_fichier_quitter">Quitter</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="menu.html#menu_action">Menu Actions</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="menu.html#menu_action_selection">Sélectionne une campagne</a></li>'); +document.write(' <li><a href="menu.html#menu_action_serie">Série de campagne</a></li>'); +document.write(' <li><a href="menu.html#menu_action_campagne">Campagne</a></li>'); +document.write(' <li><a href="menu.html#menu_action_protocole">Protocole</a></li>'); +document.write(' <li><a href="menu.html#menu_action_saisie_capture">Saisir les captures</a></li>'); +document.write(' <li><a href="menu.html#menu_action_valider_capture">Valider les captures</a></li>'); +document.write(' <li><a href="menu.html#menu_action_rapport">Rapport</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="menu.html#menu_administration">Menu Administrations</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="menu.html#menu_administration_referentiel">Référentiels temporaires</a></li>'); +document.write(' <li><a href="menu.html#menu_administration_sample_category">Configurer les catégorisations</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="menu.html#menu_aide">Menu Aide</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="menu.html#menu_aide_aide">Aide</a></li>'); +document.write(' <li><a href="menu.html#menu_aide_site">Site</a></li>'); +document.write(' <li><a href="menu.html#menu_aide_about">À propos</a></li>'); +document.write(' <li><a href="menu.html#menu_aide_langue">Langue</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="#">Description des écrans de saisie de données</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="selectCruise.html">Sélection Série / Campagne / Protocole</a></li>'); +document.write(' <li><a href="editProgram.html">Créer / Éditer une série de campagne</a></li>'); +document.write(' <li><a href="editCruise.html">Créer / Éditer une campagne</a></li>'); +document.write(' <li><a href="editProtocol.html">Créer / Éditer un protocole</a></li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="editFishingOperation.html">Saisie du trait et de la capture</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="editFishingOperation.html#traitTrait">Trait / Trait</a></li>'); +document.write(' <li><a href="editFishingOperation.html#traitMiseEnOuvreEngin">Trait / Mise en œuvre de l\'engin</a></li>'); +document.write(' <li><a href="editFishingOperation.html#traitAutreParametres">Trait / Autres paramètres</a></li>'); +document.write(' <li><a href="editFishingOperation.html#captureResume">Captures / Résumé</a></li>'); +document.write(' <li><a href="editFishingOperation.html#captureEspeces">Captures / Espèces</a></li>'); +document.write(' <li><a href="editFishingOperation.html#captureBenthos">Captures / Benthos</a></li>'); +document.write(' <li><a href="editFishingOperation.html#captureMacroDechet">Captures / Macro déchets</a></li>'); +document.write(' <li><a href="editFishingOperation.html#captureDonnesIndividuelles">Captures / Observations individuelles</a></li>'); +document.write(' <li><a href="editFishingOperation.html#captureCapturesAccidentelles">Captures / Captures accidentelles</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="divider"></li>'); +document.write(' <li><a href="dbManager.html">Gestionnaire de base</a></li>'); +document.write(' <li><a href="config.html">Configuration</a></li>'); +document.write(' <li><a href="manageTemporaryReferential.html">Gestionnaire de référentiels temporaires</a></li>'); +document.write(' <li><a href="report.html">Générer des rapports</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="fonctionnalites_transversales.html">Fonctionnalités transversales</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="fonctionnalites_transversales.html#recherche_liste">Recherche dans une liste</a></li>'); +document.write(' <li><a href="fonctionnalites_transversales.html#tri_liste">Tri dans une liste</a></li>'); +document.write(' <li><a href="fonctionnalites_transversales.html#vider_valeur">Vider la valeur d\'un champ</a></li>'); +document.write(' <li><a href="fonctionnalites_transversales.html#raccourcis_clavier">Raccourcis clavier</a></li>'); +document.write(' <li><a href="fonctionnalites_transversales.html#origine_poids">Origine des poids affichés</a></li>'); +document.write(' <li><a href="fonctionnalites_transversales.html#controle_saisie">Contrôle de la saisie</a></li>'); +document.write(' <li><a href="fonctionnalites_transversales.html#rappel_context">Rappel du context de saisie</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="faq.html">Foire aux questions</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="faq.html#melag">Gestion de la saisie d\'un mélange d\'espèces</a></li>'); +document.write(' <li><a href="faq.html#gestion_du_protocole">Gestion du protocole</a></li>'); +document.write(' <li><a href="faq.html#information_dans_protocole">Quelles sont les informations à renseigner dans le protocole</a></li>'); +document.write(' <li><a href="faq.html#format_fichier_import">Format des fichiers d\'imports dans le logiciel</a></li>'); +document.write(' <li><a href="faq.html#manipulation_fichiers">Manipulation des fichiers d\'import/export</a></li>'); +document.write(' <li><a href="faq.html#sauvegarde_protocole">Sauvegarde du protocole dans Harmonie</a></li>'); +document.write(' <li><a href="faq.html#vrac_definition">Vrac / Hors Vrac : définitions</a></li>'); +document.write(' <li><a href="faq.html#saisie_multiposte">Saisie multi-ordinateurs</a></li>'); +document.write(' <li><a href="faq.html#sauvegarde_reguliere">Sauvegarde régulière de la base</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' </ul>'); +document.write(' </div>'); +document.write(' </div>'); +document.write('</div>'); \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/help/en/navbar.js ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/help/en/report.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/report.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/report.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -31,11 +31,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Générer des rapports</h1> Modified: trunk/tutti-ui-swing/src/main/help/en/selectCruise.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/en/selectCruise.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/en/selectCruise.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -1,5 +1,5 @@ <!DOCTYPE html> -<html lang="fr"> +<html lang="en"> <head><!-- #%L Tutti :: UI @@ -30,13 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> - - <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Sélection Série / Campagne / Protocole</h1> Modified: trunk/tutti-ui-swing/src/main/help/fr/config.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/config.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/config.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> Modified: trunk/tutti-ui-swing/src/main/help/fr/dbManager.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/dbManager.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/dbManager.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -31,9 +31,9 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> <div class="container"> <div class="page-header"> Modified: trunk/tutti-ui-swing/src/main/help/fr/editCruise.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/editCruise.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/editCruise.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Créer / Éditer une campagne</h1> Modified: trunk/tutti-ui-swing/src/main/help/fr/editFishingOperation.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/editFishingOperation.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/editFishingOperation.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Saisie du trait et de la capture</h1> @@ -714,10 +713,6 @@ <dd>rappel du contexte de la saisie en cours avec l'identifiant du trait, de l'espèce et des catégorisations. </dd> - <dt>Mode simple</dt> - <dd>option de saisie des mensurations qui permet une saisie libre dans la - tableau. - </dd> <dt>Génération de classe</dt> <dd> permet de définir la classe de taille minimale et maximale afin @@ -824,6 +819,10 @@ </dd> </dl> +<p><strong>Note :</strong> Si des mensurations avec et sans poids sont saisies, + seules celles avec un poids ne seront enregistrées. Une confirmation vous sera alors demandée. +</p> + <h2>Captures / Benthos<a name="captureBenthos"></a></h2> <p> Modified: trunk/tutti-ui-swing/src/main/help/fr/editProgram.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/editProgram.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/editProgram.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -31,11 +31,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Éditer une série de campagne</h1> Modified: trunk/tutti-ui-swing/src/main/help/fr/editProtocol.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/editProtocol.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/editProtocol.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Éditer un protocole</h1> Modified: trunk/tutti-ui-swing/src/main/help/fr/editSampleCategory.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/editSampleCategory.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/editSampleCategory.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Configurer les catégories</h1> Modified: trunk/tutti-ui-swing/src/main/help/fr/faq.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/faq.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/faq.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -30,13 +30,11 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> - <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Foire aux questions</h1> Modified: trunk/tutti-ui-swing/src/main/help/fr/fonctionnalites_transversales.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/fonctionnalites_transversales.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/fonctionnalites_transversales.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Fonctionnalités transversales</h1> Modified: trunk/tutti-ui-swing/src/main/help/fr/index.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/index.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/index.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -31,13 +31,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> - - <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Documentation de Allegro Campagne</h1> @@ -148,6 +145,7 @@ <li><a href="config.html">Configuration</a></li> <li><a href="manageTemporaryReferential.html">Gestionnaire de référentiels temporaires</a></li> + <li><a href="report.html">Générer des rapports</a></li> </ul> </li> <li> Modified: trunk/tutti-ui-swing/src/main/help/fr/manageTemporaryReferential.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/manageTemporaryReferential.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/manageTemporaryReferential.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Gérer les référentiels temporaires</h1> Modified: trunk/tutti-ui-swing/src/main/help/fr/menu.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/menu.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/menu.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -30,11 +30,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Description du menu</h1> Copied: trunk/tutti-ui-swing/src/main/help/fr/navbar.js (from rev 1468, trunk/tutti-ui-swing/src/main/help/js/navbar.js) =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/navbar.js (rev 0) +++ trunk/tutti-ui-swing/src/main/help/fr/navbar.js 2013-12-19 13:28:53 UTC (rev 1469) @@ -0,0 +1,135 @@ +/* + * #%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% + */ +document.write('<div class="navbar navbar-inverse navbar-fixed-top">'); +document.write(' <div class="navbar-inner">'); +document.write(' <div class="container" id="menu"><a class="brand" href="index.html">Allegro Campagne</a>'); +document.write(' <ul class="nav">'); +document.write(' <li class="dropdown">'); +document.write(' <a href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">'); +document.write(' Table des matières <strong class="caret"></strong>'); +document.write(' </a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="menu.html">Description du Menu</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="menu.html#menu_fichier">Menu Fichier</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="menu.html#menu_fichier_configuration">Configuration</a></li>'); +document.write(' <li><a href="menu.html#menu_fichier_mise_a_jour_logicelle">Vérifier les mises à jour logicielles</a></li>'); +document.write(' <li><a href="menu.html#menu_fichier_mise_a_jour_rapport">Vérifier les mises à jour des rapports</a></li>'); +document.write(' <li><a href="menu.html#menu_fichier_gestionnaire_base">Gestionnaire de bases</a></li>'); +document.write(' <li><a href="menu.html#menu_fichier_quitter">Quitter</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="menu.html#menu_action">Menu Actions</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="menu.html#menu_action_selection">Sélectionne une campagne</a></li>'); +document.write(' <li><a href="menu.html#menu_action_serie">Série de campagne</a></li>'); +document.write(' <li><a href="menu.html#menu_action_campagne">Campagne</a></li>'); +document.write(' <li><a href="menu.html#menu_action_protocole">Protocole</a></li>'); +document.write(' <li><a href="menu.html#menu_action_saisie_capture">Saisir les captures</a></li>'); +document.write(' <li><a href="menu.html#menu_action_valider_capture">Valider les captures</a></li>'); +document.write(' <li><a href="menu.html#menu_action_rapport">Rapport</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="menu.html#menu_administration">Menu Administrations</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="menu.html#menu_administration_referentiel">Référentiels temporaires</a></li>'); +document.write(' <li><a href="menu.html#menu_administration_sample_category">Configurer les catégorisations</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="menu.html#menu_aide">Menu Aide</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="menu.html#menu_aide_aide">Aide</a></li>'); +document.write(' <li><a href="menu.html#menu_aide_site">Site</a></li>'); +document.write(' <li><a href="menu.html#menu_aide_about">À propos</a></li>'); +document.write(' <li><a href="menu.html#menu_aide_langue">Langue</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="#">Description des écrans de saisie de données</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="selectCruise.html">Sélection Série / Campagne / Protocole</a></li>'); +document.write(' <li><a href="editProgram.html">Créer / Éditer une série de campagne</a></li>'); +document.write(' <li><a href="editCruise.html">Créer / Éditer une campagne</a></li>'); +document.write(' <li><a href="editProtocol.html">Créer / Éditer un protocole</a></li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="editFishingOperation.html">Saisie du trait et de la capture</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="editFishingOperation.html#traitTrait">Trait / Trait</a></li>'); +document.write(' <li><a href="editFishingOperation.html#traitMiseEnOuvreEngin">Trait / Mise en œuvre de l\'engin</a></li>'); +document.write(' <li><a href="editFishingOperation.html#traitAutreParametres">Trait / Autres paramètres</a></li>'); +document.write(' <li><a href="editFishingOperation.html#captureResume">Captures / Résumé</a></li>'); +document.write(' <li><a href="editFishingOperation.html#captureEspeces">Captures / Espèces</a></li>'); +document.write(' <li><a href="editFishingOperation.html#captureBenthos">Captures / Benthos</a></li>'); +document.write(' <li><a href="editFishingOperation.html#captureMacroDechet">Captures / Macro déchets</a></li>'); +document.write(' <li><a href="editFishingOperation.html#captureDonnesIndividuelles">Captures / Observations individuelles</a></li>'); +document.write(' <li><a href="editFishingOperation.html#captureCapturesAccidentelles">Captures / Captures accidentelles</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="divider"></li>'); +document.write(' <li><a href="dbManager.html">Gestionnaire de base</a></li>'); +document.write(' <li><a href="config.html">Configuration</a></li>'); +document.write(' <li><a href="manageTemporaryReferential.html">Gestionnaire de référentiels temporaires</a></li>'); +document.write(' <li><a href="report.html">Générer des rapports</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="fonctionnalites_transversales.html">Fonctionnalités transversales</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="fonctionnalites_transversales.html#recherche_liste">Recherche dans une liste</a></li>'); +document.write(' <li><a href="fonctionnalites_transversales.html#tri_liste">Tri dans une liste</a></li>'); +document.write(' <li><a href="fonctionnalites_transversales.html#vider_valeur">Vider la valeur d\'un champ</a></li>'); +document.write(' <li><a href="fonctionnalites_transversales.html#raccourcis_clavier">Raccourcis clavier</a></li>'); +document.write(' <li><a href="fonctionnalites_transversales.html#origine_poids">Origine des poids affichés</a></li>'); +document.write(' <li><a href="fonctionnalites_transversales.html#controle_saisie">Contrôle de la saisie</a></li>'); +document.write(' <li><a href="fonctionnalites_transversales.html#rappel_context">Rappel du context de saisie</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' <li class="dropdown-submenu">'); +document.write(' <a href="faq.html">Foire aux questions</a>'); +document.write(' <ul class="dropdown-menu" role="menu">'); +document.write(' <li><a href="faq.html#melag">Gestion de la saisie d\'un mélange d\'espèces</a></li>'); +document.write(' <li><a href="faq.html#gestion_du_protocole">Gestion du protocole</a></li>'); +document.write(' <li><a href="faq.html#information_dans_protocole">Quelles sont les informations à renseigner dans le protocole</a></li>'); +document.write(' <li><a href="faq.html#format_fichier_import">Format des fichiers d\'imports dans le logiciel</a></li>'); +document.write(' <li><a href="faq.html#manipulation_fichiers">Manipulation des fichiers d\'import/export</a></li>'); +document.write(' <li><a href="faq.html#sauvegarde_protocole">Sauvegarde du protocole dans Harmonie</a></li>'); +document.write(' <li><a href="faq.html#vrac_definition">Vrac / Hors Vrac : définitions</a></li>'); +document.write(' <li><a href="faq.html#saisie_multiposte">Saisie multi-ordinateurs</a></li>'); +document.write(' <li><a href="faq.html#sauvegarde_reguliere">Sauvegarde régulière de la base</a></li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' </ul>'); +document.write(' </li>'); +document.write(' </ul>'); +document.write(' </div>'); +document.write(' </div>'); +document.write('</div>'); \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/help/fr/report.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/report.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/report.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -31,11 +31,10 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Générer des rapports</h1> Modified: trunk/tutti-ui-swing/src/main/help/fr/selectCruise.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/selectCruise.html 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/fr/selectCruise.html 2013-12-19 13:28:53 UTC (rev 1469) @@ -30,13 +30,12 @@ <link href="../css/style.css" rel="stylesheet"> <script type="text/javascript" src="../js/jquery-2.0.3.min.js"></script> <script type="text/javascript" src="../js/bootstrap.min.js"></script> + <script type="text/javascript" src="navbar.js"></script> </head> <body> -<script type="text/javascript" src="../js/navbar.js"></script> - <div class="container"> <div class="page-header"> <h1>Sélection Série / Campagne / Protocole</h1> Deleted: trunk/tutti-ui-swing/src/main/help/js/navbar.js =================================================================== --- trunk/tutti-ui-swing/src/main/help/js/navbar.js 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/help/js/navbar.js 2013-12-19 13:28:53 UTC (rev 1469) @@ -1,134 +0,0 @@ -/* - * #%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% - */ -document.write('<div class="navbar navbar-inverse navbar-fixed-top">'); -document.write(' <div class="navbar-inner">'); -document.write(' <div class="container" id="menu"><a class="brand" href="index.html">Allegro Campagne</a>'); -document.write(' <ul class="nav">'); -document.write(' <li class="dropdown">'); -document.write(' <a href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">'); -document.write(' Table des matières <strong class="caret"></strong>'); -document.write(' </a>'); -document.write(' <ul class="dropdown-menu" role="menu">'); -document.write(' <li class="dropdown-submenu">'); -document.write(' <a href="menu.html">Description du Menu</a>'); -document.write(' <ul class="dropdown-menu" role="menu">'); -document.write(' <li class="dropdown-submenu">'); -document.write(' <a href="menu.html#menu_fichier">Menu Fichier</a>'); -document.write(' <ul class="dropdown-menu" role="menu">'); -document.write(' <li><a href="menu.html#menu_fichier_configuration">Configuration</a></li>'); -document.write(' <li><a href="menu.html#menu_fichier_mise_a_jour_logicelle">Vérifier les mises à jour logicielles</a></li>'); -document.write(' <li><a href="menu.html#menu_fichier_mise_a_jour_rapport">Vérifier les mises à jour des rapports</a></li>'); -document.write(' <li><a href="menu.html#menu_fichier_gestionnaire_base">Gestionnaire de bases</a></li>'); -document.write(' <li><a href="menu.html#menu_fichier_quitter">Quitter</a></li>'); -document.write(' </ul>'); -document.write(' </li>'); -document.write(' <li class="dropdown-submenu">'); -document.write(' <a href="menu.html#menu_action">Menu Actions</a>'); -document.write(' <ul class="dropdown-menu" role="menu">'); -document.write(' <li><a href="menu.html#menu_action_selection">Sélectionne une campagne</a></li>'); -document.write(' <li><a href="menu.html#menu_action_serie">Série de campagne</a></li>'); -document.write(' <li><a href="menu.html#menu_action_campagne">Campagne</a></li>'); -document.write(' <li><a href="menu.html#menu_action_protocole">Protocole</a></li>'); -document.write(' <li><a href="menu.html#menu_action_saisie_capture">Saisir les captures</a></li>'); -document.write(' <li><a href="menu.html#menu_action_valider_capture">Valider les captures</a></li>'); -document.write(' <li><a href="menu.html#menu_action_rapport">Rapport</a></li>'); -document.write(' </ul>'); -document.write(' </li>'); -document.write(' <li class="dropdown-submenu">'); -document.write(' <a href="menu.html#menu_administration">Menu Administrations</a>'); -document.write(' <ul class="dropdown-menu" role="menu">'); -document.write(' <li><a href="menu.html#menu_administration_referentiel">Référentiels temporaires</a></li>'); -document.write(' <li><a href="menu.html#menu_administration_sample_category">Configurer les catégorisations</a></li>'); -document.write(' </ul>'); -document.write(' </li>'); -document.write(' <li class="dropdown-submenu">'); -document.write(' <a href="menu.html#menu_aide">Menu Aide</a>'); -document.write(' <ul class="dropdown-menu" role="menu">'); -document.write(' <li><a href="menu.html#menu_aide_aide">Aide</a></li>'); -document.write(' <li><a href="menu.html#menu_aide_site">Site</a></li>'); -document.write(' <li><a href="menu.html#menu_aide_about">À propos</a></li>'); -document.write(' <li><a href="menu.html#menu_aide_langue">Langue</a></li>'); -document.write(' </ul>'); -document.write(' </li>'); -document.write(' </ul>'); -document.write(' </li>'); -document.write(' <li class="dropdown-submenu">'); -document.write(' <a href="#">Description des écrans de saisie de données</a>'); -document.write(' <ul class="dropdown-menu" role="menu">'); -document.write(' <li><a href="selectCruise.html">Sélection Série / Campagne / Protocole</a></li>'); -document.write(' <li><a href="editProgram.html">Créer / Éditer une série de campagne</a></li>'); -document.write(' <li><a href="editCruise.html">Créer / Éditer une campagne</a></li>'); -document.write(' <li><a href="editProtocol.html">Créer / Éditer un protocole</a></li>'); -document.write(' <li class="dropdown-submenu">'); -document.write(' <a href="editFishingOperation.html">Saisie du trait et de la capture</a>'); -document.write(' <ul class="dropdown-menu" role="menu">'); -document.write(' <li><a href="editFishingOperation.html#traitTrait">Trait / Trait</a></li>'); -document.write(' <li><a href="editFishingOperation.html#traitMiseEnOuvreEngin">Trait / Mise en œuvre de l\'engin</a></li>'); -document.write(' <li><a href="editFishingOperation.html#traitAutreParametres">Trait / Autres paramètres</a></li>'); -document.write(' <li><a href="editFishingOperation.html#captureResume">Captures / Résumé</a></li>'); -document.write(' <li><a href="editFishingOperation.html#captureEspeces">Captures / Espèces</a></li>'); -document.write(' <li><a href="editFishingOperation.html#captureBenthos">Captures / Benthos</a></li>'); -document.write(' <li><a href="editFishingOperation.html#captureMacroDechet">Captures / Macro déchets</a></li>'); -document.write(' <li><a href="editFishingOperation.html#captureDonnesIndividuelles">Captures / Observations individuelles</a></li>'); -document.write(' <li><a href="editFishingOperation.html#captureCapturesAccidentelles">Captures / Captures accidentelles</a></li>'); -document.write(' </ul>'); -document.write(' </li>'); -document.write(' <li class="divider"></li>'); -document.write(' <li><a href="dbManager.html">Gestionnaire de base</a></li>'); -document.write(' <li><a href="config.html">Configuration</a></li>'); -document.write(' <li><a href="manageTemporaryReferential.html">Gestionnaire de référentiels temporaires</a></li>'); -document.write(' </ul>'); -document.write(' </li>'); -document.write(' <li class="dropdown-submenu">'); -document.write(' <a href="fonctionnalites_transversales.html">Fonctionnalités transversales</a>'); -document.write(' <ul class="dropdown-menu" role="menu">'); -document.write(' <li><a href="fonctionnalites_transversales.html#recherche_liste">Recherche dans une liste</a></li>'); -document.write(' <li><a href="fonctionnalites_transversales.html#tri_liste">Tri dans une liste</a></li>'); -document.write(' <li><a href="fonctionnalites_transversales.html#vider_valeur">Vider la valeur d\'un champ</a></li>'); -document.write(' <li><a href="fonctionnalites_transversales.html#raccourcis_clavier">Raccourcis clavier</a></li>'); -document.write(' <li><a href="fonctionnalites_transversales.html#origine_poids">Origine des poids affichés</a></li>'); -document.write(' <li><a href="fonctionnalites_transversales.html#controle_saisie">Contrôle de la saisie</a></li>'); -document.write(' <li><a href="fonctionnalites_transversales.html#rappel_context">Rappel du context de saisie</a></li>'); -document.write(' </ul>'); -document.write(' </li>'); -document.write(' <li class="dropdown-submenu">'); -document.write(' <a href="faq.html">Foire aux questions</a>'); -document.write(' <ul class="dropdown-menu" role="menu">'); -document.write(' <li><a href="faq.html#melag">Gestion de la saisie d\'un mélange d\'espèces</a></li>'); -document.write(' <li><a href="faq.html#gestion_du_protocole">Gestion du protocole</a></li>'); -document.write(' <li><a href="faq.html#information_dans_protocole">Quelles sont les informations à renseigner dans le protocole</a></li>'); -document.write(' <li><a href="faq.html#format_fichier_import">Format des fichiers d\'imports dans le logiciel</a></li>'); -document.write(' <li><a href="faq.html#manipulation_fichiers">Manipulation des fichiers d\'import/export</a></li>'); -document.write(' <li><a href="faq.html#sauvegarde_protocole">Sauvegarde du protocole dans Harmonie</a></li>'); -document.write(' <li><a href="faq.html#vrac_definition">Vrac / Hors Vrac : définitions</a></li>'); -document.write(' <li><a href="faq.html#saisie_multiposte">Saisie multi-ordinateurs</a></li>'); -document.write(' <li><a href="faq.html#sauvegarde_reguliere">Sauvegarde régulière de la base</a></li>'); -document.write(' </ul>'); -document.write(' </li>'); -document.write(' </ul>'); -document.write(' </li>'); -document.write(' </ul>'); -document.write(' </div>'); -document.write(' </div>'); -document.write('</div>'); \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/FrequencyConfigurationMode.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/FrequencyConfigurationMode.java 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/FrequencyConfigurationMode.java 2013-12-19 13:28:53 UTC (rev 1469) @@ -31,7 +31,6 @@ * @since 3.0 */ public enum FrequencyConfigurationMode { - SIMPLE, AUTO_GEN, RAFALE, SIMPLE_COUNTING Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css 2013-12-19 13:28:53 UTC (rev 1469) @@ -161,21 +161,6 @@ layout: {modeConfigurationLayout}; } -#simpleModeButton { - text: "tutti.editBenthosFrequencies.field.mode.simple"; - toolTipText: "tutti.editBenthosFrequencies.field.mode.simple.tip"; - value: "simpleMode"; - selected: {model.isSimpleMode()}; - buttonGroup: "mode"; - _help: {"tutti.editBenthosFrequencies.field.mode.simple.help"}; -} - -#simpleModeLabel { - text: "tutti.editBenthosFrequencies.label.no.configuration"; - horizontalAlignment: {JLabel.CENTER}; - enabled: false; -} - #simpleCountingModeLabel { text: "tutti.editBenthosFrequencies.label.no.configuration"; horizontalAlignment: {JLabel.CENTER}; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx 2013-12-19 13:28:53 UTC (rev 1469) @@ -81,8 +81,6 @@ <VBox id='modePanel' constraints='BorderLayout.WEST' verticalAlignment='{SwingConstants.CENTER}'> - <JRadioButton id='simpleModeButton' - onActionPerformed='model.setConfigurationMode(FrequencyConfigurationMode.SIMPLE)'/> <JRadioButton id='autoGenModeButton' onActionPerformed='model.setConfigurationMode(FrequencyConfigurationMode.AUTO_GEN)'/> <JRadioButton id='rafaleModeButton' @@ -92,10 +90,6 @@ </VBox> <JPanel id='modeConfigurationPanel' constraints='BorderLayout.CENTER'> - <JPanel id='simpleModePanel' constraints='"simpleMode"' - layout='{new BorderLayout()}'> - <JLabel id='simpleModeLabel' constraints='BorderLayout.CENTER'/> - </JPanel> <JPanel id='autoGenModePanel' constraints='"autoGenMode"'> <Table fill='both' constraints='BorderLayout.SOUTH'> <!-- Min step--> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIHandler.java 2013-12-19 13:28:53 UTC (rev 1469) @@ -81,8 +81,6 @@ private Map<String, Caracteristic> lengthStepCaracteristics; - protected Set<BenthosFrequencyRowModel> withWeightRows = Sets.newHashSet(); - /** * Weight unit. * @@ -116,14 +114,24 @@ row.getLengthStep() != null && row.getLengthStep() > 0 && ((row.getNumber() == null && row.getWeight() == null) || (row.getNumber() != null && row.getNumber() > 0 && - (withWeightRows.isEmpty() || row.getWeight() != null && row.getWeight() > 0))); + (getModel().getNbRowsWithWeight() == 0 || row.getWeight() != null && row.getWeight() > 0))); } @Override protected void onModelRowsChanged(List<BenthosFrequencyRowModel> rows) { super.onModelRowsChanged(rows); - recomputeTotalNumberAndWeight(); + BenthosFrequencyUIModel model = getModel(); + model.setEmptyRows(Sets.<BenthosFrequencyRowModel>newHashSet()); + if (CollectionUtils.isNotEmpty(rows)) { + for (BenthosFrequencyRowModel row : rows) { + model.updateRowWithWeight(row); + } + for (BenthosFrequencyRowModel row : rows) { + recomputeRowValidState(row); + } + } + model.recomputeTotalNumberAndWeight(); } @Override @@ -133,39 +141,36 @@ Object oldValue, Object newValue) { - boolean recomputeAllRows; BenthosFrequencyUIModel model = getModel(); - if (row.getWeight() != null) { - // check if no row had a weight, then if one of them now has a weight, - // the other ones must have one too to be valid - recomputeAllRows = withWeightRows.isEmpty(); - withWeightRows.add(row); + // keep number of rows with weight + int nbRowsWithWeight = model.getNbRowsWithWeight(); - } else { - withWeightRows.remove(row); - // check if no row has a weight, then if none of them now has a weight, - // the other ones do not need to have a weight to be valid - recomputeAllRows = withWeightRows.isEmpty(); - } + // update rowWithWeight cache + model.updateRowWithWeight(row); + // check if no row had a weight, then if one of them now has a weight, + // the other ones must have one too to be valid + boolean recomputeAllRows = nbRowsWithWeight != model.getNbRowsWithWeight(); if (recomputeAllRows) { + if (log.isInfoEnabled()) { + log.info("Revalidate all rows"); + } for (BenthosFrequencyRowModel r : model.getRows()) { recomputeRowValidState(r); } } - recomputeTotalNumberAndWeight(); + model.recomputeTotalNumberAndWeight(); if (!recomputeAllRows) { + if (log.isInfoEnabled()) { + log.info("Revalidate the single selected row"); + } recomputeRowValidState(row); } - if (row.isValid() && row.getNumber() == null && row.getWeight() == null) { - model.addEmptyRow(row); - } else { - model.removeEmptyRow(row); - } + model.updateEmptyRow(row); } @Override @@ -268,18 +273,20 @@ @Override public void propertyChange(PropertyChangeEvent evt) { Caracteristic newValue = (Caracteristic) evt.getNewValue(); - for (BenthosFrequencyRowModel rowModel : getModel().getRows()) { - rowModel.setLengthStepCaracteristic(newValue); - // get precision from the pmfm - Float precision = null; - if (newValue != null) { - precision = newValue.getPrecision(); + if (getModel().getRows()!=null) { + for (BenthosFrequencyRowModel rowModel : getModel().getRows()) { + rowModel.setLengthStepCaracteristic(newValue); + // get precision from the pmfm + Float precision = null; + if (newValue != null) { + precision = newValue.getPrecision(); + } + if (precision == null) { + precision = .5f; + } + getModel().setStep(precision); + recomputeRowValidState(rowModel); } - if (precision == null) { - precision = .5f; - } - getModel().setStep(precision); - recomputeRowValidState(rowModel); } BenthosFrequencyUIHandler.this.ui.getValidator().doValidate(); } @@ -501,7 +508,7 @@ row = tableModel.createNewRow(); row.setLengthStep(aroundLengthStep); row.setNumber(1); - row.setValid(true); + row.setValid(isRowValid(row)); // get new index List<Float> steps = Lists.newArrayList(rowsByStep.keySet()); @@ -523,11 +530,11 @@ } public void editBatch(BenthosFrequencyCellComponent.FrequencyCellEditor editor) { - withWeightRows.clear(); BenthosBatchRowModel speciesBatch = editor.getEditRow(); BenthosFrequencyUIModel model = getModel(); + model.clearWithWeightRows(); model.setNextEditableRowIndex(editor.getNextEditableRowIndex()); model.setTotalNumber(null); model.setTotalWeight(null); @@ -551,9 +558,6 @@ if (CollectionUtils.isNotEmpty(frequency)) { - Integer totalNumber = 0; - Float totalWeight = 0f; - BenthosFrequencyTableModel tableModel = getTableModel(); for (BenthosFrequencyRowModel rowModel : frequency) { @@ -564,17 +568,7 @@ newRow.setNumber(rowModel.getNumber()); newRow.setWeight(rowModel.getWeight()); editFrequency.add(newRow); - - if (newRow.getWeight() != null) { - withWeightRows.add(newRow); - totalWeight += newRow.getWeight(); - } else { - totalWeight = null; - } - totalNumber += newRow.getNumber(); } - model.setTotalNumber(totalNumber); - model.setTotalWeight(totalWeight); // use first frequency row length step caracteristics @@ -615,7 +609,6 @@ } } -// if (lengthStepCaracteristic == null && protocol != null) { if (lengthStepCaracteristic == null) { Species species = speciesBatch.getSpecies(); @@ -647,8 +640,7 @@ editFrequency.size() + " frequency"); } - FrequencyConfigurationMode mode = FrequencyConfigurationMode.SIMPLE; -// if (lengthStepCaracteristic == null && protocol != null) { + FrequencyConfigurationMode mode = FrequencyConfigurationMode.AUTO_GEN; if (lengthStepCaracteristic == null) { Integer taxonId = speciesBatch.getSpecies().getReferenceTaxonId(); SpeciesProtocol speciesProtocol = this.speciesProtocol.get(taxonId); @@ -672,9 +664,20 @@ // see http://forge.codelutin.com/issues/2482 Collections.sort(editFrequency); - model.setRows(editFrequency); model.setLengthStepCaracteristic(lengthStepCaracteristic); + model.setRows(editFrequency); +// // compute total number +// int totalNumber = model.computeTotalNumber(false); +// model.setTotalNumber(totalNumber); +// +// // compute total weight +// Float totalWeight = null; +// if (model.isAllRowsWithWeight()) { +// totalWeight = model.computeTotalWeight(false); +// } +// model.setTotalWeight(totalWeight); + // keep batch (will be used to push back editing entry) model.setBatch(speciesBatch); } @@ -691,39 +694,13 @@ log.debug("Save And Close UI " + ui); } - // check that we do not have doublon in length - // see http://forge.codelutin.com/issues/2499 - Set<Float> lengths = Sets.newHashSet(); + boolean doSave = canSaveFrequencies(); - Float doublon = null; - int index = 0; - for (BenthosFrequencyRowModel row : getModel().getRows()) { - Float lengthStep = row.getLengthStep(); - if (!lengths.add(lengthStep)) { + if (doSave) { - // already exist - doublon = lengthStep; - break; - } - index++; + frequencyEditor.save(getModel(), true); + closeUI(ui); } - if (doublon != null) { - - // can't save mensurations (found doublon) - String message = - _("tutti.editBenthosFrequencies.error.length.doublon", - doublon, index + 1); - getContext().getErrorHelper().showErrorDialog( - message); - - // focus to first error row - TuttiUIUtil.selectFirstCellOnRow(getTable(), index, false); - return; - } - - frequencyEditor.save(getModel(), true); - - closeUI(ui); } public void saveAndContinue() { @@ -732,75 +709,23 @@ log.debug("Save And Continue UI " + ui); } - // check that we do not have doublon in length - // see http://forge.codelutin.com/issues/2499 - Set<Float> lengths = Sets.newHashSet(); + boolean doSave = canSaveFrequencies(); - Float doublon = null; - int index = 0; - for (BenthosFrequencyRowModel row : getModel().getRows()) { - Float lengthStep = row.getLengthStep(); - if (!lengths.add(lengthStep)) { - - // already exist - doublon = lengthStep; - break; - } - index++; + if (doSave) { + frequencyEditor.save(getModel(), false); } - if (doublon != null) { - - // can't save mensurations (found doublon) - String message = - _("tutti.editBenthosFrequencies.error.length.doublon", - doublon, index + 1); - getContext().getErrorHelper().showErrorDialog( - message); - - // focus to first error row - TuttiUIUtil.selectFirstCellOnRow(getTable(), index, false); - return; - } - - frequencyEditor.save(getModel(), false); } //------------------------------------------------------------------------// //-- Internal methods --// //------------------------------------------------------------------------// - protected void recomputeTotalNumberAndWeight() { - BenthosFrequencyUIModel model = getModel(); - List<BenthosFrequencyRowModel> rows = model.getRows(); - Integer totalNumber = 0; - Float totalWeight = 0f; - for (BenthosFrequencyRowModel r : rows) { - if (r.isValid()) { - Integer number = r.getNumber(); - if (number != null) { - totalNumber += number; - } - Float weight = r.getWeight(); - if (weight != null) { - totalWeight += weight; - } - } - } - model.setTotalNumber(totalNumber); - model.setTotalWeight(totalWeight); - } - protected JComponent getComponentToFocus(FrequencyConfigurationMode mode) { JComponent componentToFocus = null; if (mode != null) { boolean withLengthStepCaracteristic = getModel().getLengthStepCaracteristic() != null; switch (mode) { - case SIMPLE: - if (!withLengthStepCaracteristic) { - componentToFocus = ui.getLengthStepCaracteristicComboBox(); - } - break; case AUTO_GEN: if (withLengthStepCaracteristic) { @@ -828,4 +753,72 @@ } return componentToFocus; } + + protected boolean canSaveFrequencies() { + boolean doSave = true; + + // check for doublon + // check that we do not have doublon in length + // see http://forge.codelutin.com/issues/2499 + Set<Float> lengths = Sets.newHashSet(); + + Float doublon = null; + int index = 0; + List<BenthosFrequencyRowModel> rows = getModel().getRows(); + for (BenthosFrequencyRowModel row : rows) { + Float lengthStep = row.getLengthStep(); + if (!lengths.add(lengthStep)) { + + // already exist + doublon = lengthStep; + break; + } + index++; + } + if (doublon != null) { + + // can't save mensurations (found doublon) + String message = + _("tutti.editBenthosFrequencies.error.length.doublon", + doublon, index + 1); + getContext().getErrorHelper().showErrorDialog( + message); + + // focus to first error row + TuttiUIUtil.selectFirstCellOnRow(getTable(), index, false); + doSave = false; + } + + // ask user if there is some rows we can't save + // see http://forge.codelutin.com/issues/4046 + if (doSave && getModel().isSomeRowsWithWeightAndOtherWithout()) { + + // there is some rows with weight and other without + // ask user what to do + + String htmlMessage = String.format( + CONFIRMATION_FORMAT, + _("tutti.editBenthosFrequencies.askBeforeSave.message"), + _("tutti.editBenthosFrequencies.askBeforeSave.help")); + int answer = JOptionPane.showConfirmDialog( + getTopestUI(), + htmlMessage, + _("tutti.editBenthosFrequencies.askBeforeSave.title"), + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE); + + switch (answer) { + case JOptionPane.YES_OPTION: + + // ok can save + break; + default: + + // do not save + doSave = false; + } + } + + return doSave; + } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel.java 2013-12-19 13:28:53 UTC (rev 1469) @@ -25,14 +25,14 @@ */ import com.google.common.collect.Sets; +import fr.ifremer.shared.application.type.WeightUnit; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.ui.swing.content.operation.catches.FrequencyConfigurationMode; import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchRowModel; -import fr.ifremer.shared.application.type.WeightUnit; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel; +import org.apache.commons.collections.CollectionUtils; -import java.util.List; import java.util.Set; /** @@ -55,8 +55,6 @@ public static final String PROPERTY_CAN_GENERATE = "canGenerate"; - public static final String PROPERTY_SIMPLE_MODE = "simpleMode"; - public static final String PROPERTY_AUTO_GEN_MODE = "autoGenMode"; public static final String PROPERTY_RAFALE_MODE = "rafaleMode"; @@ -161,6 +159,13 @@ */ protected final WeightUnit weightUnit; + /** + * Rows with a filled weight. + * + * @since 3.0 + */ + protected Set<BenthosFrequencyRowModel> withWeightRows = Sets.newHashSet(); + public BenthosFrequencyUIModel(WeightUnit weightUnit, SampleCategoryModel sampleCategoryModel) { super(BenthosBatchRowModel.class, null, null); @@ -174,11 +179,11 @@ return new BenthosBatchRowModel(weightUnit, sampleCategoryModel); } - @Override - public void setRows(List<BenthosFrequencyRowModel> rows) { - super.setRows(rows); - setEmptyRows(Sets.<BenthosFrequencyRowModel>newHashSet()); - } +// @Override +// public void setRows(List<BenthosFrequencyRowModel> rows) { +// super.setRows(rows); +// setEmptyRows(Sets.<BenthosFrequencyRowModel>newHashSet()); +// } public FrequencyConfigurationMode getConfigurationMode() { return configurationMode; @@ -188,7 +193,6 @@ Object oldValue = getConfigurationMode(); this.configurationMode = configurationMode; firePropertyChange(PROPERTY_CONFIGURATION_MODE, oldValue, configurationMode); - firePropertyChange(PROPERTY_SIMPLE_MODE, null, isSimpleMode()); firePropertyChange(PROPERTY_AUTO_GEN_MODE, null, isAutoGenMode()); firePropertyChange(PROPERTY_RAFALE_MODE, null, isRafaleMode()); firePropertyChange(PROPERTY_SIMPLE_COUNTING_MODE, null, isSimpleCountingMode()); @@ -257,10 +261,6 @@ firePropertyChange(PROPERTY_NEXT_EDITABLE_ROW_INDEX, oldValue, nextEditableRowIndex); } - public boolean isSimpleMode() { - return FrequencyConfigurationMode.SIMPLE == configurationMode; - } - public boolean isAutoGenMode() { return FrequencyConfigurationMode.AUTO_GEN == configurationMode; } @@ -323,13 +323,89 @@ firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows); } - public void addEmptyRow(BenthosFrequencyRowModel row) { - emptyRows.add(row); - firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows); + public void clearWithWeightRows() { + withWeightRows.clear(); } - public void removeEmptyRow(BenthosFrequencyRowModel row) { - emptyRows.remove(row); + public int getNbRowsWithWeight() { + return withWeightRows.size(); + } + + public boolean isAllRowsWithWeight() { + return withWeightRows.size() == rows.size(); + } + + public boolean isSomeRowsWithWeightAndOtherWithout() { + boolean result; + if (CollectionUtils.isEmpty(rows)) { + // no row + result = false; + } else { + + // there is some rows + int nbRowsWithWeight = getNbRowsWithWeight(); + int nbEmptyRows = emptyRows.size(); + if (nbRowsWithWeight == 0 || (nbEmptyRows + nbRowsWithWeight == rows.size())) { + + // no row with weight or all none empty rows have a weight + result = false; + } else { + + // some rows with weight and other without + result = true; + } + } + return result; + } + + public void updateRowWithWeight(BenthosFrequencyRowModel row) { + + if (row.getWeight() == null) { + withWeightRows.remove(row); + } else { + withWeightRows.add(row); + } + } + + public void updateEmptyRow(BenthosFrequencyRowModel row) { + if (row.isValid() && row.getNumber() == null && row.getWeight() == null) { + emptyRows.add(row); + } else { + emptyRows.remove(row); + } firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows); } + + public Float computeTotalWeight() { + float result = 0f; + for (BenthosFrequencyRowModel row : withWeightRows) { + if (!row.isValid()) { + continue; + } + result += row.getWeight(); + } + return result; + } + + public int computeTotalNumber() { + int result = 0; + if (rows != null) { + for (BenthosFrequencyRowModel row : rows) { + if (!row.isValid()) { + continue; + } + if (row.getNumber() != null) { + result += row.getNumber(); + } + } + } + return result; + } + + public void recomputeTotalNumberAndWeight() { + int totalNumber = computeTotalNumber(); + Float totalWeight = computeTotalWeight(); + setTotalNumber(totalNumber); + setTotalWeight(totalWeight); + } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2013-12-19 13:28:53 UTC (rev 1469) @@ -161,12 +161,6 @@ layout: {modeConfigurationLayout}; } -#simpleModeLabel { - text: "tutti.editSpeciesFrequencies.label.no.configuration"; - horizontalAlignment: {JLabel.CENTER}; - enabled: false; -} - #simpleCountingModeLabel { text: "tutti.editSpeciesFrequencies.label.no.configuration"; horizontalAlignment: {JLabel.CENTER}; @@ -224,15 +218,6 @@ text: "tutti.editSpeciesFrequencies.simpleCountingAndFrequencies"; } -#simpleModeButton { - text: "tutti.editSpeciesFrequencies.field.mode.simple"; - toolTipText: "tutti.editSpeciesFrequencies.field.mode.simple.tip"; - value: "simpleMode"; - selected: {model.isSimpleMode()}; - buttonGroup: "mode"; - _help: {"tutti.editSpeciesFrequencies.field.mode.simple.help"}; -} - #autoGenModeButton { text: "tutti.editSpeciesFrequencies.field.mode.autoGen"; toolTipText: "tutti.editSpeciesFrequencies.field.mode.autoGen.tip"; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx 2013-12-19 13:28:53 UTC (rev 1469) @@ -81,8 +81,6 @@ <VBox id='modePanel' constraints='BorderLayout.WEST' verticalAlignment='{SwingConstants.CENTER}'> - <JRadioButton id='simpleModeButton' - onActionPerformed='model.setConfigurationMode(FrequencyConfigurationMode.SIMPLE)'/> <JRadioButton id='autoGenModeButton' onActionPerformed='model.setConfigurationMode(FrequencyConfigurationMode.AUTO_GEN)'/> <JRadioButton id='rafaleModeButton' @@ -92,10 +90,6 @@ </VBox> <JPanel id='modeConfigurationPanel' constraints='BorderLayout.CENTER'> - <JPanel id='simpleModePanel' constraints='"simpleMode"' - layout='{new BorderLayout()}'> - <JLabel id='simpleModeLabel' constraints='BorderLayout.CENTER'/> - </JPanel> <JPanel id='autoGenModePanel' constraints='"autoGenMode"'> <Table fill='both' constraints='BorderLayout.SOUTH'> <!-- Min step--> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-12-19 13:28:53 UTC (rev 1469) @@ -83,8 +83,6 @@ private Map<String, Caracteristic> lengthStepCaracteristics; - protected Set<SpeciesFrequencyRowModel> withWeightRows = Sets.newHashSet(); - /** * Weight unit. * @@ -119,14 +117,24 @@ row.getLengthStep() != null && row.getLengthStep() > 0 && ((row.getNumber() == null && row.getWeight() == null) || (row.getNumber() != null && row.getNumber() > 0 && - (withWeightRows.isEmpty() || row.getWeight() != null && row.getWeight() > 0))); + (getModel().getNbRowsWithWeight() == 0 || row.getWeight() != null && row.getWeight() > 0))); } @Override protected void onModelRowsChanged(List<SpeciesFrequencyRowModel> rows) { super.onModelRowsChanged(rows); - recomputeTotalNumberAndWeight(); + SpeciesFrequencyUIModel model = getModel(); + model.setEmptyRows(Sets.<SpeciesFrequencyRowModel>newHashSet()); + if (CollectionUtils.isNotEmpty(rows)) { + for (SpeciesFrequencyRowModel row : rows) { + model.updateRowWithWeight(row); + } + for (SpeciesFrequencyRowModel row : rows) { + recomputeRowValidState(row); + } + } + model.recomputeTotalNumberAndWeight(); } @Override @@ -136,23 +144,22 @@ Object oldValue, Object newValue) { - boolean recomputeAllRows; SpeciesFrequencyUIModel model = getModel(); - if (row.getWeight() != null) { - // check if no row had a weight, then if one of them now has a weight, - // the other ones must have one too to be valid - recomputeAllRows = withWeightRows.isEmpty(); - withWeightRows.add(row); + // keep number of rows with weight + int nbRowsWithWeight = model.getNbRowsWithWeight(); - } else { - withWeightRows.remove(row); - // check if no row has a weight, then if none of them now has a weight, - // the other ones do not need to have a weight to be valid - recomputeAllRows = withWeightRows.isEmpty(); - } + // update rowWithWeight cache + model.updateRowWithWeight(row); + // check if no row had a weight, then if one of them now has a weight, + // the other ones must have one too to be valid + boolean recomputeAllRows = nbRowsWithWeight != model.getNbRowsWithWeight(); + if (recomputeAllRows) { + if (log.isInfoEnabled()) { + log.info("Revalidate all rows"); + } for (SpeciesFrequencyRowModel r : model.getRows()) { recomputeRowValidState(r); } @@ -161,13 +168,13 @@ recomputeTotalNumberAndWeight(); if (!recomputeAllRows) { + if (log.isInfoEnabled()) { + log.info("Revalidate the single selected row"); + } recomputeRowValidState(row); } - if (row.isValid() && row.getNumber() == null && row.getWeight() == null) { - model.addEmptyRow(row); - } else { - model.removeEmptyRow(row); - } + + model.updateEmptyRow(row); } @Override @@ -268,18 +275,20 @@ @Override public void propertyChange(PropertyChangeEvent evt) { Caracteristic newValue = (Caracteristic) evt.getNewValue(); - for (SpeciesFrequencyRowModel rowModel : getModel().getRows()) { - rowModel.setLengthStepCaracteristic(newValue); - // get precision from the pmfm - Float precision = null; - if (newValue != null) { - precision = newValue.getPrecision(); + if (getModel().getRows()!=null) { + for (SpeciesFrequencyRowModel rowModel : getModel().getRows()) { + rowModel.setLengthStepCaracteristic(newValue); + // get precision from the pmfm + Float precision = null; + if (newValue != null) { + precision = newValue.getPrecision(); + } + if (precision == null) { + precision = .5f; + } + getModel().setStep(precision); + recomputeRowValidState(rowModel); } - if (precision == null) { - precision = .5f; - } - getModel().setStep(precision); - recomputeRowValidState(rowModel); } SpeciesFrequencyUIHandler.this.ui.getValidator().doValidate(); } @@ -500,7 +509,7 @@ row = tableModel.createNewRow(); row.setLengthStep(aroundLengthStep); row.setNumber(1); - row.setValid(true); + row.setValid(isRowValid(row)); // get new index List<Float> steps = Lists.newArrayList(rowsByStep.keySet()); @@ -522,11 +531,11 @@ } public void editBatch(FrequencyCellEditor editor) { - withWeightRows.clear(); SpeciesBatchRowModel speciesBatch = editor.getEditRow(); SpeciesFrequencyUIModel model = getModel(); + model.clearWithWeightRows(); model.setNextEditableRowIndex(editor.getNextEditableRowIndex()); model.setTotalNumber(null); model.setTotalWeight(null); @@ -550,9 +559,6 @@ if (CollectionUtils.isNotEmpty(frequency)) { - Integer totalNumber = 0; - Float totalWeight = 0f; - SpeciesFrequencyTableModel tableModel = getTableModel(); for (SpeciesFrequencyRowModel rowModel : frequency) { @@ -563,18 +569,7 @@ newRow.setNumber(rowModel.getNumber()); newRow.setWeight(rowModel.getWeight()); editFrequency.add(newRow); - - if (newRow.getWeight() != null) { - withWeightRows.add(newRow); - totalWeight += newRow.getWeight(); - - } else { - totalWeight = null; - } - totalNumber += newRow.getNumber(); } - model.setTotalNumber(totalNumber); - model.setTotalWeight(totalWeight); // use first frequency row length step caracteristics @@ -615,7 +610,6 @@ } } -// if (lengthStepCaracteristic == null && protocol != null) { if (lengthStepCaracteristic == null) { Species species = speciesBatch.getSpecies(); @@ -647,8 +641,7 @@ editFrequency.size() + " frequency"); } - FrequencyConfigurationMode mode = FrequencyConfigurationMode.SIMPLE; -// if (lengthStepCaracteristic == null && protocol != null) { + FrequencyConfigurationMode mode = FrequencyConfigurationMode.AUTO_GEN; if (lengthStepCaracteristic == null) { Integer taxonId = speciesBatch.getSpecies().getReferenceTaxonId(); SpeciesProtocol speciesProtocol = this.speciesProtocol.get(taxonId); @@ -672,9 +665,20 @@ // see http://forge.codelutin.com/issues/2482 Collections.sort(editFrequency); + model.setLengthStepCaracteristic(lengthStepCaracteristic); model.setRows(editFrequency); - model.setLengthStepCaracteristic(lengthStepCaracteristic); +// // compute total number +// int totalNumber = model.computeTotalNumber(false); +// model.setTotalNumber(totalNumber); +// +// // compute total weight +// Float totalWeight = null; +// if (model.isAllRowsWithWeight()) { +// totalWeight = model.computeTotalWeight(false); +// } +// model.setTotalWeight(totalWeight); + // keep batch (will be used to push back editing entry) model.setBatch(speciesBatch); } @@ -691,38 +695,13 @@ log.debug("Save And Close UI " + ui); } - // check that we do not have doublon in length - // see http://forge.codelutin.com/issues/2499 - Set<Float> lengths = Sets.newHashSet(); + boolean doSave = canSaveFrequencies(); - Float doublon = null; - int index = 0; - for (SpeciesFrequencyRowModel row : getModel().getRows()) { - Float lengthStep = row.getLengthStep(); - if (!lengths.add(lengthStep)) { + if (doSave) { + frequencyEditor.save(getModel(), true); - // already exist - doublon = lengthStep; - break; - } - index++; + closeUI(ui); } - if (doublon != null) { - - // can't save mensurations (found doublon) - String message = - _("tutti.editSpeciesFrequencies.error.length.doublon", - doublon, index + 1); - getContext().getErrorHelper().showErrorDialog(message); - - // focus to first error row - TuttiUIUtil.selectFirstCellOnRow(getTable(), index, false); - return; - } - - frequencyEditor.save(getModel(), true); - - closeUI(ui); } public void saveAndContinue() { @@ -731,36 +710,11 @@ log.debug("Save And Continue UI " + ui); } - // check that we do not have doublon in length - // see http://forge.codelutin.com/issues/2499 - Set<Float> lengths = Sets.newHashSet(); + boolean doSave = canSaveFrequencies(); - Float doublon = null; - int index = 0; - for (SpeciesFrequencyRowModel row : getModel().getRows()) { - Float lengthStep = row.getLengthStep(); - if (!lengths.add(lengthStep)) { - - // already exist - doublon = lengthStep; - break; - } - index++; + if (doSave) { + frequencyEditor.save(getModel(), false); } - if (doublon != null) { - - // can't save mensurations (found doublon) - String message = - _("tutti.editSpeciesFrequencies.error.length.doublon", - doublon, index + 1); - getContext().getErrorHelper().showErrorDialog(message); - - // focus to first error row - TuttiUIUtil.selectFirstCellOnRow(getTable(), index, false); - return; - } - - frequencyEditor.save(getModel(), false); } //------------------------------------------------------------------------// @@ -794,11 +748,6 @@ boolean withLengthStepCaracteristic = getModel().getLengthStepCaracteristic() != null; switch (mode) { - case SIMPLE: - if (!withLengthStepCaracteristic) { - componentToFocus = ui.getLengthStepCaracteristicComboBox(); - } - break; case AUTO_GEN: if (withLengthStepCaracteristic) { @@ -826,4 +775,72 @@ } return componentToFocus; } + + protected boolean canSaveFrequencies() { + boolean doSave = true; + + // check for doublon + // check that we do not have doublon in length + // see http://forge.codelutin.com/issues/2499 + Set<Float> lengths = Sets.newHashSet(); + + Float doublon = null; + int index = 0; + List<SpeciesFrequencyRowModel> rows = getModel().getRows(); + for (SpeciesFrequencyRowModel row : rows) { + Float lengthStep = row.getLengthStep(); + if (!lengths.add(lengthStep)) { + + // already exist + doublon = lengthStep; + break; + } + index++; + } + if (doublon != null) { + + // can't save mensurations (found doublon) + String message = + _("tutti.editSpeciesFrequencies.error.length.doublon", + doublon, index + 1); + getContext().getErrorHelper().showErrorDialog( + message); + + // focus to first error row + TuttiUIUtil.selectFirstCellOnRow(getTable(), index, false); + doSave = false; + } + + // ask user if there is some rows we can't save + // see http://forge.codelutin.com/issues/4046 + if (doSave && getModel().isSomeRowsWithWeightAndOtherWithout()) { + + // there is some rows with weight and other without + // ask user what to do + + String htmlMessage = String.format( + CONFIRMATION_FORMAT, + _("tutti.editSpeciesFrequencies.askBeforeSave.message"), + _("tutti.editSpeciesFrequencies.askBeforeSave.help")); + int answer = JOptionPane.showConfirmDialog( + getTopestUI(), + htmlMessage, + _("tutti.editSpeciesFrequencies.askBeforeSave.title"), + JOptionPane.YES_NO_OPTION, + JOptionPane.QUESTION_MESSAGE); + + switch (answer) { + case JOptionPane.YES_OPTION: + + // ok can save + break; + default: + + // do not save + doSave = false; + } + } + + return doSave; + } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java 2013-12-19 13:28:53 UTC (rev 1469) @@ -25,14 +25,14 @@ */ import com.google.common.collect.Sets; +import fr.ifremer.shared.application.type.WeightUnit; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.ui.swing.content.operation.catches.FrequencyConfigurationMode; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchRowModel; -import fr.ifremer.shared.application.type.WeightUnit; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIModel; +import org.apache.commons.collections.CollectionUtils; -import java.util.List; import java.util.Set; /** @@ -55,8 +55,6 @@ public static final String PROPERTY_CAN_GENERATE = "canGenerate"; - public static final String PROPERTY_SIMPLE_MODE = "simpleMode"; - public static final String PROPERTY_AUTO_GEN_MODE = "autoGenMode"; public static final String PROPERTY_RAFALE_MODE = "rafaleMode"; @@ -161,6 +159,13 @@ */ protected final WeightUnit weightUnit; + /** + * Rows with a filled weight. + * + * @since 3.0 + */ + protected Set<SpeciesFrequencyRowModel> withWeightRows = Sets.newHashSet(); + public SpeciesFrequencyUIModel(WeightUnit weightUnit, SampleCategoryModel sampleCategoryModel) { super(SpeciesBatchRowModel.class, null, null); @@ -174,11 +179,11 @@ return new SpeciesBatchRowModel(weightUnit, sampleCategoryModel); } - @Override - public void setRows(List<SpeciesFrequencyRowModel> rows) { - super.setRows(rows); - setEmptyRows(Sets.<SpeciesFrequencyRowModel>newHashSet()); - } +// @Override +// public void setRows(List<SpeciesFrequencyRowModel> rows) { +// super.setRows(rows); +// setEmptyRows(Sets.<SpeciesFrequencyRowModel>newHashSet()); +// } public FrequencyConfigurationMode getConfigurationMode() { return configurationMode; @@ -188,7 +193,6 @@ Object oldValue = getConfigurationMode(); this.configurationMode = configurationMode; firePropertyChange(PROPERTY_CONFIGURATION_MODE, oldValue, configurationMode); - firePropertyChange(PROPERTY_SIMPLE_MODE, null, isSimpleMode()); firePropertyChange(PROPERTY_AUTO_GEN_MODE, null, isAutoGenMode()); firePropertyChange(PROPERTY_RAFALE_MODE, null, isRafaleMode()); firePropertyChange(PROPERTY_SIMPLE_COUNTING_MODE, null, isSimpleCountingMode()); @@ -257,10 +261,6 @@ firePropertyChange(PROPERTY_NEXT_EDITABLE_ROW_INDEX, oldValue, nextEditableRowIndex); } - public boolean isSimpleMode() { - return FrequencyConfigurationMode.SIMPLE == configurationMode; - } - public boolean isAutoGenMode() { return FrequencyConfigurationMode.AUTO_GEN == configurationMode; } @@ -323,13 +323,89 @@ firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows); } - public void addEmptyRow(SpeciesFrequencyRowModel row) { - emptyRows.add(row); - firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows); + public void clearWithWeightRows() { + withWeightRows.clear(); } - public void removeEmptyRow(SpeciesFrequencyRowModel row) { - emptyRows.remove(row); + public int getNbRowsWithWeight() { + return withWeightRows.size(); + } + + public boolean isAllRowsWithWeight() { + return withWeightRows.size() == rows.size(); + } + + public boolean isSomeRowsWithWeightAndOtherWithout() { + boolean result; + if (CollectionUtils.isEmpty(rows)) { + // no row + result = false; + } else { + + // there is some rows + int nbRowsWithWeight = getNbRowsWithWeight(); + int nbEmptyRows = emptyRows.size(); + if (nbRowsWithWeight == 0 || (nbEmptyRows + nbRowsWithWeight == rows.size())) { + + // no row with weight or all none empty rows have a weight + result = false; + } else { + + // some rows with weight and other without + result = true; + } + } + return result; + } + + public void updateRowWithWeight(SpeciesFrequencyRowModel row) { + + if (row.getWeight() == null) { + withWeightRows.remove(row); + } else { + withWeightRows.add(row); + } + } + + public void updateEmptyRow(SpeciesFrequencyRowModel row) { + if (row.isValid() && row.getNumber() == null && row.getWeight() == null) { + emptyRows.add(row); + } else { + emptyRows.remove(row); + } firePropertyChange(PROPERTY_EMPTY_ROWS, null, emptyRows); } + + public Float computeTotalWeight() { + float result = 0f; + for (SpeciesFrequencyRowModel row : withWeightRows) { + if (!row.isValid()) { + continue; + } + result += row.getWeight(); + } + return result; + } + + public int computeTotalNumber() { + int result = 0; + if (rows != null) { + for (SpeciesFrequencyRowModel row : rows) { + if (!row.isValid()) { + continue; + } + if (row.getNumber() != null) { + result += row.getNumber(); + } + } + } + return result; + } + + public void recomputeTotalNumberAndWeight() { + int totalNumber = computeTotalNumber(); + Float totalWeight = computeTotalWeight(); + setTotalNumber(totalNumber); + setTotalWeight(totalWeight); + } } 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-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-12-19 13:28:53 UTC (rev 1469) @@ -524,6 +524,9 @@ tutti.editBenthosFrequencies.action.saveAndContinue= tutti.editBenthosFrequencies.action.saveAndContinue.mnemonic= tutti.editBenthosFrequencies.action.saveAndContinue.tip= +tutti.editBenthosFrequencies.askBeforeSave.help= +tutti.editBenthosFrequencies.askBeforeSave.message= +tutti.editBenthosFrequencies.askBeforeSave.title= tutti.editBenthosFrequencies.error.length.doublon= tutti.editBenthosFrequencies.field.lengthStepCaracteristic= tutti.editBenthosFrequencies.field.lengthStepCaracteristic.tip= @@ -1110,6 +1113,9 @@ tutti.editSpeciesFrequencies.action.saveAndContinue= tutti.editSpeciesFrequencies.action.saveAndContinue.mnemonic= tutti.editSpeciesFrequencies.action.saveAndContinue.tip= +tutti.editSpeciesFrequencies.askBeforeSave.help= +tutti.editSpeciesFrequencies.askBeforeSave.message= +tutti.editSpeciesFrequencies.askBeforeSave.title= tutti.editSpeciesFrequencies.error.length.doublon= tutti.editSpeciesFrequencies.field.lengthStepCaracteristic= tutti.editSpeciesFrequencies.field.lengthStepCaracteristic.tip= Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-12-17 18:48:51 UTC (rev 1468) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-12-19 13:28:53 UTC (rev 1469) @@ -514,6 +514,9 @@ tutti.editBenthosFrequencies.action.saveAndContinue=Enregistrer et Continuer tutti.editBenthosFrequencies.action.saveAndContinue.mnemonic=C tutti.editBenthosFrequencies.action.saveAndContinue.tip=Enregistrer les mensurations et saisir les mensurations pour le lot suivant +tutti.editBenthosFrequencies.askBeforeSave.help=Que voulez-vous faire?<ul><li><strong>Non</strong> pour rester sur cet écran</li><li><strong>Oui</strong> pour enregisrer les mensurations avec poids</li></ul> +tutti.editBenthosFrequencies.askBeforeSave.message=La saisie comporte des classes de taille avec et sans poids associés.<br/><strong>Seules les classes de taille avec poids seront dans ce cas sauvegardées.</strong> +tutti.editBenthosFrequencies.askBeforeSave.title=Confirmer l'enregistrement des mensurations tutti.editBenthosFrequencies.error.length.doublon=La classe de taille <strong>%s</strong> est utilisée plusieurs fois (deuxième occurrence trouvée à la ligne <strong>%s</strong>), ce qui n'est pas autorisé.<hr/>Veuillez corriger cela pour pouvoir enregistrer les mensurations. tutti.editBenthosFrequencies.field.lengthStepCaracteristic=Type de mesure tutti.editBenthosFrequencies.field.lengthStepCaracteristic.tip=Méthode de mensuration des individus @@ -1100,6 +1103,9 @@ tutti.editSpeciesFrequencies.action.saveAndContinue=Enregistrer et Continuer tutti.editSpeciesFrequencies.action.saveAndContinue.mnemonic=C tutti.editSpeciesFrequencies.action.saveAndContinue.tip=Enregistrer les mensurations et saisir les mensurations pour le lot suivant +tutti.editSpeciesFrequencies.askBeforeSave.help=Que voulez-vous faire?<ul><li><strong>Annuler</strong> pour rester sur cet écran</li><li><strong>Oui</strong> pour enregisrer les mensurations avec poids</li></ul> +tutti.editSpeciesFrequencies.askBeforeSave.message=La saisie comporte des classes de taille avec et sans poids associés.<br/><strong>Seules les classes de taille avec poids seront dans ce cas sauvegardées.</strong> +tutti.editSpeciesFrequencies.askBeforeSave.title=Confirmer l'enregistrement des mensurations tutti.editSpeciesFrequencies.error.length.doublon=La classe de taille <strong>%s</strong> est utilisée plusieurs fois (deuxième occurrence trouvée à la ligne <strong>%s</strong>), ce qui n'est pas autorisé.<hr/>Veuillez corriger cela pour pouvoir enregistrer les mensurations. tutti.editSpeciesFrequencies.field.lengthStepCaracteristic=Type de mesure tutti.editSpeciesFrequencies.field.lengthStepCaracteristic.tip=Méthode de mensuration des individus
participants (1)
-
tchemit@users.forge.codelutin.com