Subversion Repositories eFlore/Applications.coel

Compare Revisions

No changes between revisions

Ignore whitespace Rev 63 → Rev 64

/trunk/src/org/tela_botanica/client/Mediateur.java
35,7 → 35,9
Registry.register(RegistreId.MEDIATEUR, this);
// Création du Modèle qui s'enregistre lui même dans le Registre
new Modele();
// Création de l'utilsateur courrant
Registry.register(RegistreId.UTILISATEUR, new Utilisateur(Window., true));
 
// Création du Viewport qui contient la disposition globale de l'application
viewport = new Viewport();
viewport.setLayout(new BorderLayout());
147,7 → 149,15
}
 
public void connecterUtilisateur(Utilisateur utilisateur) {
((Modele) Registry.get(RegistreId.MODELE)).connecterUtilisateur(utilisateur);
panneauNord.rafraichir(utilisateur);
}
public void deconnecterUtilisateur(Utilisateur utilisateur) {
((Modele) Registry.get(RegistreId.MODELE)).deconnecterUtilisateur(utilisateur);
panneauNord.rafraichir(utilisateur);
}
public void mettreAJourEtatIdentification(Utilisateur utilisateur) {
}
}
/trunk/src/org/tela_botanica/client/RegistreId.java
2,8 → 2,9
 
public final class RegistreId {
public static final String APPLI_NOM = "Application Nom";
public static final String APPLI_VERSION = "0.1";
public static final String APPLI_REVISION = "$Revision$";
public static final String APPLI_CODE = "Code de l'Application";
public static final String APPLI_VERSION = "Version";
public static final String APPLI_REVISION = "Revision";
public static final String CONFIG = "Configuration";
public static final String MEDIATEUR = "Médiateur";
public static final String MODELE = "Modèle";
/trunk/src/org/tela_botanica/client/Coel.java
19,7 → 19,10
GXT.setDefaultTheme(Theme.GRAY, true);
GXT.hideLoadingPanel("loading");
Registry.register(RegistreId.APPLI_NOM, "Coel");
Registry.register(RegistreId.APPLI_NOM, "Collections en ligne");
Registry.register(RegistreId.APPLI_CODE, "COEL");
Registry.register(RegistreId.APPLI_VERSION, "0.1");
Registry.register(RegistreId.APPLI_REVISION, "$Revision$");
Registry.register(RegistreId.CONFIG, new Configuration());
new Mediateur();
}
Property changes:
Added: svn:keywords
+Revision GlobalRev
\ No newline at end of property
/trunk/src/org/tela_botanica/client/vues/EntetePanneauVue.java
30,7 → 30,6
private ButtonBar barreBoutons = null;
private Button identificationBouton = null;
private Button deconnexionBouton = null;
public EntetePanneauVue() {
setLayout(new RowLayout(Orientation.HORIZONTAL));
77,10 → 76,6
identificationBouton = new Button("Identifiez vous...", boutonEcouteur);
identificationBouton.setId(ComposantId.BTN_IDENTIFICATION);
barreBoutons.add(identificationBouton);
deconnexionBouton = new Button("Deconnexion", boutonEcouteur);
deconnexionBouton.setId(ComposantId.BTN_DECONNEXION);
deconnexionBouton.hide();
barreBoutons.add(deconnexionBouton);
SplitButton applisBouton = new SplitButton("Changez d'application...");
applisBouton.setId(ComposantId.BTN_APPLIS);
120,8 → 115,9
 
public void rafraichir(Object nouvelleDonnees) {
if (nouvelleDonnees instanceof Utilisateur) {
identificationBouton.hide();
deconnexionBouton.show();
((Utilisateur) Registry.get(RegistreId.UTILISATEUR)).setIdentifie(false);
identificationBouton.setText("Deconnexion");
identificationBouton.setId(ComposantId.BTN_DECONNEXION);
}
}
/trunk/src/org/tela_botanica/client/Modele.java
3,6 → 3,8
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.ListeStructure;
import org.tela_botanica.client.modeles.ListeStructureAsyncDao;
import org.tela_botanica.client.modeles.Utilisateur;
import org.tela_botanica.client.modeles.UtilisateurAsynchroneDAO;
 
import com.extjs.gxt.ui.client.Registry;
 
16,11 → 18,24
public void rafraichir(Object nouvelleDonnees) {
if (nouvelleDonnees instanceof ListeStructure) {
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).afficherListeInstitutions((ListeStructure) nouvelleDonnees);
} else if (nouvelleDonnees instanceof Utilisateur) {
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).mettreAJourEtatIdentification((Utilisateur) nouvelleDonnees);
}
}
public void obtenirListeInstitutions() {
ListeStructureAsyncDao liDao = new ListeStructureAsyncDao(this);
liDao.obtenirListeInstitution();
ListeStructureAsyncDao lsDao = new ListeStructureAsyncDao(this);
lsDao.obtenirListeInstitution();
}
 
