diff --git a/plugins/android-designer/src/com/intellij/android/designer/designSurface/AndroidDesignerEditorPanel.java b/plugins/android-designer/src/com/intellij/android/designer/designSurface/AndroidDesignerEditorPanel.java index 3f83f32ef373..58c84158eea1 100644 --- a/plugins/android-designer/src/com/intellij/android/designer/designSurface/AndroidDesignerEditorPanel.java +++ b/plugins/android-designer/src/com/intellij/android/designer/designSurface/AndroidDesignerEditorPanel.java @@ -77,6 +77,7 @@ import javax.swing.*; import java.awt.*; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.ArrayList; import java.util.List; /** @@ -327,6 +328,8 @@ public final class AndroidDesignerEditorPanel extends DesignerEditorPanel { final RenderSession session = mySession = result.getSession(); mySessionAlarm.cancelAllRequests(); + final List warnMessages = result.getWarnMessages(); + ApplicationManager.getApplication().invokeLater(new Runnable() { @Override public void run() { @@ -337,6 +340,19 @@ public final class AndroidDesignerEditorPanel extends DesignerEditorPanel { if (updatePalette) { updatePalette(myLastTarget); } + if (warnMessages.isEmpty()) { + showWarnMessages(null); + } + else { + List messages = new ArrayList(); + for (FixableIssueMessage message : warnMessages) { + messages.add( + new FixableMessageInfo(false, message.myBeforeLinkText, message.myLinkText, message.myAfterLinkText, + message.myQuickFix, + message.myAdditionalFixes)); + } + showWarnMessages(messages); + } } } catch (Throwable e) { @@ -443,7 +459,6 @@ public final class AndroidDesignerEditorPanel extends DesignerEditorPanel { @Override public void run() { myProfileAction.getProfileManager().showCustomDevicesDialog(); - // XXX } }, null)); } @@ -479,6 +494,7 @@ public final class AndroidDesignerEditorPanel extends DesignerEditorPanel { if (warnMessages == null) { info.myShowMessage = myParseTime || renderError; info.myShowLog = !renderError; + info.myShowStack = renderError; } else { info.myShowLog = false; diff --git a/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/designSurface/DesignerEditorPanel.java b/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/designSurface/DesignerEditorPanel.java index 956c248c7aee..465c1f786281 100644 --- a/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/designSurface/DesignerEditorPanel.java +++ b/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/designSurface/DesignerEditorPanel.java @@ -407,8 +407,6 @@ public abstract class DesignerEditorPanel extends JPanel implements DataProvider myErrorMessages.removeAll(); if (info.myShowStack) { - info.myMessages.add(0, new FixableMessageInfo(true, info.myDisplayMessage, "", "", null, null)); - ByteArrayOutputStream stream = new ByteArrayOutputStream(); info.myThrowable.printStackTrace(new PrintStream(stream)); myErrorStack.setText(stream.toString()); @@ -419,6 +417,7 @@ public abstract class DesignerEditorPanel extends JPanel implements DataProvider myErrorStackLayout.show(myErrorStackPanel, ERROR_NO_STACK_CARD); } + addErrorMessage(new FixableMessageInfo(true, info.myDisplayMessage, "", "", null, null), Messages.getErrorIcon()); for (FixableMessageInfo message : info.myMessages) { addErrorMessage(message, message.myErrorIcon ? Messages.getErrorIcon() : Messages.getWarningIcon()); } @@ -481,6 +480,10 @@ public abstract class DesignerEditorPanel extends JPanel implements DataProvider } } + protected final void showWarnMessages(@Nullable List messages) { + // XXX + } + private void createProgressPanel() { myProgressIcon = new AsyncProcessIcon("Designer progress"); myProgressMessage = new JLabel();