Subversion Repositories eFlore/Applications.coel

Rev

Rev 1908 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1908 Rev 1909
1
package org.tela_botanica.client.composants;
1
package org.tela_botanica.client.composants;
2
 
2
 
3
 
3
 
4
import org.tela_botanica.client.Coel;
4
import org.tela_botanica.client.Coel;
5
import org.tela_botanica.client.ComposantClass;
5
import org.tela_botanica.client.ComposantClass;
6
import org.tela_botanica.client.ComposantId;
6
import org.tela_botanica.client.ComposantId;
7
import org.tela_botanica.client.Mediateur;
7
import org.tela_botanica.client.Mediateur;
8
import org.tela_botanica.client.RegistreId;
8
import org.tela_botanica.client.RegistreId;
9
import org.tela_botanica.client.i18n.Constantes;
9
import org.tela_botanica.client.i18n.Constantes;
10
import org.tela_botanica.client.images.Images;
10
import org.tela_botanica.client.images.Images;
11
import org.tela_botanica.client.interfaces.Rafraichissable;
11
import org.tela_botanica.client.interfaces.Rafraichissable;
12
import org.tela_botanica.client.modeles.Information;
12
import org.tela_botanica.client.modeles.Information;
-
 
13
import org.tela_botanica.client.modeles.UtilisateurAsyncDao;
13
 
14
 
14
import com.extjs.gxt.ui.client.Registry;
15
import com.extjs.gxt.ui.client.Registry;
15
import com.extjs.gxt.ui.client.Style.Scroll;
16
import com.extjs.gxt.ui.client.Style.Scroll;
16
import com.extjs.gxt.ui.client.event.ButtonEvent;
17
import com.extjs.gxt.ui.client.event.ButtonEvent;
17
import com.extjs.gxt.ui.client.event.SelectionListener;
18
import com.extjs.gxt.ui.client.event.SelectionListener;
18
import com.extjs.gxt.ui.client.util.Format;
19
import com.extjs.gxt.ui.client.util.Format;
19
import com.extjs.gxt.ui.client.util.Params;
20
import com.extjs.gxt.ui.client.util.Params;
20
import com.extjs.gxt.ui.client.widget.Dialog;
21
import com.extjs.gxt.ui.client.widget.Dialog;
21
import com.extjs.gxt.ui.client.widget.LayoutContainer;
22
import com.extjs.gxt.ui.client.widget.LayoutContainer;
22
import com.extjs.gxt.ui.client.widget.Text;
23
import com.extjs.gxt.ui.client.widget.Text;
23
import com.extjs.gxt.ui.client.widget.button.Button;
24
import com.extjs.gxt.ui.client.widget.button.Button;
24
import com.extjs.gxt.ui.client.widget.form.CheckBox;
25
import com.extjs.gxt.ui.client.widget.form.CheckBox;
25
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
26
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
26
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
27
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
27
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
28
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
28
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
29
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
29
import com.google.gwt.user.client.ui.HTML;
30
import com.google.gwt.user.client.ui.HTML;
30
 
31
 
