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:
Tous mes widget sont ajoutés au RootPanel de la façon suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) ;
Mon objet myRootPanel est définit comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) ; } }
En gros cet objet me sert à ajouter tous les autres
Le widget actionPanel est en fait un flowPanel avec un MenuBar et des menuItem
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 centerPanel est en fait un flowPanel avec un tabLayoutPanel
Le widget AddUser est lui composé d'un flowPanel, de label etc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) ; }
Merci
Partager