Subversion Repositories eFlore/Applications.coel

Rev

Rev 1006 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
894 gduche 1
package org.tela_botanica.client.composants;
2
 
3
 
4
import org.tela_botanica.client.ComposantId;
5
import org.tela_botanica.client.Mediateur;
6
import org.tela_botanica.client.RegistreId;
7
import org.tela_botanica.client.images.Images;
8
import org.tela_botanica.client.interfaces.Rafraichissable;
9
import org.tela_botanica.client.modeles.Information;
10
 
11
import com.extjs.gxt.ui.client.Registry;
12
import com.extjs.gxt.ui.client.Style.Scroll;
13
import com.extjs.gxt.ui.client.event.EventType;
14
import com.extjs.gxt.ui.client.event.Events;
15
import com.extjs.gxt.ui.client.event.WidgetListener;
16
import com.extjs.gxt.ui.client.util.Format;
17
import com.extjs.gxt.ui.client.util.Params;
18
import com.extjs.gxt.ui.client.widget.Dialog;
19
import com.extjs.gxt.ui.client.widget.LayoutContainer;
20
import com.extjs.gxt.ui.client.widget.Text;
21
import com.extjs.gxt.ui.client.widget.button.Button;
22
import com.extjs.gxt.ui.client.widget.form.CheckBox;
23
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
24
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
25
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
26
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
27
import com.google.gwt.user.client.Window;
28
import com.google.gwt.user.client.ui.HTML;
29
 
30
public class LicenceFenetre extends Dialog implements Rafraichissable{
31
 
32
	private String messageErreurTpl = "<div id='" + ComposantId.DIV_IDENTIFICATION_MSG + ">{message}</div>";
33
	private LayoutContainer messageErreur;
34
	private HTML texteLicence;
35
	private String licenceTpl = "<div style='padding:15px; width:400px;'>{licence}</div>";
36
	private Rafraichissable vueARafraichir;
37
	private IdentificationFenetre fenetreIdentification;
38
	private CheckBox accepter;
39
 
40
	public LicenceFenetre(IdentificationFenetre vueARafraichir)	{
41
 
42
		fenetreIdentification = vueARafraichir;
43
 
44
		setSize(500, 300);
45
		setPlain(true);
46
		setHeading("Licence d'utilisation");
47
		setIcon(Images.ICONES.application());
48
		setLayout(new RowLayout());
49
		setButtons(Dialog.OKCANCEL);
50
 
51
		messageErreur = new LayoutContainer();
52
		messageErreur.setLayout(new FitLayout());
53
		add(messageErreur);
54
 
55
		LayoutContainer licence = new LayoutContainer();
56
		licence.setSize("98%", "75%");
57
		licence.setStyleAttribute("padding", "5px");
58
		licence.setLayout(new FlowLayout());
59
		licence.setScrollMode(Scroll.AUTO);
60
 
61
		texteLicence = new HTML();
62
		licence.add(texteLicence);
63
		add(licence);
64
 
65
		LayoutContainer cbContainer = new LayoutContainer(new ColumnLayout());
66
		accepter = new CheckBox();
67
		cbContainer.add(accepter);
68
		add(cbContainer);
69
 
70
		Text txtAccepter = new Text("J'accepte les conditions de la licence utilisateur");
71
		txtAccepter.setStyleAttribute("padding", "3px");
72
		cbContainer.add(txtAccepter);
73
		setClosable(false);
74
 
75
		show();
76
		initialiserComposants();
77
	}
78
 
79
	public void initialiserComposants()	{
80
		Params licenceParam = new Params();
81
 
82
		licenceParam.set("message", "Vous devez accepter licence");
83
		messageErreur.el().setInnerHtml(Format.substitute(messageErreurTpl, licenceParam));
84
 
85
		String licence = Mediateur.i18nC.licence();
86
 
87
		Params param = new Params();
88
		param.set("licence", licence);
89
		texteLicence.setHTML(Format.substitute(licenceTpl, param));
90
	}
91
 
92
	@Override
93
	protected void createButtons() {
94
		super.createButtons();
95
	}
96
 
97
	protected void onButtonPressed(Button button) {
98
		if (Dialog.OK.equals(button.getItemId()))	{
99
			button.setEnabled(false);
100
			boolean licenceAcceptee = accepter.getValue();
101
			if (licenceAcceptee == true)	{
102
				((Mediateur) Registry.get(RegistreId.MEDIATEUR)).accepterLicence(this);
103
			} else	{
104
				hide();
105
			}
106
		} else {
107
			hide();
108
		}
109
	}
110
 
111
	@Override
112
	public void rafraichir(Object nouvellesDonnees) {
113
		if (nouvellesDonnees instanceof Information)	{
114
			Information info = (Information) nouvellesDonnees;
115
			if (info.getType().equals("maj_licence"))	{
116
 
117
				String licence = info.getDonnee(0).toString();
118
				if (licence.equals("1"))	{
119
					hide();
120
					fenetreIdentification.onSubmit();
121
 
122
				} else	{
123
					//Licence non acceptée, on masque la fenêtre pour laisser
124
					// affiché la fenêtre d'identification qui est en erreur.
125
					hide();
126
				}
127
			}
128
		}
129
 
130
	}
131
 
132
 
133
}