Subversion Repositories eFlore/Archives.cel-v1

Rev

Rev 26 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 26 Rev 27
1
/**
1
/**
2
 David Delon david.delon@clapas.net 2007
2
 David Delon david.delon@clapas.net 2007
3
 
3
 
4
 */
4
 */
5
 
5
 
6
/*
6
/*
7
 * TopPanel.java  : affichage information portant sur le statut de la connexion utilisateur
7
 * TopPanel.java  : affichage information portant sur le statut de la connexion utilisateur
8
 * 
8
 * 
9
 * 
9
 * 
10
 * 1: Le programme affiche le statut connecte si l'utilisateur s'est connecte precedemment, sinon s'affiche le statut deconnecte
10
 * 1: Le programme affiche le statut connecte si l'utilisateur s'est connecte precedemment, sinon s'affiche le statut deconnecte
11
 * 2: Le programme arme les actions liees a la connection ou a la deconnection
11
 * 2: Le programme arme les actions liees a la connection ou a la deconnection
12
 *    - Connection : affichage de la boite de connexion
12
 *    - Connection : affichage de la boite de connexion
13
 *    - Deconnexion : appel du service de deconnexion, et appel de la re-initialisation de l'affichage pour le nouvel identifiant utilisateur obtenu (identifiant  de session)
13
 *    - Deconnexion : appel du service de deconnexion, et appel de la re-initialisation de l'affichage pour le nouvel identifiant utilisateur obtenu (identifiant  de session)
14
 */
14
 */
15
package org.tela_botanica.client;
15
package org.tela_botanica.client;
16
 
16
 
17
import com.google.gwt.json.client.JSONArray;
17
import com.google.gwt.json.client.JSONArray;
18
import com.google.gwt.json.client.JSONBoolean;
18
import com.google.gwt.json.client.JSONBoolean;
19
import com.google.gwt.json.client.JSONParser;
19
import com.google.gwt.json.client.JSONParser;
20
import com.google.gwt.json.client.JSONString;
20
import com.google.gwt.json.client.JSONString;
21
import com.google.gwt.json.client.JSONValue;
21
import com.google.gwt.json.client.JSONValue;
22
import com.google.gwt.user.client.HTTPRequest;
22
import com.google.gwt.user.client.HTTPRequest;
23
import com.google.gwt.user.client.ResponseTextHandler;
23
import com.google.gwt.user.client.ResponseTextHandler;
24
import com.google.gwt.user.client.Window;
24
import com.google.gwt.user.client.Window;
25
import com.google.gwt.user.client.ui.ClickListener;
25
import com.google.gwt.user.client.ui.ClickListener;
26
import com.google.gwt.user.client.ui.Composite;
26
import com.google.gwt.user.client.ui.Composite;
27
import com.google.gwt.user.client.ui.HTML;
27
import com.google.gwt.user.client.ui.HTML;
28
import com.google.gwt.user.client.ui.HorizontalPanel;
28
import com.google.gwt.user.client.ui.HorizontalPanel;
29
import com.google.gwt.user.client.ui.Label;
29
import com.google.gwt.user.client.ui.Label;
30
import com.google.gwt.user.client.ui.Widget;
30
import com.google.gwt.user.client.ui.Widget;
31
 
31
 
32
 
32
 