31
public class LicenceFenetre extends Dialog implements Rafraichissable{
32
public class LicenceFenetre extends Dialog implements Rafraichissable{
32
	
33
	
33
	private Constantes i18nC = null;
34
	private Constantes i18nC = null;
34
	protected Button validerBouton = null;
35
	protected Button validerBouton = null;
35
	private Button annulerBouton = null;
36
	private Button annulerBouton = null;
36
	
37
	
37
	private String messageErreurTpl = "<div id='" + ComposantId.DIV_IDENTIFICATION_MSG + "'>{message}</div>";
38
	private String messageErreurTpl = "<div id='" + ComposantId.DIV_IDENTIFICATION_MSG + "'>{message}</div>";
38
	private LayoutContainer messageErreur;
39
	private LayoutContainer messageErreur;
39
	private HTML texteLicence;
40
	private HTML texteLicence;
40
	private String licenceTpl = "<div class='{css_corps}'>{licence}</div>";
41
	private String licenceTpl = "<div class='{css_corps}'>{licence}</div>";
41
	private IdentificationFenetre fenetreIdentification;
42
	private IdentificationFenetre fenetreIdentification;
42
	private CheckBox accepter;
43
	private CheckBox accepter;
43
	
44
	
44
	public LicenceFenetre(IdentificationFenetre vueARafraichir)	{
45
	public LicenceFenetre(IdentificationFenetre vueARafraichir)	 {
45
		
46
 
46
		fenetreIdentification = vueARafraichir;
47
		fenetreIdentification = vueARafraichir;
47
		
48
 
48
		setSize(500, 300);
49
		setSize(500, 300);
49
		setPlain(true);
50
		setPlain(true);
50
		setHeadingHtml("Licence d'utilisation");
51
		setHeadingHtml("Licence d'utilisation");
51
		setIcon(Images.ICONES.application());
52
		setIcon(Images.ICONES.application());
52
		setLayout(new RowLayout());
53
		setLayout(new RowLayout());
53
		setButtons(Dialog.OKCANCEL);
54
		setButtons(Dialog.OKCANCEL);
54
		
55
 
55
		messageErreur = new LayoutContainer();
56
		messageErreur = new LayoutContainer();
56
		messageErreur.setLayout(new FitLayout());
57
		messageErreur.setLayout(new FitLayout());
57
		add(messageErreur);
58
		add(messageErreur);
58
		
59
 
59
		LayoutContainer licence = new LayoutContainer();
60
		LayoutContainer licence = new LayoutContainer();
60
		licence.setSize("98%", "75%");
61
		licence.setSize("98%", "75%");
61
		licence.setStyleAttribute("padding", "5px");
62
		licence.setStyleAttribute("padding", "5px");
62
		licence.setLayout(new FlowLayout());
63
		licence.setLayout(new FlowLayout());
63
		licence.setScrollMode(Scroll.AUTO);
64
		licence.setScrollMode(Scroll.AUTO);
64
		
65
 
65
		texteLicence = new HTML();
66
		texteLicence = new HTML();
66
		licence.add(texteLicence);
67
		licence.add(texteLicence);
67
		add(licence);
68
		add(licence);
68
		
69
 
69
		LayoutContainer cbContainer = new LayoutContainer(new ColumnLayout());
70
		LayoutContainer cbContainer = new LayoutContainer(new ColumnLayout());
70
		accepter = new CheckBox();
71
		accepter = new CheckBox();
71
		cbContainer.add(accepter);
72
		cbContainer.add(accepter);
72
		add(cbContainer);
73
		add(cbContainer);
73
		
74
		
74
		Text txtAccepter = new Text(Mediateur.i18nC.licenceJaccepte());
75
		Text txtAccepter = new Text(Mediateur.i18nC.licenceJaccepte());
75
		txtAccepter.setStyleAttribute("padding", "3px");
76
		txtAccepter.setStyleAttribute("padding", "3px");
76
		cbContainer.add(txtAccepter);
77
		cbContainer.add(txtAccepter);
77
		setClosable(false);
78
		setClosable(false);
78
		
79
		
79
		show();
80
		show();
80
		initialiserComposants();
81
		initialiserComposants();
81
	}
82
	}
82
	
83
	
83
	public void initialiserComposants()	{
84
	public void initialiserComposants()	{
84
		Params licenceParam = new Params();
85
		Params licenceParam = new Params();
85
		licenceParam.set("message", Mediateur.i18nC.licenceAccepter());
86
		licenceParam.set("message", Mediateur.i18nC.licenceAccepter());
86
		messageErreur.el().setInnerHtml(Format.substitute(messageErreurTpl, licenceParam));
87
		messageErreur.el().setInnerHtml(Format.substitute(messageErreurTpl, licenceParam));
87
		
88
		
88
		Params parametres = new Params();
89
		Params parametres = new Params();
89
		String licence = Mediateur.i18nC.licence();
90
		String licence = Mediateur.i18nC.licence();
90
		parametres.set("licence", licence);
91
		parametres.set("licence", licence);
91
		parametres.set("css_corps", ComposantClass.DETAIL_CORPS_CONTENU);
92
		parametres.set("css_corps", ComposantClass.DETAIL_CORPS_CONTENU);
92
		texteLicence.setHTML(Format.substitute(licenceTpl, parametres));
93
		texteLicence.setHTML(Format.substitute(licenceTpl, parametres));
93
	}
94
	}
94
 
95
 
95
	@Override
96
	@Override
96
	protected void createButtons() {
97
	protected void createButtons() {
97
		// FIXME : l'instanciation dans le constructeur ne marche pas pour cette méthode...
98
		// FIXME : l'instanciation dans le constructeur ne marche pas pour cette méthode...
98
		i18nC = Mediateur.i18nC;
99
		i18nC = Mediateur.i18nC;
99
		
100
		
100
		getButtonBar().removeAll();
101
		getButtonBar().removeAll();
101
		
102
		
102
		validerBouton = new Button(i18nC.valider());
103
		validerBouton = new Button(i18nC.valider());
103
		validerBouton.setItemId(OK);
104
		validerBouton.setItemId(OK);
104
		validerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
105
		validerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
105
			public void componentSelected(ButtonEvent ce) {
106
			public void componentSelected(ButtonEvent ce) {
106
				onButtonPressed(ce.getButton());
107
				onButtonPressed(ce.getButton());
107
			}
108
			}
108
		});
109
		});
