/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/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/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/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/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/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/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/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); |
} |