/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/IdentificationFenetre.java |
---|
44,8 → 44,9 |
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) { |
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/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/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"); |
} |
/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/Mediateur.java |
---|
35,6 → 35,8 |
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(); |
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); |
} |
} |