Changeset 129 for ether_megapoli/trunk/web/src
- Timestamp:
- 07/25/11 21:20:23 (13 years ago)
- Location:
- ether_megapoli/trunk/web/src
- Files:
-
- 3 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
ether_megapoli/trunk/web/src/ApplicationResources.properties
r89 r129 84 84 #data.upload.coordinator=En tant que coordinateur du projet, vous pouvez : 85 85 #data.upload.member=Vous \u00EAtes membre du projet. 86 data.upload.howto=Pour d\u00E9poser de nouvelles donn\u00E9es sur le serveur, veuillez suivre la d\u00E9marche suivante \: <ul><li>Mettez \u00E0 jour le fichier de m\u00E9tadonn\u00E9es associ\u00E9 au jeu de donn\u00E9es (cliquez sur le lien correspondant dans l'arborescence pour acc\u00E9der au formulaire),</li><li>T\u00E9l\u00E9chargez vos fichiers de donn\u00E9es, dans le dossier correspondant au jeu de donn\u00E9es ad\u00E9quat,</li><li>Envoyez un com.medias.mail au <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler ce nouveau d\u00E9p\u00F4t \: il lancera alors la proc\u00E9dure d'int\u00E9gration des donn\u00E9es.</li></ul>86 data.upload.howto=Pour d\u00E9poser de nouvelles donn\u00E9es sur le serveur, veuillez suivre la d\u00E9marche suivante \: <ul><li>Mettez \u00E0 jour le fichier de m\u00E9tadonn\u00E9es associ\u00E9 au jeu de donn\u00E9es (cliquez sur le lien correspondant dans l'arborescence pour acc\u00E9der au formulaire),</li><li>T\u00E9l\u00E9chargez vos fichiers de donn\u00E9es, dans le dossier correspondant au jeu de donn\u00E9es ad\u00E9quat,</li><li>Envoyez un com.medias.mail au <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler ce nouveau d\u00E9p\u00F4t \: il lancera alors la proc\u00E9dure d'int\u00E9gration des donn\u00E9es.</li></ul> 87 87 data.upload.deleteSet=Supprimer ce jeu de donn\u00E9es. 88 88 data.upload.deleteFile=Supprimer ce fichier. … … 107 107 108 108 data.upload.metadata=M\u00E9tadonn\u00E9es 109 data.upload.metadata.inc=\u00E0 compl\u00E9ter 110 data.upload.metadata.comp=complet 109 111 data.upload.metadata.link=Mettre \u00E0 jour les m\u00E9tadonn\u00E9es 110 112 data.upload.metadata.title=M\u00E9tadonn\u00E9es pour le jeu 111 data.upload.metadata.intro=Veuillez s'il vous pla\u00EEt compl\u00E9ter ce formulaire le plus pr\u00E9cis\u00E9ment possible. Il permettra aux int\u00E9grateurs de recueillir les informations dont ils ont besoin pour enregistrer les donn\u00E9es dans la base. 113 data.upload.metadata.intro=Veuillez s'il vous pla\u00EEt compl\u00E9ter ce formulaire le plus pr\u00E9cis\u00E9ment possible. Il permettra aux int\u00E9grateurs de recueillir les informations dont ils ont besoin pour enregistrer les donn\u00E9es dans la base. 112 114 data.upload.metadata.presentation=PRESENTATION GENERALE 113 data.upload.metadata.presentation.link=Pr ï¿œsentation gï¿œnï¿œrale115 data.upload.metadata.presentation.link=Pr\u00E9sentation g\u00E9n\u00E9rale 114 116 data.upload.metadata.presentation.nom=Nom du jeu 115 117 data.upload.metadata.presentation.def=Description … … 139 141 data.upload.metadata.integration.size=Taille totale des fichiers d\u00E9j\u00E0 trait\u00E9s 140 142 data.upload.metadata.contenu_actuel=CONTENU ACTUEL 141 data.upload.metadata.contact=Contact 143 data.upload.metadata.contact=Contact 142 144 data.upload.metadata.contact.nom=Nom 143 145 data.upload.metadata.contact.prenom=Pr\u00E9nom … … 148 150 data.upload.metadata.parametres=Param\u00E8tres 149 151 data.upload.metadata.param=Param\u00E8tre 150 data.upload.metadata.param.nom=D\u00E9signation 152 data.upload.metadata.param.cat=Cat\u00E9gorie 153 data.upload.metadata.param.nom=Nom 151 154 data.upload.metadata.param.abrev=Abr\u00E9viation 152 155 data.upload.metadata.param.unite=Unit\u00E9 de mesure … … 165 168 data.upload.metadata.plat.img=Illustrations 166 169 data.upload.metadata.plat.img.show=Afficher l'illustration 167 data.upload.metadata.plat.latlon.format=<i>(En degr\u00E9s d\u00E9cimaux)</i> 170 data.upload.metadata.plat.lat.format=<i>(En degr\u00E9s d\u00E9cimaux [-90,90])</i> 171 data.upload.metadata.plat.lon.format=<i>(En degr\u00E9s d\u00E9cimaux [-180,180])</i> 168 172 data.upload.metadata.plat.latmin=Latitude minimale 169 173 data.upload.metadata.plat.lonmin=Longitude minimale … … 172 176 data.upload.metadata.plat.lonmax=Longitude maximale 173 177 data.upload.metadata.plat.altmax=Altitude maximale 178 data.upload.metadata.nomoth=ou autre 174 179 data.upload.plat.optional=<i>(Obligatoire pour les plates-formes fixes)</i> 175 180 data.upload.metadata.time.date=Date … … 193 198 data.access.jeux=Les jeux de donn\u00E9es 194 199 data.access.jeux2=Jeux associ\u00E9s 200 data.access.jeux3=jeu 201 data.access.jeux4=jeux 195 202 data.access.param=Les param\u00E8tres 196 203 data.access.param1=Param\u00E8tre 197 data.access.param2=param\u00E8tre s204 data.access.param2=param\u00E8tre{0} 198 205 data.access.param3=Param\u00E8tres associ\u00E9s 199 206 data.access.param4=D\u00E9tail du param\u00E8tre 200 207 data.access.capt=Les capteurs 201 208 data.access.capt1=Capteur 202 data.access.capt2=capteur s209 data.access.capt2=capteur{0} 203 210 data.access.capt3=Capteurs associ\u00E9s 204 211 data.access.capt4=D\u00E9tail du capteur 205 212 data.access.plat=Les plates-formes 206 213 data.access.plat1=Plate-forme 207 data.access.plat2=plate s-formes214 data.access.plat2=plate{0}-forme{0} 208 215 data.access.plat3=Plates-formes associ\u00E9es 209 216 data.access.plat4=D\u00E9tail de la plate-forme … … 239 246 data.access.metadata.presentation.contact.role.scientifique=Responsable scientifique 240 247 data.access.metadata.presentation.contact.role.technique=Responsable technique 241 data.access.metadata.file=<i>{0} fichiers valid\u00E9s</i> 242 data.access.metadata.file.one=<i>{0} fichier valid\u00E9</i> 243 data.access.metadata.file.sameDate=<i>le {0}</i> 244 data.access.metadata.file.differentDate=<i>entre le {0} et le {1}</i> 248 data.access.metadata.file=fichier{0} trait\u00E9{0} 249 data.access.metadata.file.sameDate=le {0} 250 data.access.metadata.file.differentDate=entre le {0} et le {1} 245 251 data.access.metadata.title=M\u00E9tadonn\u00E9es pour le jeu 246 252 data.access.metadata.intro= … … 248 254 data.access.metadata.datefin=Date de la derni\u00E8re mesure 249 255 data.access.metadata.heure=\u00E0 250 data.access.metadata.nbfichiers=com.medias.Nombre de fichiers 256 data.access.metadata.nbfichiers=com.medias.Nombre de fichiers trait?s 257 data.access.metadata.fichierslink=acc\u00E8s aux donn\u00E9es brutes 251 258 data.access.metadata.nbmesures=com.medias.Nombre de mesures 252 259 data.access.metadata.plat.type=Type de plate-forme 253 260 data.access.metadata.param.cat=Cat\u00E9gorie GCMD 254 data.access.files.zero=Aucun fichier valid\u00E9 pour ce jeu261 data.access.files.zero=Aucun fichier trait\u00E9 pour ce jeu 255 262 app.access.back=Retour \u00E0 la liste des jeux 256 263 app.access.plat.back=Liste des plates-formes … … 267 274 data.access.metadata.unavailable=M\u00E9tadonn\u00E9es non disponibles 268 275 data.access.files.dowload.com.medias.zip=T\u00E9l\u00E9charger tous les fichiers du jeu {0} 276 data.access.files=Fichiers trait\u00E9s 277 data.access.files2=Fichiers trait\u00E9s pour le jeu {0} 278 data.access.files3=fichier{0} trait\u00E9{0} 269 279 270 280 data.download=T\u00E9l\u00E9chargement … … 297 307 com.medias.mail.content4=\n\nVous pouvez consulter le d\u00E9tail ici\: " 298 308 com.medias.mail.content5=".\nVotre nom d'utilisateur est \: 299 com.medias.mail.content6=,\nVotre mot de passe est \: 300 com.medias.mail.content7=\n\n1) V\u00E9rifiez si les informations de m\u00E9tadonn\u00E9es associ\u00E9es au jeu " 301 com.medias.mail.content8=" sont correctes (en cliquant sur le lien "M\u00E9tadonn\u00E9es"),\n2) Chargez vos fichiers de donn\u00E9es associ\u00E9es au jeu. Pour cela, cliquez sur le bouton juste en dessous du lien "M\u00E9tadonn\u00E9es", choisissez un fichier, puis cliquez sur "D\u00E9poser". En cas de probl\u00E8me, veuillez contacter le webmaster (mailto\:vincent.pignot@aero.obs-mip.fr).\n\nA bient\u00F4t,\n\n 302 com.medias.mail.content9=est " 309 com.medias.mail.content6=\nVotre mot de passe est \: 310 com.medias.mail.content7=\n\n1) Cliquez sur le lien "M\u00E9tadonn\u00E9es" pour compl\u00E9ter les m\u00E9tadonn\u00E9es correspondant au jeu " 311 com.medias.mail.content8=" ou v\u00E9rifiez si les informations d\u00E9j\u00E0 renseign\u00E9es sont correctes,\n2) Chargez vos fichiers de donn\u00E9es associ\u00E9es au jeu. Pour cela, cliquez sur le bouton juste en dessous du lien "M\u00E9tadonn\u00E9es", choisissez un fichier, puis cliquez sur "D\u00E9poser". En cas de probl\u00E8me, veuillez contacter le webmaster (mailto\: 312 com.medias.mail.content9=).\n\nA bient\u00F4t,\n\n 313 com.medias.mail.content10=est " 314 315 unit.deg=\u00B0 303 316 304 317 # ===================================== ERRORS ========================================== … … 322 335 errors.init.failed=Echec \u00E0 l'initialisation de l'application \: vous ne pourrez pas d\u00E9poser de nouveaux fichiers de donn\u00E9es sur le serveur \!<br> 323 336 324 errors.logon.failed=Echec de l'op\u00E9ration d'authentification.<br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>325 errors.logon.notFound=Ce login et/ou ce mot de passe sont inconnus.<br> Si vous voulez vous enregistrer pour obtenir l'acc\u00E8s aux zones prot\u00E9g\u00E9es du site, veuillez \u00E9crire un com.medias.mail au <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a>. <br>337 errors.logon.failed=Echec de l'op\u00E9ration d'authentification.<br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 338 errors.logon.notFound=Ce login et/ou ce mot de passe sont inconnus.<br> Si vous voulez vous enregistrer pour obtenir l'acc\u00E8s aux zones prot\u00E9g\u00E9es du site, veuillez \u00E9crire un com.medias.mail au <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a>. <br> 326 339 errors.logon.login=Veuillez saisir votre login (normalement : votre com.medias.mail).<br> 327 340 errors.logon.pwd=Veuillez saisir votre mot de passe.<br> 328 341 329 errors.upload.file=Vous devez s\u00E9lectionner un fichier !<br>342 errors.upload.file=Vous devez s\u00E9lectionner un fichier\!<br> 330 343 errors.upload.failed=Echec du d\u00E9p\u00F4t...<br> 331 344 errors.upload.metadata.presentation.nom=Veuillez donner un nom au jeu de donn\u00E9es\!<br> … … 338 351 errors.upload.prepareTree.failed=Echec de chargement de la page de d\u00E9p\u00F4t<br>Veuillez r\u00E9essayer 339 352 340 errors.upload.newSet.failed=Echec \u00E0 la cr\u00E9ation du jeu... <br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>353 errors.upload.newSet.failed=Echec \u00E0 la cr\u00E9ation du jeu... <br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 341 354 errors.upload.newSet.failed2=Le jeu {0} existe d\u00E9j\u00E0, veuillez saisir un autre nom.<br> 342 errors.upload.newSet.updateAnnu.failed=Echec \u00E0 l'enregistrement des contacts... <br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>343 errors.upload.newSet.senMails.failed=Echec \u00E0 l'envoi des mails de confirmation pour la cr\u00E9ation du jeu... <br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>344 errors.upload.deleteSet.failed=Echec \u00E0 la suppression du jeu... <br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>345 errors.upload.deleteFile.failed=Echec \u00E0 la suppression du fichier... <br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>355 errors.upload.newSet.updateAnnu.failed=Echec \u00E0 l'enregistrement des contacts... <br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 356 errors.upload.newSet.senMails.failed=Echec \u00E0 l'envoi des mails de confirmation pour la cr\u00E9ation du jeu... <br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 357 errors.upload.deleteSet.failed=Echec \u00E0 la suppression du jeu... <br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 358 errors.upload.deleteFile.failed=Echec \u00E0 la suppression du fichier... <br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 346 359 347 360 errors.upload.metadata.notfound=Le fichier n'a pas \u00E9t\u00E9 trouv\u00E9...<br> 348 errors.upload.updateMetadata.failed=Echec de la mise \u00E0 jour de la m\u00E9tadonn\u00E9e...<br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>349 errors.upload.metadata.addPlat.failed=Echec \u00E0 l'ajout d'une nouvelle plate-forme...<br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>350 errors.upload.metadata.deletePlat.failed=Echec \u00E0 la suppression de la plate-forme...<br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>351 errors.upload.metadata.addParam.failed=Echec \u00E0 l'ajout d'un nouveau param\u00E8tre...<br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>352 errors.upload.metadata.deleteParam.failed=Echec \u00E0 la suppression du param\u00E8tre...<br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>353 errors.upload.metadata.addCapt.failed=Echec \u00E0 l'ajout d'un nouveau capteur...<br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>354 errors.upload.metadata.deleteCapt.failed=Echec \u00E0 la suppression du capteur...<br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>361 errors.upload.updateMetadata.failed=Echec de la mise \u00E0 jour de la m\u00E9tadonn\u00E9e...<br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 362 errors.upload.metadata.addPlat.failed=Echec \u00E0 l'ajout d'une nouvelle plate-forme...<br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 363 errors.upload.metadata.deletePlat.failed=Echec \u00E0 la suppression de la plate-forme...<br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 364 errors.upload.metadata.addParam.failed=Echec \u00E0 l'ajout d'un nouveau param\u00E8tre...<br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 365 errors.upload.metadata.deleteParam.failed=Echec \u00E0 la suppression du param\u00E8tre...<br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 366 errors.upload.metadata.addCapt.failed=Echec \u00E0 l'ajout d'un nouveau capteur...<br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 367 errors.upload.metadata.deleteCapt.failed=Echec \u00E0 la suppression du capteur...<br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 355 368 356 369 errors.upload.updateMetadata.failed.contact_pi=Il ne peut y avoir qu'un seul contact scientifique pour un jeu de donn\u00E9es … … 371 384 errors.upload.updateMetadata.failed.lonbound=Vous devez saisir une longitude maximale sup\u00E9rieure ou \u00E9gale \u00E0 la longitude minimale 372 385 errors.upload.updateMetadata.failed.altbound=Vous devez saisir une altitude maximale sup\u00E9rieure ou \u00E9gale \u00E0 l'altitude minimale 373 374 errors.access.send.failed=Impossibilit\u00E9 de t\u00E9l\u00E9charger le fichier en question ... <br> Veuillez contacter le <a href\="mailto\: vincent.pignot@aero.obs-mip.fr?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br>386 errors.zipgame.failed=Echec lors de la cr\u00E9ation de l'archive 387 errors.access.send.failed=Impossibilit\u00E9 de t\u00E9l\u00E9charger le fichier en question ... <br> Veuillez contacter le <a href\="mailto\:{0}?subject\=[MEGAPOLI]">webmaster</a> pour lui signaler le probl\u00E8me.<br> 375 388 376 389 errors.access.requete.fail=La requ\u00EAte n'a pas aboutie 377 378 390 379 391 ################################################################ … … 405 417 data.visualization.button.download.info=(fichier .tgz) 406 418 data.visualization.loading.data=Chargement des donn\u00E9es 419 data.visualization.quicklook=Quicklook 407 420 408 421 simulation.visualization=Visualisation des simulations 422 423 ####################### PLOT ####################### 424 plot.published=Publi\u00E9 le 425 plot.dataNumber=Nombre de donn\u00E9es extraites : -
ether_megapoli/trunk/web/src/ApplicationResources_en.properties
r89 r129 404 404 data.visualization.button.download.info=(file .tgz) 405 405 data.visualization.loading.data=Data downloading 406 data.visualization.quicklook=Quicklook 406 407 407 408 simulation.visualization=Simulations visualization 409 410 ####################### PLOT ####################### 411 plot.published=Published 412 plot.dataNumber=Number of extracted datas : -
ether_megapoli/trunk/web/src/com/ether/Controller.java
r89 r129 6 6 import com.medias.database.objects.Parametre; 7 7 import com.medias.database.objects.Plateforme; 8 import com.sun.org.apache.xml.internal.security.utils.Base64;9 import gov.noaa.pmel.sgt.swing.JPlotLayout;10 8 import net.sf.json.JSONObject; 11 9 import org.apache.commons.logging.Log; 12 10 import org.apache.commons.logging.LogFactory; 13 11 import org.jetbrains.annotations.NotNull; 14 import org.jetbrains.annotations.Nullable;15 12 import org.springframework.beans.factory.annotation.Required; 16 13 import org.springframework.web.servlet.ModelAndView; 17 import com.ether.tutorial.src.tutorial.Example1;18 14 19 15 import javax.servlet.http.HttpServletRequest; 20 16 import javax.servlet.http.HttpServletResponse; 21 import javax.swing.*;22 import java.awt.*;23 import java.io.FileWriter;24 import java.io.IOException;25 import java.text.ParseException;26 import java.util.Date;27 17 import java.util.HashMap; 28 18 import java.util.List; … … 33 23 * @date 17 feb 2011 34 24 */ 35 public class Controller extends ControllerEther 25 public class Controller 26 extends ControllerEther 36 27 { 37 28 /** *********************************************************** **/ … … 39 30 /** *********************************************************** **/ 40 31 // Default view if methodName is unknown 41 public ModelAndView home( final HttpServletRequest request, final HttpServletResponse response)32 public ModelAndView home( final HttpServletRequest request, final HttpServletResponse response ) 42 33 throws WebException 43 34 { 44 return new ModelAndView( "index");35 return new ModelAndView( "index" ); 45 36 } 46 37 … … 59 50 60 51 final Map<String, Object> model = new HashMap<String, Object>(); 61 model.put( "plateforms", getJsonHelper().toJSON( plateforms) );52 model.put( "plateforms", getJsonHelper().toJSON( plateforms ) ); 62 53 return model; 63 54 } … … 65 56 /** *********************************************************** **/ 66 57 /** *********************** CALLS ***************************** **/ 67 /** ********************************************************** ***/58 /** ********************************************************** **/ 68 59 @ControllerMethod(jsonResult = true) 69 public JSONObject searchParametersByPlateform( @Mandatory @ParamName(ParameterConstants.PARAMETER_ID) final Integer plateformId)60 public JSONObject searchParametersByPlateform( @Mandatory @ParamName(ParameterConstants.PARAMETER_ID) final Integer plateformId ) 70 61 throws ServiceException, WebException 71 62 { 72 final List<Parametre> parametersByPlateform = _etherService.getParametersByPlateformId( plateformId);63 final List<Parametre> parametersByPlateform = _etherService.getParametersByPlateformId( plateformId ); 73 64 74 65 final JSONObject result = new JSONObject(); 75 result.put( ParameterConstants.PARAMETER_PARAMETERS, getJsonHelper().toJSON( parametersByPlateform) );66 result.put( ParameterConstants.PARAMETER_PARAMETERS, getJsonHelper().toJSON( parametersByPlateform ) ); 76 67 return result; 77 68 } 78 69 79 @ControllerMethod(jsonResult = true)80 public JSONObject searchDatasByPlateformByParameterByPeriod(81 @Mandatory @ParamName(ParameterConstants.PARAMETER_PLATEFORM_ID) final Integer plateformId,82 @Mandatory @ParamName(ParameterConstants.PARAMETER_PARAMETER_ID) final Integer parameterId,83 @ParamName(ParameterConstants.PARAMETER_DATE_BEGIN) final String dateBegin,84 @ParamName(ParameterConstants.PARAMETER_DATE_END) final String dateEnd)85 throws ServiceException, WebException, ParseException86 {87 final String pofBegin = "2009-07-13 13:00";88 final String pofEnd = "2009-07-13 14:00";89 final Date formatedDateBegin = DateHelper.parseDate(pofBegin, DateHelper.ENGLISH_DATE_PATTERN);90 final Date formatedDateEnd = DateHelper.parseDate(pofEnd, DateHelper.ENGLISH_DATE_PATTERN);91 92 final Plateforme plateform = _etherService.getPlateformById(plateformId);93 final Parametre parameter = _etherService.getParameterById(parameterId);94 final List<Data> values = _etherService.getValuesByPlateformByParameterByPeriod(plateformId, parameterId, formatedDateBegin, formatedDateEnd);95 96 JPlotLayout layout = createLayout(plateform.getPlateformeNom(), parameter.getParametreNom());97 98 return new JSONObject();99 }100 101 private JPlotLayout createLayout(@Nullable final String plateformName, @Nullable final String parameterName)102 {103 final JFrame frame = new JFrame ("Frame principale");104 final JPanel panel = new JPanel(new BorderLayout());105 106 final JLabel jlbHelloWorld = new JLabel("Hello World");107 panel.add(jlbHelloWorld, BorderLayout.SOUTH);108 109 final ImageIcon ic = new ImageIcon ("kerropi1.jpg");110 final JLabel jLabel = new JLabel (ic);111 panel.add(jLabel, BorderLayout.EAST);112 113 final JPlotLayout jPlotLayout = new JPlotLayout(false, false, false,"Trajectory data",null,false);114 jPlotLayout.setTitles(plateformName, parameterName, "title3");115 // jPlotLayout.setTitleHeightP(0.2, 0.2);116 jPlotLayout.setVisible(true);117 panel.add(jPlotLayout, BorderLayout.NORTH);118 119 panel.setVisible(true);120 frame.setContentPane(panel);121 122 frame.setSize(700,550);123 frame.setVisible(true);124 125 return jPlotLayout;126 }127 128 // @ControllerMethod(jsonResult = true)129 // public JSONObject searchDatasByPlateformByParameterByPeriod(130 // @Mandatory @ParamName(ParameterConstants.PARAMETER_PLATEFORM_ID) final Integer plateformId,131 // @Mandatory @ParamName(ParameterConstants.PARAMETER_PARAMETER_ID) final Integer parameterId,132 // @ParamName(ParameterConstants.PARAMETER_DATE_BEGIN) final String dateBegin,133 // @ParamName(ParameterConstants.PARAMETER_DATE_END) final String dateEnd)134 // throws ServiceException, WebException, ParseException135 // {136 // final long time1 = Calendar.getInstance().getTimeInMillis();137 // LOGGER.error("Date Controller begin : "+Calendar.getInstance().getTime());138 //// final Date formatedDateBegin = DateHelper.parseDate(dateBegin, DateHelper.ENGLISH_DATE_PATTERN_SHORT);139 //// final Date formatedDateEnd = DateHelper.parseDate(dateEnd, DateHelper.ENGLISH_DATE_PATTERN_SHORT);140 //141 // final Date formatedDateBegin = null;142 // final Date formatedDateEnd = null;143 //144 // final long time2 = Calendar.getInstance().getTimeInMillis();145 // LOGGER.error("Date Controller before request : "+Calendar.getInstance().getTime()+", Duration : "+(time2-time1));146 // final List<Data> values = _etherService.getValuesByPlateformByParameterByPeriod(plateformId, parameterId, formatedDateBegin, formatedDateEnd);147 // final long time3 = Calendar.getInstance().getTimeInMillis();148 // LOGGER.error("Date Controller after request : "+Calendar.getInstance().getTime()+", Duration : "+(time3-time2));149 //150 // final JSONObject result = new JSONObject();151 // result.put( ParameterConstants.PARAMETER_VALUES, values );152 // final long time4 = Calendar.getInstance().getTimeInMillis();153 // LOGGER.error("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");154 // LOGGER.error("Date Controller before return Result : "+Calendar.getInstance().getTime()+", Duration : "+(time4-time3)+", Total : "+(time4-time1)+", Taille : "+values.size());155 // LOGGER.error("plateformId : "+plateformId+", parameterId : "+parameterId);156 // LOGGER.error("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");157 // return result;158 // }159 160 // private void createPlot() {161 // JPlotLayout layout_ = new JPlotLayout(false, false, false,162 // "Trajectory data", null, false);163 // /*164 // * Batch changes to layout.165 // */166 // layout_.setBatch(true);167 // /*168 // * Set the titles.169 // */170 // layout_.setTitles(171 // "Steller's Sea Lion Climate Research Profiling Floats",172 // "Trajectories", "");173 // /*174 // * Change the title sizes from the defaults. (0.25, 0.15)175 // */176 // layout_.setTitleHeightP(0.2, 0.2);177 // /*178 // * Use a BorderLayout for the JFrame and and the JPlotLayout to the179 // * "Center". Pack the frame and make it visible.180 // */181 // JFrame pif = new JFrame();182 // pif.getContentPane().setLayout(new BorderLayout());183 // pif.getContentPane().add(layout_, BorderLayout.CENTER);184 // pif.pack();185 // pif.setVisible(true);186 // /*187 // * Read trajectory data from local file188 // */189 // SGTData data = readTrajectory("service/implementation/com/ether/tutorial/data/trajectory");190 // /*191 // * Add the trajectory data to the plot using the data title as the data192 // * description. The description is used in the LineKey.193 // */194 // layout_.addData(data, data.getTitle());195 // /*196 // * Read the North Pacific hi-resolution coastline and add it to the197 // * layout. Coastlines are handled differently by JPlotLayout. Coastlines198 // * are not used to compute the X and Y ranges and are always clipped to199 // * the axes.200 // */201 // // SGTLine coastLine = getCoastLine("support/npac_hi_rez", 120000);202 // // layout_.setCoastLine(coastLine);203 // /*204 // * Turn batching off. All batched changes to the JPlotLayout will now be205 // * executed.206 // */207 // layout_.setBatch(false);208 // }209 210 70 @Required 211 public void setEtherService( @NotNull final EtherService etherService)71 public void setEtherService( @NotNull final EtherService etherService ) 212 72 { 213 73 _etherService = etherService; -
ether_megapoli/trunk/web/src/com/ether/ControllerPlot.java
r119 r129 1 1 package com.ether; 2 2 3 import com.ether.annotation.ControllerMethod; 4 import com.ether.annotation.Mandatory; 5 import com.ether.annotation.ParamName; 6 import com.medias.database.objects.Parametre; 7 import com.medias.database.objects.Plateforme; 8 import com.sun.org.apache.xml.internal.security.utils.Base64; 9 import gov.noaa.pmel.sgt.swing.JPlotLayout; 10 import net.sf.json.JSONObject; 3 import com.medias.Context; 4 import gov.noaa.pmel.sgt.dm.SGTMetaData; 5 import gov.noaa.pmel.sgt.dm.SimpleLine; 6 import gov.noaa.pmel.util.GeoDateArray; 11 7 import org.apache.commons.logging.Log; 12 8 import org.apache.commons.logging.LogFactory; 13 9 import org.jetbrains.annotations.NotNull; 14 import org.jetbrains.annotations.Nullable; 15 import org.springframework.beans.factory.annotation.Required; 16 import org.springframework.web.servlet.ModelAndView; 17 import com.ether.tutorial.src.tutorial.Example1; 10 import org.springframework.context.ApplicationContext; 11 import org.springframework.web.context.support.WebApplicationContextUtils; 18 12 13 import javax.imageio.ImageIO; 14 import javax.servlet.ServletConfig; 15 import javax.servlet.ServletException; 16 import javax.servlet.http.HttpServlet; 19 17 import javax.servlet.http.HttpServletRequest; 20 18 import javax.servlet.http.HttpServletResponse; 21 import javax.swing.*; 22 import java.awt.*; 23 import java.io.FileWriter; 19 import java.awt.image.BufferedImage; 24 20 import java.io.IOException; 25 21 import java.text.ParseException; 26 22 import java.util.Date; 27 import java.util.HashMap;28 23 import java.util.List; 29 import java.util.Map;30 24 31 25 /** 32 26 * @author vmipsl 33 * @date 17 feb201127 * @date 17 june 2011 34 28 */ 35 public class Controller extends ControllerEther 29 public class ControllerPlot 30 extends HttpServlet 36 31 { 37 /** *********************************************************** **/ 38 /** *********************** VIEWS ***************************** **/ 39 /** *********************************************************** **/ 40 // Default view if methodName is unknown 41 public ModelAndView home(final HttpServletRequest request, final HttpServletResponse response) 42 throws WebException 32 public void init( final ServletConfig servletConfig ) 33 throws ServletException 43 34 { 44 return new ModelAndView("index"); 35 try 36 { 37 final ApplicationContext appContext = WebApplicationContextUtils.getRequiredWebApplicationContext( servletConfig.getServletContext() ); 38 _etherService = (EtherService) appContext.getBean( "etherService", EtherService.class ); 39 _etherPlotService = (EtherPlotService) appContext.getBean( "etherPlotService", EtherPlotService.class ); 40 } 41 catch( Throwable tx ) 42 { 43 LOGGER.error( "Error initializing EtherService.", tx ); 44 throw new ServletException( "Error initializing EtherService.", tx ); 45 } 45 46 } 46 47 47 @ControllerMethod(view = VIEW_VISUALIZATION) 48 public Map<String, Object> view() 49 throws ServiceException 48 /** 49 * Creates an image with the plot and send it to the response 50 * Call by a jsp with <img src="visualization/plotEther?...."> 51 * 52 * @param request 53 * @param response 54 * @throws ServletException 55 */ 56 public void doGet( final HttpServletRequest request, final HttpServletResponse response ) 57 throws ServletException 50 58 { 51 return new HashMap<String, Object>(); 59 try 60 { 61 final Integer plateformId = Integer.valueOf( request.getParameter( "plateformId" ) ); 62 final Integer parameterId = Integer.valueOf( request.getParameter( "parameterId" ) ); 63 final String dateBegin = request.getParameter( "dateBegin" ); 64 final String dateEnd = request.getParameter( "dateEnd" ); 65 final String pofBegin = "2009-07-13 13:00"; 66 final String pofEnd = "2009-07-14 14:00"; 67 final Date formatedDateBegin = DateHelper.parseDate( pofBegin, DateHelper.ENGLISH_DATE_PATTERN ); 68 final Date formatedDateEnd = DateHelper.parseDate( pofEnd, DateHelper.ENGLISH_DATE_PATTERN ); 69 70 //** ******************************************************************** **// 71 // TODO : replace List<Data> by List<value> and List<double> 72 //** ******************************************************************** **// 73 final List<Pair<Double, Date>> values = _etherService.getValuesByPlateformByParameterByPeriod( plateformId, parameterId, formatedDateBegin, formatedDateEnd ); 74 final double[] dataArray = extractDoubles( values ); 75 final Date[] dateValues = extractDates( values ); 76 77 final GeoDateArray dateArray = new GeoDateArray( dateValues ); 78 //** ******************************************************************** **// 79 //** ******************************************************************** **// 80 81 82 final SimpleLine data = new SimpleLine( dateArray, dataArray, "legend" ); 83 SGTMetaData meta = new SGTMetaData( "Longitude", "degrees East", false, false ); 84 data.setXMetaData( meta ); 85 86 meta = new SGTMetaData( "parameterName", "parameterUnit", false, false ); 87 data.setYMetaData( meta ); 88 89 final MegapoliPlot megapoliPlot = new MegapoliPlot(); 90 megapoliPlot.setTitle( "Mobilis LIDAR" ); 91 megapoliPlot.setData( data ); 92 93 final BufferedImage bufferedImage = _etherPlotService.createJPane( megapoliPlot, Context.getLocale( request ) ); 94 95 ImageIO.write( bufferedImage, "png", response.getOutputStream() ); 96 } 97 catch( IOException e ) 98 { 99 throw new ServletException( "Error : no possibity to write image in response", e ); 100 } 101 catch( ServiceException e ) 102 { 103 throw new ServletException( "Error : no possibility to extract data from base", e ); 104 } 105 catch( ParseException e ) 106 { 107 throw new ServletException( "Error : invalid dates, no parsing available", e ); 108 } 52 109 } 53 110 54 @ControllerMethod(view = VIEW_VISUALIZATION_PARAMETER_BY_PLATEFORM) 55 public Map<String, Object> viewParametersByPlateform() 56 throws ServiceException 111 // TODO : remove this code !! ultracrados ! 112 private double[] extractDoubles( @NotNull final List<Pair<Double, Date>> datas ) 57 113 { 58 final List<Plateforme> plateforms = _etherService.getAllPlateforms(); 59 60 final Map<String, Object> model = new HashMap<String, Object>(); 61 model.put( "plateforms", getJsonHelper().toJSON(plateforms) ); 62 return model; 114 final double[] doubles = new double[datas.size()]; 115 int i = 0; 116 for( final Pair<Double, Date> data : datas ) 117 { 118 doubles[i] = data.getFirstValue().doubleValue(); 119 i++; 120 } 121 return doubles; 63 122 } 64 123 65 /** *********************************************************** **/ 66 /** *********************** CALLS ***************************** **/ 67 /** *********************************************************** **/ 68 @ControllerMethod(jsonResult = true) 69 public JSONObject searchParametersByPlateform(@Mandatory @ParamName(ParameterConstants.PARAMETER_ID) final Integer plateformId) 70 throws ServiceException, WebException 124 // TODO : remove this code !! ultracrados ! 125 private Date[] extractDates( @NotNull final List<Pair<Double, Date>> datas ) 71 126 { 72 final List<Parametre> parametersByPlateform = _etherService.getParametersByPlateformId(plateformId); 73 74 final JSONObject result = new JSONObject(); 75 result.put( ParameterConstants.PARAMETER_PARAMETERS, getJsonHelper().toJSON(parametersByPlateform) ); 76 return result; 127 final Date[] dates = new Date[datas.size()]; 128 int i = 0; 129 for( final Pair<Double, Date> data : datas ) 130 { 131 dates[i] = data.getSecondValue(); 132 i++; 133 } 134 return dates; 77 135 } 78 136 79 @ControllerMethod(jsonResult = true) 80 public JSONObject searchDatasByPlateformByParameterByPeriod( 81 @Mandatory @ParamName(ParameterConstants.PARAMETER_PLATEFORM_ID) final Integer plateformId, 82 @Mandatory @ParamName(ParameterConstants.PARAMETER_PARAMETER_ID) final Integer parameterId, 83 @ParamName(ParameterConstants.PARAMETER_DATE_BEGIN) final String dateBegin, 84 @ParamName(ParameterConstants.PARAMETER_DATE_END) final String dateEnd) 85 throws ServiceException, WebException, ParseException 86 { 87 final String pofBegin = "2009-07-13 13:00"; 88 final String pofEnd = "2009-07-13 14:00"; 89 final Date formatedDateBegin = DateHelper.parseDate(pofBegin, DateHelper.ENGLISH_DATE_PATTERN); 90 final Date formatedDateEnd = DateHelper.parseDate(pofEnd, DateHelper.ENGLISH_DATE_PATTERN); 137 private static final Log LOGGER = LogFactory.getLog( ControllerPlot.class ); 91 138 92 final Plateforme plateform = _etherService.getPlateformById(plateformId); 93 final Parametre parameter = _etherService.getParameterById(parameterId); 94 final List<Data> values = _etherService.getValuesByPlateformByParameterByPeriod(plateformId, parameterId, formatedDateBegin, formatedDateEnd); 95 96 JPlotLayout layout = createLayout(plateform.getPlateformeNom(), parameter.getParametreNom()); 97 98 return new JSONObject(); 99 } 100 101 private JPlotLayout createLayout(@Nullable final String plateformName, @Nullable final String parameterName) 102 { 103 final JFrame frame = new JFrame ("Frame principale"); 104 final JPanel panel = new JPanel(new BorderLayout()); 105 106 final JLabel jlbHelloWorld = new JLabel("Hello World"); 107 panel.add(jlbHelloWorld, BorderLayout.SOUTH); 108 109 final ImageIcon ic = new ImageIcon ("kerropi1.jpg"); 110 final JLabel jLabel = new JLabel (ic); 111 panel.add(jLabel, BorderLayout.EAST); 112 113 final JPlotLayout jPlotLayout = new JPlotLayout(false, false, false,"Trajectory data",null,false); 114 jPlotLayout.setTitles(plateformName, parameterName, "title3"); 115 // jPlotLayout.setTitleHeightP(0.2, 0.2); 116 jPlotLayout.setVisible(true); 117 panel.add(jPlotLayout, BorderLayout.NORTH); 118 119 panel.setVisible(true); 120 frame.setContentPane(panel); 121 122 frame.setSize(700,550); 123 frame.setVisible(true); 124 125 return jPlotLayout; 126 } 127 128 // @ControllerMethod(jsonResult = true) 129 // public JSONObject searchDatasByPlateformByParameterByPeriod( 130 // @Mandatory @ParamName(ParameterConstants.PARAMETER_PLATEFORM_ID) final Integer plateformId, 131 // @Mandatory @ParamName(ParameterConstants.PARAMETER_PARAMETER_ID) final Integer parameterId, 132 // @ParamName(ParameterConstants.PARAMETER_DATE_BEGIN) final String dateBegin, 133 // @ParamName(ParameterConstants.PARAMETER_DATE_END) final String dateEnd) 134 // throws ServiceException, WebException, ParseException 135 // { 136 // final long time1 = Calendar.getInstance().getTimeInMillis(); 137 // LOGGER.error("Date Controller begin : "+Calendar.getInstance().getTime()); 138 //// final Date formatedDateBegin = DateHelper.parseDate(dateBegin, DateHelper.ENGLISH_DATE_PATTERN_SHORT); 139 //// final Date formatedDateEnd = DateHelper.parseDate(dateEnd, DateHelper.ENGLISH_DATE_PATTERN_SHORT); 140 // 141 // final Date formatedDateBegin = null; 142 // final Date formatedDateEnd = null; 143 // 144 // final long time2 = Calendar.getInstance().getTimeInMillis(); 145 // LOGGER.error("Date Controller before request : "+Calendar.getInstance().getTime()+", Duration : "+(time2-time1)); 146 // final List<Data> values = _etherService.getValuesByPlateformByParameterByPeriod(plateformId, parameterId, formatedDateBegin, formatedDateEnd); 147 // final long time3 = Calendar.getInstance().getTimeInMillis(); 148 // LOGGER.error("Date Controller after request : "+Calendar.getInstance().getTime()+", Duration : "+(time3-time2)); 149 // 150 // final JSONObject result = new JSONObject(); 151 // result.put( ParameterConstants.PARAMETER_VALUES, values ); 152 // final long time4 = Calendar.getInstance().getTimeInMillis(); 153 // LOGGER.error("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); 154 // LOGGER.error("Date Controller before return Result : "+Calendar.getInstance().getTime()+", Duration : "+(time4-time3)+", Total : "+(time4-time1)+", Taille : "+values.size()); 155 // LOGGER.error("plateformId : "+plateformId+", parameterId : "+parameterId); 156 // LOGGER.error("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); 157 // return result; 158 // } 159 160 // private void createPlot() { 161 // JPlotLayout layout_ = new JPlotLayout(false, false, false, 162 // "Trajectory data", null, false); 163 // /* 164 // * Batch changes to layout. 165 // */ 166 // layout_.setBatch(true); 167 // /* 168 // * Set the titles. 169 // */ 170 // layout_.setTitles( 171 // "Steller's Sea Lion Climate Research Profiling Floats", 172 // "Trajectories", ""); 173 // /* 174 // * Change the title sizes from the defaults. (0.25, 0.15) 175 // */ 176 // layout_.setTitleHeightP(0.2, 0.2); 177 // /* 178 // * Use a BorderLayout for the JFrame and and the JPlotLayout to the 179 // * "Center". Pack the frame and make it visible. 180 // */ 181 // JFrame pif = new JFrame(); 182 // pif.getContentPane().setLayout(new BorderLayout()); 183 // pif.getContentPane().add(layout_, BorderLayout.CENTER); 184 // pif.pack(); 185 // pif.setVisible(true); 186 // /* 187 // * Read trajectory data from local file 188 // */ 189 // SGTData data = readTrajectory("service/implementation/com/ether/tutorial/data/trajectory"); 190 // /* 191 // * Add the trajectory data to the plot using the data title as the data 192 // * description. The description is used in the LineKey. 193 // */ 194 // layout_.addData(data, data.getTitle()); 195 // /* 196 // * Read the North Pacific hi-resolution coastline and add it to the 197 // * layout. Coastlines are handled differently by JPlotLayout. Coastlines 198 // * are not used to compute the X and Y ranges and are always clipped to 199 // * the axes. 200 // */ 201 // // SGTLine coastLine = getCoastLine("support/npac_hi_rez", 120000); 202 // // layout_.setCoastLine(coastLine); 203 // /* 204 // * Turn batching off. All batched changes to the JPlotLayout will now be 205 // * executed. 206 // */ 207 // layout_.setBatch(false); 208 // } 209 210 @Required 211 public void setEtherService(@NotNull final EtherService etherService) 212 { 213 _etherService = etherService; 214 } 215 216 private static final Log LOGGER = LogFactory.getLog( Controller.class ); 217 218 private static final String VIEW_VISUALIZATION = "visualization/visu"; 219 private static final String VIEW_VISUALIZATION_PARAMETER_BY_PLATEFORM = "visualization/visu_parameter_by_pf"; 139 // Dimensions of the jPanes 140 private static final int MAIN_WIDTH = 1000; 141 private static final int MAIN_HEIGHT = 1000; 220 142 221 143 private EtherService _etherService; 144 private EtherPlotService _etherPlotService; 145 222 146 }
Note: See TracChangeset
for help on using the changeset viewer.