33
public class TopPanel extends Composite {
33
public class TopPanel extends Composite {
34
 
34
 
35
	
35
	
36
  private Mediator mediator=null;
36
  private Mediator mediator=null;
37
	  
37
	  
38
  private String user =null;	
38
  private String user =null;	
39
  private Label signLabel = new Label() ;
39
  private Label signLabel = new Label() ;
40
  
40
  
41
  private String serviceBaseUrl = null;
41
  private String serviceBaseUrl = null;
42
	
42
	
43
  public TopPanel(final Mediator med) {
43
  public TopPanel(final Mediator med) {
44
 
44
 
45
	mediator=med;
45
	mediator=med;
46
	  
46
	  
47
	mediator.registerTopPanel(this);
47
	mediator.registerTopPanel(this);
48
	  
48
	  
49
	user=mediator.getUser();
49
	user=mediator.getUser();
50
	
50
	
51
   	signLabel.setStyleName("selection_label");
51
   	signLabel.setStyleName("selection_label");
52
   	
52
   	
53
    serviceBaseUrl = mediator.getServiceBaseUrl();
53
    serviceBaseUrl = mediator.getServiceBaseUrl();
54
 
54
 
55
    if (!mediator.getConnected()) {
55
    if (!mediator.getConnected()) {
56
    	signLabel.setText("Connexion");
56
    	signLabel.setText("Connexion");
57
    }
57
    }
58
    else {
58
    else {
59
    	signLabel.setText(user+ " (deconnexion)");
59
    	signLabel.setText(user+ " (deconnexion)");
60
    }
60
    }
61
 
61
 
62
	HorizontalPanel outer = new HorizontalPanel();
62
	HorizontalPanel outer = new HorizontalPanel();
63
	HorizontalPanel inner = new HorizontalPanel();
63
	HorizontalPanel inner = new HorizontalPanel();
64
   
64
   
65
    
65
    
66
	outer.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT);
66
	outer.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT);
67
 
67
 
68
	 inner.add(signLabel);
68
	 inner.add(signLabel);
69
	 inner.add(new HTML("<b>Carnet en ligne</b>"));
69
	 inner.add(new HTML("<b>Carnet en ligne</b>"));
70
	 
70
	 
71
	 inner.setSpacing(3);
71
	 inner.setSpacing(3);
72
	 outer.add(inner);
72
	 outer.add(inner);
73
 
73
 
74
	 
74
	 
75
	 
75
	 
76
	 signLabel.addClickListener(
76
	 signLabel.addClickListener(
77
		    	new ClickListener() {
77
		    	new ClickListener() {
78
		    		public void onClick(Widget sender) {
78
		    		public void onClick(Widget sender) {
79
		    
79
		    
80
		    			// Non connecte ? Lien vers boite de connection
80
		    			// Non connecte ? Lien vers boite de connection
81
		    			
81
		    			
82
		    			if (!mediator.getConnected()) {
82
		    			if (!mediator.getConnected()) {
83
		    				LoginDialog loginDialog = new LoginDialog(med);
83
		    				LoginDialog loginDialog = new LoginDialog(med);
84
 
84
 
85
		    				// Position it roughly in the middle of the screen.
85
		    				// Position it roughly in the middle of the screen.
86
		    				int left = (Window.getClientWidth() - 512) / 2;
86
		    				int left = (Window.getClientWidth() - 512) / 2;
87
		    				int top = (Window.getClientHeight() - 256) / 2;
87
		    				int top = (Window.getClientHeight() - 256) / 2;
88
		    				loginDialog.setPopupPosition(left, top);
88
		    				loginDialog.setPopupPosition(left, top);
89
		    				loginDialog.show();
89
		    				loginDialog.show();
90
		    			}
90
		    			}
91
		    			
91
		    			
92
		    			else {
92
		    			else {
93
		    			
93
		    			
94
		    				// Deja Connecte : lancement deconnexion sur selection de l'action
94
		    				// Deja Connecte : lancement deconnexion sur selection de l'action
95
			    			HTTPRequest.asyncGet(serviceBaseUrl + "/User/" + user    ,
95
			    			HTTPRequest.asyncGet(serviceBaseUrl + "/User/" + user    ,
96
			    					new ResponseTextHandler() {
96
			    					new ResponseTextHandler() {
97
 
97
 
98
			    						public void onCompletion(String str) {
98
			    						public void onCompletion(String str) {
99
			    							
99
			    							
100
			    								JSONValue jsonValue = JSONParser.parse(str);
100
			    								JSONValue jsonValue = JSONParser.parse(str);
101
			    								JSONArray jsonArray;
101
			    								JSONArray jsonArray;
102
			    								if ((jsonArray = jsonValue.isArray()) != null) {
102
			    								if ((jsonArray = jsonValue.isArray()) != null) {
103
			    									user = ((JSONString) jsonArray.get(0)).stringValue(); // Identifiant utilisateur : identifant de session
103
			    									user = Util.toCelString(((JSONString) jsonArray.get(0)).toString()); // Identifiant utilisateur : identifant de session
104
			    									mediator.setConnected(((JSONBoolean) jsonArray.get(1)).booleanValue());
104
			    									mediator.setConnected(((JSONBoolean) jsonArray.get(1)).booleanValue());
105
			    								}
105
			    								}
106
 
106
 
107
			    								if (!mediator.getConnected()) { // La deconnexion a ete accepte :
107
			    								if (!mediator.getConnected()) { // La deconnexion a ete accepte :
108
			    									mediator.onLogoff(user);
108
			    									mediator.onLogoff(user);
109
			    								}
109
			    								}
110
			    						}
110
			    						}
111
			    			});
111
			    			});
112
 
112
 
113
		    				
113
		    				
114
		    			}
114
		    			}
115
	
115
	
116
		    		}
116
		    		}
117
		     	}
117
		     	}
118
	);		
118
	);		
119
 
119
 
120
    initWidget(outer);
120
    initWidget(outer);
121
    
121
    
122
  }
122
  }
123
 
123
 
124
public Label getSignLabel() {
124
public Label getSignLabel() {
125
	return signLabel;
125
	return signLabel;
126
}
126
}
127
 
127
 
128
  
128
  
129
 
129
 
130
  
130
  
131
}
131
}
132
 
132
 
133
 
133
 
134
/* +--Fin du code ---------------------------------------------------------------------------------------+
134
/* +--Fin du code ---------------------------------------------------------------------------------------+
135
* $Log$
135
* $Log$
-
 
136
* Revision 1.5  2007-09-17 19:25:34  ddelon
-
 
137
* Documentation
-
 
138
*
136
* 
139
* 
137
*/
140
*/