From 734f659a4ba2c48bd380e44c28a0d026c5096bc5 Mon Sep 17 00:00:00 2001 From: Denis Fokin Date: Tue, 4 Feb 2014 15:02:16 +0400 Subject: [PATCH] Improvement for MacMessages rollback. MacMessages have been handled in Messages class but they are used directly from the MessageDialogBuilder. --- .../openapi/ui/MessageDialogBuilder.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/platform/platform-api/src/com/intellij/openapi/ui/MessageDialogBuilder.java b/platform/platform-api/src/com/intellij/openapi/ui/MessageDialogBuilder.java index 56520d4bf5e8..39ae629a776d 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/MessageDialogBuilder.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/MessageDialogBuilder.java @@ -95,12 +95,13 @@ public abstract class MessageDialogBuilder { public int show() { String yesText = ObjectUtils.chooseNotNull(myYesText, Messages.YES_BUTTON); String noText = ObjectUtils.chooseNotNull(myNoText, Messages.NO_BUTTON); - if (Messages.canShowMacSheetPanel() && !Messages.isApplicationInUnitTestOrHeadless()) { - return MacMessages.getInstance().showYesNoDialog(myTitle, myMessage, yesText, noText, WindowManager.getInstance().suggestParentWindow(myProject), myDoNotAskOption); - } - else { - return Messages.showDialog(myProject, myMessage, myTitle, new String[]{yesText, noText}, 0, myIcon, myDoNotAskOption) == 0 ? Messages.YES : Messages.NO; - } + try { + if (Messages.canShowMacSheetPanel() && !Messages.isApplicationInUnitTestOrHeadless()) { + return MacMessages.getInstance().showYesNoDialog(myTitle, myMessage, yesText, noText, WindowManager.getInstance().suggestParentWindow(myProject), myDoNotAskOption); + } + } catch (Exception e) {} + return Messages.showDialog(myProject, myMessage, myTitle, new String[]{yesText, noText}, 0, myIcon, myDoNotAskOption) == 0 ? Messages.YES : Messages.NO; + } } @@ -126,13 +127,16 @@ public abstract class MessageDialogBuilder { String yesText = ObjectUtils.chooseNotNull(myYesText, Messages.YES_BUTTON); String noText = ObjectUtils.chooseNotNull(myNoText, Messages.NO_BUTTON); String cancelText = ObjectUtils.chooseNotNull(myCancelText, Messages.CANCEL_BUTTON); - if (Messages.canShowMacSheetPanel() && !Messages.isApplicationInUnitTestOrHeadless()) { - return MacMessages.getInstance().showYesNoCancelDialog(myTitle, myMessage, yesText, noText, cancelText, WindowManager.getInstance().suggestParentWindow(myProject), myDoNotAskOption); - } - else { - int buttonNumber = Messages.showDialog(myProject, myMessage, myTitle, new String[]{yesText, noText, cancelText}, 0, myIcon, myDoNotAskOption); - return buttonNumber == 0 ? Messages.YES : buttonNumber == 1 ? Messages.NO : Messages.CANCEL; + try { + if (Messages.canShowMacSheetPanel() && !Messages.isApplicationInUnitTestOrHeadless()) { + return MacMessages.getInstance().showYesNoCancelDialog(myTitle, myMessage, yesText, noText, cancelText, WindowManager.getInstance().suggestParentWindow(myProject), myDoNotAskOption); + } } + catch (Exception e) {} + + int buttonNumber = Messages.showDialog(myProject, myMessage, myTitle, new String[]{yesText, noText, cancelText}, 0, myIcon, myDoNotAskOption); + return buttonNumber == 0 ? Messages.YES : buttonNumber == 1 ? Messages.NO : Messages.CANCEL; + } } }