Subversion Repositories eFlore/Archives.cel-v2

Compare Revisions

Ignore whitespace Rev 8 → Rev 9

/trunk/src/org/tela_botanica/client/iRetourUtilisateur.java
New file
0,0 → 1,8
package org.tela_botanica.client.interfaces;
 
import org.tela_botanica.client.modeles.Utilisateur;
 
public interface iRetourUtilisateur {
 
public void onRetour(Utilisateur utilisateur);
}
/trunk/src/org/tela_botanica/client/iRetourObservation.java
New file
0,0 → 1,8
package org.tela_botanica.client.interfaces;
 
import org.tela_botanica.client.modeles.Observation;
 
public interface iRetourObservation {
 
public void onRetour(Observation observation);
}
/trunk/src/org/tela_botanica/client/iMediateur.java
New file
0,0 → 1,11
package org.tela_botanica.client.interfaces;
 
 
/*
* Interface Mediateur
*
*/
 
public interface iMediateur {
}
/trunk/src/org/tela_botanica/client/modeles/UtilisateurAsynchroneDAO.java
New file
0,0 → 1,117
package org.tela_botanica.client.modeles;
 
/**
* Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour
*
*/
 
import org.tela_botanica.client.interfaces.iRetourUtilisateur;
 
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONBoolean;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.HTTPRequest;
import com.google.gwt.user.client.ResponseTextHandler;
 
public class UtilisateurAsynchroneDAO {
 
/**
* Constructeur
*/
public UtilisateurAsynchroneDAO() {
}
/**
* Methode de classe d'appel du service gestion identification
* @param baseURL : URL du service
* @param retour : methode appelle en retour d'appel
*/
public void getUtilisateur(String baseURL, final iRetourUtilisateur retour) {
 
// Recherche identifiant utilisateur identifie
 
HTTPRequest.asyncGet(baseURL + "/User/", new ResponseTextHandler() {
 
public void onCompletion(String str) {
JSONValue jsonValue = JSONParser.parse(str);
JSONArray jsonArray;
if ((jsonArray = jsonValue.isArray()) != null) {
String identifiant = ((JSONString) jsonArray.get(0))
.stringValue(); // Identifiant utilisateur ou
// identifiant de session si non
// identifie
boolean identifie = ((JSONBoolean) jsonArray.get(1))
.booleanValue(); // Drapeau leve si utilisateur
// deja identifie
retour.onRetour(new Utilisateur(identifiant, identifie));
}
}
});
 
}
 
 
 
public void deconnecterUtilisateur(String baseURL, final iRetourUtilisateur retour, String user) {
 
HTTPRequest.asyncGet(baseURL + "/User/" + user ,
new ResponseTextHandler() {
 
public void onCompletion(String str) {
JSONValue jsonValue = JSONParser.parse(str);
JSONArray jsonArray;
if ((jsonArray = jsonValue.isArray()) != null) {
String identifiant = ((JSONString) jsonArray.get(0))
.stringValue(); // Identifiant utilisateur ou
// identifiant de session si non
// identifie
boolean identifie = ((JSONBoolean) jsonArray.get(1))
.booleanValue(); // Drapeau leve si utilisateur
// deja identifie
 
retour.onRetour(new Utilisateur(identifiant, identifie));
}
}
});
}
 
 
 
public void connecteUtilisateur(String baseURL,final iRetourUtilisateur retour, String login, String password) {
 
HTTPRequest.asyncGet(baseURL + "/User/" + login + "/" + password ,
new ResponseTextHandler() {
 
public void onCompletion(String str) {
JSONValue jsonValue = JSONParser.parse(str);
JSONArray jsonArray;
if ((jsonArray = jsonValue.isArray()) != null) {
String identifiant = ((JSONString) jsonArray.get(0))
.stringValue(); // Identifiant utilisateur ou
// identifiant de session si non
// identifie
boolean identifie = ((JSONBoolean) jsonArray.get(1))
.booleanValue(); // Drapeau leve si utilisateur
// deja identifie
 
retour.onRetour(new Utilisateur(identifiant, identifie));
}
}
});
 
}
 
}
/trunk/src/org/tela_botanica/client/modeles/ObservationAsynchroneDAO.java
New file
0,0 → 1,119
package org.tela_botanica.client.modeles;
 
