Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 497 → Rev 498

/trunk/src/org/tela_botanica/client/composants/AideFenetre.java
1,26 → 1,22
package org.tela_botanica.client.composants;
 
import java.util.Iterator;
import java.util.List;
 
import org.tela_botanica.client.ComposantClass;
import org.tela_botanica.client.ComposantId;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.images.Images;
import org.tela_botanica.client.modeles.Configuration;
import org.tela_botanica.client.modeles.Information;
import org.tela_botanica.client.modeles.Menu;
import org.tela_botanica.client.util.Print;
 
import com.extjs.gxt.ui.client.Events;
import com.extjs.gxt.ui.client.event.Events;
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.LayoutRegion;
import com.extjs.gxt.ui.client.Style.Scroll;
import com.extjs.gxt.ui.client.binder.TreeBinder;
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.ComponentEvent;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.event.TreeEvent;
import com.extjs.gxt.ui.client.event.TreePanelEvent;
import com.extjs.gxt.ui.client.store.Store;
import com.extjs.gxt.ui.client.store.TreeStore;
import com.extjs.gxt.ui.client.util.Margins;
29,19 → 25,13
import com.extjs.gxt.ui.client.widget.HtmlContainer;
import com.extjs.gxt.ui.client.widget.Info;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.StoreFilterField;
import com.extjs.gxt.ui.client.widget.form.StoreFilterField;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
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.FormData;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
import com.extjs.gxt.ui.client.widget.toolbar.TextToolItem;
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
import com.extjs.gxt.ui.client.widget.tree.Tree;
import com.extjs.gxt.ui.client.widget.tree.TreeItem;
import com.extjs.gxt.ui.client.widget.treepanel.TreePanel;
import com.google.gwt.core.client.GWT;
import com.google.gwt.http.client.Request;
import com.google.gwt.http.client.RequestBuilder;
60,10 → 50,9
private static final String PAGE_SOMMAIRE_CODE = "AideCoelSommaire";
private static final String PAGE_A_OUVRIR_CODE = "AideCoelPresentationGenerale";
private static Menu pagePrincipale = null;
private static TreeItem treeItemAOuvrirParDefaut = null;
private Tree arbre = null;
private static Menu menuAOuvrirParDefaut = null;
private TreePanel<Menu> arbre = null;
private TreeStore<Menu> magazin = null;
private TreeBinder<Menu> binder = null;
private StoreFilterField<Menu> filtre = null;
private Menu sommaire = null;
private ContentPanel sommairePanneau = null;
74,7 → 63,7
public AideFenetre() {
setBodyBorder(false);
setButtons(Dialog.OK);
setIconStyle(ComposantClass.ICONE_PANNEAU_LISTE);
setIconStyle(ComposantClass.ICONE_PANNEAU_LISTE);
setHeading("COEL - Aide");
setWidth(675);
setHeight(400);
97,20 → 86,20
sommaireDisposition.setSplit(true);
sommaireDisposition.setFloatable(true);
Button plierDeplierToutBtn = new Button(null, new SelectionListener<ComponentEvent>() {
public void componentSelected(ComponentEvent ce) {
Button boutonPlierDeplierTout = (Button) ce.source;
String styleIcone = boutonPlierDeplierTout.getIconStyle();
if (styleIcone.equals(ComposantClass.ICONE_DEPLIER_TOUT)) {
boutonPlierDeplierTout.setIconStyle(ComposantClass.ICONE_REPLIER_TOUT);
Button plierDeplierToutBtn = new Button(null, new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent be) {
Button boutonPlierDeplierTout = (Button) be.getSource();
// CHECK : vérifier si cela marche
if (boutonPlierDeplierTout.getIcon().equals(Images.ICONES.deplierTout())) {
boutonPlierDeplierTout.setIcon(Images.ICONES.deplierTout());
arbre.expandAll();
} else if (styleIcone.equals(ComposantClass.ICONE_REPLIER_TOUT)) {
boutonPlierDeplierTout.setIconStyle(ComposantClass.ICONE_DEPLIER_TOUT);
} else if (boutonPlierDeplierTout.getIcon().equals(Images.ICONES.replierTout())) {
boutonPlierDeplierTout.setIcon(Images.ICONES.replierTout());
arbre.collapseAll();
}
}
});
plierDeplierToutBtn.setIconStyle(ComposantClass.ICONE_DEPLIER_TOUT);
plierDeplierToutBtn.setIcon(Images.ICONES.deplierTout());
plierDeplierToutBtn.setToolTip("Étendre le sommaire");
sommairePanneau.getHeader().insertTool(plierDeplierToutBtn, 0);
123,8 → 112,8
contenuPanneau = new ContentPanel();
contenuPanneau.setScrollMode(Scroll.AUTO);
// Barre d'outils
Button imprimerBtn = new Button(null, new SelectionListener<ComponentEvent>() {
public void componentSelected(ComponentEvent ce) {
Button imprimerBtn = new Button(null, new SelectionListener<ButtonEvent>() {
public void componentSelected(ButtonEvent be) {
Print.it(conteneurDuHtml.el().getInnerHtml());
}
});
134,81 → 123,39
add(contenuPanneau, contenuDisposition);
}
private void etendreArbre(TreeItem treeItemAOuvrir) {
arbre.setSelectedItem(treeItemAOuvrir);
arbre.expandPath(arbre.getSelectedItem().getPath());
private void etendreArbre(Menu menuAOuvrir) {
arbre.setExpanded(menuAOuvrir, true);
}
private void etendreArbre(String treeItemId) {
arbre.setSelectedItem(chercherTreeItemParItemId(treeItemId));
arbre.expandPath(arbre.getSelectedItem().getPath());
private void etendreArbre(String menuCode) {
Menu menuAOuvrir = magazin.findModel("code", menuCode);
if (menuAOuvrir != null) {
arbre.setExpanded(menuAOuvrir, true);
}
}
 
private void chargerSommaireArbre() {
arbre = new Tree();
arbre.getStyle().setLeafIconStyle(ComposantClass.ICONE_AIDE);
private void creerSommaire() {
arbre = new TreePanel<Menu>(magazin);
arbre.getStyle().setLeafIcon(Images.ICONES.aide());
binder = new TreeBinder<Menu>(arbre, magazin);
binder.setAutoLoad(true);
binder.setDisplayProperty("nom");
binder.init();
filtre.bind(magazin);
arbre.addListener(Events.OnClick, new Listener<TreeEvent>(){
 
public void handleEvent(TreeEvent be) {
TreeItem f = be.item;
if (f.getModel() != null && f.getModel().get("code") != null) {
selectionSommaire((String) f.getModel().get("code"));
arbre.addListener(Events.OnClick, new Listener<TreePanelEvent<Menu>>(){
public void handleEvent(TreePanelEvent<Menu> tpe) {
TreePanel<Menu> f = tpe.getComponent();
if (f.getModel() != null) {
Menu menu = f.getModel();
if (menu.get("code") != null) {
selectionSommaire((String) menu.get("code"));
}
}
}
});
}
 
private void attribuerIdAuxTreeItem() {
List<TreeItem> liste = arbre.getAllItems();
Iterator<TreeItem> it = liste.iterator();
while (it.hasNext()) {
TreeItem ti = (TreeItem) it.next();
if (ti.isLeaf()) {
String code = (String) ti.getModel().get("code");
ti.setItemId(code);
definirPageAOuvrirParDefaut(ti);
}
}
}
private TreeItem chercherTreeItemParItemId(String itemIdAChercher) {
TreeItem treeItemTrouve = null;
if (itemIdAChercher != null) {
String itemIdAChercherEnMinuscule = itemIdAChercher.toLowerCase();
List<TreeItem> liste = arbre.getAllItems();
Iterator<TreeItem> it = liste.iterator();
while(it.hasNext()) {
TreeItem ti = (TreeItem) it.next();
if (ti.getModel() != null) {
String codePageAide = (String) ti.getModel().get("code");
if (codePageAide != null) {
String codePageAideEnMinuscule = codePageAide.toLowerCase();
if (itemIdAChercherEnMinuscule.equals(codePageAideEnMinuscule)) {
treeItemTrouve = ti;
break;
}
}
}
}
}
return treeItemTrouve;
private void definirMenuAOuvrirParDefaut() {
menuAOuvrirParDefaut = magazin.findModel("code", PAGE_A_OUVRIR_CODE);
}
private void definirPageAOuvrirParDefaut(TreeItem menu) {
String code = menu.getModel().get("code");
if (PAGE_A_OUVRIR_CODE.equals(code)) {
treeItemAOuvrirParDefaut = menu;
}
}
 
private void selectionSommaire(String page) {
String serviceUrl = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();
222,9 → 169,9
conteneurDuHtml = new HtmlContainer() {
public void onBrowserEvent(Event e) {
// Nous vérifions que l'évenement est un clic et qu'il a lieu sur un lien
if (e.getTypeInt() == Event.ONCLICK && e.getTarget().getTagName().equals("A")) {
if (e.getTypeInt() == Event.ONCLICK && e.getEventTarget().equals("A")) {
e.preventDefault();
String urlPageAideCible = e.getTarget().toString();
String urlPageAideCible = e.getEventTarget().toString();
chargerPageAide(urlPageAideCible);
String codePageAideCible = urlPageAideCible.substring(urlPageAideCible.lastIndexOf("/")+1);
etendreArbre(codePageAideCible);
268,7 → 215,8
FormLayout fl = new FormLayout();
fl.setLabelWidth(55);
fl.setPadding(5);
// CHECK : vérifier si c'est bon sans la largeur
//fl.setPadding(5);
ContentPanel fp = new ContentPanel();
fp.setHeaderVisible(false);
313,15 → 261,15
magazin = new TreeStore<Menu>();
magazin.add(sommaire, true);
chargerSommaireArbre();
attribuerIdAuxTreeItem();
creerSommaire();
definirMenuAOuvrirParDefaut();
sommairePanneau.add(arbre);
sommairePanneau.layout();
sommairePanneau.layout();
// Chargement de la page racine
selectionSommaire(pagePrincipale.getCode());
etendreArbre(treeItemAOuvrirParDefaut);
etendreArbre(menuAOuvrirParDefaut);
} else {
GWT.log("\n\tLa réponse n'est pas un objet ou un talbeau JSON et vaut : "+responseValue.toString(), null);
}