Bonjour,
J'aimerai savoir si il est possible en GWT d'inclure un module dans d'autres modules ? A la manière d'un jsp:include.
Concrètement, j'aimerai inclure un module "bandeau" mes autres modules GWT.
Est ce possible ?
J'ai tenté de contourner le problème en créant un module que je déclare dans tout les autres modules :
1 2
| <!-- On inclue ici le panel -->
<inherits name='com.empeiria.modele.ui.IncludePanel'/> |
Ce module IncludePanel est ajouté dans chaque EntryPoint (autres modules) :
RootPanel.get("includePanel").add(IncludePanel.getInstance());
"includePanel" étant une div présente dans chaque page html.
IncludePanel :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| package com.empeiria.modele.ui.client;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
public class IncludePanel extends HorizontalPanel{
private static IncludePanel instance = getInstance();
public final static IncludePanel getInstance(){
if(instance == null){
initIncludePanel();
}
return instance;
}
private static void initIncludePanel(){
instance = new IncludePanel();
instance.setBorderWidth(1);
instance.setWidth("100%");
Label l = new Label("Panel inclu !");
l.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
l.setStyleName("titre");
instance.add(l);
}
} |
Je me rapproche du comportement attendu, seulement, l'objet IncludePanel est réinstancié pour chaque module l'appelant. Je voudrai qu'il soit construit une seule fois et utilisable dans son état dans tout les autres modules
Des idées ? Conseils ? Solutions ?
Merci d'avance !
Partager