/**
* Modele DAO, specifique, permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour
*
*/
 
import net.mygwt.ui.client.widget.table.TableItem;
 
import org.tela_botanica.client.Util;
import org.tela_botanica.client.interfaces.iRetourObservation;
 
import com.google.gwt.http.client.URL;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONNumber;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.HTTPRequest;
import com.google.gwt.user.client.ResponseTextHandler;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Image;
 
public class ObservationAsynchroneDAO {
 
/**
* Constructeur
*/
public ObservationAsynchroneDAO() {
}
// TODO Classe Filtre pour les parametres ?
public void getNombreObservation(String baseURL, final iRetourObservation retour, String identifiant, String identifiantLocalite, String localite, String annee, String mois, String jour, String lieudit, String rechercheLibre) {
 
HTTPRequest.asyncGet(baseURL + "/InventoryItemList/" + identifiant + "/" + identifiantLocalite + "/" + URL.encodeComponent(localite) + "/" + annee + "/" + mois + "/" + jour + "/" + URL.encodeComponent(rechercheLibre) + "/" + URL.encodeComponent(lieudit),
new ResponseTextHandler() {
 
public void onCompletion(String str) {
 
JSONValue jsonValue = JSONParser.parse(str);
JSONNumber jsonNumber;
if ((jsonNumber = jsonValue.isNumber()) != null) {
retour.onRetour(new Observation((int) jsonNumber.getValue()));
}
}
});
 
}
 
 
 
public void getListeObservation(String baseURL,final iRetourObservation retour, String identifiant, String identifiantLocalite, String localite, String annee, String mois, String jour, String lieudit, String rechercheLibre, int debut, int longueur)
{
 
HTTPRequest.asyncGet(baseURL + "/InventoryItemList/" + identifiant + "/" + identifiantLocalite + "/" + URL.encodeComponent(localite) +"/" + annee + "/" + mois + "/" + jour + "/" + URL.encodeComponent(rechercheLibre) + "/" + URL.encodeComponent(lieudit) + "/"
+ debut + "/" + longueur ,
new ResponseTextHandler() {
public void onCompletion(String str) {
 
JSONValue jsonValue = JSONParser.parse(str);
JSONArray jsonArray;
JSONArray jsonArrayNested;
if ((jsonArray = jsonValue.isArray()) != null) {
if ((jsonArray = jsonValue.isArray()) != null) {
int arraySize = jsonArray.size();
Observation[] listeObservation=new Observation[arraySize];
for (int i = 0; i < arraySize; i++) {
if ((jsonArrayNested = jsonArray.get(i).isArray()) != null) {
String transmis=((JSONString) jsonArrayNested.get(13)).stringValue();
String nomSaisi=Util.toCelString(((JSONString) jsonArrayNested.get(0)).toString());
String nomRetenu=Util.toCelString(((JSONString) jsonArrayNested.get(2)).toString());
String numeroNomenclatural=((JSONString) jsonArrayNested.get(3)).stringValue();
String numeroTaxonomique=((JSONString) jsonArrayNested.get(4)).stringValue();
String famille=Util.toCelString(((JSONString) jsonArrayNested .get(5)).toString());
String localite=Util.toCelString(((JSONString) jsonArrayNested .get(6)).toString());
String lieudit=Util.toCelString(((JSONString) jsonArrayNested .get(9)).toString());
String station=Util.toCelString(((JSONString) jsonArrayNested .get(10)).toString());
String milieu=Util.toCelString(((JSONString) jsonArrayNested .get(11)).toString());
String commentaire=Util.toCelString(((JSONString) jsonArrayNested .get(12)).toString());
String date=((JSONString) jsonArrayNested .get(8)).stringValue();
String numeroOrdre=((JSONString) jsonArrayNested.get(7)).stringValue();
listeObservation[i]=new Observation(transmis, nomSaisi, nomRetenu, numeroNomenclatural, numeroTaxonomique, famille, localite, lieudit, station, milieu, commentaire, date, numeroOrdre);
}
}
retour.onRetour(new Observation(listeObservation));
}
}
}
});
}
 
 
 
 
}
/trunk/src/org/tela_botanica/client/modeles/Utilisateur.java
New file
0,0 → 1,33
package org.tela_botanica.client.modeles;
 
