Rev 1104 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.composants;
import org.tela_botanica.client.ComposantClass;
import org.tela_botanica.client.ComposantId;
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.i18n.Constantes;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Information;
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.util.Format;
import com.extjs.gxt.ui.client.util.Params;
import com.extjs.gxt.ui.client.widget.Dialog;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.Text;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.form.CheckBox;
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
import com.google.gwt.user.client.ui.HTML;
public class LicenceFenetre extends Dialog implements Rafraichissable{
private Constantes i18nC = null;
protected Button validerBouton = null;
private Button annulerBouton = null;
private String messageErreurTpl = "<div id='" + ComposantId.DIV_IDENTIFICATION_MSG + "'>{message}</div>";
private LayoutContainer messageErreur;
private HTML texteLicence;
private String licenceTpl = "<div class='{css_corps}'>{licence}</div>";
private IdentificationFenetre fenetreIdentification;
private CheckBox accepter;
public LicenceFenetre(IdentificationFenetre vueARafraichir) {
fenetreIdentification = vueARafraichir;
setSize(500, 300);
setPlain(true);
setHeading("Licence d'utilisation");
setIcon(Images.ICONES.application());
setLayout(new RowLayout());
setButtons(Dialog.OKCANCEL);
messageErreur = new LayoutContainer();
messageErreur.setLayout(new FitLayout());
add(messageErreur);
LayoutContainer licence = new LayoutContainer();
licence.setSize("98%", "75%");
licence.setStyleAttribute("padding", "5px");
licence.setLayout(new FlowLayout());
licence.setScrollMode(Scroll.AUTO);
texteLicence = new HTML();
licence.add(texteLicence);
add(licence);
LayoutContainer cbContainer = new LayoutContainer(new ColumnLayout());
accepter = new CheckBox();
cbContainer.add(accepter);
add(cbContainer);
Text txtAccepter = new Text(Mediateur.i18nC.licenceJaccepte());
txtAccepter.setStyleAttribute("padding", "3px");
cbContainer.add(txtAccepter);
setClosable(false);
show();
initialiserComposants();
}
public void initialiserComposants() {
Params licenceParam = new Params();
licenceParam.set("message", Mediateur.i18nC.licenceAccepter());
messageErreur.el().setInnerHtml(Format.substitute(messageErreurTpl, licenceParam));
Params parametres = new Params();
String licence = Mediateur.i18nC.licence();
parametres.set("licence", licence);
parametres.set("css_corps", ComposantClass.DETAIL_CORPS_CONTENU);
texteLicence.setHTML(Format.substitute(licenceTpl, parametres));
}
@Override
protected void createButtons() {
// FIXME : l'instanciation dans le constructeur ne marche pas pour cette méthode...
i18nC = Mediateur.i18nC;
getButtonBar().removeAll();
validerBouton = new Button(i18nC.valider());
validerBouton.setItemId(OK);
validerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
onButtonPressed(ce.getButton());
}
});
annulerBouton = new Button(i18nC.annuler());
annulerBouton.setItemId(CANCEL);
annulerBouton.addSelectionListener(new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent ce) {
onButtonPressed(ce.getButton());
}
});
addButton(annulerBouton);
addButton(validerBouton);
}
@Override
protected void onButtonPressed(Button button) {
if (Dialog.OK.equals(button.getItemId())) {
button.setEnabled(false);
boolean licenceAcceptee = accepter.getValue();
if (licenceAcceptee == true) {
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).accepterLicence(this);
} else {
hide();
}
} else {
hide();
}
}
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof Information) {
Information info = (Information) nouvellesDonnees;
if (info.getType().equals("maj_licence")) {
String licence = info.getDonnee(0).toString();
if (licence.equals("1")) {
hide();
fenetreIdentification.onSubmit();
} else {
//Licence non acceptée, on masque la fenêtre pour laisser
// affiché la fenêtre d'identification qui est en erreur.
hide();
}
}
}
}
}