Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/**David Delon david.delon@clapas.net 2007*//** ConnexionView.java : affichage information portant sur le statut de la connexion utilisateur*** 1: Le programme affiche le statut connecte si l'utilisateur s'est connecte precedemment, sinon s'affiche le statut deconnecte* 2: Le programme arme les actions liees a la connection ou a la deconnection* - Connection : affichage de la boite de connexion* - Deconnexion : appel du service de deconnexion, et appel de la re-initialisation de l'affichage pour le nouvel identifiant utilisateur obtenu (identifiant de session)*/package org.tela_botanica.client;import net.mygwt.ui.client.widget.WidgetContainer;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;import com.google.gwt.user.client.Window;import com.google.gwt.user.client.ui.ClickListener;import com.google.gwt.user.client.ui.HTML;import com.google.gwt.user.client.ui.HorizontalPanel;import com.google.gwt.user.client.ui.Label;import com.google.gwt.user.client.ui.Widget;public class ConnexionView {private Mediator mediator=null;private String user =null;private Label signLabel = new Label() ;private String serviceBaseUrl = null;public ConnexionView(final Mediator med) {mediator=med;user=mediator.getUser();serviceBaseUrl = mediator.getServiceBaseUrl();if (!mediator.getConnected()) {signLabel.setText("Connexion");}else {signLabel.setText(user+ " (deconnexion)");}HorizontalPanel outer = new HorizontalPanel();HorizontalPanel inner = new HorizontalPanel();outer.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT);inner.add(signLabel);inner.add(new HTML("<b>Carnet en ligne</b>"));inner.setSpacing(3);outer.add(inner);signLabel.addClickListener(new ClickListener() {public void onClick(Widget sender) {// Non connecte ? Lien vers boite de connectionif (!mediator.getConnected()) {LoginDialog loginDialog = new LoginDialog(med);// Position it roughly in the middle of the screen.int left = (Window.getClientWidth() - 512) / 2;int top = (Window.getClientHeight() - 256) / 2;loginDialog.setPopupPosition(left, top);loginDialog.show();}else {// Deja Connecte : lancement deconnexion sur selection de l'actionHTTPRequest.asyncGet(serviceBaseUrl + "/User/" + user ,new ResponseTextHandler() {public void onCompletion(String str) {JSONValue jsonValue = JSONParser.parse(str);JSONArray jsonArray;if ((jsonArray = jsonValue.isArray()) != null) {user = Util.toCelString(((JSONString) jsonArray.get(0)).toString()); // Identifiant utilisateur : identifant de sessionmediator.setConnected(((JSONBoolean) jsonArray.get(1)).booleanValue());}if (!mediator.getConnected()) { // La deconnexion a ete accepte :mediator.onLogoff(user);}}});}}});WidgetContainer north=mediator.getNorthContainer();north.add(outer);}public Label getSignLabel() {return signLabel;}}/* +--Fin du code ---------------------------------------------------------------------------------------+* $Log$* Revision 1.6 2007-12-22 14:48:53 ddelon* Documentation et refactorisation** Revision 1.5 2007-09-17 19:25:34 ddelon* Documentation***/