Как использовать MessageDialog.open () с QUESTION_WITH_CANCEL? - PullRequest
8 голосов
/ 11 ноября 2009

Мне интересно, как использовать новый QUESTION_WITH_CANCEL вид диалога при открытии с MessageDialog.open(int kind, Shell parent, String title, String message,int style).

Поскольку метод open возвращает логическое значение , и теперь у нас есть 3 возможных состояния из Да , Нет или Отмена .

Ответы [ 2 ]

14 голосов
/ 27 ноября 2009

Вы не можете использовать статический метод MessageDialog.open(bunch of parameters), вам придется создать диалог и вызвать нестатический open() самостоятельно, чтобы проверить его возвращаемое значение.

    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;
    }
0 голосов
/ 11 ноября 2009

Глядя на JavaDoc , я считаю Нет и Отмена имеют тот же эффект: false

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