Wao-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
January 2010
- 4 participants
- 139 discussions
[Suiviobsmer-commits] r170 - in trunk: src src/site src/site/resources src/site/resources/doc src/site/rst src/site/rst/import suiviobsmer-business/src suiviobsmer-business/src/site suiviobsmer-ui/src suiviobsmer-ui/src/site
by fdesbois@users.labs.libre-entreprise.org 06 Jan '10
by fdesbois@users.labs.libre-entreprise.org 06 Jan '10
06 Jan '10
Author: fdesbois
Date: 2010-01-06 17:18:15 +0000 (Wed, 06 Jan 2010)
New Revision: 170
Added:
trunk/src/site/
trunk/src/site/resources/
trunk/src/site/resources/doc/
trunk/src/site/resources/doc/DOC_Contacts_Header.ods
trunk/src/site/resources/logo-obsmer.jpg
trunk/src/site/resources/logo-wao.png
trunk/src/site/rst/
trunk/src/site/rst/business-rules.rst
trunk/src/site/rst/import/
trunk/src/site/rst/import/boats.rst
trunk/src/site/rst/import/contacts.rst
trunk/src/site/rst/import/samplingPlan.rst
trunk/src/site/rst/installation.rst
trunk/src/site/site.xml
trunk/suiviobsmer-business/src/site/
trunk/suiviobsmer-business/src/site/site.xml
trunk/suiviobsmer-ui/src/site/
trunk/suiviobsmer-ui/src/site/site.xml
Log:
Add maven-site
Added: trunk/src/site/resources/doc/DOC_Contacts_Header.ods
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/doc/DOC_Contacts_Header.ods
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/site/resources/logo-obsmer.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/logo-obsmer.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/site/resources/logo-wao.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/resources/logo-wao.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/site/rst/business-rules.rst
===================================================================
--- trunk/src/site/rst/business-rules.rst (rev 0)
+++ trunk/src/site/rst/business-rules.rst 2010-01-06 17:18:15 UTC (rev 170)
@@ -0,0 +1,107 @@
+Documentation des règles métiers de l'application WAO
+=====================================================
+
+Ligne du plan d'échantillonnage (ADMIN)
+---------------------------------------
+
+Pré-requis : Import des zones de pêche
+
+- Création :
+
+ * (obligatoire) profession : toujours une nouvelle profession
+ * (obligatoire) zone de pêche : au moins une zone de pêche doit être ajouté à la ligne
+ * (obligatoire) programme : déjà existant ou nouveau programme
+ * (obligatoire) période du programme : modifiable si cela ne pose pas de problème sur des données d'embarquements réels
+ * données des marées / mois : toujours minimum à 0
+ * (obligatoire) code de la ligne : générer automatiquement à partir de la date de début du programme : [year]_[lastNum]
+ * autres champs non obligatoire
+
+- Modification (si aucun embarquement réel effectué sur la ligne) :
+
+ * Même contraintes que pour la création sauf code de la ligne déjà existant
+ * (obligatoire) Commentaire de modification
+
+- Modification (si des embarquements réels ont été effectuées sur la ligne) :
+
+ * Modification impossible pour les champs : profession, zones de pêche, programme
+ * (obligatoire) Commentaire de modification
+
+- Suppression : possible uniquement si aucun embarquement réel n'a été enregistré sur la ligne
+
+- Unicité : code de la ligne
+
+Navires (OBSERVER/USER)
+-----------------------
+
+- Filtres :
+
+ * Code de la ligne : uniquement celles liés à la société
+
+- Informations :
+
+ * Possibilité de lier un navire à une ligne du plan disponible (ouverte)
+ * Possibilité de rayer une ligne du plan d'un navire si elle a été liée par un ADMIN
+ * Possibilité de supprimer une liaison avec une ligne du plan, uniquement celles liés par la société
+
+- Unicité : immatriculation du navire
+
+Contact (OBSERVER/USER)
+-----------------------
+
+Pré-requis : La création n'est possible que sur un navire elligible lié à une ligne du plan
+
+Etats des contacts : "Contact pris" (CREATION), "Embarquement prévu", "Embarquement réalisé" (TERMINE), "Refus" (TERMINE), "Refus définitif" (TERMINE), "Non abouti" (TERMINE)
+
+- Création :
+
+ * possible uniquement depuis la page des navires
+ * doit être effectué sur une ligne du plan (potentiellement sélectionné depuis le plan d'échantillonnage)
+ * aucun navire doit avoir de contact en cours pour cette société
+ * impossible si le programme de la ligne du plan est terminé (date de fin > date du jour)
+ * état initial : "Contact pris"
+ * observateur initial : l'utilisateur qui a créé la ligne
+
+- Modification (changement d'état) :
+
+ * possible uniquement si aucune validation n'a été faites
+ * "Embarquement prévu" -> aucune contrainte
+ * "Embarquement réalisé" -> les champs "date de début de la marée", "date de fin de la marée" et "nb observateurs" sont obligatoires
+ * "Non abouti", "Refus", "Refus définitif" -> champs commentaire obligatoire, le changement d'état efface tous les autres champs
+
+- Contraintes sur les dates :
+
+ * Date de fin postérieure ou égal à la date de début
+ * Date de fin antérieure à la date du jour
+ * Date de début et date de fin incluses dans la période du programme de la ligne du plan lié au contact
+
+- Validation par la société :
+
+ * Aucune validation faites par le programme (ADMIN)
+ * Etat terminé ("Non abouti", "Refus", "Refus définitif")
+ * Etat "Embarquement réalisé" avec "date de saisie dans Allegro" renseignée
+
+- Validation par le programme :
+
+ * Le contact doit être accepté/validé par la société
+
+- Suppression :
+
+ * possible uniquement si aucune validation n'a été faites
+
+- Calcul de la durée des marées réels :
+
+ * Ajout si accepté par la société
+ * Retrait si invalidé par la société après avoir été accepté
+ * Retrait si refusé par le programme
+ * Ajout si invalidé par le programme après avoir été refusé
+
+- Unicité : code de la ligne + immatriculation du navire + société + date de création (avec temps)
+
+Administration
+--------------
+
+- Connexion impossible si inactif
+- Aucune création d'utilisateur possible pour une société inactive
+
+
+
Added: trunk/src/site/rst/import/boats.rst
===================================================================
--- trunk/src/site/rst/import/boats.rst (rev 0)
+++ trunk/src/site/rst/import/boats.rst 2010-01-06 17:18:15 UTC (rev 170)
@@ -0,0 +1,30 @@
+Import des navires
+==================
+
+Cette fonctionnalité est disponible depuis la page des **Navires** en mode administrateur.
+
+Infos
+-----
+
+- Disponible depuis version 0.0.1-alpha-1
+- Encodage du fichier CSV obligatoire en UTF-8
+
+Sélections
+----------
+
+- Navires actifs (indicateur d'état du numéro = actif)
+- Pays d'appartenance du navire = France
+- Immatriculation du navire NAVS_COD comprise entre 100000 et 999999
+- Navires présents dans le calendrier d'activité 2008 et dont le port d'exploitation est français
+
+Champs de la table
+------------------
+
+- NAVS_COD : Numéro d'immatriculation du navire (identifiant unique)
+- CARN_NOM : Nom du navire
+- CARN_LONGUEUR_HT : Longueur hors tout du navire (en mètres)
+- CARN_ANNEE : Année de construction du navire
+- QUARTIER_IMMA : Code lieu d'immatriculation
+- PER_COD : Code armateur (identifiant unique) (NA = pas d'armateur)
+- PER_NOM : Nom de l'armateur
+- PER_PRENOM : Prénom de l'armateur
\ No newline at end of file
Added: trunk/src/site/rst/import/contacts.rst
===================================================================
--- trunk/src/site/rst/import/contacts.rst (rev 0)
+++ trunk/src/site/rst/import/contacts.rst 2010-01-06 17:18:15 UTC (rev 170)
@@ -0,0 +1,68 @@
+Import/Export des Contacts
+==========================
+
+Cette fonctionnalité est disponible depuis la page des **Contacts**.
+
+Infos
+-----
+
+- Disponible depuis version 0.0.3
+- Encodage du fichier CSV obligatoire en UTF-8
+
+Voir `Fichier OpenOffice`_
+
+.. _Fichier OpenOffice: ../doc/DOC_Contacts_Header.ods
+
+Note
+----
+
+- Création d'une ligne si CONT_CREATION est vide.
+- Modification d'une ligne si existante : recherche sur NAVS_COD, PLAN_CODE, CONT_CREATION, SOCIETE_NOM
+- Les validations (société ou programme) ne sont pas importés
+
+Types et formats des cellules
+-----------------------------
+
+- string = chaîne de caractères -> ex : "Une_Chaine345"
+- double = nombre réel, formaté en anglais -> ex : 1.2
+- date = date, formaté en jour/mois/année (JJ/MM/AAAA sous Excel) -> ex : 01/12/2010
+- int = nombre entier -> ex : 3
+- boolean = vrai ou faux, se traduit par un 'X' si c'est vrai
+
+Descriptions des colonnes
+-------------------------
+
+- CONT_CODE (string) : Code pour modification d'un contact existant dans WAO (uniquement récupérable depuis un export)
+- CONT_CREATION (date) : Date de création de la ligne (si vide, nouvelle ligne dans WAO)
+- OBSERV_ID (string) : Login de l'observateur (obligatoire)
+- OBSERV_PRENOM (string) : Prénom de l'observateur
+- OBSERV_NOM (string) : Nom de l'observateur
+- SOCIETE_NOM (string) : Nom de la société
+- PLAN_CODE (string) : Code de la ligne (obligatoire)
+- PROGRAMME_CODE (string) : Nom du programme
+- PROGRAMME_DEBUT (date) : Date de début du programme
+- PROGRAMME_FIN (date) : Date de fin du programme
+- PECHE_FACADE (string) : Facade de la zone de pêche
+- PECHE_ZONE (string) : Secteur de la zone de pêche
+- PECHE_DIVISION (string) : Zones de pêche liés à la ligne, chaque zone est séparé par un " / " -> ex : VIIa / VIIb (obligatoire)
+- PECHE_AUTRE (string) : Autres information sur les zones de pêche pour la ligne
+- METIER_CODE_DCF5 (string) : Code DCF niveau 5 du métier
+- METIER_MAILLAGE (string) : Maillage du métier
+- METIER_TAILLE (string) : Taille du métier
+- METIER_AUTRE (string) : Autre information du métier
+- METIER_LIBELLE (string) : Libellé du métier
+- METIER_ESPECES (string) : Espèces liées au métier
+- NAVS_COD (int) : Immatriculation du navire (6 chiffres) (obligatoire)
+- CARN_NOM (string) : Nom du navire
+- QUARTIER_IMMA (string) : Code quartier du navire
+- CONT_ETAT (string) : Etat du contact
+ (valeurs possibles : "Contact pris", "Embarquement prévu", "Embarquement réalisé", "Non abouti", "Refus", "Refus définitif")
+- CONT_DEBUT_MAREE (date) : Date de début de la marée
+- CONT_FIN_MAREE (date) : Date de fin de la marée
+- CONT_NB_OBSERV (int) : Nombre d'observateurs pour l'embarquement
+- CONT_MAM_CAPT (boolean) : Capture de mammifères
+- CONT_MAM_OBSERV (boolean) : Observation de mammifères
+- CONT_COMMENT (string) : Commentaire sur le contact
+- CONT_ALLEGRO (date) : Date de saisies dans Allegro
+- CONT_SOCIETE_VALID (string) : Validation par la société : 'A' pour Accepter, 'N' pour en attente, 'R' pour Refuser
+- CONT_PROGRAM_VALID (string) : Validation par le programme : 'A' pour Accepter, 'N' pour en attente, 'R' pour Refuser
Added: trunk/src/site/rst/import/samplingPlan.rst
===================================================================
--- trunk/src/site/rst/import/samplingPlan.rst (rev 0)
+++ trunk/src/site/rst/import/samplingPlan.rst 2010-01-06 17:18:15 UTC (rev 170)
@@ -0,0 +1,53 @@
+Documentation Import du plan d'échantillonnage
+==============================================
+
+Cette fonctionnalité est disponible depuis la page du **Plan d'échantillonnage** en mode administrateur.
+
+Infos
+-----
+
+- Disponible depuis version 0.0.1-alpha-1
+- Encodage du fichier CSV obligatoire en UTF-8
+
+Types et formats des cellules
+-----------------------------
+
+- string = chaîne de caractères -> ex : "Une_Chaine345"
+- double = nombre réel, formaté en anglais -> ex : 1.2
+- date = date, formaté en mois/année (MM/AAAA sous Excel) -> ex : 12/2010
+- int = nombre entier -> ex : 3
+
+Descriptions des colonnes
+-------------------------
+
+- PLAN_CODE (string) : Code de la ligne (unique, obligatoire)
+- SOCIETE_NOM (string) : Nom de la société
+- PECHE_DIVISION (string) : Zones de pêche liés à la ligne, chaque zone est séparé par un " / " -> ex : VIIa / VIIb (obligatoire)
+- PECHE_AUTRE (string) : Autres information sur les zones de pêche pour la ligne
+- METIER_CODE_DCF5 (string) : Code DCF niveau 5 du métier (obligatoire)
+- METIER_MAILLAGE (string) : Maillage du métier
+- METIER_TAILLE (string) : Taille du métier
+- METIER_AUTRE (string) : Autre information du métier
+- METIER_LIBELLE (string) : Libellé du métier
+- METIER_ESPECES (string) : Espèces liées au métier
+- PROGRAMME_CODE (string) : Nom du programme (obligatoire)
+- PROGRAMME_DEBUT (date) : Date de début du programme (obligatoire)
+- PROGRAMME_FIN (date) : Date de fin du programme (obligatoire)
+- champs pour les mois formatés comme des dates (MM/AAAA)
+- PLAN_DUREE_MOY (double) : Durée moyenne d'une marée (obligatoire)
+- PLAN_NB_OBSERV (int) : Nombre d'observateurs (obligatoire)
+- PLAN_COMMENT (string) : Commentaire sur la création de la ligne
+
+Refus
+-----
+
+L'affichage indique le nombre de lignes qui ont été refusés pour les raisons suivantes :
+
+- (PLAN_CODE) Les lignes avec un code déjà existant dans l'application ne seront ni ajoutées, ni modifiées
+- (PECHE_DIVISION) Les lignes sans zone de pêche ne seront pas prises en compte
+
+Note
+----
+
+Si il n'y a aucun Code pour la ligne, elle ne sera ni interprété ni refusé.
+
Added: trunk/src/site/rst/installation.rst
===================================================================
--- trunk/src/site/rst/installation.rst (rev 0)
+++ trunk/src/site/rst/installation.rst 2010-01-06 17:18:15 UTC (rev 170)
@@ -0,0 +1,29 @@
+Installation
+============
+
+Deux possibilités
+-----------------
+
+- Lancement direct du fichier war (utilisation de Java-JRE 1.6)
+- Déploiement sur un serveur d'application (comme tomcat)
+
+Super administrateur par défaut
+-------------------------------
+
+Lors du premier lancement de l'application l'utilisateur admin sera créé avec comme identifiants :
+
+- login = admin
+- password = password
+
+Note
+ Il est fortement conseillé de modifier le mot de passe par défaut du super admin ! (dans le profile utilisateur)
+
+Références
+----------
+
+- `Tomcat`_
+- WarLauncher de `Nuiton-utils`_
+
+.. _Tomcat: http://tomcat.apache.org/
+
+.. _Nuiton-utils: http://maven-site.nuiton.org/nuiton-utils/Warlauncher.html
\ No newline at end of file
Added: trunk/src/site/site.xml
===================================================================
--- trunk/src/site/site.xml (rev 0)
+++ trunk/src/site/site.xml 2010-01-06 17:18:15 UTC (rev 170)
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="${project.name}">
+
+ <publishDate format="dd/MM/yyyy"/>
+
+ <bannerLeft>
+ <src alt="Web Applicatif Obsmer">logo-wao.png</src>
+ <name>${project.name}</name>
+ <href>index.html</href>
+ </bannerLeft>
+
+ <bannerRight>
+ <src alt="Obsmer">logo-obsmer.jpg</src>
+ </bannerRight>
+
+ <poweredBy>
+ <logo href="http://maven.apache.org" name="Maven" img="http://maven-site.nuiton.org/jrst/images/logos/maven-feather.png"/>
+ <logo href="http://maven-site.nuiton.org/jrst" name="JRst" img="http://maven-site.nuiton.org/jrst/images/jrst-logo.png"/>
+ <logo href="http://docutils.sourceforge.net/rst.html" name="ReStructuredText" img="http://maven-site.nuiton.org/jrst/images/restructuredtext-logo.png"/>
+ </poweredBy>
+
+ <body>
+
+ <breadcrumbs>
+ <item name="${project.name}" href="${project.url}" />
+ </breadcrumbs>
+
+<!-- <links>
+ <item name="Libre-Entreprise" href="http://www.libre-entreprise.org/" />
+ <item name="[fr" href="index.html" />
+ <item name="en]" href="../en/index.html" />
+ </links>-->
+
+ <menu name ="Documentation">
+ <item name="Import/Export">
+ <item name="Plan d'échantillonnage" href="import/samplingPlan.html"/>
+ <item name="Navires" href="import/boats.html"/>
+ <item name="Contacts" href="import/contacts.html"/>
+ <!--<item name="Calendrier d'activité" href="import/activityCalendar.html"/>-->
+ </item>
+ <item name="Règles métier" href="business-rules.html" />
+ </menu>
+
+ <menu name ="Mise en place">
+ <item name="Téléchargement" href="http://labs.libre-entreprise.org/frs/?group_id=154" />
+ <item name="Installation" href="installation.html"/>
+ <item name="Demo" href="http://demo.codelutin.com/suiviobsmer"/>
+ <item name="Tracker" href="http://labs.libre-entreprise.org/tracker/?group_id=154"/>
+ </menu>
+
+ <!--<menu ref="parent"/>-->
+ <menu ref="modules"/>
+ <menu ref="reports"/>
+
+ </body>
+
+</project>
+
Added: trunk/suiviobsmer-business/src/site/site.xml
===================================================================
--- trunk/suiviobsmer-business/src/site/site.xml (rev 0)
+++ trunk/suiviobsmer-business/src/site/site.xml 2010-01-06 17:18:15 UTC (rev 170)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="${project.name}">
+
+ <publishDate format="dd/MM/yyyy"/>
+
+ <bannerLeft>
+ <name>${project.name}</name>
+ <href>index.html</href>
+ </bannerLeft>
+
+<!-- <bannerRight>
+ <src>http://www.codelutin.com/images/lutinorange-codelutin.png</src>
+ <href>http://www.codelutin.com</href>
+ </bannerRight>-->
+
+ <poweredBy>
+ <logo href="http://maven.apache.org" name="Maven" img="http://maven-site.nuiton.org/jrst/images/logos/maven-feather.png"/>
+ <logo href="http://maven-site.nuiton.org/jrst" name="JRst" img="http://maven-site.nuiton.org/jrst/images/jrst-logo.png"/>
+ <logo href="http://docutils.sourceforge.net/rst.html" name="ReStructuredText" img="http://maven-site.nuiton.org/jrst/images/restructuredtext-logo.png"/>
+ </poweredBy>
+
+ <body>
+
+ <breadcrumbs>
+ <item name="${project.name}" href="${project.url}" />
+ </breadcrumbs>
+
+ <menu ref="parent"/>
+ <menu ref="reports"/>
+
+ </body>
+
+</project>
+
Added: trunk/suiviobsmer-ui/src/site/site.xml
===================================================================
--- trunk/suiviobsmer-ui/src/site/site.xml (rev 0)
+++ trunk/suiviobsmer-ui/src/site/site.xml 2010-01-06 17:18:15 UTC (rev 170)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="${project.name}">
+
+ <publishDate format="dd/MM/yyyy"/>
+
+ <bannerLeft>
+ <name>${project.name}</name>
+ <href>index.html</href>
+ </bannerLeft>
+
+<!-- <bannerRight>
+ <src>http://www.codelutin.com/images/lutinorange-codelutin.png</src>
+ <href>http://www.codelutin.com</href>
+ </bannerRight>-->
+
+ <poweredBy>
+ <logo href="http://maven.apache.org" name="Maven" img="http://maven-site.nuiton.org/jrst/images/logos/maven-feather.png"/>
+ <logo href="http://maven-site.nuiton.org/jrst" name="JRst" img="http://maven-site.nuiton.org/jrst/images/jrst-logo.png"/>
+ <logo href="http://docutils.sourceforge.net/rst.html" name="ReStructuredText" img="http://maven-site.nuiton.org/jrst/images/restructuredtext-logo.png"/>
+ </poweredBy>
+
+ <body>
+
+ <breadcrumbs>
+ <item name="${project.name}" href="${project.url}" />
+ </breadcrumbs>
+
+ <menu ref="parent"/>
+ <menu ref="reports"/>
+
+ </body>
+
+</project>
+
1
0
06 Jan '10
Author: fdesbois
Date: 2010-01-06 16:18:37 +0000 (Wed, 06 Jan 2010)
New Revision: 169
Modified:
trunk/pom.xml
Log:
Use last topia release
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-01-06 15:08:45 UTC (rev 168)
+++ trunk/pom.xml 2010-01-06 16:18:37 UTC (rev 169)
@@ -239,7 +239,7 @@
<!-- libraries version -->
<nuitonutils.version>1.1.2</nuitonutils.version>
- <topia.version>2.3.0-beta-3-SNAPSHOT</topia.version>
+ <topia.version>2.3.0-beta-3</topia.version>
<license.version>2.0.0</license.version>
<helper.version>1.1.0</helper.version>
<eugene.version>2.0.0-beta-2</eugene.version>
1
0
06 Jan '10
Author: fdesbois
Date: 2010-01-06 15:08:45 +0000 (Wed, 06 Jan 2010)
New Revision: 168
Modified:
trunk/changelog.txt
trunk/pom.xml
trunk/suiviobsmer-business/pom.xml
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerBusinessException.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerContext.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerException.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobal.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerRunner.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerRunnerImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/BoatFilterImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/CompanyBoatInfosImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactState.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactContext.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactContextImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactState.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoardingDone.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoardingExpected.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoatDefinitiveRefused.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoatRefused.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoatUnavailable.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyAccepted.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyLocked.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyRefused.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyUnlocked.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateEnum.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateException.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramAccepted.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramLocked.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramRefused.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramUnlocked.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateStart.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateUnfinished.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ActivityCalendarImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ActivityMonthImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ActivityProfessionImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatInfosImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/CompanyImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactDAOImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/FishingZoneImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProfessionImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProgramImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleMonthImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/UserImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceNewsMock.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceReferentialMock.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceSamplingMock.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceUserMock.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/ImportHelperTest.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobalTest.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerUtilsTest.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/bean/states/ContactContextTest.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/business/SuiviObsmerRunnerTest.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatImplTest.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatInfosImplTest.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/ProgramImplTest.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImportTest.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImplTest.java
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java
trunk/suiviobsmer-ui/pom.xml
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/BusinessUtils.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/GenericSelectModel.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/SuiviObsmerPage.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/BooleanImage.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/FeedBack.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/Layout.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/SubmitContext.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SuiviObsmerPropertyChangeListener.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins/Confirm.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins/ZoneUpdater.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/BoatActivityCalendar.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/ExceptionReport.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Index.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SampleRowForm.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingHistoric.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingPlan.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/UserProfile.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/AppModule.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/ContactModelFactory.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/SuiviObsmerManager.java
Log:
Prepare for release 0.0.3 : update license headers + changelog
Modified: trunk/changelog.txt
===================================================================
--- trunk/changelog.txt 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/changelog.txt 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,3 +1,10 @@
+0.0.3
+-----
+
+[fdesbois] Amélioration performance imports (ActivityCalendar et Boats)
+[fdesbois] Ajout des filtres pour les contacts
+[fdesbois] Utilisation de TopiaQuery pour les requêtages HQL
+
0.0.1-alpha-2
-------------
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/pom.xml 2010-01-06 15:08:45 UTC (rev 168)
@@ -15,7 +15,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>suiviobsmer</artifactId>
- <version>0.0.1-alpha-3-SNAPSHOT</version>
+ <version>0.0.3-SNAPSHOT</version>
<modules>
<module>suiviobsmer-ui</module>
Modified: trunk/suiviobsmer-business/pom.xml
===================================================================
--- trunk/suiviobsmer-business/pom.xml 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/pom.xml 2010-01-06 15:08:45 UTC (rev 168)
@@ -10,7 +10,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>suiviobsmer</artifactId>
- <version>0.0.1-alpha-3-SNAPSHOT</version>
+ <version>0.0.3-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.suiviobsmer</groupId>
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,3 +1,23 @@
+/*
+ * *##%
+ * SuiviObsmer :: Business
+ * Copyright (C) 2009 - 2010 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 Lesser 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>.
+ * ##%*
+ */
package fr.ifremer.suiviobsmer;
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerBusinessException.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerBusinessException.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerBusinessException.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerContext.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerContext.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerContext.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/**
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerException.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerException.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerException.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobal.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobal.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobal.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerRunner.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerRunner.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerRunner.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerRunnerImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerRunnerImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/SuiviObsmerRunnerImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/BoatFilterImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/BoatFilterImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/BoatFilterImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/CompanyBoatInfosImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/CompanyBoatInfosImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/CompanyBoatInfosImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,3 +1,23 @@
+/*
+ * *##%
+ * SuiviObsmer :: Business
+ * Copyright (C) 2009 - 2010 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 Lesser 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>.
+ * ##%*
+ */
package fr.ifremer.suiviobsmer.bean;
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactState.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactState.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactState.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactContext.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactContext.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactContext.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactContextImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactContextImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactContextImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactState.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactState.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactState.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoardingDone.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoardingDone.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoardingDone.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoardingExpected.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoardingExpected.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoardingExpected.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoatDefinitiveRefused.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoatDefinitiveRefused.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoatDefinitiveRefused.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoatRefused.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoatRefused.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoatRefused.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoatUnavailable.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoatUnavailable.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateBoatUnavailable.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyAccepted.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyAccepted.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyAccepted.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyLocked.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyLocked.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyLocked.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyRefused.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyRefused.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyRefused.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyUnlocked.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyUnlocked.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateCompanyUnlocked.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateEnum.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateEnum.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateEnum.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateException.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateException.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateException.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramAccepted.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramAccepted.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramAccepted.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramLocked.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramLocked.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramLocked.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramRefused.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramRefused.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramRefused.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramUnlocked.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramUnlocked.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateProgramUnlocked.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateStart.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateStart.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateStart.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateUnfinished.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateUnfinished.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/states/ContactStateUnfinished.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ActivityCalendarImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ActivityCalendarImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ActivityCalendarImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ActivityMonthImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ActivityMonthImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ActivityMonthImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ActivityProfessionImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ActivityProfessionImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ActivityProfessionImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatInfosImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatInfosImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatInfosImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/CompanyImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/CompanyImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/CompanyImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactDAOImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactDAOImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactDAOImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,3 +1,23 @@
+/*
+ * *##%
+ * SuiviObsmer :: Business
+ * Copyright (C) 2009 - 2010 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 Lesser 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>.
+ * ##%*
+ */
package fr.ifremer.suiviobsmer.entity;
import fr.ifremer.suiviobsmer.bean.ContactState;
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/FishingZoneImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/FishingZoneImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/FishingZoneImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProfessionImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProfessionImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProfessionImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProgramImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProgramImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProgramImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleMonthImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleMonthImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleMonthImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/SampleRowImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/UserImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/UserImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/UserImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceUserImpl.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceNewsMock.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceNewsMock.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceNewsMock.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceReferentialMock.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceReferentialMock.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceReferentialMock.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceSamplingMock.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceSamplingMock.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceSamplingMock.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceUserMock.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceUserMock.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceUserMock.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/ImportHelperTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/ImportHelperTest.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/ImportHelperTest.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,3 +1,23 @@
+/*
+ * *##%
+ * SuiviObsmer :: Business
+ * Copyright (C) 2009 - 2010 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 Lesser 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>.
+ * ##%*
+ */
package fr.ifremer.suiviobsmer;
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobalTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobalTest.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobalTest.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerUtilsTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerUtilsTest.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerUtilsTest.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/bean/states/ContactContextTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/bean/states/ContactContextTest.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/bean/states/ContactContextTest.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
@@ -176,4 +176,4 @@
System.out.println("createContactState");
}
-}
\ No newline at end of file
+}
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/business/SuiviObsmerRunnerTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/business/SuiviObsmerRunnerTest.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/business/SuiviObsmerRunnerTest.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatImplTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatImplTest.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatImplTest.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
@@ -172,4 +172,4 @@
Assert.assertTrue(result);
}
-}
\ No newline at end of file
+}
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatInfosImplTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatInfosImplTest.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatInfosImplTest.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
@@ -187,4 +187,4 @@
System.out.println("getNbBoardingForCompany");
}
-}
\ No newline at end of file
+}
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/ProgramImplTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/ProgramImplTest.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/ProgramImplTest.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImportTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImportTest.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImportTest.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
@@ -119,4 +119,4 @@
//InputStream input = getClass().getResourceAsStream("/target/activity.csv");
}
-}
\ No newline at end of file
+}
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImplTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImplTest.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImplTest.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Business
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/pom.xml
===================================================================
--- trunk/suiviobsmer-ui/pom.xml 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/pom.xml 2010-01-06 15:08:45 UTC (rev 168)
@@ -10,7 +10,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>suiviobsmer</artifactId>
- <version>0.0.1-alpha-3-SNAPSHOT</version>
+ <version>0.0.3-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.suiviobsmer</groupId>
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/BusinessUtils.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/BusinessUtils.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/BusinessUtils.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/GenericSelectModel.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/GenericSelectModel.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/GenericSelectModel.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/**
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/SuiviObsmerPage.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/SuiviObsmerPage.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/SuiviObsmerPage.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/BooleanImage.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/BooleanImage.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/BooleanImage.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/FeedBack.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/FeedBack.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/FeedBack.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,6 +1,6 @@
/* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/Layout.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/Layout.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/Layout.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/SubmitContext.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/SubmitContext.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/components/SubmitContext.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SuiviObsmerPropertyChangeListener.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SuiviObsmerPropertyChangeListener.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/data/SuiviObsmerPropertyChangeListener.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins/Confirm.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins/Confirm.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins/Confirm.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/**
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins/ZoneUpdater.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins/ZoneUpdater.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins/ZoneUpdater.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,6 +1,7 @@
/**
- * *##% Bonzoms Web Interface
- * Copyright (C) 2009 CodeLutin
+ * *##%
+ * SuiviObsmer :: Web Interface
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
@@ -14,7 +15,8 @@
*
* 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>. ##%*
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * ##%*
*/
package fr.ifremer.suiviobsmer.ui.mixins;
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Administration.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/BoatActivityCalendar.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/BoatActivityCalendar.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/BoatActivityCalendar.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
@@ -18,156 +18,156 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* ##%*
*/
-
-package fr.ifremer.suiviobsmer.ui.pages;
-
-import fr.ifremer.suiviobsmer.SuiviObsmerException;
-import fr.ifremer.suiviobsmer.entity.ActivityCalendar;
-import fr.ifremer.suiviobsmer.entity.ActivityMonth;
-import fr.ifremer.suiviobsmer.entity.ActivityProfession;
-import fr.ifremer.suiviobsmer.entity.ActivityZone;
-import fr.ifremer.suiviobsmer.entity.Boat;
-import fr.ifremer.suiviobsmer.services.ServiceBoat;
-import fr.ifremer.suiviobsmer.ui.base.SuiviObsmerPage;
-import java.util.Collections;
-import java.util.List;
-import org.apache.commons.lang.StringUtils;
-import org.apache.tapestry5.annotations.IncludeStylesheet;
-import org.apache.tapestry5.annotations.Persist;
-import org.apache.tapestry5.annotations.Property;
-import org.apache.tapestry5.ioc.annotations.Inject;
-import org.nuiton.util.DateUtils;
-import org.slf4j.Logger;
-
-/**
- * ActivityCalendarPage
- *
- * Created: 14 déc. 2009
- *
- * @author fdesbois
- * @version $Revision$
- *
- * Mise a jour: $Date$
- * par : $Author$
- */
- at IncludeStylesheet("context:css/boats.css")
-public class BoatActivityCalendar implements SuiviObsmerPage {
-
- @Inject
- private Logger log;
-
- @Inject
- private ServiceBoat serviceBoat;
-
- private ActivityCalendar activityCalendar;
-
-// @Property
-// private ActivityMonth activityMonth;
-
- @Property
- private int month;
-
- @Property
- private int professionIndex;
-
- @Property
- private int zoneIndex;
-
- @Persist
- private Boat boat;
-
- void setupRender() {
-
- }
-
- @Override
- public boolean isOnlyForAdmin() {
- return false;
- }
-
- public void setBoat(Boat boat) {
- this.boat = boat;
- }
-
- public Boat getBoat() {
- return this.boat;
- }
-
- public List<Boat> getBoats() {
- return Collections.singletonList(boat);
- }
-
- public ActivityCalendar getActivityCalendar() throws SuiviObsmerException {
- if (activityCalendar == null) {
- if (log.isInfoEnabled()) {
- log.info("BUSINESS REQUEST [getLastActivityCalendar]");
- }
- this.activityCalendar = serviceBoat.getLastActivityCalendar(getBoat());
- }
- return activityCalendar;
- }
-
- public ActivityMonth getActivityMonth() throws SuiviObsmerException {
- return getActivityCalendar().getActivityMonth(month);
- }
-
- public String getMonthName() {
- String libelle = DateUtils.getMonthLibelle(month);
- return StringUtils.capitalize(libelle);
- }
-
- public int getProfessionIndexMax() {
- int result = 0;
- for (ActivityMonth month : activityCalendar.getActivityMonth()) {
- int nbProfessions = month.sizeActivityProfession();
- if (nbProfessions > result) {
- result = nbProfessions;
- }
- }
- return result-1;
- }
-
- public boolean hasProfessions() {
- return getProfessionIndexMax() != -1;
- }
-
- public ActivityProfession getActivityProfession() throws SuiviObsmerException {
- if (getActivityMonth() == null) {
- return null;
- }
- if (professionIndex >= getActivityMonth().sizeActivityProfession()) {
- return null;
- }
- return getActivityMonth().getActivityProfession().get(professionIndex);
- }
-
- public int getZoneIndexMax() throws SuiviObsmerException {
- int result = 0;
- for (ActivityMonth activityMonth : activityCalendar.getActivityMonth()) {
- month = activityMonth.getMonth();
- ActivityProfession profession = getActivityProfession();
- if (profession != null) {
- int nbZones = profession.sizeActivityZone();
- if (nbZones > result) {
- result = nbZones;
- }
- }
- }
- return result-1;
- }
-
-// public boolean hasZones() {
-// return getZoneIndexMax() != -1;
-// }
-
- public ActivityZone getActivityZone() throws SuiviObsmerException {
- ActivityProfession profession = getActivityProfession();
- if (profession == null) {
- return null;
- }
- if (zoneIndex >= profession.sizeActivityZone()) {
- return null;
- }
- return profession.getActivityZone().get(zoneIndex);
- }
-}
+
+package fr.ifremer.suiviobsmer.ui.pages;
+
+import fr.ifremer.suiviobsmer.SuiviObsmerException;
+import fr.ifremer.suiviobsmer.entity.ActivityCalendar;
+import fr.ifremer.suiviobsmer.entity.ActivityMonth;
+import fr.ifremer.suiviobsmer.entity.ActivityProfession;
+import fr.ifremer.suiviobsmer.entity.ActivityZone;
+import fr.ifremer.suiviobsmer.entity.Boat;
+import fr.ifremer.suiviobsmer.services.ServiceBoat;
+import fr.ifremer.suiviobsmer.ui.base.SuiviObsmerPage;
+import java.util.Collections;
+import java.util.List;
+import org.apache.commons.lang.StringUtils;
+import org.apache.tapestry5.annotations.IncludeStylesheet;
+import org.apache.tapestry5.annotations.Persist;
+import org.apache.tapestry5.annotations.Property;
+import org.apache.tapestry5.ioc.annotations.Inject;
+import org.nuiton.util.DateUtils;
+import org.slf4j.Logger;
+
+/**
+ * ActivityCalendarPage
+ *
+ * Created: 14 déc. 2009
+ *
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+ at IncludeStylesheet("context:css/boats.css")
+public class BoatActivityCalendar implements SuiviObsmerPage {
+
+ @Inject
+ private Logger log;
+
+ @Inject
+ private ServiceBoat serviceBoat;
+
+ private ActivityCalendar activityCalendar;
+
+// @Property
+// private ActivityMonth activityMonth;
+
+ @Property
+ private int month;
+
+ @Property
+ private int professionIndex;
+
+ @Property
+ private int zoneIndex;
+
+ @Persist
+ private Boat boat;
+
+ void setupRender() {
+
+ }
+
+ @Override
+ public boolean isOnlyForAdmin() {
+ return false;
+ }
+
+ public void setBoat(Boat boat) {
+ this.boat = boat;
+ }
+
+ public Boat getBoat() {
+ return this.boat;
+ }
+
+ public List<Boat> getBoats() {
+ return Collections.singletonList(boat);
+ }
+
+ public ActivityCalendar getActivityCalendar() throws SuiviObsmerException {
+ if (activityCalendar == null) {
+ if (log.isInfoEnabled()) {
+ log.info("BUSINESS REQUEST [getLastActivityCalendar]");
+ }
+ this.activityCalendar = serviceBoat.getLastActivityCalendar(getBoat());
+ }
+ return activityCalendar;
+ }
+
+ public ActivityMonth getActivityMonth() throws SuiviObsmerException {
+ return getActivityCalendar().getActivityMonth(month);
+ }
+
+ public String getMonthName() {
+ String libelle = DateUtils.getMonthLibelle(month);
+ return StringUtils.capitalize(libelle);
+ }
+
+ public int getProfessionIndexMax() {
+ int result = 0;
+ for (ActivityMonth month : activityCalendar.getActivityMonth()) {
+ int nbProfessions = month.sizeActivityProfession();
+ if (nbProfessions > result) {
+ result = nbProfessions;
+ }
+ }
+ return result-1;
+ }
+
+ public boolean hasProfessions() {
+ return getProfessionIndexMax() != -1;
+ }
+
+ public ActivityProfession getActivityProfession() throws SuiviObsmerException {
+ if (getActivityMonth() == null) {
+ return null;
+ }
+ if (professionIndex >= getActivityMonth().sizeActivityProfession()) {
+ return null;
+ }
+ return getActivityMonth().getActivityProfession().get(professionIndex);
+ }
+
+ public int getZoneIndexMax() throws SuiviObsmerException {
+ int result = 0;
+ for (ActivityMonth activityMonth : activityCalendar.getActivityMonth()) {
+ month = activityMonth.getMonth();
+ ActivityProfession profession = getActivityProfession();
+ if (profession != null) {
+ int nbZones = profession.sizeActivityZone();
+ if (nbZones > result) {
+ result = nbZones;
+ }
+ }
+ }
+ return result-1;
+ }
+
+// public boolean hasZones() {
+// return getZoneIndexMax() != -1;
+// }
+
+ public ActivityZone getActivityZone() throws SuiviObsmerException {
+ ActivityProfession profession = getActivityProfession();
+ if (profession == null) {
+ return null;
+ }
+ if (zoneIndex >= profession.sizeActivityZone()) {
+ return null;
+ }
+ return profession.getActivityZone().get(zoneIndex);
+ }
+}
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/ExceptionReport.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/ExceptionReport.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/ExceptionReport.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,3 +1,23 @@
+/*
+ * *##%
+ * SuiviObsmer :: Web Interface
+ * Copyright (C) 2009 - 2010 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 Lesser 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>.
+ * ##%*
+ */
package fr.ifremer.suiviobsmer.ui.pages;
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Index.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Index.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Index.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SampleRowForm.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SampleRowForm.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SampleRowForm.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingHistoric.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingHistoric.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingHistoric.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingPlan.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingPlan.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SamplingPlan.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/UserProfile.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/UserProfile.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/UserProfile.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/AppModule.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/AppModule.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/AppModule.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,6 +1,6 @@
/* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/ContactModelFactory.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/ContactModelFactory.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/ContactModelFactory.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/SuiviObsmerManager.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/SuiviObsmerManager.java 2010-01-06 15:01:52 UTC (rev 167)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/services/SuiviObsmerManager.java 2010-01-06 15:08:45 UTC (rev 168)
@@ -1,7 +1,7 @@
/*
* *##%
* SuiviObsmer :: Web Interface
- * Copyright (C) 2009 Ifremer
+ * Copyright (C) 2009 - 2010 Ifremer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
1
0
[Suiviobsmer-commits] r167 - in trunk/suiviobsmer-ui/src/main: resources/fr/ifremer/suiviobsmer/ui/pages webapp webapp/css
by fdesbois@users.labs.libre-entreprise.org 06 Jan '10
by fdesbois@users.labs.libre-entreprise.org 06 Jan '10
06 Jan '10
Author: fdesbois
Date: 2010-01-06 15:01:52 +0000 (Wed, 06 Jan 2010)
New Revision: 167
Modified:
trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Contacts.properties
trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml
trunk/suiviobsmer-ui/src/main/webapp/css/common.css
trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css
Log:
Add style for Contacts filters and import/export zone
Modified: trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Contacts.properties
===================================================================
--- trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Contacts.properties 2010-01-06 13:33:55 UTC (rev 166)
+++ trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Contacts.properties 2010-01-06 15:01:52 UTC (rev 167)
@@ -1,7 +1,7 @@
# ContactForm labels
-state-label: Etat
-boat-label: Navire
-tide-label: Mar\u00E9e
+facadeName-label: Facade
+sectorName-label: Secteur
+contactsCsvFile-label: Fichier des contacts
# Grid labels
createdBy-label: Observateur
Modified: trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml 2010-01-06 13:33:55 UTC (rev 166)
+++ trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml 2010-01-06 15:01:52 UTC (rev 167)
@@ -5,99 +5,105 @@
nbObservants, mammals, editDate, comment, validation"-->
<div id="so-contacts-search">
<form t:type="form" t:id="searchBoat">
- <input t:type="textfield" t:id="boatName" value="contactFilter.boatName" t:mixins="Autocomplete"/>
- <input t:type="submit" class="ico search-32px" t:id="execSearchBoat" value="Search" />
+ <div>
+ <t:label t:for="boatName" /><br />
+ <input t:type="textfield" class="width200" t:id="boatName" value="contactFilter.boatName" t:mixins="Autocomplete"/>
+ <input t:type="submit" class="ico search-32px" t:id="execSearchBoat" value="Search" />
+ </div>
</form>
<a t:type="actionlink" t:id="showFilters" t:zone="so-contacts-filters">
recherche avancée
- </a>
+ </a>
<a t:type="actionlink" t:id="showImportExport" t:zone="so-contacts-importexport">
import/export
</a>
</div>
-
+<!-- FILTRES -->
<div t:type="zone" class="so-filters" t:id="filtersZone" t:update="show" t:visible="prop:filtersVisible" id="so-contacts-filters">
<fieldset>
<legend>Recherche avancée</legend>
- <!--<div class="aright">
- <t:if t:test="filtersHidden">
- <a t:type="actionlink" t:id="showFilters" t:zone="so-contacts-filters">
- <img src="${asset:context:}/img/downarrow.png" title="Afficher les filtres"/>
- </a>
- <p:else>
- <a t:type="actionlink" t:id="hideFilters" t:zone="so-boats-filters">
- <img src="${asset:context:}/img/uparrow.png" title="Cacher les filtres"/>
- </a>
- </p:else>
- </t:if>
- </div>-->
- <!--<t:feedback t:id="filterFeedback" />
- <div class="so-filters-form ${hiddenClass}">-->
+ <div class="so-filters-form">
<form t:type="form" t:id="filtersForm">
<t:errors />
<div class="t-beaneditor">
- <t:beaneditor t:id="filtersEditor" t:object="contactFilter"
- t:include="facadeName, sectorName, state" t:add="boat, sampleRow, observer, mammals, validation"
- t:reorder="boat, facadeName, sectorName, sampleRow, observer">
- <p:boat>
- <t:label t:for="boat" />
- <span> immatriculation </span>
- <input t:type="textfield" t:id="boat" class="width50" t:value="contactFilter.boatImmatriculation" />
- <span> code quartier </span>
- <input t:type="textfield" t:id="boatDistrictCode" class="width50" t:value="contactFilter.boatDistrictCode" />
- </p:boat>
- <p:facadeName>
- <t:label t:for="facadeName" />
- <input t:type="select" t:id="facadeName" t:model="facadeSelectModel" value="contactFilter.facadeName"
- t:mixins="zoneUpdater" t:event="change" t:zone="so-contacts-filters"/>
- </p:facadeName>
- <p:sectorName>
- <t:label t:for="sectorName" />
- <input t:type="select" t:id="sectorName" t:model="sectorSelectModel" value="contactFilter.sectorName" />
- </p:sectorName>
- <p:sampleRow>
- <t:label t:for="sampleRow" />
- <input t:type="select" t:id="sampleRow" t:model="sampleRowSelectModel" value="sampleRowId" />
- </p:sampleRow>
- <p:observer>
- N/A
- </p:observer>
- <p:state>
- N/A
- </p:state>
- <p:mammals>
- N/A
- </p:mammals>
- <p:validation>
- <t:label t:for="validation" />
- <input t:type="checkbox" t:id="validation" value="contactFilter.companyAccepted" />
+ <div>
+ <label>Navire </label>
+ <t:label t:for="boatImmatriculation" />:
+ <input t:type="textfield" t:id="boatImmatriculation" class="width50" t:value="contactFilter.boatImmatriculation" />
+ <t:label t:for="boatDistrictCode" />:
+ <input t:type="textfield" t:id="boatDistrictCode" class="width50" t:value="contactFilter.boatDistrictCode" />
+ <t:label t:for="facadeName" />:
+ <select t:type="select" t:id="facadeName" t:model="facadeSelectModel" value="contactFilter.facadeName"
+ t:mixins="zoneUpdater" t:event="change" t:zone="so-contacts-filters"/>
+ <t:label t:for="sectorName" />:
+ <select t:type="select" t:id="sectorName" t:model="sectorSelectModel" value="contactFilter.sectorName" />
+ <t:label t:for="sampleRow" />:
+ <input t:type="select" t:id="sampleRow" t:model="sampleRowSelectModel" value="sampleRowId" />
+ <label>Mammifères: </label>
+ <input t:type="checkbox" t:id="mammalsObservation1" value="contactFilter.mammalsObservation" />
+ <t:label t:for="mammalsObservation1">
+ <img src="${asset:context:}/img/eye-22px.png" alt="Observations de mammifères" title="Observations de mammifères" />
+ </t:label>
+ <input t:type="checkbox" t:id="mammalsCapture1" value="contactFilter.mammalsCapture" />
+ <t:label t:for="mammalsCapture1">
+ <img src="${asset:context:}/img/fishing-net-22px.png" alt="Capture de mammifères" title="Capture de mammifères" />
+ </t:label>
+ </div><p> </p>
+ <div>
+ <label>Validation société: </label>
+ <input t:type="checkbox" t:id="companyAccepted" value="contactFilter.companyAccepted" />
+ <t:label t:for="companyAccepted">
<img src="${asset:context:}/img/true-22px.png" title="Accepté par la société" />
- <input t:type="checkbox" value="contactFilter.companyRefused" />
+ </t:label>
+ <input t:type="checkbox" t:id="companyRefused" value="contactFilter.companyRefused" />
+ <t:label t:for="companyRefused">
<img src="${asset:context:}/img/false-22px.png" title="Refusé par la société" />
- <input t:type="checkbox" value="contactFilter.companyUndefined" />
+ </t:label>
+ <input t:type="checkbox" t:id="companyUndefined" value="contactFilter.companyUndefined" />
+ <t:label t:for="companyUndefined">
<img src="${asset:context:}/img/help-22px.png" title="Non validé par la société" />
- </p:validation>
- </t:beaneditor>
+ </t:label>
+ <t:if t:test="user.admin">
+ <label>Validation programme: </label>
+ <input t:type="checkbox" t:id="programAccepted" value="contactFilter.programAccepted" />
+ <t:label t:for="programAccepted">
+ <img src="${asset:context:}/img/true-22px.png" title="Accepté par le programme" />
+ </t:label>
+ <input t:type="checkbox" t:id="programRefused" value="contactFilter.programRefused" />
+ <t:label t:for="programRefused">
+ <img src="${asset:context:}/img/false-22px.png" title="Refusé par le programme" />
+ </t:label>
+ <input t:type="checkbox" t:id="programUndefined" value="contactFilter.programUndefined" />
+ <t:label t:for="programUndefined">
+ <img src="${asset:context:}/img/help-22px.png" title="Non validé par le programme" />
+ </t:label>
+ </t:if>
+ </div>
<div class="t-beaneditor-row aright">
<input t:type="submit" class="ico search-32px" t:id="search" value="Search" />
<input t:type="submit" class="ico undo" t:id="reset" value="Reset" />
</div>
</div>
</form>
- <!--</div>-->
+ </div>
</fieldset>
</div>
-<div t:type="zone" t:id="importExportZone" t:update="show" t:visible="false" id="so-contacts-importexport">
- <form t:type="form" t:id="importContacts">
- <t:errors />
- <t:label for="contactsCsvFile" /> :
- <input t:type="upload" t:id="contactsCsvFile" t:validate="required" />
- <input t:type="submit" class="ico import" value="OK" title="Importer une liste de contacts (format CSV)" />
- </form>
- <a t:type="actionlink" t:id="exportShowContacts">
- EXPORT
- </a>
+<!-- IMPORT/EXPORT -->
+<div t:type="zone" class="so-filters" t:id="importExportZone" t:update="show" t:visible="false" id="so-contacts-importexport">
+ <fieldset>
+ <legend>Import/export CSV (UTF-8)</legend>
+ <form t:type="form" t:id="importContacts">
+ <t:errors />
+ <t:label for="contactsCsvFile" /> :
+ <input t:type="upload" t:id="contactsCsvFile" t:validate="required" />
+ <input t:type="submit" class="ico import" value="OK" title="Importer une liste de contacts (format CSV)" />
+ <a t:type="actionlink" t:id="exportShowContacts">
+ EXPORT
+ </a>
+ </form>
+ </fieldset>
</div>
+<!-- CONTACT LIST -->
<t:zone t:id="gridZone" t:update="show">
<form t:type="form" t:id="contactsForm" t:zone="gridZone">
<t:errors id="so-contact-form-errors" t:banner="message:contactsForm-errors-banner"/>
Modified: trunk/suiviobsmer-ui/src/main/webapp/css/common.css
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/css/common.css 2010-01-06 13:33:55 UTC (rev 166)
+++ trunk/suiviobsmer-ui/src/main/webapp/css/common.css 2010-01-06 15:01:52 UTC (rev 167)
@@ -76,6 +76,11 @@
width: 150px;
}
+.width200 {
+ width: 200px;
+}
+
+
.width300 {
width: 300px;
}
Modified: trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css 2010-01-06 13:33:55 UTC (rev 166)
+++ trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css 2010-01-06 15:01:52 UTC (rev 167)
@@ -25,10 +25,58 @@
}*/
/* FILTERS */
-div.t-autocomplete-menu ul {
+div#so-contacts-search {
+ width: 50%;
+ margin: 10px;
+ margin-left: auto;
+ margin-right: auto;
+ text-align: center;
+}
+
+div#so-contacts-search form {
+ margin-bottom: 5px;
+}
+
+div#so-contacts-search form div {
+ width: 270px;
+ margin-left: auto;
+ margin-right: auto;
+ padding: 5px;
+ background-color: #DEE7EC;
+ border: 1px outset black;
+}
+
+div#so-contacts-search div.t-autocomplete-menu ul {
background-color: #19a28d;
}
+div#so-contacts-search a {
+ text-decoration: none;
+ color: #19a28d;
+ font-weight: bold;
+}
+
+div#so-contacts-search a:hover {
+ text-decoration: underline;
+ color: black;
+}
+
+div#so-contacts-filters {
+ width: 100%;
+ margin-bottom: 10px;
+}
+
+div#so-contacts-importexport {
+ margin-bottom: 10px;
+ width: 50%;
+ text-align: center;
+}
+
+div#so-contacts-importexport fieldset {
+ padding: 10px;
+}
+
+
/* TABLE OF CONTACTS */
div#so-contacts table.user {
width: 100%;
1
0
[Suiviobsmer-commits] r166 - in trunk: suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock suiviobsmer-business/src/main/xmi suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages suiviobsmer-ui/src/main/webapp suiviobsmer-ui/src/main/webapp/css suiviobsmer-ui/src/main/webapp/js
by fdesbois@users.labs.libre-entreprise.org 06 Jan '10
by fdesbois@users.labs.libre-entreprise.org 06 Jan '10
06 Jan '10
Author: fdesbois
Date: 2010-01-06 13:33:55 +0000 (Wed, 06 Jan 2010)
New Revision: 166
Added:
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins/ZoneUpdater.java
trunk/suiviobsmer-ui/src/main/webapp/js/ZoneUpdater.js
Modified:
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java
trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml
trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css
Log:
- Improve contact filters using ZoneUpdater for facade select
- Add autocomplete for boat name field
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-06 08:58:16 UTC (rev 165)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-06 13:33:55 UTC (rev 166)
@@ -542,4 +542,25 @@
// }
return result;
}
+
+ @Override
+ public List<String> getBoatNamesStartWith(String input) throws SuiviObsmerException {
+ TopiaContext transaction = null;
+ List<String> results = new ArrayList<String>();
+ try {
+ transaction = rootContext.beginTransaction();
+
+ input = StringUtils.upperCase(input);
+
+ BoatDAO dao = SuiviObsmerModelDAOHelper.getBoatDAO(transaction);
+
+ results = (List<String>)dao.createQuery().addDistinct().setSelect(Boat.NAME).add(Boat.NAME, Op.LIKE, input + "%").execute();
+
+ transaction.closeContext();
+ } catch (Exception eee) {
+ SuiviObsmerContext.serviceException(transaction,
+ "Impossible de récupérer les navires avec un nom commencant par '" + input + "'", eee);
+ }
+ return results;
+ }
}
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-06 08:58:16 UTC (rev 165)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-06 13:33:55 UTC (rev 166)
@@ -32,7 +32,6 @@
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
import fr.ifremer.suiviobsmer.bean.ContactState;
import java.io.InputStream;
-import org.nuiton.topia.TopiaException;
import org.nuiton.topia.framework.TopiaQuery;
import fr.ifremer.suiviobsmer.bean.states.ContactStateEnum;
import fr.ifremer.suiviobsmer.bean.ContactFilter;
@@ -45,7 +44,6 @@
import fr.ifremer.suiviobsmer.entity.ContactImpl;
import fr.ifremer.suiviobsmer.entity.ElligibleBoat;
import fr.ifremer.suiviobsmer.entity.FishingZone;
-import fr.ifremer.suiviobsmer.entity.FishingZoneDAO;
import fr.ifremer.suiviobsmer.entity.Profession;
import fr.ifremer.suiviobsmer.entity.Program;
import fr.ifremer.suiviobsmer.entity.SampleRow;
@@ -66,6 +64,7 @@
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.nuiton.topia.TopiaContext;
+import org.nuiton.topia.framework.TopiaQuery.Op;
import org.nuiton.topia.persistence.TopiaEntity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -112,6 +111,10 @@
query.add("F.facadeName", filter.getFacadeName()).add("C.sampleRow IN elements(F.sampleRow)");
}
+ if (!StringUtils.isEmpty(filter.getBoatName())) {
+ query.add("C.boat.name", Op.LIKE, filter.getBoatName() + "%");
+ }
+
if (!StringUtils.isEmpty(filter.getBoatDistrictCode())) {
query.add("C.boat.districtCode", filter.getBoatDistrictCode());
}
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-06 08:58:16 UTC (rev 165)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-06 13:33:55 UTC (rev 166)
@@ -240,6 +240,8 @@
try {
transaction = rootContext.beginTransaction();
+ // TODO-FD20090106 add filters for facadeName and sectorName (in argument) for Boats and Contacts use
+
Date current = SuiviObsmerContext.getCurrentDate();
SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction);
@@ -251,31 +253,6 @@
}
results = query.addLoad(SampleRow.PROFESSION, SampleRow.PROGRAM).executeToEntityList();
-
-// SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction);
-//
-// if (!user.getAdmin()) {
-// if (log.isDebugEnabled()) {
-// log.debug("User company : " + user.getCompany().getName());
-// }
-// results = dao.findAllByCompany(user.getCompany());
-// } else {
-// results = dao.findAll();
-// }
-//
-// Iterator<SampleRow> it = results.iterator();
-// while (it.hasNext()) {
-// SampleRow row = it.next();
-// // Only rows which are not finished will be kept
-// if (row.getProgram().isFinished()) {
-// it.remove();
-// }/* else {
-// // load data
-// row.getProgram();
-// row.getCompany();
-// row.getProfession();
-// }*/
-// }
transaction.closeContext();
} catch (Exception eee) {
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java 2010-01-06 08:58:16 UTC (rev 165)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceBoatMock.java 2010-01-06 13:33:55 UTC (rev 166)
@@ -252,4 +252,9 @@
throw new UnsupportedOperationException("Not supported yet.");
}
+ @Override
+ public List<String> getBoatNamesStartWith(String input) throws SuiviObsmerException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
}
Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
===================================================================
(Binary files differ)
Added: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins/ZoneUpdater.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins/ZoneUpdater.java (rev 0)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins/ZoneUpdater.java 2010-01-06 13:33:55 UTC (rev 166)
@@ -0,0 +1,99 @@
+/**
+ * *##% Bonzoms Web Interface
+ * Copyright (C) 2009 CodeLutin
+ *
+ * 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 Lesser 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>. ##%*
+ */
+package fr.ifremer.suiviobsmer.ui.mixins;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.apache.tapestry5.BindingConstants;
+import org.apache.tapestry5.ClientElement;
+import org.apache.tapestry5.ComponentResources;
+import org.apache.tapestry5.Link;
+import org.apache.tapestry5.RenderSupport;
+import org.apache.tapestry5.annotations.Environmental;
+import org.apache.tapestry5.annotations.IncludeJavaScriptLibrary;
+import org.apache.tapestry5.annotations.InjectContainer;
+import org.apache.tapestry5.annotations.Parameter;
+import org.apache.tapestry5.ioc.annotations.Inject;
+
+/**
+ * ZoneUpdater.java
+ *
+ * From http://tinybits.blogspot.com/2009/05/update-zone-on-any-client-side-event.h… by ingesol
+ *
+ * @author ingesol
+ * @version $Revision$
+ *
+ * Last update: $Date$
+ * by : $Author: fdesbois $
+ */
+ at IncludeJavaScriptLibrary("context:js/ZoneUpdater.js")
+public class ZoneUpdater {
+
+ public static final String PLACEHOLDER = "XXX";
+
+ @Inject
+ private ComponentResources resources;
+
+ @Environmental
+ private RenderSupport renderSupport;
+
+ @Parameter(defaultPrefix = BindingConstants.LITERAL)
+ private String clientEvent;
+
+ @Parameter(defaultPrefix = BindingConstants.LITERAL, required = true)
+ private String event;
+
+ @InjectContainer
+ private ClientElement element;
+
+ @Parameter
+ private Object[] context;
+
+ @Parameter(defaultPrefix = BindingConstants.LITERAL)
+ // To enable popups to fire events on this document, enter "document" here.
+ private String listeningElement;
+
+ @Parameter(defaultPrefix = BindingConstants.LITERAL, required = true)
+ private String zone;
+
+ protected Link createLink(Object[] context) {
+
+ if (context == null) {
+ context = new Object[]{PLACEHOLDER};
+ } else {
+ context = ArrayUtils.add(context, PLACEHOLDER); // To be replaced by javascript
+ }
+
+ return resources.createEventLink(event, context);
+
+ }
+
+ void afterRender() {
+ String link = createLink(context).toAbsoluteURI();
+ String elementId = element.getClientId();
+ if (clientEvent == null) {
+ clientEvent = event;
+ }
+
+ if (listeningElement == null) {
+ listeningElement = "$('" + elementId + "')";
+ }
+ renderSupport.addScript("new ZoneUpdater('%s', %s, '%s', '%s', '%s', '%s')", elementId, listeningElement, clientEvent, link, zone, PLACEHOLDER);
+
+ }
+}
Property changes on: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/mixins/ZoneUpdater.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-06 08:58:16 UTC (rev 165)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-06 13:33:55 UTC (rev 166)
@@ -64,6 +64,7 @@
import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.beaneditor.BeanModel;
import org.apache.tapestry5.corelib.components.Form;
+import org.apache.tapestry5.corelib.components.Zone;
import org.apache.tapestry5.internal.OptionModelImpl;
import org.apache.tapestry5.internal.SelectModelImpl;
import org.apache.tapestry5.ioc.annotations.Inject;
@@ -126,6 +127,12 @@
@Persist
private ContactFilter contactFilter;
+ @InjectComponent
+ private Zone filtersZone;
+
+ @InjectComponent
+ private Zone importExportZone;
+
@Persist
private GenericSelectModel<SampleRow> sampleRowSelectModel;
@@ -141,6 +148,10 @@
@Persist
private SelectModel sectorSelectModel;
+ @Property
+ @Persist("flash")
+ private boolean filtersVisible;
+
private boolean reset;
public ContactFilter getContactFilter() throws SuiviObsmerException {
@@ -193,6 +204,41 @@
return sampleRowSelectModel;
}
+ String[] onProvideCompletionsFromBoatName(String input) throws SuiviObsmerException {
+ if (log.isInfoEnabled()) {
+ log.info("BUSINESS REQUEST [getBoatNamesStartWith]");
+ }
+ List<String> results = serviceBoat.getBoatNamesStartWith(input);
+ return results.toArray(new String[0]);
+ }
+
+ void onSuccessFromSearchBoat() {
+
+ }
+
+ Object onActionFromShowFilters() {
+ contactFilter = null;
+ return filtersZone.getBody();
+ }
+
+ Object onActionFromShowImportExport() {
+ return importExportZone.getBody();
+ }
+
+ @Log
+ public Object onChangeFromFacadeName(String value) throws SuiviObsmerException {
+ if (!StringUtils.isEmpty(value)) {
+ // Reset contactFilter to avoid strange behavior (cause of no form submit)
+ contactFilter = null;
+ // set facadeName selected in contactFilter
+ getContactFilter().setFacadeName(value);
+ // Reset sectors to use facadeName selected
+ sectorSelectModel = null;
+ return filtersZone.getBody();
+ }
+ return null;
+ }
+
void onSelectedFromReset() {
reset = true;
}
@@ -200,6 +246,8 @@
void onSuccessFromFiltersForm() {
if (reset) {
contactFilter = null;
+ } else {
+ filtersVisible = true;
}
}
Modified: trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml 2010-01-06 08:58:16 UTC (rev 165)
+++ trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml 2010-01-06 13:33:55 UTC (rev 166)
@@ -3,9 +3,22 @@
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter">
<!--t:include="creationDate, lastState, boatName, boatImmatriculation, boatDistrictCode, beginTideDate, endTideDate,
nbObservants, mammals, editDate, comment, validation"-->
-<div t:type="zone" class="so-filters" t:id="filtersZone" t:update="show" id="so-contacts-filters">
+<div id="so-contacts-search">
+ <form t:type="form" t:id="searchBoat">
+ <input t:type="textfield" t:id="boatName" value="contactFilter.boatName" t:mixins="Autocomplete"/>
+ <input t:type="submit" class="ico search-32px" t:id="execSearchBoat" value="Search" />
+ </form>
+ <a t:type="actionlink" t:id="showFilters" t:zone="so-contacts-filters">
+ recherche avancée
+ </a>
+ <a t:type="actionlink" t:id="showImportExport" t:zone="so-contacts-importexport">
+ import/export
+ </a>
+</div>
+
+<div t:type="zone" class="so-filters" t:id="filtersZone" t:update="show" t:visible="prop:filtersVisible" id="so-contacts-filters">
<fieldset>
- <legend>Filtres de recherche</legend>
+ <legend>Recherche avancée</legend>
<!--<div class="aright">
<t:if t:test="filtersHidden">
<a t:type="actionlink" t:id="showFilters" t:zone="so-contacts-filters">
@@ -35,15 +48,16 @@
</p:boat>
<p:facadeName>
<t:label t:for="facadeName" />
- <select t:type="select" t:id="facadeName" t:model="facadeSelectModel" value="contactFilter.facadeName" />
+ <input t:type="select" t:id="facadeName" t:model="facadeSelectModel" value="contactFilter.facadeName"
+ t:mixins="zoneUpdater" t:event="change" t:zone="so-contacts-filters"/>
</p:facadeName>
<p:sectorName>
<t:label t:for="sectorName" />
- <select t:type="select" t:id="sectorName" t:model="sectorSelectModel" value="contactFilter.sectorName" />
+ <input t:type="select" t:id="sectorName" t:model="sectorSelectModel" value="contactFilter.sectorName" />
</p:sectorName>
<p:sampleRow>
<t:label t:for="sampleRow" />
- <select t:type="select" t:id="sampleRow" t:model="sampleRowSelectModel" value="sampleRowId" />
+ <input t:type="select" t:id="sampleRow" t:model="sampleRowSelectModel" value="sampleRowId" />
</p:sampleRow>
<p:observer>
N/A
@@ -73,15 +87,17 @@
<!--</div>-->
</fieldset>
</div>
-<form t:type="form" t:id="importContacts">
- <t:errors />
- <t:label for="contactsCsvFile" /> :
- <input t:type="upload" t:id="contactsCsvFile" t:validate="required" />
- <input t:type="submit" class="ico import" value="OK" title="Importer une liste de contacts (format CSV)" />
-</form>
-<a t:type="actionlink" t:id="exportShowContacts">
- EXPORT
-</a>
+<div t:type="zone" t:id="importExportZone" t:update="show" t:visible="false" id="so-contacts-importexport">
+ <form t:type="form" t:id="importContacts">
+ <t:errors />
+ <t:label for="contactsCsvFile" /> :
+ <input t:type="upload" t:id="contactsCsvFile" t:validate="required" />
+ <input t:type="submit" class="ico import" value="OK" title="Importer une liste de contacts (format CSV)" />
+ </form>
+ <a t:type="actionlink" t:id="exportShowContacts">
+ EXPORT
+ </a>
+</div>
<t:zone t:id="gridZone" t:update="show">
<form t:type="form" t:id="contactsForm" t:zone="gridZone">
<t:errors id="so-contact-form-errors" t:banner="message:contactsForm-errors-banner"/>
Modified: trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css 2010-01-06 08:58:16 UTC (rev 165)
+++ trunk/suiviobsmer-ui/src/main/webapp/css/contacts.css 2010-01-06 13:33:55 UTC (rev 166)
@@ -14,7 +14,7 @@
font-size: 0.8em;
}
-/* FORM FOR NEW CONTACT */
+/* FORM FOR NEW CONTACT
fieldset#so-contacts-new {
padding: 10px;
margin-bottom: 10px;
@@ -22,6 +22,11 @@
fieldset#so-contacts-new div.content {
margin-bottom: 5px;
+}*/
+
+/* FILTERS */
+div.t-autocomplete-menu ul {
+ background-color: #19a28d;
}
/* TABLE OF CONTACTS */
Added: trunk/suiviobsmer-ui/src/main/webapp/js/ZoneUpdater.js
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/js/ZoneUpdater.js (rev 0)
+++ trunk/suiviobsmer-ui/src/main/webapp/js/ZoneUpdater.js 2010-01-06 13:33:55 UTC (rev 166)
@@ -0,0 +1,103 @@
+var ZoneUpdater = Class.create();
+
+ZoneUpdater.prototype = {
+
+ initialize: function(zoneElementId, listeningElement, event, link, zone, placeholder) {
+
+ this.zoneElement = $(zoneElementId);
+
+ this.event = event;
+
+ this.link = link;
+
+ this.placeholder = placeholder;
+
+ $T(this.zoneElement).zoneId = zone;
+
+ listeningElement.observe(this.event, this.updateZone.bindAsEventListener(this));
+
+ },
+
+ updateZone: function(event) {
+
+ var zoneObject = Tapestry.findZoneManager(this.zoneElement);
+
+ if ( !zoneObject ) return;
+
+ var param;
+
+ if (this.zoneElement.value) {
+
+ param = this.zoneElement.value;
+
+ }
+
+ if (!param) param = ' ';
+
+ param = this.encodeForUrl(param);
+
+ var updatedLink = this.link.gsub(this.placeholder, param);
+
+ zoneObject.updateFromURL(updatedLink);
+
+ },
+
+ encodeForUrl: function(string) {
+
+ /**
+
+ * See equanda.js for updated version of this
+
+ */
+
+ string = string.replace(/\r\n/g,"\n");
+
+ var res = "";
+
+ for (var n = 0; n < string.length; n++)
+
+ {
+
+ var c = string.charCodeAt( n );
+
+ if ( '$' == string.charAt( n ) )
+
+ {
+
+ res += '$$';
+
+ }
+
+ else if ( this.inRange( c, "AZ" ) || this.inRange( c, "az" ) || this.inRange( c, "09" ) || this.inRange( c, ".." ) )
+
+ {
+
+ res += string.charAt( n )
+
+ }
+
+ else
+
+ {
+
+ var tmp = c.toString(16);
+
+ while ( tmp.length < 4 ) tmp = "0" + tmp;
+
+ res += '$' + tmp;
+
+ }
+
+ }
+
+ return res;
+
+ },
+
+ inRange: function(code, range) {
+
+ return code >= range.charCodeAt( 0 ) && code <= range.charCodeAt( 1 );
+
+ }
+
+}
\ No newline at end of file
1
0
06 Jan '10
Author: fdesbois
Date: 2010-01-06 08:58:16 +0000 (Wed, 06 Jan 2010)
New Revision: 165
Added:
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java
trunk/suiviobsmer-business/src/test/resources/import/contacts.csv
Modified:
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactDAOImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceReferentialMock.java
trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImplTest.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml
Log:
- Add Contacts filters
- Add methods to get facades and sectors
Added: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java (rev 0)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java 2010-01-06 08:58:16 UTC (rev 165)
@@ -0,0 +1,17 @@
+
+package fr.ifremer.suiviobsmer.bean;
+
+/**
+ * ContactFilterImpl
+ *
+ * Created: 5 janv. 2010
+ *
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+public class ContactFilterImpl extends ContactFilter {
+
+}
Property changes on: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactDAOImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactDAOImpl.java 2010-01-05 16:39:31 UTC (rev 164)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactDAOImpl.java 2010-01-06 08:58:16 UTC (rev 165)
@@ -35,7 +35,7 @@
addParam("company", company);
TopiaQuery<E> subquery = createQuery("C2").
- addSelect("MAX(C2.topiaCreateDate)").
+ setSelect("MAX(C2.topiaCreateDate)").
add("C2.boat = C1.boat").
add("C2.user.company = :company");
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java 2010-01-05 16:39:31 UTC (rev 164)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java 2010-01-06 08:58:16 UTC (rev 165)
@@ -363,16 +363,17 @@
if (log.isDebugEnabled()) {
log.debug("commit : " + (tic2 - tic1));
}
- if (log.isInfoEnabled()) {
- log.info("RUNNING... Import calendrier d'activité ligne " + currRow);
- Runtime runtime = Runtime.getRuntime();
- long mem = runtime.totalMemory() - runtime.freeMemory();
- long memMega = mem / 1024 / 1024;
- log.info("Memory : " + memMega + " Mo");
- long tic = System.currentTimeMillis();
- log.info("Time : " + DurationFormatUtils.formatDurationHMS(tic - firstTic));
- firstTic = System.currentTimeMillis();
- }
+ firstTic = ImportHelper.logTimeAndMemory(log, firstTic, "calendrier d'activité ligne " + currRow);
+// if (log.isInfoEnabled()) {
+// log.info("RUNNING... Import calendrier d'activité ligne " + currRow);
+// Runtime runtime = Runtime.getRuntime();
+// long mem = runtime.totalMemory() - runtime.freeMemory();
+// long memMega = mem / 1024 / 1024;
+// log.info("Memory : " + memMega + " Mo");
+// long tic = System.currentTimeMillis();
+// log.info("Time : " + DurationFormatUtils.formatDurationHMS(tic - firstTic));
+// firstTic = System.currentTimeMillis();
+// }
}
}
@@ -381,6 +382,16 @@
long stopTime = System.currentTimeMillis();
+ Runtime runtime = Runtime.getRuntime();
+
+ long mem = (runtime.totalMemory() - runtime.freeMemory()) / 1048576;
+ log.info("Memory before gc : " + mem + " Mo");
+
+ System.gc();
+
+ mem = (runtime.totalMemory() - runtime.freeMemory()) / 1048576;
+ log.info("Memory after gc : " + mem + " Mo");
+
String execTime = DurationFormatUtils.formatDurationHMS(stopTime - startTime);
info("Nombre de ligne ajouté : " + result, -1);
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-05 16:39:31 UTC (rev 164)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-06 08:58:16 UTC (rev 165)
@@ -109,7 +109,7 @@
// Add join for ElligibleBoat
if (sampleRowFiltered) {
String elligibleBoatClassName = ElligibleBoat.class.getName();
- query.addSelect("B").addFrom(elligibleBoatClassName + " E").add("E.boat = B");
+ query.setSelect("B").addFrom(elligibleBoatClassName + " E").add("E.boat = B");
}
// SampleRowCode
if (sampleRowCodeFiltered) {
@@ -498,7 +498,7 @@
add("A.boat", boat);
TopiaQuery<ActivityCalendar> subquery = dao.createQuery("B").
- addSelect("MAX(B.year)").
+ setSelect("MAX(B.year)").
add("B.boat = A.boat").
addGroup("B.boat");
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-05 16:39:31 UTC (rev 164)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-06 08:58:16 UTC (rev 165)
@@ -32,8 +32,10 @@
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
import fr.ifremer.suiviobsmer.bean.ContactState;
import java.io.InputStream;
+import org.nuiton.topia.TopiaException;
import org.nuiton.topia.framework.TopiaQuery;
import fr.ifremer.suiviobsmer.bean.states.ContactStateEnum;
+import fr.ifremer.suiviobsmer.bean.ContactFilter;
import fr.ifremer.suiviobsmer.entity.Boat;
import fr.ifremer.suiviobsmer.entity.BoatDAO;
import fr.ifremer.suiviobsmer.entity.Company;
@@ -43,6 +45,7 @@
import fr.ifremer.suiviobsmer.entity.ContactImpl;
import fr.ifremer.suiviobsmer.entity.ElligibleBoat;
import fr.ifremer.suiviobsmer.entity.FishingZone;
+import fr.ifremer.suiviobsmer.entity.FishingZoneDAO;
import fr.ifremer.suiviobsmer.entity.Profession;
import fr.ifremer.suiviobsmer.entity.Program;
import fr.ifremer.suiviobsmer.entity.SampleRow;
@@ -55,6 +58,7 @@
import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.ParseException;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
@@ -88,19 +92,66 @@
}
@Override
- public Map<String, Contact> getContactsByFilter(Company company) throws SuiviObsmerException {
+ public Map<String, Contact> getContactsByFilter(ContactFilter filter) throws SuiviObsmerException {
Map<String, Contact> results = new HashMap<String, Contact>();
TopiaContext transaction = null;
try {
transaction = rootContext.beginTransaction();
ContactDAO dao = SuiviObsmerModelDAOHelper.getContactDAO(transaction);
- TopiaQuery<Contact> query = dao.createQuery().addOrderDesc(TopiaEntity.TOPIA_CREATE_DATE);
- if (company != null) {
- query.add("user.company", company);
+ TopiaQuery<Contact> query = dao.createQuery("C").addOrderDesc("C." + TopiaEntity.TOPIA_CREATE_DATE);
+
+ if (filter.getSampleRow() != null) {
+ query.add("C." + Contact.SAMPLE_ROW, filter.getSampleRow());
+ } else if (!StringUtils.isEmpty(filter.getSectorName())) {
+ query.addFrom(FishingZone.class.getName() + " F");
+ query.add("F.sectorName", filter.getSectorName()).add("C.sampleRow IN elements(F.sampleRow)");
+ } else if (!StringUtils.isEmpty(filter.getFacadeName())) {
+ query.addFrom(FishingZone.class.getName() + " F");
+ query.add("F.facadeName", filter.getFacadeName()).add("C.sampleRow IN elements(F.sampleRow)");
}
+ if (!StringUtils.isEmpty(filter.getBoatDistrictCode())) {
+ query.add("C.boat.districtCode", filter.getBoatDistrictCode());
+ }
+
+ if (filter.getBoatImmatriculation() != null) {
+ query.add("C.boat.immatriculation", filter.getBoatImmatriculation());
+ }
+
+ if (filter.getObserver() != null) {
+ query.add(Contact.USER, filter.getObserver());
+ } else if (filter.getCompany() != null) {
+ query.add("C.user.company", filter.getCompany());
+ }
+
+ if (filter.getMammalsObservation() && filter.getMammalsCapture()) {
+ query.add("C.mammalsObservation = :mammals OR C.mammalsCapture = :mammals").addParam("mammals", Boolean.TRUE);
+ } else if (filter.getMammalsObservation()) {
+ query.add("C." + Contact.MAMMALS_OBSERVATION, Boolean.TRUE);
+ } else if (filter.getMammalsCapture()) {
+ query.add("C." + Contact.MAMMALS_CAPTURE, Boolean.TRUE);
+ }
+
+ List<Object> programValidValues = new ArrayList<Object>();
+ if (filter.getProgramAccepted()) {
+ programValidValues.add(Boolean.TRUE);
+ }
+ if (filter.getProgramRefused()) {
+ programValidValues.add(Boolean.FALSE);
+ }
+ query.add("C." + Contact.VALIDATION_PROGRAM, programValidValues, filter.getProgramUndefined());
+
+ List<Object> companyValidValues = new ArrayList<Object>();
+ if (filter.getCompanyAccepted()) {
+ companyValidValues.add(Boolean.TRUE);
+ }
+ if (filter.getCompanyRefused()) {
+ companyValidValues.add(Boolean.FALSE);
+ }
+ query.add("C." + Contact.VALIDATION_COMPANY, companyValidValues, filter.getCompanyUndefined());
+
query.addLoad("user.company", "sampleRow.program", "sampleRow.profession", "sampleRow.company");
if (log.isInfoEnabled()) {
@@ -348,7 +399,7 @@
int boatImmatriculation = Integer.parseInt(reader.get(BOAT.NAVS_COD.name()));
// The boat must be elligible for the row
- TopiaQuery<Boat> boatQuery = boatDAO.createQuery("B").addSelect("B").
+ TopiaQuery<Boat> boatQuery = boatDAO.createQuery("B").setSelect("B").
addFrom(ElligibleBoat.class.getName() + " E").
add("E.sampleRow", row).add("E.boat = B").
add(Boat.IMMATRICULATION, boatImmatriculation);
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java 2010-01-05 16:39:31 UTC (rev 164)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java 2010-01-06 08:58:16 UTC (rev 165)
@@ -26,7 +26,6 @@
import fr.ifremer.suiviobsmer.SuiviObsmerException;
import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper;
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
-import fr.ifremer.suiviobsmer.dto.Facade;
import fr.ifremer.suiviobsmer.entity.FishingZone;
import fr.ifremer.suiviobsmer.entity.FishingZoneDAO;
import fr.ifremer.suiviobsmer.entity.Profession;
@@ -39,7 +38,9 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import org.apache.commons.lang.StringUtils;
import org.nuiton.topia.TopiaContext;
+import org.nuiton.topia.framework.TopiaQuery;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -65,11 +66,46 @@
}
@Override
- public List<Facade> getFacades() throws SuiviObsmerException {
- throw new UnsupportedOperationException("Not supported yet.");
+ public List<String> getFacades() throws SuiviObsmerException {
+ TopiaContext transaction = null;
+ List<String> results = new ArrayList<String>();
+ try {
+ transaction = rootContext.beginTransaction();
+
+ FishingZoneDAO dao = SuiviObsmerModelDAOHelper.getFishingZoneDAO(transaction);
+ results = (List<String>)dao.createQuery().setSelect("DISTINCT " + FishingZone.FACADE_NAME).execute();
+
+ transaction.closeContext();
+ } catch (Exception eee) {
+ SuiviObsmerContext.serviceException(transaction, "Impossible de charger la liste des facades", eee);
+ }
+ return results;
}
@Override
+ public List<String> getSectors(String facadeName) throws SuiviObsmerException {
+ TopiaContext transaction = null;
+ List<String> results = new ArrayList<String>();
+ try {
+ transaction = rootContext.beginTransaction();
+
+ FishingZoneDAO dao = SuiviObsmerModelDAOHelper.getFishingZoneDAO(transaction);
+ TopiaQuery<FishingZone> query = dao.createQuery();
+
+ if (!StringUtils.isEmpty(facadeName)) {
+ query.add(FishingZone.FACADE_NAME, facadeName);
+ }
+
+ results = (List<String>)query.setSelect("DISTINCT " + FishingZone.SECTOR_NAME).execute();
+
+ transaction.closeContext();
+ } catch (Exception eee) {
+ SuiviObsmerContext.serviceException(transaction, "Impossible de charger la liste des secteurs de pêche", eee);
+ }
+ return results;
+ }
+
+ @Override
public List<Profession> getProfessions() throws SuiviObsmerException {
TopiaContext transaction = null;
List<Profession> results = new ArrayList<Profession>();
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-05 16:39:31 UTC (rev 164)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-06 08:58:16 UTC (rev 165)
@@ -52,6 +52,7 @@
import org.nuiton.topia.framework.TopiaQuery.Op;
import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.topia.persistence.util.EntityLoador;
+import org.nuiton.util.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -179,28 +180,29 @@
transaction = rootContext.beginTransaction();
FishingZoneDAO zoneDAO = SuiviObsmerModelDAOHelper.getFishingZoneDAO(transaction);
-
List<FishingZone> list = zoneDAO.findAllWithOrder(
FishingZone.FACADE_NAME,
FishingZone.SECTOR_NAME,
FishingZone.DISTRICT_CODE);
-
-// TopiaQuery query = new TopiaQuery(SampleRow.class.getName() + " S").addSelect("S");
-// query.addFrom(SampleRowZone.class.getName() + " Z").add("Z.sampleRow = S");
-// query.addFrom(FishingZone.class.getName() + " F").add("Z.fishingZone = F");
+// SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction);
//
+// TopiaQuery<SampleRow> query = dao.createQuery("S").addDistinct().
+// addFrom(FishingZone.class.getName() + " F").add("S IN elements(F.sampleRow)");
+//
// if (company != null) {
-// query.add("S.company = :company").addParam("company", company);
+// query.add("S.company", company);
// }
//
// // Prepare period dates
// periodBegin = DateUtils.setFirstDayOfMonth(periodBegin);
// periodEnd = DateUtils.setLastDayOfMonth(periodEnd);
-// query.add("S.program.periodBegin < :end AND S.program.periodEnd > :begin").
-// addParam("begin", periodBegin).addParam("end", periodEnd);
+// query.add("S.program.periodBegin", Op.LT, periodEnd).add("S.program.periodEnd", Op.GT, periodBegin);
//
-// query.addOrder("facadeName, sectorName, districtCode");
+// query.addOrder("F.facadeName, F.sectorName, F.districtCode");
+//
+// query.addLoad(SampleRow.PROFESSION, SampleRow.PROGRAM, SampleRow.COMPANY);
+// results = query.executeToEntityList();
for (FishingZone zone : list) {
@@ -248,7 +250,7 @@
query.add(SampleRow.COMPANY, user.getCompany());
}
- results = query.addLoad("program", "profession").executeToEntityList();
+ results = query.addLoad(SampleRow.PROFESSION, SampleRow.PROGRAM).executeToEntityList();
// SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction);
//
@@ -298,7 +300,7 @@
SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction);
result = dao.createQuery().add(TopiaEntity.TOPIA_ID, sampleRowId).
- addLoad("company", "program", "profession").
+ addLoad(SampleRow.PROFESSION, SampleRow.PROGRAM, SampleRow.COMPANY).
executeToEntity();
// result = dao.findByTopiaId(sampleRowId);
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java 2010-01-05 16:39:31 UTC (rev 164)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java 2010-01-06 08:58:16 UTC (rev 165)
@@ -22,8 +22,8 @@
package fr.ifremer.suiviobsmer.mock;
import fr.ifremer.suiviobsmer.SuiviObsmerException;
+import fr.ifremer.suiviobsmer.bean.ContactFilter;
import fr.ifremer.suiviobsmer.entity.Boat;
-import fr.ifremer.suiviobsmer.entity.Company;
import fr.ifremer.suiviobsmer.entity.Contact;
import fr.ifremer.suiviobsmer.entity.ContactImpl;
import fr.ifremer.suiviobsmer.entity.SampleRow;
@@ -56,7 +56,7 @@
}
@Override
- public Map<String, Contact> getContactsByFilter(Company company) throws SuiviObsmerException {
+ public Map<String, Contact> getContactsByFilter(ContactFilter filter) throws SuiviObsmerException {
Map<String, Contact> results = new HashMap<String, Contact>();
for (Contact contact : contacts) {
results.put(contact.getTopiaId(), contact);
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceReferentialMock.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceReferentialMock.java 2010-01-05 16:39:31 UTC (rev 164)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceReferentialMock.java 2010-01-06 08:58:16 UTC (rev 165)
@@ -77,41 +77,42 @@
}
@Override
- public List<Facade> getFacades() throws SuiviObsmerException {
+ public List<String> getFacades() throws SuiviObsmerException {
List<Facade> facades = new ArrayList<Facade>();
- Facade nord = new Facade();
- nord.setName("Manche - mer du nord");
- facades.add(nord);
-
- Facade atlantique = new Facade();
- atlantique.setName("Atlantique");
- facades.add(atlantique);
-
- List<Sector> nordSectors = new ArrayList<Sector>();
- nord.setSector(nordSectors);
- Sector sector1 = new Sector();
- sector1.setNum(1);
- sector1.setName("Secteur du Havre à Dunkerque centré sur Boulogne");
- //sector1.setCompanyName("Océanic Développement");
- nordSectors.add(sector1);
-
- Sector sector2 = new Sector();
- sector2.setNum(2);
- sector2.setName("Secteur Cherbourg Honfleur centré sur Port-en-Bessin");
- //sector2.setCompanyName("COFREPECHE");
- nordSectors.add(sector2);
-
- List<Sector> atlantiqueSectors = new ArrayList<Sector>();
- atlantique.setSector(atlantiqueSectors);
-
- Sector sector3 = new Sector();
- sector3.setNum(3);
- sector3.setName("Secteur Mer Celtique et Ouest Irlande centré Pays bigouden");
- //sector3.setCompanyName("COFREPECHE");
- atlantiqueSectors.add(sector3);
-
- return facades;
+// Facade nord = new Facade();
+// nord.setName("Manche - mer du nord");
+// facades.add(nord);
+//
+// Facade atlantique = new Facade();
+// atlantique.setName("Atlantique");
+// facades.add(atlantique);
+//
+// List<Sector> nordSectors = new ArrayList<Sector>();
+// nord.setSector(nordSectors);
+// Sector sector1 = new Sector();
+// sector1.setNum(1);
+// sector1.setName("Secteur du Havre à Dunkerque centré sur Boulogne");
+// //sector1.setCompanyName("Océanic Développement");
+// nordSectors.add(sector1);
+//
+// Sector sector2 = new Sector();
+// sector2.setNum(2);
+// sector2.setName("Secteur Cherbourg Honfleur centré sur Port-en-Bessin");
+// //sector2.setCompanyName("COFREPECHE");
+// nordSectors.add(sector2);
+//
+// List<Sector> atlantiqueSectors = new ArrayList<Sector>();
+// atlantique.setSector(atlantiqueSectors);
+//
+// Sector sector3 = new Sector();
+// sector3.setNum(3);
+// sector3.setName("Secteur Mer Celtique et Ouest Irlande centré Pays bigouden");
+// //sector3.setCompanyName("COFREPECHE");
+// atlantiqueSectors.add(sector3);
+//
+// return facades;
+ return new ArrayList<String>();
}
@Override
@@ -161,4 +162,9 @@
throw new UnsupportedOperationException("Not supported yet.");
}
+ @Override
+ public List<String> getSectors(String facadeName) throws SuiviObsmerException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
}
Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
===================================================================
(Binary files differ)
Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImplTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImplTest.java 2010-01-05 16:39:31 UTC (rev 164)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImplTest.java 2010-01-06 08:58:16 UTC (rev 165)
@@ -74,11 +74,41 @@
/**
* Test of getFacades method, of class ServiceReferentialImpl.
*/
- //@Test
+ @Test
public void testGetFacades() throws Exception {
log.info("getFacades");
+
+ InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv");
+ service.importFishingZoneCsv(input);
+
+ List<String> facades = service.getFacades();
+ assertEquals(3, facades.size());
+ assertTrue(facades.contains("Atlantique"));
+ assertTrue(facades.contains("Mer du Nord"));
+ assertTrue(facades.contains("Méditerranée"));
}
+ @Test
+ public void testGetSectors() throws Exception {
+ log.info("getSectors");
+
+ InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv");
+ service.importFishingZoneCsv(input);
+
+ List<String> sectors = service.getSectors(null);
+ assertEquals(5, sectors.size());
+ assertTrue(sectors.contains("Manche"));
+ assertTrue(sectors.contains("Mer du Nord"));
+ assertTrue(sectors.contains("Manche Ouest"));
+ assertTrue(sectors.contains("Golfe de Gascogne"));
+ assertTrue(sectors.contains("Méditerranée"));
+
+ sectors = service.getSectors("Atlantique");
+ assertEquals(2, sectors.size());
+ assertTrue(sectors.contains("Manche Ouest"));
+ assertTrue(sectors.contains("Golfe de Gascogne"));
+ }
+
/**
* Test of getProfessions method, of class ServiceReferentialImpl.
*/
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-05 16:39:31 UTC (rev 164)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-06 08:58:16 UTC (rev 165)
@@ -24,15 +24,17 @@
import fr.ifremer.suiviobsmer.SuiviObsmerBusinessException;
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
import fr.ifremer.suiviobsmer.SuiviObsmerException;
+import fr.ifremer.suiviobsmer.bean.ContactFilter;
+import fr.ifremer.suiviobsmer.bean.ContactFilterImpl;
import fr.ifremer.suiviobsmer.bean.ContactState;
import fr.ifremer.suiviobsmer.entity.Boat;
-import fr.ifremer.suiviobsmer.entity.Company;
import fr.ifremer.suiviobsmer.entity.Contact;
import fr.ifremer.suiviobsmer.entity.Program;
import fr.ifremer.suiviobsmer.entity.SampleRow;
import fr.ifremer.suiviobsmer.entity.User;
import fr.ifremer.suiviobsmer.services.ServiceBoat;
import fr.ifremer.suiviobsmer.services.ServiceContact;
+import fr.ifremer.suiviobsmer.services.ServiceReferential;
import fr.ifremer.suiviobsmer.services.ServiceSampling;
import fr.ifremer.suiviobsmer.ui.base.BusinessUtils;
import fr.ifremer.suiviobsmer.ui.base.GenericSelectModel;
@@ -43,6 +45,7 @@
import java.io.InputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -50,6 +53,8 @@
import org.apache.commons.lang.StringUtils;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.Field;
+import org.apache.tapestry5.OptionModel;
+import org.apache.tapestry5.SelectModel;
import org.apache.tapestry5.StreamResponse;
import org.apache.tapestry5.annotations.IncludeStylesheet;
import org.apache.tapestry5.annotations.InjectComponent;
@@ -59,6 +64,8 @@
import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.beaneditor.BeanModel;
import org.apache.tapestry5.corelib.components.Form;
+import org.apache.tapestry5.internal.OptionModelImpl;
+import org.apache.tapestry5.internal.SelectModelImpl;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.ioc.services.PropertyAccess;
import org.apache.tapestry5.services.BeanModelSource;
@@ -114,6 +121,88 @@
contactsForm.clearErrors();
}
+ /**************************** CONTACT FILTERS *****************************/
+
+ @Persist
+ private ContactFilter contactFilter;
+
+ @Persist
+ private GenericSelectModel<SampleRow> sampleRowSelectModel;
+
+ @Property
+ private String sampleRowId;
+
+ @Inject
+ private ServiceReferential serviceReferential;
+
+ @Persist
+ private SelectModel facadeSelectModel;
+
+ @Persist
+ private SelectModel sectorSelectModel;
+
+ private boolean reset;
+
+ public ContactFilter getContactFilter() throws SuiviObsmerException {
+ if (contactFilter == null) {
+ contactFilter = new ContactFilterImpl();
+ if (!user.getAdmin()) {
+ contactFilter.setCompany(user.getCompany());
+ }
+ }
+ return contactFilter;
+ }
+
+ public SelectModel getFacadeSelectModel() throws SuiviObsmerException {
+ if (facadeSelectModel == null) {
+ if (log.isInfoEnabled()) {
+ log.info("BUSINESS REQUEST [getFacades]");
+ }
+ List<OptionModel> options = new ArrayList<OptionModel>();
+ for (String facadeName : serviceReferential.getFacades()) {
+ options.add(new OptionModelImpl(facadeName,facadeName));
+ }
+ facadeSelectModel = new SelectModelImpl(null, options);
+ }
+ return facadeSelectModel;
+ }
+
+ public SelectModel getSectorSelectModel() throws SuiviObsmerException {
+ if (sectorSelectModel == null) {
+ if (log.isInfoEnabled()) {
+ log.info("BUSINESS REQUEST [getSectors]");
+ }
+ List<OptionModel> options = new ArrayList<OptionModel>();
+ for (String sectorName : serviceReferential.getSectors(getContactFilter().getFacadeName())) {
+ options.add(new OptionModelImpl(sectorName,sectorName));
+ }
+ sectorSelectModel = new SelectModelImpl(null, options);
+ }
+ return sectorSelectModel;
+ }
+
+ public GenericSelectModel<SampleRow> getSampleRowSelectModel() throws SuiviObsmerException {
+ if (sampleRowSelectModel == null) {
+ if (log.isInfoEnabled()) {
+ log.info("BUSINESS REQUEST [getSampleRowsForUser]");
+ }
+ List<SampleRow> sampleRows = serviceSampling.getSampleRowsForUser(user);
+ sampleRowSelectModel = new GenericSelectModel<SampleRow>(sampleRows, SampleRow.class,
+ "code", "topiaId", propertyAccess);
+ }
+ return sampleRowSelectModel;
+ }
+
+ void onSelectedFromReset() {
+ reset = true;
+ }
+
+ void onSuccessFromFiltersForm() {
+ if (reset) {
+ contactFilter = null;
+ }
+ }
+
/**************************** CONTACT IMPORT/EXPORT ***********************/
@Property
@@ -195,8 +284,7 @@
if (log.isInfoEnabled()) {
log.info("BUSINESS REQUEST [getContactsByFilter]");
}
- Company company = !user.getAdmin() ? user.getCompany() : null;
- contacts = serviceContact.getContactsByFilter(company);
+ contacts = serviceContact.getContactsByFilter(getContactFilter());
}
return contacts;
}
Modified: trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml 2010-01-05 16:39:31 UTC (rev 164)
+++ trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml 2010-01-06 08:58:16 UTC (rev 165)
@@ -3,6 +3,76 @@
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter">
<!--t:include="creationDate, lastState, boatName, boatImmatriculation, boatDistrictCode, beginTideDate, endTideDate,
nbObservants, mammals, editDate, comment, validation"-->
+<div t:type="zone" class="so-filters" t:id="filtersZone" t:update="show" id="so-contacts-filters">
+ <fieldset>
+ <legend>Filtres de recherche</legend>
+ <!--<div class="aright">
+ <t:if t:test="filtersHidden">
+ <a t:type="actionlink" t:id="showFilters" t:zone="so-contacts-filters">
+ <img src="${asset:context:}/img/downarrow.png" title="Afficher les filtres"/>
+ </a>
+ <p:else>
+ <a t:type="actionlink" t:id="hideFilters" t:zone="so-boats-filters">
+ <img src="${asset:context:}/img/uparrow.png" title="Cacher les filtres"/>
+ </a>
+ </p:else>
+ </t:if>
+ </div>-->
+ <!--<t:feedback t:id="filterFeedback" />
+ <div class="so-filters-form ${hiddenClass}">-->
+ <form t:type="form" t:id="filtersForm">
+ <t:errors />
+ <div class="t-beaneditor">
+ <t:beaneditor t:id="filtersEditor" t:object="contactFilter"
+ t:include="facadeName, sectorName, state" t:add="boat, sampleRow, observer, mammals, validation"
+ t:reorder="boat, facadeName, sectorName, sampleRow, observer">
+ <p:boat>
+ <t:label t:for="boat" />
+ <span> immatriculation </span>
+ <input t:type="textfield" t:id="boat" class="width50" t:value="contactFilter.boatImmatriculation" />
+ <span> code quartier </span>
+ <input t:type="textfield" t:id="boatDistrictCode" class="width50" t:value="contactFilter.boatDistrictCode" />
+ </p:boat>
+ <p:facadeName>
+ <t:label t:for="facadeName" />
+ <select t:type="select" t:id="facadeName" t:model="facadeSelectModel" value="contactFilter.facadeName" />
+ </p:facadeName>
+ <p:sectorName>
+ <t:label t:for="sectorName" />
+ <select t:type="select" t:id="sectorName" t:model="sectorSelectModel" value="contactFilter.sectorName" />
+ </p:sectorName>
+ <p:sampleRow>
+ <t:label t:for="sampleRow" />
+ <select t:type="select" t:id="sampleRow" t:model="sampleRowSelectModel" value="sampleRowId" />
+ </p:sampleRow>
+ <p:observer>
+ N/A
+ </p:observer>
+ <p:state>
+ N/A
+ </p:state>
+ <p:mammals>
+ N/A
+ </p:mammals>
+ <p:validation>
+ <t:label t:for="validation" />
+ <input t:type="checkbox" t:id="validation" value="contactFilter.companyAccepted" />
+ <img src="${asset:context:}/img/true-22px.png" title="Accepté par la société" />
+ <input t:type="checkbox" value="contactFilter.companyRefused" />
+ <img src="${asset:context:}/img/false-22px.png" title="Refusé par la société" />
+ <input t:type="checkbox" value="contactFilter.companyUndefined" />
+ <img src="${asset:context:}/img/help-22px.png" title="Non validé par la société" />
+ </p:validation>
+ </t:beaneditor>
+ <div class="t-beaneditor-row aright">
+ <input t:type="submit" class="ico search-32px" t:id="search" value="Search" />
+ <input t:type="submit" class="ico undo" t:id="reset" value="Reset" />
+ </div>
+ </div>
+ </form>
+ <!--</div>-->
+ </fieldset>
+</div>
<form t:type="form" t:id="importContacts">
<t:errors />
<t:label for="contactsCsvFile" /> :
1
0
[Suiviobsmer-commits] r164 - in trunk: suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock suiviobsmer-business/src/main/xmi suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages suiviobsmer-ui/src/main/webapp suiviobsmer-ui/src/main/webapp/css
by fdesbois@users.labs.libre-entreprise.org 05 Jan '10
by fdesbois@users.labs.libre-entreprise.org 05 Jan '10
05 Jan '10
Author: fdesbois
Date: 2010-01-05 16:39:31 +0000 (Tue, 05 Jan 2010)
New Revision: 164
Added:
trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/ImportHelperTest.java
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/ExceptionReport.java
trunk/suiviobsmer-ui/src/main/webapp/ExceptionReport.tml
Modified:
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java
trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
trunk/suiviobsmer-ui/src/main/webapp/Administration.tml
trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml
trunk/suiviobsmer-ui/src/main/webapp/css/common.css
Log:
- Improve contacts import/export
- Add ExceptionReport page to show exceptions
- Add missing admin field in Administration
- Add missing loadProperty for getSampleRowsByUser
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java 2010-01-05 09:55:40 UTC (rev 163)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java 2010-01-05 16:39:31 UTC (rev 164)
@@ -1,7 +1,15 @@
package fr.ifremer.suiviobsmer;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.Locale;
import org.apache.commons.lang.BooleanUtils;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DurationFormatUtils;
import org.slf4j.Logger;
@@ -23,15 +31,15 @@
*/
public static enum BOAT {
/** Boat immatriculation **/
- NAVS_COD(19),
+ NAVS_COD(20),
/** Boat name **/
- CARN_NOM(20),
+ CARN_NOM(21),
/** Boat length **/
CARN_LONGUEUR_HT(-1),
/** Boat build year **/
CARN_ANNEE(-1),
/** Boat district code **/
- QUARTIER_IMMA(21),
+ QUARTIER_IMMA(22),
/** ShipOwner code **/
PER_COD(-1),
/** ShipOwner last name **/
@@ -57,27 +65,27 @@
*/
public static enum SAMPLING {
/** SampleRow code **/
- PLAN_CODE(5),
+ PLAN_CODE(6),
/** Program code **/
- PROGRAMME_CODE(6),
+ PROGRAMME_CODE(7),
/** Program period begin **/
- PROGRAMME_DEBUT(7),
+ PROGRAMME_DEBUT(8),
/** Program period end **/
- PROGRAMME_FIN(8),
+ PROGRAMME_FIN(9),
/** FishingZone other infos **/
- PECHE_AUTRE(12),
+ PECHE_AUTRE(13),
/** Profession code DCF5 **/
- METIER_CODE_DCF5(13),
+ METIER_CODE_DCF5(14),
/** Profession mesh size **/
- METIER_MAILLAGE(14),
+ METIER_MAILLAGE(15),
/** Profession size **/
- METIER_TAILLE(15),
+ METIER_TAILLE(16),
/** Profession other infos **/
- METIER_AUTRE(16),
+ METIER_AUTRE(17),
/** Profession libelle **/
- METIER_LIBELLE(17),
+ METIER_LIBELLE(18),
/** Profession species **/
- METIER_ESPECES(18),
+ METIER_ESPECES(19),
/** SampleRow nb observants **/
PLAN_NB_OBSERV(-1),
/** SampleRow average tide time **/
@@ -99,11 +107,11 @@
*/
public static enum FISHING_ZONE {
/** FishingZone facade **/
- PECHE_FACADE(9),
+ PECHE_FACADE(10),
/** FishingZone sector **/
- PECHE_ZONE(10),
+ PECHE_ZONE(11),
/** FishingZone district code **/
- PECHE_DIVISION(11);
+ PECHE_DIVISION(12);
int contactHeader;
@@ -120,38 +128,40 @@
* CSV headers for Contact
*/
public static enum CONTACT {
+ /** Contact code (create date time for existing contact) **/
+ CONT_CODE(0),
/** Contact create date **/
- CONT_CREATION(0),
+ CONT_CREATION(1),
/** User id **/
- OBSERV_ID(1),
+ OBSERV_ID(2),
/** User prenom **/
- OBSERV_PRENOM(2),
+ OBSERV_PRENOM(3),
/** User nom **/
- OBSERV_NOM(3),
+ OBSERV_NOM(4),
/** Company id **/
//SOCIETE_ID,
/** Company nom **/
- SOCIETE_NOM(4),
+ SOCIETE_NOM(5),
/** Contact state **/
- CONT_ETAT(22),
+ CONT_ETAT(23),
/** Contact tide begin **/
- CONT_DEBUT_MAREE(23),
+ CONT_DEBUT_MAREE(24),
/** Contact tide end **/
- CONT_FIN_MAREE(24),
+ CONT_FIN_MAREE(25),
/** Contact nb observants **/
- CONT_NB_OBSERV(25),
+ CONT_NB_OBSERV(26),
/** Contact mammals capture **/
- CONT_MAM_CAPT(26),
+ CONT_MAM_CAPT(27),
/** Contact mammals observation **/
- CONT_MAM_OBS(27),
+ CONT_MAM_OBS(28),
/** Contact comment **/
- CONT_COMMENT(28),
+ CONT_COMMENT(29),
/** Contact data input **/
- CONT_ALLEGRO(29),
+ CONT_ALLEGRO(30),
/** Contact company validation **/
- CONT_SOCIETE_VALID(30),
+ CONT_SOCIETE_VALID(31),
/** Contact program validation **/
- CONT_PROGRAM_VALID(31);
+ CONT_PROGRAM_VALID(32);
int contactHeader;
@@ -164,7 +174,7 @@
}
}
- public static int CONTACT_NB_HEADERS = 31;
+ public static int CONTACT_NB_HEADERS = 33;
public static String getHeaderForContactCsv(int index) {
for (BOAT boatEnum : BOAT.values()) {
@@ -219,6 +229,44 @@
return mammals.equals("X");
}
+ protected static String CONTACT_TIME_PATTERN = "HHmmssS";
+
+ protected static String CONTACT_DATE_PATTERN = "dd/MM/yyyy";
+
+ public static String formatContactCode(Date createDate) {
+ DateFormat timeFormat = new SimpleDateFormat(CONTACT_TIME_PATTERN, Locale.FRENCH);
+ String result = timeFormat.format(createDate);
+ return result;
+ }
+
+ public static Date parseContactCreateDate(String code, String createDate) throws ParseException {
+ Calendar time = new GregorianCalendar(Locale.FRENCH);
+ if (!StringUtils.isEmpty(code)) {
+ DateFormat timeFormat = new SimpleDateFormat(CONTACT_TIME_PATTERN, Locale.FRENCH);
+ time = new GregorianCalendar(Locale.FRENCH);
+ time.setTime(timeFormat.parse(code));
+ } else {
+ time.setTime(SuiviObsmerContext.getCurrentDate());
+ }
+
+ Calendar result = new GregorianCalendar(Locale.FRENCH);
+ if (!StringUtils.isEmpty(createDate)) {
+ DateFormat dateFormat = getContactDateFormat();
+ result.setTime(dateFormat.parse(createDate));
+ result.set(Calendar.HOUR_OF_DAY, time.get(Calendar.HOUR_OF_DAY));
+ result.set(Calendar.MINUTE, time.get(Calendar.MINUTE));
+ result.set(Calendar.SECOND, time.get(Calendar.SECOND));
+ result.set(Calendar.MILLISECOND, time.get(Calendar.MILLISECOND));
+ } else {
+ result.setTime(SuiviObsmerContext.getCurrentDate());
+ }
+ return result.getTime();
+ }
+
+ public static DateFormat getContactDateFormat() {
+ return new SimpleDateFormat(CONTACT_DATE_PATTERN, Locale.FRENCH);
+ }
+
public static long logTimeAndMemory(Logger log, long tic1, String msg) {
if (log.isInfoEnabled()) {
log.info("RUNNING... Import : " + msg);
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-05 09:55:40 UTC (rev 163)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-05 16:39:31 UTC (rev 164)
@@ -41,6 +41,7 @@
import fr.ifremer.suiviobsmer.entity.Contact;
import fr.ifremer.suiviobsmer.entity.ContactDAO;
import fr.ifremer.suiviobsmer.entity.ContactImpl;
+import fr.ifremer.suiviobsmer.entity.ElligibleBoat;
import fr.ifremer.suiviobsmer.entity.FishingZone;
import fr.ifremer.suiviobsmer.entity.Profession;
import fr.ifremer.suiviobsmer.entity.Program;
@@ -51,15 +52,15 @@
import fr.ifremer.suiviobsmer.services.ServiceContact;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.io.OutputStream;
import java.nio.charset.Charset;
import java.text.DateFormat;
-import java.text.SimpleDateFormat;
+import java.text.ParseException;
+import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
-import java.util.Locale;
import java.util.Map;
+import org.apache.commons.lang.StringUtils;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.persistence.TopiaEntity;
import org.slf4j.Logger;
@@ -101,6 +102,11 @@
}
query.addLoad("user.company", "sampleRow.program", "sampleRow.profession", "sampleRow.company");
+
+ if (log.isInfoEnabled()) {
+ log.info("Query : " + query);
+ }
+
results = query.executeToEntityMap();
transaction.closeContext();
@@ -158,11 +164,8 @@
}
}
- protected static String DATE_TIME_PATTERN = "dd/MM/yyyy HH:mm:ss";
- protected static String DATE_PATTERN = "dd/MM/yyyy";
-
@Override
- public InputStream exportContactCsv(User user, List<Contact> contacts)
+ public InputStream exportContactCsv(User user, Collection<Contact> contacts)
throws SuiviObsmerException {
TopiaContext transaction = null;
InputStream result = null;
@@ -176,14 +179,18 @@
contacts = dao.findAll();
} else {
// Filtered by company for a simple user
- contacts = dao.createQuery().
- add("user.company", user.getCompany()).
- executeToEntityList();
+ contacts = dao.createQuery().add("user.company", user.getCompany()).executeToEntityList();
}
}
- String alea = SuiviObsmerContext.createRandomString(8);
- FileOutputStream output = new FileOutputStream("/tmp/contact-" + alea + ".csv");
+ String alea = SuiviObsmerContext.createRandomString(16);
+ String filename = "/tmp/wao-contacts-" + alea + ".csv";
+
+ if (log.isDebugEnabled()) {
+ log.debug("Export contacts into : " + filename);
+ }
+
+ FileOutputStream output = new FileOutputStream(filename);
CsvWriter writer = new CsvWriter(output, ',', Charset.forName("UTF-8"));
// Headers
@@ -191,9 +198,10 @@
String header = ImportHelper.getHeaderForContactCsv(i);
writer.write(header);
}
+ writer.endRecord();
- DateFormat dateTimeFormat = new SimpleDateFormat(DATE_TIME_PATTERN, Locale.FRENCH);
- DateFormat dateFormat = new SimpleDateFormat(DATE_PATTERN, Locale.FRENCH);
+
+ DateFormat dateFormat = ImportHelper.getContactDateFormat();
int curr = 0;
for (Contact contact : contacts) {
@@ -201,17 +209,24 @@
String[] record = new String[ImportHelper.CONTACT_NB_HEADERS];
// Contact part
- record[CONTACT.CONT_CREATION.forContactCsv()] = dateTimeFormat.format(contact.getTopiaCreateDate());
+ record[CONTACT.CONT_CODE.forContactCsv()] = ImportHelper.formatContactCode(contact.getTopiaCreateDate());
+ record[CONTACT.CONT_CREATION.forContactCsv()] = dateFormat.format(contact.getTopiaCreateDate());
record[CONTACT.CONT_ETAT.forContactCsv()] = contact.getState();
- record[CONTACT.CONT_DEBUT_MAREE.forContactCsv()] = dateFormat.format(contact.getTideBeginDate());
- record[CONTACT.CONT_FIN_MAREE.forContactCsv()] = dateFormat.format(contact.getTideEndDate());
+ if (contact.getTideBeginDate() != null) {
+ record[CONTACT.CONT_DEBUT_MAREE.forContactCsv()] = dateFormat.format(contact.getTideBeginDate());
+ }
+ if (contact.getTideEndDate() != null) {
+ record[CONTACT.CONT_FIN_MAREE.forContactCsv()] = dateFormat.format(contact.getTideEndDate());
+ }
record[CONTACT.CONT_NB_OBSERV.forContactCsv()] = String.valueOf(contact.getNbObservants());
record[CONTACT.CONT_MAM_CAPT.forContactCsv()] =
ImportHelper.formatContactMammals(contact.getMammalsCapture());
record[CONTACT.CONT_MAM_OBS.forContactCsv()] =
ImportHelper.formatContactMammals(contact.getMammalsObservation());
record[CONTACT.CONT_COMMENT.forContactCsv()] = contact.getComment();
- record[CONTACT.CONT_ALLEGRO.forContactCsv()] = dateFormat.format(contact.getDataInputDate());
+ if (contact.getDataInputDate() != null) {
+ record[CONTACT.CONT_ALLEGRO.forContactCsv()] = dateFormat.format(contact.getDataInputDate());
+ }
record[CONTACT.CONT_SOCIETE_VALID.forContactCsv()] =
ImportHelper.formatContactValidation(contact.getValidationCompany());
record[CONTACT.CONT_PROGRAM_VALID.forContactCsv()] =
@@ -264,7 +279,7 @@
}
writer.close();
- result = new FileInputStream(output.getFD());
+ result = new FileInputStream(filename);
transaction.closeContext();
} catch (Exception eee) {
@@ -275,9 +290,10 @@
}
@Override
- public int importContactCsv(InputStream input) throws SuiviObsmerException {
+ public int importContactCsv(User user, InputStream input) throws SuiviObsmerException {
TopiaContext transaction = null;
int result = 0;
+ int currRow = 1;
try {
transaction = rootContext.beginTransaction();
@@ -290,16 +306,14 @@
SampleRowDAO rowDAO = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction);
BoatDAO boatDAO = SuiviObsmerModelDAOHelper.getBoatDAO(transaction);
- DateFormat dateTimeFormat = new SimpleDateFormat(DATE_TIME_PATTERN, Locale.FRENCH);
- DateFormat dateFormat = new SimpleDateFormat(DATE_PATTERN, Locale.FRENCH);
-
- int currRow = 0;
+ DateFormat dateFormat = ImportHelper.getContactDateFormat();
+
long tic;
tic = System.currentTimeMillis();
while(reader.readRecord()) {
currRow++;
- String userId = reader.get(CONTACT.OBSERV_ID.name());
+ String observerId = reader.get(CONTACT.OBSERV_ID.name());
String state = reader.get(CONTACT.CONT_ETAT.name());
ContactState contactState = ContactState.createContactStateEnum(state);
@@ -311,36 +325,82 @@
ContactState.availableStates());
}
- User user = userDAO.findByLogin(userId);
- if (user != null) {
- // FIXME-FD20100104 findContains not optimized in TopiaDAOImpl
- Company company = companyDAO.findContainsUser(user);
+ User observer = userDAO.findByLogin(observerId);
+ if (observer != null) {
+ Company company = user.getCompany();
+ // For an admin, get the company from database
+ if (user.getAdmin()) {
+ // FIXME-FD20100104 findContains not optimized in TopiaDAOImpl
+ company = companyDAO.findContainsUser(observer);
+ // For a user, check if the observer as the same company as the current user
+ } else if (!observer.getCompany().getTopiaId().equals(company.getTopiaId())) {
+ throw new SuiviObsmerBusinessException(Type.IMPORT_ERROR, this.getClass(),
+ "Erreur ligne " + currRow + " : " +
+ "L'observateur avec pour login '" + observerId + "' n'appartient pas à votre société !");
+ }
+
if (company != null) {
String rowCode = reader.get(SAMPLING.PLAN_CODE.name());
- SampleRow row = rowDAO.findByCode(rowCode);
+ SampleRow row = rowDAO.findByProperties(SampleRow.CODE, rowCode, SampleRow.COMPANY, company);
if (row != null) {
int boatImmatriculation = Integer.parseInt(reader.get(BOAT.NAVS_COD.name()));
-
- Boat boat = boatDAO.findByImmatriculation(boatImmatriculation);
+ // The boat must be elligible for the row
+ TopiaQuery<Boat> boatQuery = boatDAO.createQuery("B").addSelect("B").
+ addFrom(ElligibleBoat.class.getName() + " E").
+ add("E.sampleRow", row).add("E.boat = B").
+ add(Boat.IMMATRICULATION, boatImmatriculation);
+
+ if (!user.getAdmin()) {
+ // Constraint on companyActive for elligibleBoat for a simple user
+ boatQuery.add("E.companyActive = :booleanTrue OR (E.companyActive IS NULL AND E.globalActive = :booleanTrue)").
+ addParam("booleanTrue", Boolean.TRUE);
+ }
+
+ Boat boat = boatQuery.executeToEntity();
+
if (boat != null) {
- Date createDate = dateTimeFormat.parse(reader.get(CONTACT.CONT_CREATION.name()));
- Contact contact = dao.createQuery().
- add(TopiaEntity.TOPIA_CREATE_DATE, createDate).
- executeToEntity();
+ Contact contact = null;
- if (contact == null) { // new contact to import
+ // Check if createDate exist
+ String createDateString = reader.get(CONTACT.CONT_CREATION.name());
+ //Date createDate = !StringUtils.isEmpty(createDateString) ? dateFormat.parse(createDateString) : null;
+
+ String contactCode = reader.get(CONTACT.CONT_CODE.name());
+ Date createDate = ImportHelper.parseContactCreateDate(contactCode, createDateString);
+ if (log.isDebugEnabled()) {
+ log.debug("Ligne " + currRow + " : Create date : " + createDate);
+ }
+
+ if (!StringUtils.isEmpty(contactCode) && !StringUtils.isEmpty(createDateString)) {
+ // Get entity from database
+ contact = dao.createQuery().
+ add(TopiaEntity.TOPIA_CREATE_DATE, createDate).
+ add("user.company", company).
+ add(Contact.BOAT, boat).
+ add(Contact.SAMPLE_ROW, row).
+ executeToEntity();
+ }
+
+ // new contact to import
+ if (contact == null) {
contact = dao.create(
- Contact.USER, user,
+ TopiaEntity.TOPIA_CREATE_DATE, createDate,
+ Contact.USER, observer,
Contact.SAMPLE_ROW, row,
Contact.BOAT, boat);
}
- Date tideBegin = dateFormat.parse(CONTACT.CONT_DEBUT_MAREE.name());
- Date tideEnd = dateFormat.parse(CONTACT.CONT_FIN_MAREE.name());
- int nbObservants = Integer.parseInt(reader.get(CONTACT.CONT_NB_OBSERV.name()));
+
+ String tideBeginString = reader.get(CONTACT.CONT_DEBUT_MAREE.name());
+ String tideEndString = reader.get(CONTACT.CONT_FIN_MAREE.name());
+ String nbObservantsString = reader.get(CONTACT.CONT_NB_OBSERV.name());
+
+ Date tideBegin = !StringUtils.isEmpty(tideBeginString) ? dateFormat.parse(tideBeginString) : null;
+ Date tideEnd = !StringUtils.isEmpty(tideEndString) ? dateFormat.parse(tideEndString) : null;
+ int nbObservants = !StringUtils.isEmpty(nbObservantsString) ? Integer.parseInt(nbObservantsString) : 0;
boolean mammalsCapture =
ImportHelper.parseContactMammals(reader.get(CONTACT.CONT_MAM_CAPT.name()));
boolean mammalsObsv =
@@ -357,11 +417,12 @@
} else if (log.isWarnEnabled()) {
log.warn("Import contact ligne " + currRow + " : " +
- "Navire inexistant avec l'immatriculation : " + boatImmatriculation);
+ "Navire inexistant ou incompatible avec la ligne d'échantillon " +
+ "pour l'immatriculation : " + boatImmatriculation);
}
} else if (log.isWarnEnabled()) {
log.warn("Import contact ligne " + currRow + " : " +
- "Ligne d'échantillon inexistante avec le code : " + rowCode);
+ "Ligne d'échantillon inexistante ou incompatible avec la société pour le code : " + rowCode);
}
} else if (log.isErrorEnabled()) {
log.error("Import contact ligne " + currRow + " : " +
@@ -369,7 +430,7 @@
}
} else if (log.isWarnEnabled()) {
log.warn("Import contact ligne " + currRow + " : " +
- "Utilisateur inexistant avec l'identifiant : " + userId);
+ "Utilisateur inexistant avec l'identifiant : " + observerId);
}
if (result % 1000 == 0) {
@@ -388,10 +449,17 @@
}
}
+ transaction.commitTransaction();
+
transaction.closeContext();
- } catch (Exception eee) {
+ } catch (ParseException eee) {
SuiviObsmerContext.serviceException(transaction,
- "Impossible d'exporter les contacts", eee);
+ "Erreur ligne " + currRow + " : " +
+ "Le format des dates est incorrect, il doit être de la forme : JJ/MM/AAAA " +
+ "(ou JJ/MM/AAAA HH:MM:SS pour la date de création d'un contact existant)", eee);
+ } catch (Exception eee) {
+ SuiviObsmerContext.serviceException(transaction,
+ "Impossible d'importer les contacts", eee);
}
return result;
}
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-05 09:55:40 UTC (rev 163)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-05 16:39:31 UTC (rev 164)
@@ -248,7 +248,7 @@
query.add(SampleRow.COMPANY, user.getCompany());
}
- results = query.executeToEntityList();
+ results = query.addLoad("program", "profession").executeToEntityList();
// SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction);
//
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java 2010-01-05 09:55:40 UTC (rev 163)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java 2010-01-05 16:39:31 UTC (rev 164)
@@ -30,8 +30,8 @@
import fr.ifremer.suiviobsmer.entity.User;
import fr.ifremer.suiviobsmer.services.ServiceContact;
import java.io.InputStream;
-import java.io.OutputStream;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -262,12 +262,12 @@
}
@Override
- public InputStream exportContactCsv(User user, List<Contact> contacts) throws SuiviObsmerException {
+ public InputStream exportContactCsv(User user, Collection<Contact> contacts) throws SuiviObsmerException {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
- public int importContactCsv(InputStream input) throws SuiviObsmerException {
+ public int importContactCsv(User user, InputStream input) throws SuiviObsmerException {
throw new UnsupportedOperationException("Not supported yet.");
}
Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
===================================================================
(Binary files differ)
Added: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/ImportHelperTest.java
===================================================================
--- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/ImportHelperTest.java (rev 0)
+++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/ImportHelperTest.java 2010-01-05 16:39:31 UTC (rev 164)
@@ -0,0 +1,129 @@
+
+package fr.ifremer.suiviobsmer;
+
+import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.Locale;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import static org.junit.Assert.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author fdesbois
+ */
+public class ImportHelperTest {
+
+ private static SuiviObsmerRunner runner;
+
+ private static final Logger log = LoggerFactory.getLogger(ImportHelperTest.class);
+
+ public ImportHelperTest() {
+ runner = new SuiviObsmerRunnerTest();
+ }
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception {
+
+ }
+
+ @Before
+ public void setUp() throws SuiviObsmerException {
+ runner.start();
+ }
+
+ @After
+ public void tearDown() throws SuiviObsmerException {
+ runner.stop();
+ }
+
+ /**
+ * Test of getHeaderForContactCsv method, of class ImportHelper.
+ */
+ //@Test
+ public void testGetHeaderForContactCsv() {
+ System.out.println("getHeaderForContactCsv");
+ }
+
+ /**
+ * Test of formatContactValidation method, of class ImportHelper.
+ */
+ //@Test
+ public void testFormatContactValidation() {
+ System.out.println("formatContactValidation");
+ }
+
+ /**
+ * Test of formatContactMammals method, of class ImportHelper.
+ */
+ //@Test
+ public void testFormatContactMammals() {
+ System.out.println("formatContactMammals");
+ }
+
+ /**
+ * Test of parseContactMammals method, of class ImportHelper.
+ */
+ //@Test
+ public void testParseContactMammals() {
+ System.out.println("parseContactMammals");
+ }
+
+ /**
+ * Test of formatContactCode method, of class ImportHelper.
+ */
+ @Test
+ public void testFormatContactCode() {
+ log.info("formatContactCode");
+ Date createDate = SuiviObsmerContext.getCurrentDate();
+ Calendar calendar = new GregorianCalendar(Locale.FRENCH);
+ calendar.setTime(createDate);
+ calendar.set(Calendar.HOUR_OF_DAY, 10);
+ calendar.set(Calendar.MINUTE, 1);
+ calendar.set(Calendar.SECOND, 50);
+ calendar.set(Calendar.MILLISECOND, 260);
+ String expResult = "100150260";
+ String result = ImportHelper.formatContactCode(calendar.getTime());
+ assertEquals(expResult, result);
+ }
+
+ /**
+ * Test of parseContactCreateDate method, of class ImportHelper.
+ */
+ @Test
+ public void testParseContactCreateDate() throws Exception {
+ System.out.println("parseContactCreateDate");
+ String code = "101250718";
+ Date createDate = SuiviObsmerContext.getCurrentDate();
+ Calendar calendar = new GregorianCalendar(Locale.FRENCH);
+ calendar.setTime(createDate);
+ calendar.set(Calendar.HOUR_OF_DAY, 10);
+ calendar.set(Calendar.MINUTE, 12);
+ calendar.set(Calendar.SECOND, 50);
+ calendar.set(Calendar.MILLISECOND, 718);
+ Date expResult = calendar.getTime();
+ Date result = ImportHelper.parseContactCreateDate(code, "23/10/2009");
+ assertEquals(expResult, result);
+ }
+
+ /**
+ * Test of logTimeAndMemory method, of class ImportHelper.
+ */
+ //@Test
+ public void testLogTimeAndMemory() {
+ System.out.println("logTimeAndMemory");
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/ImportHelperTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-05 09:55:40 UTC (rev 163)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-05 16:39:31 UTC (rev 164)
@@ -21,6 +21,7 @@
package fr.ifremer.suiviobsmer.ui.pages;
+import fr.ifremer.suiviobsmer.SuiviObsmerBusinessException;
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
import fr.ifremer.suiviobsmer.SuiviObsmerException;
import fr.ifremer.suiviobsmer.bean.ContactState;
@@ -38,6 +39,8 @@
import fr.ifremer.suiviobsmer.ui.base.SuiviObsmerPage;
import fr.ifremer.suiviobsmer.ui.components.Layout;
import fr.ifremer.suiviobsmer.ui.services.ContactModelFactory;
+import java.io.IOException;
+import java.io.InputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -47,6 +50,7 @@
import org.apache.commons.lang.StringUtils;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.Field;
+import org.apache.tapestry5.StreamResponse;
import org.apache.tapestry5.annotations.IncludeStylesheet;
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.annotations.Log;
@@ -58,6 +62,8 @@
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.ioc.services.PropertyAccess;
import org.apache.tapestry5.services.BeanModelSource;
+import org.apache.tapestry5.services.Response;
+import org.apache.tapestry5.upload.services.UploadedFile;
import org.nuiton.util.DateUtils;
import org.slf4j.Logger;
@@ -108,6 +114,50 @@
contactsForm.clearErrors();
}
+ /**************************** CONTACT IMPORT/EXPORT ***********************/
+
+ @Property
+ private UploadedFile contactsCsvFile;
+
+ @Log
+ void onSuccessFromImportContacts() throws SuiviObsmerException {
+ //importBoatsForm.clearErrors();
+ try {
+ int result = serviceContact.importContactCsv(user, contactsCsvFile.getStream());
+ // Suppress persitant list of contacts
+ contacts = null;
+ layout.getFeedBack().addInfo(result + " contacts importés");
+ } catch (SuiviObsmerBusinessException eee) {
+ layout.getFeedBack().addError(eee.getMessage());
+ }
+ //return importBoatsForm.getHasErrors() ? importBoatsForm : this;
+ }
+
+ StreamResponse onActionFromExportShowContacts() {
+ return new StreamResponse() {
+
+ @Override
+ public String getContentType() {
+ return "text/csv;charset=utf-8";
+ }
+
+ @Override
+ public InputStream getStream() throws IOException {
+ InputStream result = null;
+ try {
+ result = serviceContact.exportContactCsv(user, getContacts().values());
+ } catch (SuiviObsmerException eee) {
+ throw new IOException(eee);
+ }
+ return result;
+ }
+
+ @Override
+ public void prepareResponse(Response response) {
+ }
+ };
+ }
+
/**************************** CONTACT LIST ********************************/
@Inject
Added: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/ExceptionReport.java
===================================================================
--- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/ExceptionReport.java (rev 0)
+++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/ExceptionReport.java 2010-01-05 16:39:31 UTC (rev 164)
@@ -0,0 +1,64 @@
+
+package fr.ifremer.suiviobsmer.ui.pages;
+
+import fr.ifremer.suiviobsmer.SuiviObsmerException;
+import fr.ifremer.suiviobsmer.ui.base.SuiviObsmerPage;
+import fr.ifremer.suiviobsmer.ui.components.Layout;
+import org.apache.tapestry5.annotations.InjectComponent;
+import org.apache.tapestry5.annotations.Property;
+import org.apache.tapestry5.ioc.annotations.Inject;
+import org.apache.tapestry5.runtime.ComponentEventException;
+import org.apache.tapestry5.services.ExceptionReporter;
+import org.slf4j.Logger;
+
+/**
+ * ExceptionReport
+ *
+ * Created: 5 janv. 2010
+ *
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+public class ExceptionReport implements ExceptionReporter, SuiviObsmerPage {
+
+ @InjectComponent
+ private Layout layout;
+
+ @Inject
+ private Logger log;
+
+ @Property
+ private Throwable exception;
+
+ @Override
+ public void reportException(Throwable eee) {
+ this.exception = getSuiviObsmerException(eee);
+ if (exception != null) {
+ layout.getFeedBack().addError(exception.getMessage());
+ this.exception = exception.getCause();
+ } else {
+ this.exception = eee;
+ log.error("Unexpected exception", eee);
+ }
+ layout.getFeedBack().addError("Erreur : " + this.exception.getClass().getSimpleName() + " : " + this.exception.getMessage());
+ }
+
+ protected Throwable getSuiviObsmerException(Throwable eee) {
+ if (eee == null) {
+ return eee;
+ }
+ if (eee instanceof SuiviObsmerException) {
+ return eee;
+ }
+ return getSuiviObsmerException(eee.getCause());
+ }
+
+ @Override
+ public boolean isOnlyForAdmin() {
+ return false;
+ }
+
+}
Property changes on: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/ExceptionReport.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Modified: trunk/suiviobsmer-ui/src/main/webapp/Administration.tml
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/Administration.tml 2010-01-05 09:55:40 UTC (rev 163)
+++ trunk/suiviobsmer-ui/src/main/webapp/Administration.tml 2010-01-05 16:39:31 UTC (rev 164)
@@ -42,7 +42,7 @@
</form>
<fieldset class="user-form clearfix">
- <form t:type="beaneditform" class="clearfix" t:id="user" t:include="firstName, lastName, login, password, phoneNumber, active">
+ <form t:type="beaneditform" class="clearfix" t:id="user" t:include="firstName, lastName, login, password, phoneNumber, admin, active">
<p:password>
<t:label t:for="generatePassword" />
<input t:type="checkbox" t:id="generatePassword" value="generatePassword" />
Modified: trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml 2010-01-05 09:55:40 UTC (rev 163)
+++ trunk/suiviobsmer-ui/src/main/webapp/Contacts.tml 2010-01-05 16:39:31 UTC (rev 164)
@@ -3,6 +3,15 @@
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter">
<!--t:include="creationDate, lastState, boatName, boatImmatriculation, boatDistrictCode, beginTideDate, endTideDate,
nbObservants, mammals, editDate, comment, validation"-->
+<form t:type="form" t:id="importContacts">
+ <t:errors />
+ <t:label for="contactsCsvFile" /> :
+ <input t:type="upload" t:id="contactsCsvFile" t:validate="required" />
+ <input t:type="submit" class="ico import" value="OK" title="Importer une liste de contacts (format CSV)" />
+</form>
+<a t:type="actionlink" t:id="exportShowContacts">
+ EXPORT
+</a>
<t:zone t:id="gridZone" t:update="show">
<form t:type="form" t:id="contactsForm" t:zone="gridZone">
<t:errors id="so-contact-form-errors" t:banner="message:contactsForm-errors-banner"/>
Added: trunk/suiviobsmer-ui/src/main/webapp/ExceptionReport.tml
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/ExceptionReport.tml (rev 0)
+++ trunk/suiviobsmer-ui/src/main/webapp/ExceptionReport.tml 2010-01-05 16:39:31 UTC (rev 164)
@@ -0,0 +1,15 @@
+<t:layout t:pageTitle="Erreur" t:contentId="so-exception-report"
+ xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd">
+
+</t:layout>
+
+<!--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>WAO - Web Applicatif Obsmer : Erreur</title>
+ </head>
+ <body>
+ <t:feedback t:id="errorFeedback" />
+ </body>
+</html>-->
Modified: trunk/suiviobsmer-ui/src/main/webapp/css/common.css
===================================================================
--- trunk/suiviobsmer-ui/src/main/webapp/css/common.css 2010-01-05 09:55:40 UTC (rev 163)
+++ trunk/suiviobsmer-ui/src/main/webapp/css/common.css 2010-01-05 16:39:31 UTC (rev 164)
@@ -287,7 +287,7 @@
text-align: center;
}
-div.so-import fieldset form input.import {
+input.import {
width: 22px;
height: 22px;
background: url(../img/file-import-22px.png) no-repeat center center;
1
0
[Suiviobsmer-commits] r163 - in trunk/suiviobsmer-business/src/main: java/fr/ifremer/suiviobsmer java/fr/ifremer/suiviobsmer/bean java/fr/ifremer/suiviobsmer/impl java/fr/ifremer/suiviobsmer/mock xmi
by fdesbois@users.labs.libre-entreprise.org 05 Jan '10
by fdesbois@users.labs.libre-entreprise.org 05 Jan '10
05 Jan '10
Author: fdesbois
Date: 2010-01-05 09:55:40 +0000 (Tue, 05 Jan 2010)
New Revision: 163
Added:
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java
Modified:
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactState.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java
trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
Log:
- Add ImportHelper to simplify CSV headers managment
- Improve imports
- Add import/export for contacts
Added: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java (rev 0)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java 2010-01-05 09:55:40 UTC (rev 163)
@@ -0,0 +1,235 @@
+
+package fr.ifremer.suiviobsmer;
+
+import org.apache.commons.lang.BooleanUtils;
+import org.apache.commons.lang.time.DurationFormatUtils;
+import org.slf4j.Logger;
+
+/**
+ * ImportHelper
+ *
+ * Created: 4 janv. 2010
+ *
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+public class ImportHelper {
+
+ /**
+ * CSV headers for Boat
+ */
+ public static enum BOAT {
+ /** Boat immatriculation **/
+ NAVS_COD(19),
+ /** Boat name **/
+ CARN_NOM(20),
+ /** Boat length **/
+ CARN_LONGUEUR_HT(-1),
+ /** Boat build year **/
+ CARN_ANNEE(-1),
+ /** Boat district code **/
+ QUARTIER_IMMA(21),
+ /** ShipOwner code **/
+ PER_COD(-1),
+ /** ShipOwner last name **/
+ PER_NOM(-1),
+ /** ShipOwner first name **/
+ PER_PRENOM(-1),
+ /** Boat active **/
+ NAVS_ACTIVE(-1);
+
+ int contactHeader;
+
+ BOAT(int index) {
+ this.contactHeader = index;
+ }
+
+ public int forContactCsv() {
+ return contactHeader;
+ }
+ }
+
+ /**
+ * CSV headers for SamplingPlan
+ */
+ public static enum SAMPLING {
+ /** SampleRow code **/
+ PLAN_CODE(5),
+ /** Program code **/
+ PROGRAMME_CODE(6),
+ /** Program period begin **/
+ PROGRAMME_DEBUT(7),
+ /** Program period end **/
+ PROGRAMME_FIN(8),
+ /** FishingZone other infos **/
+ PECHE_AUTRE(12),
+ /** Profession code DCF5 **/
+ METIER_CODE_DCF5(13),
+ /** Profession mesh size **/
+ METIER_MAILLAGE(14),
+ /** Profession size **/
+ METIER_TAILLE(15),
+ /** Profession other infos **/
+ METIER_AUTRE(16),
+ /** Profession libelle **/
+ METIER_LIBELLE(17),
+ /** Profession species **/
+ METIER_ESPECES(18),
+ /** SampleRow nb observants **/
+ PLAN_NB_OBSERV(-1),
+ /** SampleRow average tide time **/
+ PLAN_DUREE_MOY(-1);
+
+ int contactHeader;
+
+ SAMPLING(int index) {
+ this.contactHeader = index;
+ }
+
+ public int forContactCsv() {
+ return contactHeader;
+ }
+ }
+
+ /**
+ * CSV headers for FishingZone
+ */
+ public static enum FISHING_ZONE {
+ /** FishingZone facade **/
+ PECHE_FACADE(9),
+ /** FishingZone sector **/
+ PECHE_ZONE(10),
+ /** FishingZone district code **/
+ PECHE_DIVISION(11);
+
+ int contactHeader;
+
+ FISHING_ZONE(int index) {
+ this.contactHeader = index;
+ }
+
+ public int forContactCsv() {
+ return contactHeader;
+ }
+ }
+
+ /**
+ * CSV headers for Contact
+ */
+ public static enum CONTACT {
+ /** Contact create date **/
+ CONT_CREATION(0),
+ /** User id **/
+ OBSERV_ID(1),
+ /** User prenom **/
+ OBSERV_PRENOM(2),
+ /** User nom **/
+ OBSERV_NOM(3),
+ /** Company id **/
+ //SOCIETE_ID,
+ /** Company nom **/
+ SOCIETE_NOM(4),
+ /** Contact state **/
+ CONT_ETAT(22),
+ /** Contact tide begin **/
+ CONT_DEBUT_MAREE(23),
+ /** Contact tide end **/
+ CONT_FIN_MAREE(24),
+ /** Contact nb observants **/
+ CONT_NB_OBSERV(25),
+ /** Contact mammals capture **/
+ CONT_MAM_CAPT(26),
+ /** Contact mammals observation **/
+ CONT_MAM_OBS(27),
+ /** Contact comment **/
+ CONT_COMMENT(28),
+ /** Contact data input **/
+ CONT_ALLEGRO(29),
+ /** Contact company validation **/
+ CONT_SOCIETE_VALID(30),
+ /** Contact program validation **/
+ CONT_PROGRAM_VALID(31);
+
+ int contactHeader;
+
+ CONTACT(int index) {
+ this.contactHeader = index;
+ }
+
+ public int forContactCsv() {
+ return contactHeader;
+ }
+ }
+
+ public static int CONTACT_NB_HEADERS = 31;
+
+ public static String getHeaderForContactCsv(int index) {
+ for (BOAT boatEnum : BOAT.values()) {
+ if (boatEnum.forContactCsv() == index) {
+ return boatEnum.name();
+ }
+ }
+ for (SAMPLING samplingEnum : SAMPLING.values()) {
+ if (samplingEnum.forContactCsv() == index) {
+ return samplingEnum.name();
+ }
+ }
+ for (FISHING_ZONE zoneEnum : FISHING_ZONE.values()) {
+ if (zoneEnum.forContactCsv() == index) {
+ return zoneEnum.name();
+ }
+ }
+ for (CONTACT contactEnum : CONTACT.values()) {
+ if (contactEnum.forContactCsv() == index) {
+ return contactEnum.name();
+ }
+ }
+ return "";
+ }
+
+ public static String formatContactValidation(Boolean validation) {
+ String valid = "";
+ if (validation == null) {
+ valid = "N";
+ } else if (BooleanUtils.isTrue(validation)) {
+ valid = "A";
+ } else {
+ valid = "R";
+ }
+ return valid;
+ }
+//
+// public static Boolean parseContactValidation(String validation) {
+// if (validation.equals("A")) {
+// return Boolean.TRUE;
+// } else if (validation.equals("R")) {
+// return Boolean.FALSE;
+// }
+// return null;
+// }
+
+ public static String formatContactMammals(boolean mammals) {
+ return mammals ? "X" : "";
+ }
+
+ public static boolean parseContactMammals(String mammals) {
+ return mammals.equals("X");
+ }
+
+ public static long logTimeAndMemory(Logger log, long tic1, String msg) {
+ if (log.isInfoEnabled()) {
+ log.info("RUNNING... Import : " + msg);
+ Runtime runtime = Runtime.getRuntime();
+ long mem = (runtime.totalMemory() - runtime.freeMemory()) / 1048576;
+ //long memMega = mem / 1024 / 1024;
+ log.info("Memory : " + mem + " Mo");
+ long tic2 = System.currentTimeMillis();
+ log.info("Time : " + DurationFormatUtils.formatDurationHMS(tic2 - tic1));
+ }
+ return System.currentTimeMillis();
+ }
+
+}
Property changes on: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactState.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactState.java 2010-01-04 11:24:57 UTC (rev 162)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactState.java 2010-01-05 09:55:40 UTC (rev 163)
@@ -21,7 +21,8 @@
package fr.ifremer.suiviobsmer.bean;
-import fr.ifremer.suiviobsmer.bean.states.*;
+import java.util.ArrayList;
+import java.util.List;
/**
* ContactState
@@ -89,4 +90,12 @@
return null;
}
+ public static List<String> availableStates() {
+ List<String> results = new ArrayList<String>();
+ for (ContactState state : values()) {
+ results.add(state.toString());
+ }
+ return results;
+ }
+
}
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java 2010-01-04 11:24:57 UTC (rev 162)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java 2010-01-05 09:55:40 UTC (rev 163)
@@ -23,6 +23,7 @@
import fr.ifremer.suiviobsmer.*;
import com.csvreader.CsvReader;
+import fr.ifremer.suiviobsmer.ImportHelper.BOAT;
import fr.ifremer.suiviobsmer.entity.ActivityCalendar;
import fr.ifremer.suiviobsmer.entity.ActivityCalendarDAO;
import fr.ifremer.suiviobsmer.entity.ActivityMonth;
@@ -166,7 +167,7 @@
currRow++;
//long firstTic = System.currentTimeMillis();
- int boatImmatriculation = Integer.parseInt(reader.get("NAVS_COD").trim());
+ int boatImmatriculation = Integer.parseInt(reader.get(BOAT.NAVS_COD.name()).trim());
// long tic1 = System.currentTimeMillis();
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-04 11:24:57 UTC (rev 162)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-05 09:55:40 UTC (rev 163)
@@ -22,6 +22,8 @@
package fr.ifremer.suiviobsmer.impl;
import com.csvreader.CsvReader;
+import fr.ifremer.suiviobsmer.ImportHelper;
+import fr.ifremer.suiviobsmer.ImportHelper.BOAT;
import fr.ifremer.suiviobsmer.SuiviObsmerBusinessException;
import fr.ifremer.suiviobsmer.SuiviObsmerBusinessException.Type;
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
@@ -42,7 +44,6 @@
import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -345,14 +346,14 @@
reader.readHeaders();
long startTime = System.currentTimeMillis();
- long tic1, tic2;
+ long tic;
BoatDAO boatDAO = SuiviObsmerModelDAOHelper.getBoatDAO(transaction);
ShipOwnerDAO shipOwnerDAO = SuiviObsmerModelDAOHelper.getShipOwnerDAO(transaction);
Map<String, ShipOwner> availableShipOwners = new HashMap<String, ShipOwner>();
- tic1 = System.currentTimeMillis();
+ tic = System.currentTimeMillis();
while(reader.readRecord()) {
result[0]++;
@@ -361,15 +362,15 @@
// }
- int immatriculation = Integer.parseInt(reader.get("NAVS_COD").trim());
- String boatName = reader.get("CARN_NOM").trim();
- int boatLength = Integer.parseInt(reader.get("CARN_LONGUEUR_HT").trim());
- int buildYear = Integer.parseInt(reader.get("CARN_ANNEE").trim());
- String districtCode = reader.get("QUARTIER_IMMA").trim();
- String shipOwnerCode = reader.get("PER_COD").trim();
- String shipOwnerLastName = reader.get("PER_NOM").trim();
- String shipOwnerFirstName = reader.get("PER_PRENOM").trim();
- String activeStr = reader.get("NAVS_ACTIVE").trim();
+ int immatriculation = Integer.parseInt(reader.get(BOAT.NAVS_COD.name()).trim());
+ String boatName = reader.get(BOAT.CARN_NOM.name()).trim();
+ int boatLength = Integer.parseInt(reader.get(BOAT.CARN_LONGUEUR_HT.name()).trim());
+ int buildYear = Integer.parseInt(reader.get(BOAT.CARN_ANNEE.name()).trim());
+ String districtCode = reader.get(BOAT.QUARTIER_IMMA.name()).trim();
+ String shipOwnerCode = reader.get(BOAT.PER_COD.name()).trim();
+ String shipOwnerLastName = reader.get(BOAT.PER_NOM.name()).trim();
+ String shipOwnerFirstName = reader.get(BOAT.PER_PRENOM.name()).trim();
+ String activeStr = reader.get(BOAT.NAVS_ACTIVE.name()).trim();
boolean active = !activeStr.equals("I");
@@ -435,16 +436,17 @@
availableShipOwners.clear();
transaction.commitTransaction();
- if (log.isInfoEnabled()) {
- log.info("RUNNING... Import navires ligne " + result[0]);
- Runtime runtime = Runtime.getRuntime();
- long mem = (runtime.totalMemory() - runtime.freeMemory()) / 1048576;
- //long memMega = mem / 1024 / 1024;
- log.info("Memory : " + mem + " Mo");
- tic2 = System.currentTimeMillis();
- log.info("Time : " + DurationFormatUtils.formatDurationHMS(tic2 - tic1));
- tic1 = System.currentTimeMillis();
- }
+ tic = ImportHelper.logTimeAndMemory(log, tic, "navires ligne " + result[0]);
+// if (log.isInfoEnabled()) {
+// log.info("RUNNING... Import navires ligne " + result[0]);
+// Runtime runtime = Runtime.getRuntime();
+// long mem = (runtime.totalMemory() - runtime.freeMemory()) / 1048576;
+// //long memMega = mem / 1024 / 1024;
+// log.info("Memory : " + mem + " Mo");
+// tic2 = System.currentTimeMillis();
+// log.info("Time : " + DurationFormatUtils.formatDurationHMS(tic2 - tic1));
+// tic1 = System.currentTimeMillis();
+// }
}
}
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-04 11:24:57 UTC (rev 162)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-05 09:55:40 UTC (rev 163)
@@ -21,21 +21,44 @@
package fr.ifremer.suiviobsmer.impl;
+import com.csvreader.CsvReader;
+import com.csvreader.CsvWriter;
+import fr.ifremer.suiviobsmer.ImportHelper;
+import fr.ifremer.suiviobsmer.ImportHelper.*;
+import fr.ifremer.suiviobsmer.SuiviObsmerBusinessException;
+import fr.ifremer.suiviobsmer.SuiviObsmerBusinessException.Type;
import fr.ifremer.suiviobsmer.SuiviObsmerException;
import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper;
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
+import fr.ifremer.suiviobsmer.bean.ContactState;
+import java.io.InputStream;
import org.nuiton.topia.framework.TopiaQuery;
import fr.ifremer.suiviobsmer.bean.states.ContactStateEnum;
import fr.ifremer.suiviobsmer.entity.Boat;
+import fr.ifremer.suiviobsmer.entity.BoatDAO;
import fr.ifremer.suiviobsmer.entity.Company;
+import fr.ifremer.suiviobsmer.entity.CompanyDAO;
import fr.ifremer.suiviobsmer.entity.Contact;
import fr.ifremer.suiviobsmer.entity.ContactDAO;
import fr.ifremer.suiviobsmer.entity.ContactImpl;
+import fr.ifremer.suiviobsmer.entity.FishingZone;
+import fr.ifremer.suiviobsmer.entity.Profession;
+import fr.ifremer.suiviobsmer.entity.Program;
import fr.ifremer.suiviobsmer.entity.SampleRow;
+import fr.ifremer.suiviobsmer.entity.SampleRowDAO;
import fr.ifremer.suiviobsmer.entity.User;
+import fr.ifremer.suiviobsmer.entity.UserDAO;
import fr.ifremer.suiviobsmer.services.ServiceContact;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.nio.charset.Charset;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.persistence.TopiaEntity;
@@ -135,4 +158,242 @@
}
}
+ protected static String DATE_TIME_PATTERN = "dd/MM/yyyy HH:mm:ss";
+ protected static String DATE_PATTERN = "dd/MM/yyyy";
+
+ @Override
+ public InputStream exportContactCsv(User user, List<Contact> contacts)
+ throws SuiviObsmerException {
+ TopiaContext transaction = null;
+ InputStream result = null;
+ try {
+ transaction = rootContext.beginTransaction();
+
+ // No contacts from arguments, select all existing from database
+ if (contacts == null) {
+ ContactDAO dao = SuiviObsmerModelDAOHelper.getContactDAO(transaction);
+ if (user.getAdmin()) {
+ contacts = dao.findAll();
+ } else {
+ // Filtered by company for a simple user
+ contacts = dao.createQuery().
+ add("user.company", user.getCompany()).
+ executeToEntityList();
+ }
+ }
+
+ String alea = SuiviObsmerContext.createRandomString(8);
+ FileOutputStream output = new FileOutputStream("/tmp/contact-" + alea + ".csv");
+ CsvWriter writer = new CsvWriter(output, ',', Charset.forName("UTF-8"));
+
+ // Headers
+ for (int i = 0; i < ImportHelper.CONTACT_NB_HEADERS; i++) {
+ String header = ImportHelper.getHeaderForContactCsv(i);
+ writer.write(header);
+ }
+
+ DateFormat dateTimeFormat = new SimpleDateFormat(DATE_TIME_PATTERN, Locale.FRENCH);
+ DateFormat dateFormat = new SimpleDateFormat(DATE_PATTERN, Locale.FRENCH);
+
+ int curr = 0;
+ for (Contact contact : contacts) {
+ curr++;
+ String[] record = new String[ImportHelper.CONTACT_NB_HEADERS];
+
+ // Contact part
+ record[CONTACT.CONT_CREATION.forContactCsv()] = dateTimeFormat.format(contact.getTopiaCreateDate());
+ record[CONTACT.CONT_ETAT.forContactCsv()] = contact.getState();
+ record[CONTACT.CONT_DEBUT_MAREE.forContactCsv()] = dateFormat.format(contact.getTideBeginDate());
+ record[CONTACT.CONT_FIN_MAREE.forContactCsv()] = dateFormat.format(contact.getTideEndDate());
+ record[CONTACT.CONT_NB_OBSERV.forContactCsv()] = String.valueOf(contact.getNbObservants());
+ record[CONTACT.CONT_MAM_CAPT.forContactCsv()] =
+ ImportHelper.formatContactMammals(contact.getMammalsCapture());
+ record[CONTACT.CONT_MAM_OBS.forContactCsv()] =
+ ImportHelper.formatContactMammals(contact.getMammalsObservation());
+ record[CONTACT.CONT_COMMENT.forContactCsv()] = contact.getComment();
+ record[CONTACT.CONT_ALLEGRO.forContactCsv()] = dateFormat.format(contact.getDataInputDate());
+ record[CONTACT.CONT_SOCIETE_VALID.forContactCsv()] =
+ ImportHelper.formatContactValidation(contact.getValidationCompany());
+ record[CONTACT.CONT_PROGRAM_VALID.forContactCsv()] =
+ ImportHelper.formatContactValidation(contact.getValidationProgram());
+
+ // Observer part
+ User observer = contact.getUser();
+ Company company = observer.getCompany();
+ record[CONTACT.OBSERV_ID.forContactCsv()] = observer.getLogin();
+ record[CONTACT.OBSERV_PRENOM.forContactCsv()] = observer.getFirstName();
+ record[CONTACT.OBSERV_NOM.forContactCsv()] = observer.getLastName();
+ record[CONTACT.SOCIETE_NOM.forContactCsv()] = company.getName();
+
+ // SampleRow part
+ SampleRow row = contact.getSampleRow();
+ Program program = row.getProgram();
+ record[SAMPLING.PLAN_CODE.forContactCsv()] = row.getCode();
+ record[SAMPLING.PROGRAMME_CODE.forContactCsv()] = program.getName();
+ record[SAMPLING.PROGRAMME_DEBUT.forContactCsv()] = dateFormat.format(program.getPeriodBegin());
+ record[SAMPLING.PROGRAMME_FIN.forContactCsv()] = dateFormat.format(program.getPeriodEnd());
+ record[SAMPLING.PECHE_AUTRE.forContactCsv()] = row.getFishingZonesInfos();
+
+ // FishingZone part
+ List<FishingZone> zones = row.getFishingZone();
+ String fishingDistrict = "";
+ for (FishingZone zone : zones) {
+ fishingDistrict += zone.getDistrictCode() + " - ";
+ }
+ fishingDistrict = fishingDistrict.substring(fishingDistrict.length() - 3);
+ record[FISHING_ZONE.PECHE_FACADE.forContactCsv()] = zones.get(0).getFacadeName();
+ record[FISHING_ZONE.PECHE_ZONE.forContactCsv()] = zones.get(0).getSectorName();
+ record[FISHING_ZONE.PECHE_DIVISION.forContactCsv()] = fishingDistrict;
+
+ // Profession part
+ Profession profession = row.getProfession();
+ record[SAMPLING.METIER_CODE_DCF5.forContactCsv()] = profession.getCodeDCF5();
+ record[SAMPLING.METIER_MAILLAGE.forContactCsv()] = profession.getMeshSize();
+ record[SAMPLING.METIER_TAILLE.forContactCsv()] = profession.getSize();
+ record[SAMPLING.METIER_AUTRE.forContactCsv()] = profession.getOther();
+ record[SAMPLING.METIER_LIBELLE.forContactCsv()] = profession.getLibelle();
+ record[SAMPLING.METIER_ESPECES.forContactCsv()] = profession.getSpecies();
+
+ // Boat part
+ Boat boat = contact.getBoat();
+ record[BOAT.NAVS_COD.forContactCsv()] = String.valueOf(boat.getImmatriculation());
+ record[BOAT.CARN_NOM.forContactCsv()] = boat.getName();
+ record[BOAT.QUARTIER_IMMA.forContactCsv()] = boat.getDistrictCode();
+
+ writer.writeRecord(record);
+ }
+ writer.close();
+
+ result = new FileInputStream(output.getFD());
+
+ transaction.closeContext();
+ } catch (Exception eee) {
+ SuiviObsmerContext.serviceException(transaction,
+ "Impossible d'exporter les contacts", eee);
+ }
+ return result;
+ }
+
+ @Override
+ public int importContactCsv(InputStream input) throws SuiviObsmerException {
+ TopiaContext transaction = null;
+ int result = 0;
+ try {
+ transaction = rootContext.beginTransaction();
+
+ CsvReader reader = new CsvReader(input, Charset.forName("UTF-8"));
+ reader.readHeaders();
+
+ ContactDAO dao = SuiviObsmerModelDAOHelper.getContactDAO(transaction);
+ UserDAO userDAO = SuiviObsmerModelDAOHelper.getUserDAO(transaction);
+ CompanyDAO companyDAO = SuiviObsmerModelDAOHelper.getCompanyDAO(transaction);
+ SampleRowDAO rowDAO = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction);
+ BoatDAO boatDAO = SuiviObsmerModelDAOHelper.getBoatDAO(transaction);
+
+ DateFormat dateTimeFormat = new SimpleDateFormat(DATE_TIME_PATTERN, Locale.FRENCH);
+ DateFormat dateFormat = new SimpleDateFormat(DATE_PATTERN, Locale.FRENCH);
+
+ int currRow = 0;
+ long tic;
+ tic = System.currentTimeMillis();
+ while(reader.readRecord()) {
+ currRow++;
+
+ String userId = reader.get(CONTACT.OBSERV_ID.name());
+ String state = reader.get(CONTACT.CONT_ETAT.name());
+
+ ContactState contactState = ContactState.createContactStateEnum(state);
+
+ if (contactState == null) {
+ throw new SuiviObsmerBusinessException(Type.IMPORT_ERROR, this.getClass(),
+ "Erreur ligne " + currRow + " : " +
+ "Etat du contact invalide '" + state + "', valeurs possibles : " +
+ ContactState.availableStates());
+ }
+
+ User user = userDAO.findByLogin(userId);
+ if (user != null) {
+ // FIXME-FD20100104 findContains not optimized in TopiaDAOImpl
+ Company company = companyDAO.findContainsUser(user);
+ if (company != null) {
+ String rowCode = reader.get(SAMPLING.PLAN_CODE.name());
+
+ SampleRow row = rowDAO.findByCode(rowCode);
+
+ if (row != null) {
+ int boatImmatriculation = Integer.parseInt(reader.get(BOAT.NAVS_COD.name()));
+
+ Boat boat = boatDAO.findByImmatriculation(boatImmatriculation);
+
+ if (boat != null) {
+ Date createDate = dateTimeFormat.parse(reader.get(CONTACT.CONT_CREATION.name()));
+
+ Contact contact = dao.createQuery().
+ add(TopiaEntity.TOPIA_CREATE_DATE, createDate).
+ executeToEntity();
+
+ if (contact == null) { // new contact to import
+ contact = dao.create(
+ Contact.USER, user,
+ Contact.SAMPLE_ROW, row,
+ Contact.BOAT, boat);
+ }
+ Date tideBegin = dateFormat.parse(CONTACT.CONT_DEBUT_MAREE.name());
+ Date tideEnd = dateFormat.parse(CONTACT.CONT_FIN_MAREE.name());
+ int nbObservants = Integer.parseInt(reader.get(CONTACT.CONT_NB_OBSERV.name()));
+ boolean mammalsCapture =
+ ImportHelper.parseContactMammals(reader.get(CONTACT.CONT_MAM_CAPT.name()));
+ boolean mammalsObsv =
+ ImportHelper.parseContactMammals(reader.get(CONTACT.CONT_MAM_OBS.name()));
+
+ contact.setState(state);
+ contact.setTideBeginDate(tideBegin);
+ contact.setTideEndDate(tideEnd);
+ contact.setNbObservants(nbObservants);
+ contact.setMammalsCapture(mammalsCapture);
+ contact.setMammalsObservation(mammalsObsv);
+
+ result++;
+
+ } else if (log.isWarnEnabled()) {
+ log.warn("Import contact ligne " + currRow + " : " +
+ "Navire inexistant avec l'immatriculation : " + boatImmatriculation);
+ }
+ } else if (log.isWarnEnabled()) {
+ log.warn("Import contact ligne " + currRow + " : " +
+ "Ligne d'échantillon inexistante avec le code : " + rowCode);
+ }
+ } else if (log.isErrorEnabled()) {
+ log.error("Import contact ligne " + currRow + " : " +
+ "Cette utilisateur n'est lié à aucune société : " + user);
+ }
+ } else if (log.isWarnEnabled()) {
+ log.warn("Import contact ligne " + currRow + " : " +
+ "Utilisateur inexistant avec l'identifiant : " + userId);
+ }
+
+ if (result % 1000 == 0) {
+ transaction.commitTransaction();
+ tic = ImportHelper.logTimeAndMemory(log, tic, "contacts ligne " + currRow);
+// if (log.isInfoEnabled()) {
+// log.info("RUNNING... Import contacts ligne " + currRow);
+// Runtime runtime = Runtime.getRuntime();
+// long mem = (runtime.totalMemory() - runtime.freeMemory()) / 1048576;
+// //long memMega = mem / 1024 / 1024;
+// log.info("Memory : " + mem + " Mo");
+// tic2 = System.currentTimeMillis();
+// log.info("Time : " + DurationFormatUtils.formatDurationHMS(tic2 - tic1));
+// tic1 = System.currentTimeMillis();
+// }
+ }
+ }
+
+ transaction.closeContext();
+ } catch (Exception eee) {
+ SuiviObsmerContext.serviceException(transaction,
+ "Impossible d'exporter les contacts", eee);
+ }
+ return result;
+ }
+
}
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java 2010-01-04 11:24:57 UTC (rev 162)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java 2010-01-05 09:55:40 UTC (rev 163)
@@ -22,6 +22,7 @@
package fr.ifremer.suiviobsmer.impl;
import com.csvreader.CsvReader;
+import fr.ifremer.suiviobsmer.ImportHelper.FISHING_ZONE;
import fr.ifremer.suiviobsmer.SuiviObsmerException;
import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper;
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
@@ -142,9 +143,9 @@
log.trace(" " + Arrays.asList(reader.getValues()));
}
- String facadeName = reader.get("PECHE_FACADE").trim();
- String sectorName = reader.get("PECHE_ZONE").trim();
- String districtCode = reader.get("PECHE_DIVISION").trim();
+ String facadeName = reader.get(FISHING_ZONE.PECHE_FACADE.name()).trim();
+ String sectorName = reader.get(FISHING_ZONE.PECHE_ZONE.name()).trim();
+ String districtCode = reader.get(FISHING_ZONE.PECHE_DIVISION.name()).trim();
FishingZone zone = dao.findByProperties(
FishingZone.FACADE_NAME, facadeName,
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-04 11:24:57 UTC (rev 162)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-05 09:55:40 UTC (rev 163)
@@ -22,6 +22,8 @@
package fr.ifremer.suiviobsmer.impl;
import com.csvreader.CsvReader;
+import fr.ifremer.suiviobsmer.ImportHelper.FISHING_ZONE;
+import fr.ifremer.suiviobsmer.ImportHelper.SAMPLING;
import fr.ifremer.suiviobsmer.SuiviObsmerException;
import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper;
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
@@ -48,6 +50,7 @@
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.framework.TopiaQuery;
import org.nuiton.topia.framework.TopiaQuery.Op;
+import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.topia.persistence.util.EntityLoador;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -294,12 +297,16 @@
SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction);
- result = dao.findByTopiaId(sampleRowId);
+ result = dao.createQuery().add(TopiaEntity.TOPIA_ID, sampleRowId).
+ addLoad("company", "program", "profession").
+ executeToEntity();
- // load data
- result.getCompany();
- result.getProgram();
- result.getProfession();
+// result = dao.findByTopiaId(sampleRowId);
+//
+// // load data
+// result.getCompany();
+// result.getProgram();
+// result.getProfession();
transaction.closeContext();
} catch (Exception eee) {
@@ -390,7 +397,7 @@
log.trace(" " + Arrays.asList(reader.getValues()));
}
- String code = reader.get("PLAN_CODE").trim();
+ String code = reader.get(SAMPLING.PLAN_CODE.name()).trim();
if (StringUtils.isEmpty(code)) {
continue;
@@ -399,10 +406,10 @@
// Replace single number after year by a double one : 2010_1 -> 2010_01
code = code.replaceFirst("_(\\d)$", "_0$1");
- String programName = reader.get("PROGRAMME_CODE").trim();
- int[] programBegin = getMonthAndYear(reader.get("PROGRAMME_DEBUT").trim());
- int[] programEnd = getMonthAndYear(reader.get("PROGRAMME_FIN").trim());
- String districts = reader.get("PECHE_DIVISION");
+ String programName = reader.get(SAMPLING.PROGRAMME_CODE.name()).trim();
+ int[] programBegin = getMonthAndYear(reader.get(SAMPLING.PROGRAMME_DEBUT.name()).trim());
+ int[] programEnd = getMonthAndYear(reader.get(SAMPLING.PROGRAMME_FIN.name()).trim());
+ String districts = reader.get(FISHING_ZONE.PECHE_DIVISION.name());
row = dao.findByCode(code);
// Refuse existing SampleRow
@@ -511,12 +518,12 @@
protected Profession importProfession(TopiaContext transaction, CsvReader reader)
throws IOException, TopiaException {
- String codeDCF5 = reader.get("METIER_CODE_DCF5").trim();
- String maillage = reader.get("METIER_MAILLAGE").trim();
- String taille = reader.get("METIER_TAILLE").trim();
- String autre = reader.get("METIER_AUTRE").trim();
- String libelle = reader.get("METIER_LIBELLE").trim();
- String especes = reader.get("METIER_ESPECES").trim();
+ String codeDCF5 = reader.get(SAMPLING.METIER_CODE_DCF5.name()).trim();
+ String maillage = reader.get(SAMPLING.METIER_MAILLAGE.name()).trim();
+ String taille = reader.get(SAMPLING.METIER_TAILLE.name()).trim();
+ String autre = reader.get(SAMPLING.METIER_AUTRE.name()).trim();
+ String libelle = reader.get(SAMPLING.METIER_LIBELLE.name()).trim();
+ String especes = reader.get(SAMPLING.METIER_ESPECES.name()).trim();
ProfessionDAO dao = SuiviObsmerModelDAOHelper.getProfessionDAO(transaction);
Map<String, Object> existParams = new HashMap<String, Object>();
@@ -589,9 +596,9 @@
protected void updateRow(TopiaContext transaction, SampleRow sampleRow, CsvReader reader)
throws IOException, TopiaException, ParseException {
- String fishingZoneInfos = reader.get("PECHE_AUTRE").trim();
- int nbObservants = Integer.parseInt(reader.get("PLAN_NB_OBSERV").trim());
- String averageStr = reader.get("PLAN_DUREE_MOY").trim();
+ String fishingZoneInfos = reader.get(SAMPLING.PECHE_AUTRE.name()).trim();
+ int nbObservants = Integer.parseInt(reader.get(SAMPLING.PLAN_NB_OBSERV.name()).trim());
+ String averageStr = reader.get(SAMPLING.PLAN_DUREE_MOY.name()).trim();
averageStr = averageStr.replaceAll(",", ".");
double averageTideTime = Double.parseDouble(averageStr);
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java 2010-01-04 11:24:57 UTC (rev 162)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/mock/ServiceContactMock.java 2010-01-05 09:55:40 UTC (rev 163)
@@ -29,6 +29,8 @@
import fr.ifremer.suiviobsmer.entity.SampleRow;
import fr.ifremer.suiviobsmer.entity.User;
import fr.ifremer.suiviobsmer.services.ServiceContact;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -259,6 +261,16 @@
throw new UnsupportedOperationException("Not supported yet.");
}
+ @Override
+ public InputStream exportContactCsv(User user, List<Contact> contacts) throws SuiviObsmerException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+ @Override
+ public int importContactCsv(InputStream input) throws SuiviObsmerException {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+
}
Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
===================================================================
(Binary files differ)
1
0
[Suiviobsmer-commits] r162 - in trunk/suiviobsmer-business/src/main: java/fr/ifremer/suiviobsmer java/fr/ifremer/suiviobsmer/entity java/fr/ifremer/suiviobsmer/impl xmi
by fdesbois@users.labs.libre-entreprise.org 04 Jan '10
by fdesbois@users.labs.libre-entreprise.org 04 Jan '10
04 Jan '10
Author: fdesbois
Date: 2010-01-04 11:24:57 +0000 (Mon, 04 Jan 2010)
New Revision: 162
Added:
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactDAOImpl.java
Removed:
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/QueryBuilder.java
Modified:
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatInfosImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProgramImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java
trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
Log:
- Improve TopiaQuery usage from Topia
- Move queries from QueryBuilder to ContactDAOImpl
Deleted: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/QueryBuilder.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/QueryBuilder.java 2009-12-29 12:17:31 UTC (rev 161)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/QueryBuilder.java 2010-01-04 11:24:57 UTC (rev 162)
@@ -1,105 +0,0 @@
-/*
- * *##%
- * SuiviObsmer :: Business
- * Copyright (C) 2009 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 Lesser 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>.
- * ##%*
- */
-
-package fr.ifremer.suiviobsmer;
-
-import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.framework.TopiaQuery.Op;
-import fr.ifremer.suiviobsmer.bean.ContactState;
-import fr.ifremer.suiviobsmer.entity.Boat;
-import fr.ifremer.suiviobsmer.entity.BoatImpl;
-import fr.ifremer.suiviobsmer.entity.Company;
-import fr.ifremer.suiviobsmer.entity.Contact;
-import java.util.Date;
-import org.hibernate.SQLQuery;
-import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.framework.TopiaContextImplementor;
-import org.nuiton.topia.framework.TopiaQuery;
-
-/**
- * QueryBuilder
- *
- * Created: 21 déc. 2009
- *
- * @author fdesbois
- * @version $Revision$
- *
- * Mise a jour: $Date$
- * par : $Author$
- */
-public class QueryBuilder {
-
- /**
- * Create the query for the last contact of the boat and company.
- *
- * @param boat the boat concerned by the contact
- * @param company the company concerned by the user who create the contact
- * @return the TopiaQuery created
- */
- public static TopiaQuery createQueryLastContactForBoat(Boat boat, Company company) {
- String contactClassName = Contact.class.getName();
- TopiaQuery query = new TopiaQuery(contactClassName + " C1").
- add("C1.boat", boat).
- add("C1.user.company = :company").
- addParam("company", company);
-
- TopiaQuery subquery = new TopiaQuery(contactClassName + " C2").
- addSelect("MAX(C2.topiaCreateDate)").
- add("C2.boat = C1.boat").
- add("C2.user.company = :company");
-
- query.add("C1.topiaCreateDate = (" + subquery.fullQuery() + ")");
- return query;
- }
-
- /**
- * Create the query for contacts linked with a boat with BoardingDone state since the fromDate.
- * This query is used to get all boarding dones with the boat for all companies.
- * Only the validate contacts by company will be count. The param fromDate can be null,
- * in this case, all contacts will be given (no matter which date then started).
- *
- * @param boat the boat concerned by the contact
- * @param fromDate the date to start
- * @return the TopiaQuery created
- */
- public static TopiaQuery createQueryDoneContactsFromDate(Boat boat, Date fromDate) {
- TopiaQuery query = new TopiaQuery(Contact.class).
- add("boat", boat).
- add("state", ContactState.BOARDING_DONE.toString()).
- add("validationCompany", Boolean.TRUE).
- add("validationProgram IS NULL OR validationProgram = :booleanTrue").
- addParam("booleanTrue", Boolean.TRUE);
-
- if (fromDate != null) {
- query.add("tideBeginDate", Op.GE, fromDate);
- }
- return query;
- }
-
-// public static Boat getBoatByImmatriculation(TopiaContext transaction, int immatriculation) throws TopiaException {
-// TopiaContextImplementor topia = (TopiaContextImplementor)transaction;
-// SQLQuery query = topia.getHibernate().createSQLQuery(
-// "SELECT * FROM boat WHERE immatriculation = " + immatriculation);
-//
-// return (Boat)query.addEntity(BoatImpl.class).uniqueResult();
-// }
-
-}
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatImpl.java 2009-12-29 12:17:31 UTC (rev 161)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatImpl.java 2010-01-04 11:24:57 UTC (rev 162)
@@ -21,10 +21,9 @@
package fr.ifremer.suiviobsmer.entity;
-import fr.ifremer.suiviobsmer.QueryBuilder;
import fr.ifremer.suiviobsmer.SuiviObsmerException;
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
-import org.nuiton.topia.framework.TopiaQuery;
+import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper;
import fr.ifremer.suiviobsmer.bean.ContactState;
import java.io.Serializable;
import org.nuiton.topia.TopiaContext;
@@ -63,8 +62,8 @@
try {
transaction = SuiviObsmerContext.getTopiaRootContext().beginTransaction();
- TopiaQuery query = QueryBuilder.createQueryLastContactForBoat(this, company);
- Contact contact = query.executeToEntity(transaction, Contact.class);
+ ContactDAO dao = SuiviObsmerModelDAOHelper.getContactDAO(transaction);
+ Contact contact = dao.createQueryLastContactForBoat(this, company).executeToEntity();
if (contact != null) {
//boolean validation = contact.getValidationProgram() != null || BooleanUtils.isFalse(contact.getValidationCompany());
ContactState state = ContactState.createContactStateEnum(contact.getState());
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatInfosImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatInfosImpl.java 2009-12-29 12:17:31 UTC (rev 161)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/BoatInfosImpl.java 2010-01-04 11:24:57 UTC (rev 162)
@@ -21,9 +21,9 @@
package fr.ifremer.suiviobsmer.entity;
-import fr.ifremer.suiviobsmer.QueryBuilder;
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
import fr.ifremer.suiviobsmer.SuiviObsmerException;
+import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper;
import org.nuiton.topia.framework.TopiaQuery;
import java.io.Serializable;
import org.nuiton.topia.TopiaContext;
@@ -66,7 +66,9 @@
try {
transaction = SuiviObsmerContext.getTopiaRootContext().beginTransaction();
- TopiaQuery query = QueryBuilder.createQueryDoneContactsFromDate(getBoat(), fromDate);
+ ContactDAO dao = SuiviObsmerModelDAOHelper.getContactDAO(transaction);
+
+ TopiaQuery<Contact> query = dao.createQueryDoneContactsFromDate(getBoat(), fromDate);
result = query.executeCount(transaction);
transaction.closeContext();
@@ -94,12 +96,13 @@
try {
transaction = SuiviObsmerContext.getTopiaRootContext().beginTransaction();
- TopiaQuery query = QueryBuilder.
- createQueryDoneContactsFromDate(getBoat(), fromDate).
- add("user.company", getCompany());
+ ContactDAO dao = SuiviObsmerModelDAOHelper.getContactDAO(transaction);
- result = query.executeCount(transaction);
+ TopiaQuery<Contact> query = dao.createQueryDoneContactsFromDate(getBoat(), fromDate);
+ query.add("user.company", getCompany());
+ result = query.executeCount();
+
transaction.closeContext();
} catch (Exception eee) {
SuiviObsmerContext.serviceException(transaction,
Added: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactDAOImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactDAOImpl.java (rev 0)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactDAOImpl.java 2010-01-04 11:24:57 UTC (rev 162)
@@ -0,0 +1,71 @@
+package fr.ifremer.suiviobsmer.entity;
+
+import fr.ifremer.suiviobsmer.bean.ContactState;
+import java.util.Date;
+import org.nuiton.topia.framework.TopiaQuery;
+import org.nuiton.topia.framework.TopiaQuery.Op;
+
+
+/**
+ * ContactDAOImpl
+ *
+ * Created: 21 déc. 2009
+ *
+ * @param <E>
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+public class ContactDAOImpl<E extends Contact> extends ContactDAOAbstract<E> {
+
+ /**
+ * Create the query for the last contact of the boat and company.
+ *
+ * @param boat the boat concerned by the contact
+ * @param company the company concerned by the user who create the contact
+ * @return the TopiaQuery created
+ */
+ @Override
+ public TopiaQuery<E> createQueryLastContactForBoat(Boat boat, Company company) {
+ TopiaQuery<E> query = createQuery("C1").
+ add("C1.boat", boat).
+ add("C1.user.company = :company").
+ addParam("company", company);
+
+ TopiaQuery<E> subquery = createQuery("C2").
+ addSelect("MAX(C2.topiaCreateDate)").
+ add("C2.boat = C1.boat").
+ add("C2.user.company = :company");
+
+ query.add("C1.topiaCreateDate = (" + subquery.fullQuery() + ")");
+ return query;
+ }
+
+ /**
+ * Create the query for contacts linked with a boat with BoardingDone state since the fromDate.
+ * This query is used to get all boarding dones with the boat for all companies.
+ * Only the validate contacts by company will be count. The param fromDate can be null,
+ * in this case, all contacts will be given (no matter which date then started).
+ *
+ * @param boat the boat concerned by the contact
+ * @param fromDate the date to start
+ * @return the TopiaQuery created
+ */
+ @Override
+ public TopiaQuery<E> createQueryDoneContactsFromDate(Boat boat, Date fromDate) {
+ TopiaQuery<E> query = createQuery().
+ add("boat", boat).
+ add("state", ContactState.BOARDING_DONE.toString()).
+ add("validationCompany", Boolean.TRUE).
+ add("validationProgram IS NULL OR validationProgram = :booleanTrue").
+ addParam("booleanTrue", Boolean.TRUE);
+
+ if (fromDate != null) {
+ query.add("tideBeginDate", Op.GE, fromDate);
+ }
+ return query;
+ }
+
+} //ContactDAOImpl<E extends Contact>
Property changes on: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ContactDAOImpl.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProgramImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProgramImpl.java 2009-12-29 12:17:31 UTC (rev 161)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/entity/ProgramImpl.java 2010-01-04 11:24:57 UTC (rev 162)
@@ -23,10 +23,10 @@
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
import fr.ifremer.suiviobsmer.SuiviObsmerException;
+import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper;
import org.nuiton.topia.framework.TopiaQuery;
import org.nuiton.topia.framework.TopiaQuery.Op;
import java.io.Serializable;
-import java.text.NumberFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
@@ -124,12 +124,12 @@
Calendar begin = getCalendarBegin();
int year = begin.get(Calendar.YEAR);
-
- TopiaQuery query = new TopiaQuery(SampleRow.class).
- add(SampleRow.CODE, Op.LIKE, year + "_%");
- String maxCode = query.executeToString(transaction, "MAX(" + SampleRow.CODE + ")");
+ SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction);
+ TopiaQuery<SampleRow> query = dao.createQuery().add(SampleRow.CODE, Op.LIKE, year + "_%");
+ String maxCode = query.executeToString("MAX(" + SampleRow.CODE + ")");
+
if (log.isDebugEnabled()) {
log.debug("Max code found : " + maxCode);
}
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java 2009-12-29 12:17:31 UTC (rev 161)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImport.java 2010-01-04 11:24:57 UTC (rev 162)
@@ -25,7 +25,6 @@
import com.csvreader.CsvReader;
import fr.ifremer.suiviobsmer.entity.ActivityCalendar;
import fr.ifremer.suiviobsmer.entity.ActivityCalendarDAO;
-import fr.ifremer.suiviobsmer.entity.ActivityCalendarImpl;
import fr.ifremer.suiviobsmer.entity.ActivityMonth;
import fr.ifremer.suiviobsmer.entity.ActivityMonthDAO;
import fr.ifremer.suiviobsmer.entity.ActivityProfession;
@@ -33,6 +32,7 @@
import fr.ifremer.suiviobsmer.entity.ActivityZone;
import fr.ifremer.suiviobsmer.entity.ActivityZoneDAO;
import fr.ifremer.suiviobsmer.entity.Boat;
+import fr.ifremer.suiviobsmer.entity.BoatDAO;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
@@ -49,10 +49,7 @@
import java.util.Map;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.time.DurationFormatUtils;
-import org.hibernate.SQLQuery;
import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.framework.TopiaContextImplementor;
-import org.nuiton.topia.framework.TopiaQuery;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -159,7 +156,7 @@
Map<ActivityCalendarKey, ActivityCalendar> availableCalendars = new HashMap<ActivityCalendarKey, ActivityCalendar>();
- //BoatDAO boatDAO = SuiviObsmerModelDAOHelper.getBoatDAO(transaction);
+ BoatDAO boatDAO = SuiviObsmerModelDAOHelper.getBoatDAO(transaction);
ActivityCalendarDAO calendarDAO = SuiviObsmerModelDAOHelper.getActivityCalendarDAO(transaction);
ActivityMonthDAO monthDAO = SuiviObsmerModelDAOHelper.getActivityMonthDAO(transaction);
ActivityProfessionDAO professionDAO = SuiviObsmerModelDAOHelper.getActivityProfessionDAO(transaction);
@@ -179,7 +176,7 @@
// "SELECT * FROM boat WHERE immatriculation = " + boatImmatriculation);
//
// Boat boat = (Boat)query.addEntity(BoatImpl.class).uniqueResult();
- Boat boat = new TopiaQuery(Boat.class).add(Boat.IMMATRICULATION, boatImmatriculation).executeToEntity(transaction);
+ Boat boat = boatDAO.findByImmatriculation(boatImmatriculation); //.add(Boat.IMMATRICULATION, boatImmatriculation).executeToEntity(transaction);
// long tic2 = System.currentTimeMillis();
// log.info("findByImmatriculation : " + (tic2 - tic1));
@@ -201,10 +198,9 @@
//
// calendar = (ActivityCalendar)query.addEntity(ActivityCalendarImpl.class).uniqueResult();
- calendar = new TopiaQuery(ActivityCalendar.class).
- add(ActivityCalendar.BOAT, boat).
- add(ActivityCalendar.YEAR, year).
- executeToEntity(transaction);
+ calendar = calendarDAO.findByProperties(
+ ActivityCalendar.BOAT, boat,
+ ActivityCalendar.YEAR, year);
// Create it if not exist in Database
if (calendar == null) {
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2009-12-29 12:17:31 UTC (rev 161)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-04 11:24:57 UTC (rev 162)
@@ -22,7 +22,6 @@
package fr.ifremer.suiviobsmer.impl;
import com.csvreader.CsvReader;
-import fr.ifremer.suiviobsmer.QueryBuilder;
import fr.ifremer.suiviobsmer.SuiviObsmerBusinessException;
import fr.ifremer.suiviobsmer.SuiviObsmerBusinessException.Type;
import fr.ifremer.suiviobsmer.SuiviObsmerContext;
@@ -83,7 +82,8 @@
try {
transaction = rootContext.beginTransaction();
- TopiaQuery query = new TopiaQuery(Boat.class.getName() + " B").addSelect("B");
+ BoatDAO dao = SuiviObsmerModelDAOHelper.getBoatDAO(transaction);
+ TopiaQuery<Boat> query = dao.createQuery("B");
// Immatriculation
if (filter.getBoatImmatriculation() != null) {
@@ -108,7 +108,7 @@
// Add join for ElligibleBoat
if (sampleRowFiltered) {
String elligibleBoatClassName = ElligibleBoat.class.getName();
- query.addFrom(elligibleBoatClassName + " E").add("E.boat = B");
+ query.addSelect("B").addFrom(elligibleBoatClassName + " E").add("E.boat = B");
}
// SampleRowCode
if (sampleRowCodeFiltered) {
@@ -128,7 +128,7 @@
addParam("booleanTrue", Boolean.TRUE);
}
- results = query.executeToEntityMap(transaction, Boat.class, Boat.IMMATRICULATION, Integer.class);
+ results = query.executeToEntityMap(Boat.IMMATRICULATION, Integer.class);
transaction.closeContext();
} catch (Exception eee) {
@@ -197,9 +197,10 @@
}
// Last contact
- TopiaQuery query = QueryBuilder.createQueryLastContactForBoat(boat, company).
- addLoad(Contact.SAMPLE_ROW, Contact.USER);
- Contact contact = query.executeToEntity(transaction, Contact.class);
+ ContactDAO contactDAO = SuiviObsmerModelDAOHelper.getContactDAO(transaction);
+ Contact contact = contactDAO.createQueryLastContactForBoat(boat, company).
+ addLoad(Contact.SAMPLE_ROW, Contact.USER).
+ executeToEntity();
if (contact != null) {
result.setLastContact(contact);
@@ -377,7 +378,7 @@
//
// long tic1 = System.currentTimeMillis();
-// boatDAO.findByImmatriculation(immatriculation);
+ Boat boat = boatDAO.findByImmatriculation(immatriculation);
// long tic2 = System.currentTimeMillis();
// if (log.isDebugEnabled()) {
// log.debug("findByImmatriculation : " + (tic2 - tic1));
@@ -391,7 +392,7 @@
// }
// tic1 = System.currentTimeMillis();
- Boat boat = new TopiaQuery(Boat.class).add(Boat.IMMATRICULATION, immatriculation).executeToEntity(transaction);
+ //Boat boat = new TopiaQuery(Boat.class).add(Boat.IMMATRICULATION, immatriculation).executeToEntity(transaction);
// tic2 = System.currentTimeMillis();
// if (log.isDebugEnabled()) {
// log.debug("findByImmatriculation TopiaQuery : " + (tic2 - tic1));
@@ -414,7 +415,8 @@
// If not available, select it from database
if (shipOwner == null) {
- shipOwner = new TopiaQuery(ShipOwner.class).add(ShipOwner.CODE, shipOwnerCode).executeToEntity(transaction);
+ //shipOwner = new TopiaQuery(ShipOwner.class).add(ShipOwner.CODE, shipOwnerCode).executeToEntity(transaction);
+ shipOwner = shipOwnerDAO.findByCode(shipOwnerCode);
// If not exist yet, create it
if (shipOwner == null) {
@@ -488,11 +490,12 @@
try {
transaction = rootContext.beginTransaction();
- String activityCalendarClassName = ActivityCalendar.class.getName();
- TopiaQuery query = new TopiaQuery(activityCalendarClassName + " A").
+ ActivityCalendarDAO dao = SuiviObsmerModelDAOHelper.getActivityCalendarDAO(transaction);
+
+ TopiaQuery<ActivityCalendar> query = dao.createQuery("A").
add("A.boat", boat);
- TopiaQuery subquery = new TopiaQuery(activityCalendarClassName + " B").
+ TopiaQuery<ActivityCalendar> subquery = dao.createQuery("B").
addSelect("MAX(B.year)").
add("B.boat = A.boat").
addGroup("B.boat");
@@ -500,7 +503,7 @@
query.add("A.year = (" + subquery.fullQuery() + ")");
query.addLoad(ActivityCalendar.BOAT);
- result = query.executeToEntity(transaction, ActivityCalendar.class);
+ result = query.executeToEntity(transaction);
// load other complex data from collections
List<ActivityMonth> months = result.getActivityMonth();
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2009-12-29 12:17:31 UTC (rev 161)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-04 11:24:57 UTC (rev 162)
@@ -70,14 +70,15 @@
try {
transaction = rootContext.beginTransaction();
- TopiaQuery query = new TopiaQuery(Contact.class).addOrderDesc(TopiaEntity.TOPIA_CREATE_DATE);
+ ContactDAO dao = SuiviObsmerModelDAOHelper.getContactDAO(transaction);
+ TopiaQuery<Contact> query = dao.createQuery().addOrderDesc(TopiaEntity.TOPIA_CREATE_DATE);
if (company != null) {
query.add("user.company", company);
}
query.addLoad("user.company", "sampleRow.program", "sampleRow.profession", "sampleRow.company");
- results = query.executeToEntityMap(transaction, Contact.class);
+ results = query.executeToEntityMap();
transaction.closeContext();
} catch (Exception eee) {
Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java
===================================================================
--- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2009-12-29 12:17:31 UTC (rev 161)
+++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-04 11:24:57 UTC (rev 162)
@@ -237,14 +237,15 @@
Date current = SuiviObsmerContext.getCurrentDate();
+ SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction);
// Only rows which are not finished will be kept
- TopiaQuery query = new TopiaQuery(SampleRow.class).add("program.periodEnd", Op.GE, current);
+ TopiaQuery<SampleRow> query = dao.createQuery().add("program.periodEnd", Op.GE, current);
if (!user.getAdmin()) {
query.add(SampleRow.COMPANY, user.getCompany());
}
- results = query.executeToEntityList(transaction, SampleRow.class);
+ results = query.executeToEntityList();
// SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction);
//
Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo
===================================================================
(Binary files differ)
1
0