public class Utilisateur {
 
private String identifiant=null;
private boolean identifie=false;
 
public Utilisateur(String identifiant, boolean identifie) {
this.identifiant=identifiant;
this.identifie=identifie;
}
 
/**
* Retourne l'identifiant de l'utilisateur identifie ou un identifiant de session
* @return String identifiant
*/
public String getIdentifiant() {
return identifiant;
}
 
/**
* Retourne vrai si utilisateur identifie
* @return boolean
*/
public boolean isIdentifie() {
return identifie;
}
}
/trunk/src/org/tela_botanica/client/modeles/Observation.java
New file
0,0 → 1,95
package org.tela_botanica.client.modeles;
 
 
public class Observation {
 
 
private int nombreObservations=0;
private Observation [] listeObservation=null;
 
private String transmis=null;
private String nomSaisi=null;
private String nomRetenu=null;
private String numeroNomenclatural=null;
private String numeroTaxonomique=null;
private String famille=null;
private String localite=null;
private String lieudit=null;
private String station=null;
private String milieu=null;
private String commentaire=null;
private String date=null;
private String numeroOrdre=null;
 
 
public Observation() {
}
 
/**
* Constructeur nombre total d'observations
* @param i
*/
public Observation(int i) {
nombreObservations=i;
}
 
public int getNombreObservations() {
return nombreObservations;
}
 
 
/**
* @param transmis
* @param nomSaisi
* @param nomretenu
* @param numeroNomenclatural
* @param numeroTaxonomique
* @param famille
* @param localite
* @param lieudit
* @param station
* @param milieu
* @param commentaire
* @param date
* @param numeroOrdre
*/
public Observation(String transmis, String nomSaisi, String nomRetenu, String numeroNomenclatural, String numeroTaxonomique, String famille, String localite, String lieudit, String station, String milieu, String commentaire, String date, String numeroOrdre) {
this.transmis = transmis;
this.nomSaisi = nomSaisi;
this.nomRetenu = nomRetenu;
this.numeroNomenclatural = numeroNomenclatural;
this.numeroTaxonomique = numeroTaxonomique;
this.famille = famille;
this.localite = localite;
this.lieudit = lieudit;
this.station = station;
this.milieu = milieu;
this.commentaire = commentaire;
this.date = date;
this.numeroOrdre = numeroOrdre;
}
 
 
public Observation(Observation[] listeObservation) {
this.listeObservation=listeObservation;
}
 
public Observation[] getListeObservation() {
return listeObservation;
}
 
 
public String getNomSaisi() {
return nomSaisi;
}
 
}
/trunk/src/org/tela_botanica/client/observation/ObservationMediateur.java
2,9 → 2,6
 
 
 
import net.mygwt.ui.client.event.BaseEvent;
import net.mygwt.ui.client.event.Listener;
import net.mygwt.ui.client.util.Observable;
 
import org.tela_botanica.client.CarnetEnLigneMediateur;
import org.tela_botanica.client.interfaces.iMediateur;
15,7 → 12,7
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
 
