2010-11-12 48 views
5

Salut est-il possible de créer quelque chose de similaire à Window.alert() dans GWT? Fondamentalement, je voulais personnaliser le bouton "Ok" de Window.alert() pour dire autre chose, mais comme je l'ai recherché, il n'y a aucun moyen de personnaliser les boîtes d'alerte.Y at-il un moyen de créer quelque chose de similaire à l'alerte Javascript dans GWT?

Merci.

+0

Quel est le problème avec la création de votre propre dialogue? – Bogdan

+0

Cela peut vous aider: http://gwt.google.com/samples/Showcase/Showcase.html. Démonstrations de widgets GWT. – z00bs

Répondre

14

Window.alert() est déjà disponible dans GWT. Il ouvre une boîte de dialogue native qui contient le bouton OK localisé par les paramètres régionaux du navigateur. Cette boîte d'alerte ne peut pas être modifiée.

Utilisez PopupPanel ou DecoratedPopupPanel.

0

Je code habituellement une boîte de dialogue générique, qui est créée une fois et lorsque j'en ai besoin, le contenu html et le titre sont remplacés. Vous pouvez également ajouter une combinaison de boutons OK/Annuler, tout cela est plutôt simple.

private DialogBox dialog  = null; 
private HTML  dialogHtml = new HTML(); 
public void onDialog(final String title, final String html) { 
    if (dialog == null) { 
    dialog = new DialogBox(); 
    dialog.getElement().getStyle().setZIndex(99); 
    dialog.setWidth("500px"); 
    dialog.setGlassEnabled(true); 
    dialog.setAnimationEnabled(true); 
    dialog.setModal(true); 
    VerticalPanel vp = new VerticalPanel(); 
    vp.add(dialogHtml); 
    HorizontalPanel hp = new HorizontalPanel(); 
    hp.setWidth("100%"); 
    Button close = new Button("close"); 
    close.setWidth("200px"); 
    close.addClickHandler(new ClickHandler() { 
     @Override 
     public void onClick(ClickEvent event) { 
     dialog.hide(); 
     } 
    }); 
    hp.add(close); 
    hp.setCellHorizontalAlignment(close, HasHorizontalAlignment.ALIGN_CENTER); 
    hp.getElement().getStyle().setMarginTop(40, Unit.PX); 
    vp.add(hp); 
    vp.setSpacing(10); 
    dialog.add(vp); 
    } 
    dialogHtml.setHTML(html); 
    dialog.setHTML(title); // the actual title 
    dialog.show(); 
    dialog.center(); 
} 

Le contenu HTML est quelque chose de très simple, à savoir

<div style="width: 500px; overflow: auto;">...</div>