Interaction entre plusieurs Widget
Bonjour,
GWT: 2.0.3
Eclipse 3.5
pas de librairies graphique particulières
Je rédige une application avec des widgets fabriqués à l'aide de uiBinder.
Le problème: Depuis un MenuItem, qui est dans un widget, je veux créer un nouvel onglet dans un autre widget composé d'un tabLayoutPanel.
exemple: Je clique sur le menu "Ajout utilisateur" un nouvel onglet s'affiche avec en titre "Ajout Utilisateur". Je re clique sur le menu "Ajout utilisateur" et un nouvel onglet......
Je voudrais avoir le principe suivant:
Dans la commande du menuItem:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Command addUser = new Command() {
public void execute() {
AddUserWidget AddUser = new AddUserWidget() ;
// PROBLEME
// ICI il faut que je récupère l'objet TabLayoutPanel qui est dans le widget centerPanel
//centerPanel.addTab("Noubel Utilisateur", AddUser) ;
// l'objet centerPanel ci-dessus décrit plus bas
}
};
userAdd.setCommand(addUser) ; |
Tous mes widget sont ajoutés au RootPanel de la façon suivante:
Code:
1 2 3 4 5 6 7 8 9 10
|
public class myapp implements EntryPoint
{
public void onModuleLoad()
{
RootPanel rp = RootPanel.get("root");
rp.clear();
myRootPanel orp = new myRootPanel(rp) ;
}
} |
Mon objet myRootPanel est définit comme suit:
En gros cet objet me sert à ajouter tous les autres
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
public class myRootPanel extends FlowPanel
{
... ...
private ActionPanelWidget actionPanel;
private CenterPanelWidget centerPanel;
public myRootPanel(RootPanel rp) {
... ...
actionPanel = new ActionPanelWidget() ;
centerPanel = new CenterPanelWidget() ;
// compose UI
contentPanel.add(leftPanel) ;
FlowPanel fp = new FlowPanel();
fp.add(actionPanel) ;
fp.add(centerPanel) ;
contentPanel.add(fp) ;
rp.add(topPanel);
rp.add(contentPanel) ;
}
} |
Le widget actionPanel est en fait un flowPanel avec un MenuBar et des menuItem
Le widget centerPanel est en fait un flowPanel avec un tabLayoutPanel
Code:
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
|
public class CenterPanelWidget extends Composite
{
private static CenterPanelWidgetUiBinder uiBinder =
GWT.create(CenterPanelWidgetUiBinder.class);
interface CenterPanelWidgetUiBinder extends
UiBinder<Widget, CenterPanelWidget>
{
}
@UiField TabLayoutPanel tab ;
public CenterPanelWidget()
{
initWidget(uiBinder.createAndBindUi(this));
InitWidget iw = new InitWidget() ;
tab.add(iw,"Présentation") ;
}
public void addTab(String title,Widget w) {
tab.add(w,title) ;
}
public void delTab(Widget w) {
tab.remove(w) ;
} |
Le widget AddUser est lui composé d'un flowPanel, de label etc
Merci