From bd55af1be375e67cb0264a71d33e21aece3101d3 Mon Sep 17 00:00:00 2001 From: Alexander Lobas Date: Wed, 4 Apr 2012 13:27:14 +0400 Subject: [PATCH] Error handling --- .../AndroidDesignerEditorPanel.java | 17 +++++++++++++++-- .../designSurface/DesignerEditorPanel.java | 7 ++++--- 2 files changed, 19 insertions(+), 5 deletions(-) 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 4d05c081024b..7f6306451176 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 @@ -18,12 +18,13 @@ package com.intellij.android.designer.designSurface; import com.android.ide.common.rendering.api.RenderSession; import com.android.ide.common.rendering.api.Result; import com.android.ide.common.resources.configuration.*; +import com.android.sdklib.IAndroidTarget; import com.intellij.android.designer.actions.ProfileAction; import com.intellij.android.designer.componentTree.AndroidTreeDecorator; import com.intellij.android.designer.model.ModelParser; import com.intellij.android.designer.model.PropertyParser; -import com.intellij.android.designer.model.viewAnimator.RadViewAnimatorLayout; import com.intellij.android.designer.model.RadViewComponent; +import com.intellij.android.designer.model.viewAnimator.RadViewAnimatorLayout; import com.intellij.android.designer.profile.ProfileManager; import com.intellij.designer.DesignerToolWindowManager; import com.intellij.designer.componentTree.TreeComponentDecorator; @@ -368,13 +369,25 @@ public final class AndroidDesignerEditorPanel extends DesignerEditorPanel { @Override protected void configureError(ErrorInfo info) { if (info.throwable instanceof AndroidSdkNotConfiguredException) { - info.message = "Please configure Android SDK"; + info.displayMessage = "Please configure Android SDK"; info.stack = false; } else if (!(info.throwable instanceof RenderingException)) { info.show = myParseTime; info.log = true; } + + StringBuilder builder = new StringBuilder(info.message); + + try { + AndroidPlatform platform = AndroidPlatform.getInstance(myModule); + IAndroidTarget target = platform.getTarget(); + builder.append("\nSDK: ").append(target.getFullName()).append(" - ").append(target.getVersion()).append("\n"); + } + catch (Throwable e) { + } + + info.message = builder.toString(); } @Override 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 15ff97c72e8c..f15da10e892e 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 @@ -330,7 +330,7 @@ public abstract class DesignerEditorPanel extends JPanel implements DataProvider } ErrorInfo info = new ErrorInfo(); - info.message = message; + info.message = info.displayMessage = message; info.throwable = e; configureError(info); @@ -338,7 +338,7 @@ public abstract class DesignerEditorPanel extends JPanel implements DataProvider showErrorPage(info); } if (info.log || ApplicationManagerEx.getApplicationEx().isInternal()) { - LOG.error(message, e); + LOG.error(info.message, e); } } @@ -349,7 +349,7 @@ public abstract class DesignerEditorPanel extends JPanel implements DataProvider hideProgress(); myRootComponent = null; - myErrorMessage.setText(info.message); + myErrorMessage.setText(info.displayMessage); if (info.stack) { ByteArrayOutputStream stream = new ByteArrayOutputStream(); @@ -691,6 +691,7 @@ public abstract class DesignerEditorPanel extends JPanel implements DataProvider public static final class ErrorInfo { public String message; + public String displayMessage; public Throwable throwable; public boolean show = true; public boolean stack = true;