DialogBox qui ne contient pas les informations.
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 - :
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 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();
} |
Ja fais donc appel à une DialogBox à laquelle devrait être ajoutée mon LayoutPanel que je définit dans la View:
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 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();
}
} |
Et voici mon fichier *.ui.xml:
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 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> |
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.
Merci encore pour votre aide.