109
		
110
		
110
		annulerBouton = new Button(i18nC.annuler());
111
		annulerBouton = new Button(i18nC.annuler());
111
		annulerBouton.setItemId(CANCEL);
112
		annulerBouton.setItemId(CANCEL);
112
		annulerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
113
		annulerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
113
			public void componentSelected(ButtonEvent ce) {
114
			public void componentSelected(ButtonEvent ce) {
114
				onButtonPressed(ce.getButton());
115
				onButtonPressed(ce.getButton());
115
			}
116
			}
116
		});
117
		});
117
		
118
		
118
		addButton(annulerBouton);
119
		addButton(annulerBouton);
119
		addButton(validerBouton);
120
		addButton(validerBouton);
120
	}
121
	}
121
	
122
	
122
	@Override
123
	@Override
123
	protected void onButtonPressed(Button button) {
124
	protected void onButtonPressed(Button button) {
124
		if (Dialog.OK.equals(button.getItemId()))	{
125
		if (Dialog.OK.equals(button.getItemId()))	{
125
			button.setEnabled(false);
126
			button.setEnabled(false);
126
			boolean licenceAcceptee = accepter.getValue();
127
			boolean licenceAcceptee = accepter.getValue();
127
			if (licenceAcceptee == true)	{
128
			if (licenceAcceptee == true)	{
128
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).accepterLicence(this);
129
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).accepterLicence(this);
129
			} else	{
130
			} else	{
130
				hide();
131
				hide();
131
			}
132
			}
132
		} else {
133
		} else {
133
			hide();
134
			hide();
134
		}
135
		}
135
	}
136
	}
136
	
137
	
137
	public void rafraichir(Object nouvellesDonnees) {
138
	public void rafraichir(Object nouvellesDonnees) {
138
		if (nouvellesDonnees instanceof Information)	{
139
		if (nouvellesDonnees instanceof Information)	{
139
			Information info = (Information) nouvellesDonnees;
140
			Information info = (Information) nouvellesDonnees;
140
			if (info.getType().equals("maj_licence"))	{
141
			if (info.getType().equals("maj_licence")) {
141
				
-
 
142
				String licence = info.getDonnee(0).toString();
142
				String licence = info.getDonnee(0).toString();
143
				if (licence.equals("1"))	{
143
				if (licence.equals("1")) {
-
 
144
					if (fenetreIdentification != null && fenetreIdentification.isVisible()) {
-
 
145
						// si on est en train de se logger depuis Coel
-
 
146
						fenetreIdentification.onSubmit();
-
 
147
					} else {
-
 
148
						// si on était loggé depuis ailleurs par le SSO,
-
 
149
						// get état utilisateur forcé pour rafraîchir l'état de l'utilisateur maitnenant
-
 
150
						// que la licence est acceptée - on pourrait sûrement faire mieux
-
 
151
						// (ne pas rappeler le SSO ?)
-
 
152
						Mediateur lePutainDeMediateur = (Mediateur) Registry.get(RegistreId.MEDIATEUR);
-
 
153
						UtilisateurAsyncDao uad = new UtilisateurAsyncDao(lePutainDeMediateur);
-
 
154
						uad.getEtatUtilisateur();
-
 
155
					}
144
					hide();
156
					hide();
145
					fenetreIdentification.onSubmit();
-
 
146
					
-
 
147
				} else	{
157
				} else	{
148
					//Licence non acceptée, on masque la fenêtre pour laisser 
158
					//Licence non acceptée, on masque la fenêtre pour laisser 
149
					// affiché la fenêtre d'identification qui est en erreur. 
159
					// affiché la fenêtre d'identification qui est en erreur. 
150
					hide();
160
					hide();
151
				}
161
				}
152
			}
162
			}
153
		}
163
		}
154
		
164
		
155
	}
165
	}
156
	
166
	
157
 
167
 
158
}
168
}