DJ.
DJ.

Reputation: 6774

How to use MessageDialog.open() with QUESTION_WITH_CANCEL?

I'm wondering how to use the new QUESTION_WITH_CANCEL dialog kind when opened with MessageDialog.open(int kind, Shell parent, String title, String message,int style).

Since the open method is returning boolean and now we have 3 possible state from Yes, No, or Cancel.

Upvotes: 8

Views: 6007

Answers (2)

Jerome
Jerome

Reputation: 8447

You can't use the static method MessageDialog.open(bunch of parameters), you'll have to create the Dialog and call the non-static open() yourself to check its return value.

    MessageDialog dg = new MessageDialog(
            window.getShell(),
            "My title",
            null,
            "My question",
            MessageDialog.QUESTION_WITH_CANCEL, 
            new String[]{
                IDialogConstants.YES_LABEL, 
                IDialogConstants.NO_LABEL, 
                IDialogConstants.CANCEL_LABEL},
            0
            );
    switch(dg.open()) {
    case 0: 
        //yes
        System.out.println("yes");
        break;
    case 1:
        //no
        System.out.println("no");
        break;
    case 2:
        //cancel
        System.out.println("cancel");
        break;
    }

Upvotes: 14

Alexandre Pauzies
Alexandre Pauzies

Reputation: 801

Looking at the JavaDoc, I believe No and Cancel have the same effect: false

Returns:
    true if the user presses the OK or Yes button, false otherwise

Upvotes: 0

Related Questions