9,10 → 9,6 |
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.modeles.Structure; |
import org.tela_botanica.client.modeles.StructureConservation; |
import org.tela_botanica.client.modeles.StructureListe; |
import org.tela_botanica.client.modeles.StructureValorisation; |
import org.tela_botanica.client.util.Print; |
|
import com.extjs.gxt.ui.client.Events; |
20,25 → 16,30 |
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.data.BaseTreeModel; |
import com.extjs.gxt.ui.client.event.BaseEvent; |
import com.extjs.gxt.ui.client.event.ComponentEvent; |
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.js.JsArray; |
import com.extjs.gxt.ui.client.store.Store; |
import com.extjs.gxt.ui.client.store.TreeStore; |
import com.extjs.gxt.ui.client.util.Margins; |
import com.extjs.gxt.ui.client.widget.ContentPanel; |
import com.extjs.gxt.ui.client.widget.Dialog; |
import com.extjs.gxt.ui.client.widget.Html; |
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.VerticalPanel; |
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.google.gwt.core.client.GWT; |
65,9 → 66,10 |
private TreeBinder<Menu> binder = null; |
private StoreFilterField<Menu> filtre = null; |
private Menu sommaire = null; |
private VerticalPanel sommairePanneau = null; |
private ContentPanel sommairePanneau = null; |
private ContentPanel contenuPanneau = null; |
private HtmlContainer conteneurDuHtml; |
private LayoutContainer entetePanneau; |
|
public AideFenetre() { |
setBodyBorder(false); |
79,17 → 81,39 |
setHideOnButtonClick(true); |
setLayout(new BorderLayout()); |
|
// Panneau Nord : entête |
entetePanneau = new LayoutContainer(); |
entetePanneau.setLayout(new FlowLayout()); |
BorderLayoutData enteteDisposition = new BorderLayoutData(LayoutRegion.NORTH, 30); |
add(entetePanneau, enteteDisposition); |
|
inititialiserSommaireArbreFiltre(); |
|
// Panneau Ouest : sommaire |
sommairePanneau = new VerticalPanel(); |
sommairePanneau.setSpacing(5); |
sommairePanneau = new ContentPanel(); |
sommairePanneau.setScrollMode(Scroll.AUTO); |
// FIXME : plutôt que d'utiliser ce style propre à GXT faudrait utiliser une méthode... |
sommairePanneau.setStyleName("x-panel-body"); |
BorderLayoutData sommaireDisposition = new BorderLayoutData(LayoutRegion.WEST, 200, 175, 350); |
sommaireDisposition.setMargins(new Margins(0, 5, 0, 0)); |
sommaireDisposition.setSplit(true); |
sommaireDisposition.setCollapsible(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); |
arbre.expandAll(); |
} else if (styleIcone.equals(ComposantClass.ICONE_REPLIER_TOUT)) { |
boutonPlierDeplierTout.setIconStyle(ComposantClass.ICONE_DEPLIER_TOUT); |
arbre.collapseAll(); |
} |
} |
}); |
plierDeplierToutBtn.setIconStyle(ComposantClass.ICONE_DEPLIER_TOUT); |
plierDeplierToutBtn.setToolTip("Étendre le sommaire"); |
sommairePanneau.getHeader().insertTool(plierDeplierToutBtn, 0); |
|
add(sommairePanneau, sommaireDisposition); |
|
// Chargement de l'arbre du sommaire et de son filtre |
130,8 → 154,7 |
binder.init(); |
|
filtre.bind(magazin); |
filtre.setWidth(200); |
filtre.setToolTip("Filtrer le sommaire"); |
|
arbre.addListener(Events.OnClick, new Listener<TreeEvent>(){ |
|
public void handleEvent(TreeEvent be) { |
235,9 → 258,23 |
if (nomMenuMinuscule.matches(".*"+nomFiltreMinuscule+".*")) { |
retour = true; |
} |
return retour; |
return retour; |
} |
}; |
filtre.setFieldLabel("Chercher"); |
filtre.setLabelStyle("font-weight:normal;"); |
filtre.setToolTip("Filtrer le sommaire"); |
filtre.setWidth(200); |
|
FormLayout fl = new FormLayout(); |
fl.setLabelWidth(55); |
fl.setPadding(5); |
|
ContentPanel fp = new ContentPanel(); |
fp.setHeaderVisible(false); |
fp.setLayout(fl); |
fp.add(filtre); |
entetePanneau.add(fp); |
} |
|
public void getSommaireArbreModele() { |
276,12 → 313,11 |
magazin = new TreeStore<Menu>(); |
magazin.add(sommaire, true); |
|
inititialiserSommaireArbreFiltre(); |
chargerSommaireArbre(); |
attribuerIdAuxTreeItem(); |
|
sommairePanneau.add(filtre); |
sommairePanneau.add(arbre); |
|
sommairePanneau.layout(); |
// Chargement de la page racine |
selectionSommaire(pagePrincipale.getCode()); |