public class ObservationMediateur extends Observable implements iMediateur, Listener {
public class ObservationMediateur implements iMediateur{
 
 
// Evenenements
149,7 → 146,7
public void deconnecterUtilisateur() {
carnetEnLigneMediateur.addListener(CarnetEnLigneMediateur.DECONNEXION,this);
// carnetEnLigneMediateur.addListener(CarnetEnLigneMediateur.DECONNEXION,this);
carnetEnLigneMediateur.deconnecterUtilisateur();
}
164,7 → 161,7
public void connecterUtilisateur(String login, String password) {
carnetEnLigneMediateur.addListener(CarnetEnLigneMediateur.CONNEXION,this);
// carnetEnLigneMediateur.addListener(CarnetEnLigneMediateur.CONNEXION,this);
carnetEnLigneMediateur.connecterUtilisateur(login, password);
 
}
186,7 → 183,7
new iRetourObservation() {
public void onRetour(Observation obs) {
observation=obs;
fireEvent(NOMBRE_OBSERVATION);
//fireEvent(NOMBRE_OBSERVATION);
}
 
205,7 → 202,7
new iRetourObservation() {
public void onRetour(Observation obs) {
observation=obs;
fireEvent(LISTE_OBSERVATION);
//fireEvent(LISTE_OBSERVATION);
}
 
230,7 → 227,7
* Evenements
*
*/
/*
public void handleEvent(BaseEvent be) {
switch (be.type) {
case CarnetEnLigneMediateur.DECONNEXION:
248,12 → 245,12
}
}
 
*/
 
 
 
 
 
 
 
}
/trunk/src/org/tela_botanica/client/observation/ListeObservationsVue.java
44,16 → 44,6
 
import org.tela_botanica.client.modeles.Observation;
 
import net.mygwt.ui.client.Events;
import net.mygwt.ui.client.Style;
import net.mygwt.ui.client.event.BaseEvent;
import net.mygwt.ui.client.event.Listener;
import net.mygwt.ui.client.widget.ContentPanel;
import net.mygwt.ui.client.widget.layout.FillLayout;
import net.mygwt.ui.client.widget.table.Table;
import net.mygwt.ui.client.widget.table.TableColumn;
import net.mygwt.ui.client.widget.table.TableColumnModel;
import net.mygwt.ui.client.widget.table.TableItem;
 
import com.google.gwt.user.client.HTTPRequest;
import com.google.gwt.user.client.ResponseTextHandler;
68,7 → 58,7
import com.google.gwt.user.client.ui.HasVerticalAlignment;
 
 
public class ListeObservationsVue extends Composite implements Listener
public class ListeObservationsVue extends Composite
{
 
// Debut Barre de navigation
140,8 → 130,8
// Fin Barre de navigation
 
// Conteneur (header et table sont dans panel)
private ContentPanel panel =null;
private Table table = null;
// private ContentPanel panel =null;
// private Table table = null;
// Services
private String serviceBaseUrl = null;
176,14 → 166,14
this.observationMediateur=observationMediateur;
 
panel= new ContentPanel(Style.HEADER);
panel.setLayout(new FillLayout());
// panel= new ContentPanel(Style.HEADER);
// panel.setLayout(new FillLayout());
// Barre navigation integree au header
navBar = new NavBar();
panel.getHeader().addWidget(navBar);
// panel.getHeader().addWidget(navBar);
 
// Contenu :
191,10 → 181,10
// Colonnes :
TableColumn[] columns = new TableColumn[6];
// TableColumn[] columns = new TableColumn[6];
// TODO : renderer date, alignement etc
/*
columns[0] = new TableColumn("etat","Aransmis", 50);
 
columns[1] = new TableColumn("nom","Nom saisi", 250);
246,9 → 236,9
}
}
});
*/
initWidget(panel);
// initWidget(panel);
 
 
}
260,7 → 250,7
*/
 
public void deleteElement() {
 
/*
setStatusDisabled();
TableItem[] selection=table.getSelection();
 
284,7 → 274,7
}
setStatusEnabled();
 
*/
}
299,7 → 289,7
setStatusDisabled();
TableItem[] selection=table.getSelection();
/* TableItem[] selection=table.getSelection();
 
StringBuffer ids=new StringBuffer();
for (int i = 0; i < selection.length; i++) {
306,7 → 296,7
ids.append((String)(((TableItem) selection[i]).getValue(5)));
if (i<(selection.length-1)) ids.append(",");
}
if (ids.length()>0) {
HTTPRequest.asyncPost(serviceBaseUrl + "/InventoryTransmit/" + user
321,7 → 311,7
setStatusEnabled();
 
*/
}
334,7 → 324,7
setStatusDisabled();
 
observationMediateur.addListener(ObservationMediateur.NOMBRE_OBSERVATION,this);
// observationMediateur.addListener(ObservationMediateur.NOMBRE_OBSERVATION,this);
observationMediateur.getNombreObservation(identifiantLocalite,localite,annee, mois, jour ,lieudit,rechercheLibre); // Retour dans handlevent() NOMBRE_OBSERVATION
 
349,7 → 339,7
 
public void getListeObservation() {
 
observationMediateur.addListener(ObservationMediateur.LISTE_OBSERVATION,this);
// observationMediateur.addListener(ObservationMediateur.LISTE_OBSERVATION,this);
observationMediateur.getListeObservation(identifiantLocalite,localite,annee, mois, jour ,lieudit,rechercheLibre, startIndex, VISIBLE_TAXON_COUNT); // Retour dans handlevent() LISTE_OBSERVATION
}
368,7 → 358,7
values[5]="5";
values[1]=listeObservation[i].getNomSaisi();
table.add(new TableItem(values));
// table.add(new TableItem(values));
}
870,7 → 860,7
}
 
