Bonjour,
C'est encore moi. Je débute et j'ai beaucoup de problèmes.
J'utilise GWT pour afficher des informations dans une DialogBox. Le problème est que celle-ci ne prend pas en compte les informations contenues dans mon *.ui.xml et les informations que je souhaite afficher dans la DialogBox sont affichées en dessous de la DialogBox.
Voici mon code dans le Presenter - j'utilise MVP - :
Ja fais donc appel à une DialogBox à laquelle devrait être ajoutée mon LayoutPanel que je définit dans la View:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 @Presenter(view = SensorFamilyDetailsView.class) public class SensorFamilyDetailsPresenter extends BasePresenter<ISensorFamilyDetailsView, SensorFamilyEventBus>{ private SensorFamilyDTO sensorFam; @Inject private SensorFamilyServiceAsync sensorFamilyService; private DialogBox db; public void onShowSensorFamilyDetails(SensorDTO sensor) { eventBus.changeBody(view.getViewWidget()); eventBus.setLoading(true); eventBus.showInDialogFam("Détails - famille de capteurs",view.getViewWidget() ); sensorFamilyService.getSensorFamilyFromSensor(sensor, new AsyncCallback<SensorFamilyDTO>() { @Override public void onSuccess(SensorFamilyDTO result) { view.setSensorFamily(result); } @Override public void onFailure(Throwable caught) { Toast.makeText("erreur de chargement", Toast.Length.LONG) .show(); eventBus.setLoading(false); } }); eventBus.setLoading(false); } public void leaveDetailedForm() { eventBus.closeDialogFam(); } public void onShowInDialogFam(String title, Widget w) { db = new DialogBox(); db.setText(title); db.add(w); db.setGlassEnabled(true); db.show(); db.center(); } public void onCloseDialogFam() { if(db != null) db.hide(); }
Et voici mon fichier *.ui.xml:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 public class SensorFamilyDetailsView extends ReverseComposite<SensorFamilyDetailsPresenter> implements ISensorFamilyDetailsView { private static SensorFamilyDetailsViewUiBinder uiBinder = GWT .create(SensorFamilyDetailsViewUiBinder.class); interface SensorFamilyDetailsViewUiBinder extends UiBinder<Widget, SensorFamilyDetailsView> { } @UiField Button buttonClose; @UiField LayoutPanel mainPanel; @UiField Label labelModuleName; public SensorFamilyDetailsView() { initWidget(uiBinder.createAndBindUi(this)); } @Override public String getMenuStyleName() { return null; } @Override public Widget getViewWidget() { return mainPanel; } public void setSensorFamily(SensorFamilyDTO sensorFam) { labelModuleName.setText(sensorFam.getName()); } @UiHandler("buttonClose") void buttonEditClick(ClickEvent event) { getPresenter().leaveDetailedForm(); } }
Voilà, je ne sais pas ce qui cloche. J'ai l'impression que le fichier *.ui.xml qui définit mon mainpanel n'est pas ajouté à la DialogBox.
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
27
28
29
30
31
32 <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:ams="urn:import:com.assystem.amsta.client.common.widget"> <ui:style> .left-center { text-align: left; } </ui:style> <g:HTMLPanel> <g:LayoutPanel ui:field="mainPanel" width="570px" height="600px"> <!-- Module name --> <g:layer top="120px" left="20px" width="100px" height="60px"> <g:Label ui:field="labelModuleName" styleName="common-label-text {style.left-center}" /> </g:layer> <g:layer width="200px" height="40px" right="10px" bottom="10px"> <g:HorizontalPanel width="100%" horizontalAlignment="ALIGN_RIGHT"> <g:HorizontalPanel> <g:Button text="FERMER" ui:field="buttonClose" styleName="google-button google-button-blue" /> </g:HorizontalPanel> </g:HorizontalPanel> </g:layer> </g:LayoutPanel> </g:HTMLPanel> </ui:UiBinder>
Merci encore pour votre aide.
Partager