public void connecterUtilisateur(Utilisateur utilisateur) {
UtilisateurAsynchroneDAO uDao = new UtilisateurAsynchroneDAO(this);
uDao.connecterUtilisateur(utilisateur);
}
public void deconnecterUtilisateur(Utilisateur utilisateur) {
UtilisateurAsynchroneDAO uDao = new UtilisateurAsynchroneDAO(this);
uDao.deconnecterUtilisateur(utilisateur);
}
 
}
/trunk/src/org/tela_botanica/client/composants/ParametreFenetre.java
New file
0,0 → 1,45
package org.tela_botanica.client.composants;
 
import org.tela_botanica.client.RegistreId;
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.widget.TabItem;
import com.extjs.gxt.ui.client.widget.TabPanel;
import com.extjs.gxt.ui.client.widget.Window;
import com.extjs.gxt.ui.client.widget.layout.FitData;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.google.gwt.core.client.GWT;
 
public class ParametreFenetre extends Window {
 
public ParametreFenetre() {
setSize(500, 300);
setPlain(true);
setHeading("Paramêtres et préférences");
setLayout(new FitLayout());
TabPanel panel = new TabPanel();
panel.setBorders(false);
TabItem item1 = new TabItem("Paramêtres");
item1.addText("Paramêtres de l'application...");
item1.addStyleName("pad-text");
TabItem item2 = new TabItem("Préférences");
item2.addText("Préférences de l'application...");
item2.addStyleName("pad-text");
TabItem item3 = new TabItem("A propos...");
item3.addText("Application : "+(String) Registry.get(RegistreId.APPLI_NOM));
item3.addText("Application abréviation : "+(String) Registry.get(RegistreId.APPLI_CODE));
item3.addText("Version : "+(String) Registry.get(RegistreId.APPLI_VERSION));
item3.addText("Révision : "+(String) Registry.get(RegistreId.APPLI_REVISION));
item3.addText("Version de GWT : "+GWT.getVersion());
item3.addStyleName("pad-text");
panel.add(item1);
panel.add(item2);
add(panel, new FitData(4));
}
 
}
/trunk/src/org/tela_botanica/client/composants/IdentificationFenetre.java
44,9 → 44,10
setModal(true);
setBodyBorder(true);
setBodyStyle("padding: 10px;background: none");
setWidth(300);
setWidth(310);
setResizable(false);
 
setAutoWidth(false);
KeyListener keyListener = new KeyListener() {
public void componentKeyUp(ComponentEvent event) {
validate();
107,7 → 108,8
@Override
public void run() {
IdentificationFenetre.this.hide();
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).connecterUtilisateur(new Utilisateur(userName.getValue(), true));
Utilisateur utilisateur = (Utilisateur) Registry.get(RegistreId.UTILISATEUR);
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).connecterUtilisateur(utilisateur);
}
 
};
/trunk/src/org/tela_botanica/client/modeles/Structure.java
12,7 → 12,7
/**
* Identifiant pour sérialisé l'objet...
*/
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1;
 
/**
* Constructeur vide
/trunk/src/org/tela_botanica/client/modeles/ListeStructure.java
17,7 → 17,7
/**
* Identifiant pour sérialisé l'objet...
*/
private static final long serialVersionUID = 2L;
private static final long serialVersionUID = 2;
 
/**
* Constructeur sans paramètres
/trunk/src/org/tela_botanica/client/modeles/ListeStructureAsyncDao.java
1,11 → 1,7
package org.tela_botanica.client.modeles;
 
import java.util.ArrayList;
import java.util.List;
 
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.vues.StructureDetailPanneauVue;
 
import com.extjs.gxt.ui.client.Registry;
import com.google.gwt.http.client.Request;
/trunk/src/org/tela_botanica/client/modeles/Menu.java
7,6 → 7,11
 
public class Menu extends BaseTreeModel<TreeModel> implements Serializable {
 
/**
* Identifiant pour sérialisé l'objet...
*/
private static final long serialVersionUID = 4;
 
public Menu() {
 
}
/trunk/src/org/tela_botanica/client/modeles/UtilisateurAsynchroneDAO.java
New file
0,0 → 1,129
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.RegistreId;
import org.tela_botanica.client.interfaces.Rafraichissable;
 
import com.extjs.gxt.ui.client.Registry;
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.http.client.RequestException;
import com.google.gwt.http.client.Response;
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.ResponseTextHandler;
 