panel.getHeader().setText(dep + com + lieu + dat);
//panel.getHeader().setText(dep + com + lieu + dat);
 
 
884,7 → 874,7
* Evenements
*
*/
/*
public void handleEvent(BaseEvent be) {
switch (be.type) {
case ObservationMediateur.NOMBRE_OBSERVATION:
896,13 → 886,16
break;
}
}
*/
 
 
 
}
 
/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log$
* Revision 1.1 2008-06-09 14:19:37 ddelon
* Initialisation observation
*
* Revision 1.3 2008-04-28 13:10:43 ddelon
* Integration MyGwt
*
/trunk/src/org/tela_botanica/client/CarnetEnLigne.java
New file
0,0 → 1,51
/**
Auteurs :
- David Delon david.delon@clapas.net 2007
 
Licence Cecill/GPL
*/
 
/*
* CarnetEnLigne.java (Point d'entree de l'application carnet en ligne)
*
*
*/
 
package org.tela_botanica.client;
 
 
import com.google.gwt.core.client.EntryPoint;
 
 
 
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
 
public class CarnetEnLigne implements EntryPoint {
 
public void onModuleLoad() {
 
// new Mediator();
new CarnetEnLigneMediateur();
 
}
 
}
 
/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log$
* Revision 1.1 2008-06-04 16:47:56 ddelon
* modele mvc+mediateur
*
* Revision 1.11 2008-01-02 21:26:04 ddelon
* mise en place mygwt
*
* Revision 1.10 2007-09-17 19:25:34 ddelon
* Documentation
*
*
*/
/trunk/src/org/tela_botanica/client/CarnetEnLigneMediateur.java
New file
0,0 → 1,154
package org.tela_botanica.client;
 
 
import net.mygwt.ui.client.event.BaseEvent;
import net.mygwt.ui.client.event.Listener;
import net.mygwt.ui.client.util.Observable;
 
