2012-03-28 6 views
2

Ich habe eine RCP-Anwendung, wo Sie löschen, MessageDialog wird zur Bestätigung der Löschvorgang verwendet. Eine der Schaltflächen, wie Sie im unten stehenden Code sehen können, ist eine "Vorschau" -Schaltfläche. Wenn Sie darauf klicken, wird ein weiteres Dialogfeld geöffnet, in dem Sie weitere Informationen zu den beabsichtigten Vorgangsfolgen anzeigen können. Dieser "Vorschau" -Button schließt meinen Haupt-MessageDialog standardmäßig irgendwie. Was soll ich tun, damit der Hauptdialog nicht geschlossen wird?Wie man benutzerdefinierte Schaltfläche von MessageDialog Dialogfeld in RCP-Anwendung Dialogfeld nicht schließen, wenn geklickt wird?

MessageDialog dialog = 
     new MessageDialog(null, "Dangerous Activity", null, 
        "Are you sure you want to delete?", MessageDialog.CONFIRM, 
        new String[]{"Preview>", "Delete", "Cancel"}, 0); 

    int dialogResult = dialog.open(); 
    // if preview button is selected 
     if (dialogResult == 0) { 
      // open another dialog for a second more informative warning 
      // but DO NOT CLOSE THE CURRENT MAIN ONE..HOW TO? 

      } 

Ich freue mich über jede Hilfe!

danke,

Antwort

3

Versuchen Sie, die Methode auf button MessageDialog überschrieben:

MessageDialog dialog = 
    new MessageDialog(null, "Dangerous Activity", null, 
       "Are you sure you want to delete?", MessageDialog.CONFIRM, 
       new String[]{"Preview>", "Delete", "Cancel"}, 0) 
{ 
protected void buttonPressed(int buttonId) { 
    setReturnCode(buttonId); 
    // close(); Call close for Delete or Cancel? 
}}; 
+0

wow. Danke für deine Antwort!! Darf ich bitte um die buttonId bitten? basierend auf meinem/Ihrem Code oben, gibt es Schaltflächenbeschriftungen. Wie kann jemand in diesem speziellen Beispiel die buttonIds erstellen oder angeben? weil "preview", "delete", "cancel" hier Tastenbeschriftungen sind, oder? – mobaisch

+0

Es tut mir leid hehe .. Ich benutzte 0,1,2 und es funktionierte für die Ids .. nicht so schlau Kommentar war es .. Nochmals vielen Dank für die ganze Antwort! – mobaisch