public class UtilisateurAsynchroneDAO {
 
private String urlServiceBase = null;
private Rafraichissable rafraichissement = null;
/**
* Constructeur
* @param retour : méthode appellée en retour d'appel.
*/
public UtilisateurAsynchroneDAO(Rafraichissable r) {
rafraichissement = r;
urlServiceBase = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
}
/**
* Méthode de classe d'appel du service des gestion d'identification.
*/
public void getEtatUtilisateur() {
// Recherche identifiant utilisateur identifie
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+"CoelUtilisateur/") ;
try {
rb.sendRequest(null, new RequestCallback() {
 
public void onError(Request request, Throwable exception) {
// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
}
 
public void onResponseReceived(Request request, Response response) {
JSONValue jsonValue = JSONParser.parse(response.getText());
JSONArray jsonArray;
if ((jsonArray = jsonValue.isArray()) != null) {
// Identifiant utilisateur ou identifiant de session si non identifié
String identifiant = ((JSONString) jsonArray.get(0)).stringValue();
// Drapeau leve si utilisateur deja identifié
boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
rafraichissement.rafraichir(new Utilisateur(identifiant, identifie),true);
}
}
}) ;
} catch (RequestException e) {
e.printStackTrace();
}
}
 
/**
* Méthode déconnectant un utilisateur de l'application.
* @param identifiant de l'utilisateur à déconnecter.
*/
public void deconnecterUtilisateur(Utilisateur utilisateur) {
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, urlServiceBase+"CoelUtilisateur/"+utilisateur.getIdentifiant()) ;
try {
rb.sendRequest(null, new RequestCallback() {
 
public void onError(Request request, Throwable exception) {
// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
}
 
public void onResponseReceived(Request request, Response response) {
JSONValue jsonValue = JSONParser.parse(response.getText());
JSONArray jsonArray;
if ((jsonArray = jsonValue.isArray()) != null) {
// Identifiant utilisateur ou identifiant de session si non identifié
String identifiant = ((JSONString) jsonArray.get(0)).stringValue();
// Drapeau levé si l'utilisateur est déjà identifié
boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
rafraichissement.rafraichir(new Utilisateur(identifiant, identifie));
}
}
}) ;
} catch (RequestException e) {
e.printStackTrace();
}
}
/**
* Méthode déconnectant un utilisateur de l'application.
* @param Utilisateur l'utilisateur courant.
*/
public void connecterUtilisateur (Utilisateur utilisateur) {
String login = utilisateur.getLogin();
String password = utilisateur.getMotDePasse();
RequestBuilder rb = new RequestBuilder(RequestBuilder.GET,urlServiceBase+"CoelUtilisateur/"+login+"/"+password);
try {
rb.sendRequest(null, new RequestCallback() {
 
public void onError(Request request, Throwable exception) {
// TODO : ajouter un message d'erreur en cas d'erreur de requête HTTP
}
 
public void onResponseReceived(Request request, Response response) {
JSONValue jsonValue = JSONParser.parse(response.getText());
JSONArray jsonArray;
if ((jsonArray = jsonValue.isArray()) != null) {
// Identifiant utilisateur ou identifiant de session si non identifié
String identifiant = ((JSONString) jsonArray.get(0)).stringValue();
// Drapeau levé si l'utilisateur est déjà identifié
boolean identifie = ((JSONBoolean) jsonArray.get(1)).booleanValue();
rafraichissement.rafraichir(new Utilisateur(identifiant, identifie));
}
}
}) ;
} catch (RequestException e) {
e.printStackTrace();
}
}
}
/trunk/src/org/tela_botanica/client/modeles/Utilisateur.java
10,16 → 10,13
public class Utilisateur extends BaseModelData implements Serializable {
 
/**
*
* Variable pour la sérialisation de l'objet.
*/
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 3;
private String identifiant = null;
private boolean identifie = false;
 
public Utilisateur(String identifiant, boolean identifie) {
this.identifiant = identifiant;
this.identifie = identifie;
set("identifiant", identifiant);
set("identifie", identifie);
}
 
/**
56,20 → 53,40
set("prenom", prenom);
}
public void setIdentifie(Boolean bool) {
set("identifie", bool);
}
 
/**
* Retourne l'identifiant de l'utilisateur identifié ou un identifiant de session.
* @return String identifiant
*/
public String getIdentifiant() {
return identifiant;
return get("identifiant");
}
 
/**
* Retourne le login de l'utilisateur
* @return String login
*/
public String getLogin() {
return get("login");
}
 
/**
* Retourne le mot de passe de l'utilisateur
* @return String mot de passe
*/
public String getMotDePasse() {
return get("mot_de_passe");
}
/**
* Retourne vrai si utilisateur est identifié.
* @return boolean
*/
public boolean isIdentifie() {
return identifie;
return get("identifie");
}