import org.tela_botanica.client.image.ImageMediateur;
import org.tela_botanica.client.interfaces.iMediateur;
import org.tela_botanica.client.interfaces.iRetourUtilisateur;
import org.tela_botanica.client.modeles.Utilisateur;
import org.tela_botanica.client.observation.ObservationMediateur;
 
 
public class CarnetEnLigneMediateur extends Observable implements iMediateur, Listener {
// Evenenements
final static public int ETAT_CONNEXION=1;
final static public int DECONNEXION=2;
final static public int CONNEXION = 3;
private final CarnetEnLigneModele carnetEnLigneModele;
private Utilisateur utilisateur=null;
// Fonctionnement servicecs
private boolean async=true;
 
public CarnetEnLigneMediateur() {
carnetEnLigneModele=new CarnetEnLigneModele();
addListener(ETAT_CONNEXION,this);
getEtatUtilisateur(); // Alimente Objet Utilisateur
}
/**
* Fin construction (est appelle sur reception evenement Applicatif ETAT_CONNEXION)
*
*/
private void _CarnetEnLigneMediateur() {
new ImageMediateur(this);
new ObservationMediateur(this);
 
}
private void getEtatUtilisateur() { // Pourrait devenir publique ...
// TODO : utiliser une factory ici : Avec Modele synchrone ou non, ou au niveau methode comme dans cette exemple
// Pas possible de traiter dans Modele car retour asynchrone devant etre traité ici.
// if asynchrone
if (async) {
carnetEnLigneModele.getUtilisateurAsynchroneDAO(
new iRetourUtilisateur() {
public void onRetour(Utilisateur uti) {
utilisateur=uti;
fireEvent(ETAT_CONNEXION);
}
 
}
);
}
// else if synchrone
else {
 
utilisateur= carnetEnLigneModele.getUtilisateurSynchroneDAO();
_CarnetEnLigneMediateur();
 
}
 
 
}
 
 
// Evenenements Applicatifs
public void handleEvent(BaseEvent be) {
if (be.type==CarnetEnLigneMediateur.ETAT_CONNEXION) {
_CarnetEnLigneMediateur(); // Fin initialisation
}
}
// Methode publiques
/**
* Recherche Identifiant utilisateur en cours et etat de connection
* @return Utilisateur
*/
public Utilisateur getUtilisateur() {
return utilisateur;
}
 
/**
* Deconnecte l'utilisateur passe en parametre
* @param String uti (utilisateur connecte)
*/
public void deconnecterUtilisateur() {
 
carnetEnLigneModele.deconnecterUtilisateur(
new iRetourUtilisateur() {
public void onRetour(Utilisateur uti) {
utilisateur=uti;
fireEvent(DECONNEXION);
}
 
}, utilisateur.getIdentifiant()
);
 
}
 
public void connecterUtilisateur(String login, String password) {
carnetEnLigneModele.connecterUtilisateur(
new iRetourUtilisateur() {
public void onRetour(Utilisateur uti) {
utilisateur=uti;
fireEvent(CONNEXION);
}
 
}, login, password
);
 
}
 
 
}
 
/trunk/src/org/tela_botanica/client/interfaces/iRetourUtilisateur.java
New file
0,0 → 1,8
package org.tela_botanica.client.interfaces;
 
import org.tela_botanica.client.modeles.Utilisateur;
 
public interface iRetourUtilisateur {
 
public void onRetour(Utilisateur utilisateur);
}
/trunk/src/org/tela_botanica/client/interfaces/iRetourObservation.java
New file
0,0 → 1,8
package org.tela_botanica.client.interfaces;
 
import org.tela_botanica.client.modeles.Observation;
 
public interface iRetourObservation {
 
public void onRetour(Observation observation);
}
/trunk/src/org/tela_botanica/client/interfaces/iMediateur.java
New file
0,0 → 1,11
package org.tela_botanica.client.interfaces;
 
 
/*
* Interface Mediateur
*
*/
 
public interface iMediateur {
}