From d9679aa91e79b9aa0b1edcdf6a79d0231fb76143 Mon Sep 17 00:00:00 2001 From: Eugene Kudelevsky Date: Tue, 14 Aug 2012 18:09:05 +0400 Subject: [PATCH] show warnings if "MockView cannot be casted to ViewGroup" exception occurs --- .../uipreview/AndroidLayoutPreviewToolWindowManager.java | 6 +++++- .../src/org/jetbrains/android/uipreview/RenderUtil.java | 3 +-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/android/src/org/jetbrains/android/uipreview/AndroidLayoutPreviewToolWindowManager.java b/plugins/android/src/org/jetbrains/android/uipreview/AndroidLayoutPreviewToolWindowManager.java index 5c875c55713e..ba3e47d69164 100644 --- a/plugins/android/src/org/jetbrains/android/uipreview/AndroidLayoutPreviewToolWindowManager.java +++ b/plugins/android/src/org/jetbrains/android/uipreview/AndroidLayoutPreviewToolWindowManager.java @@ -425,14 +425,18 @@ public class AndroidLayoutPreviewToolWindowManager implements ProjectComponent { catch (RenderingException e) { LOG.debug(e); String message = e.getPresentableMessage(); - message = message != null ? message : AndroidBundle.message("android.layout.preview.default.error.message"); final Throwable[] causes = e.getCauses(); + message = message != null ? message : AndroidBundle.message("android.layout.preview.default.error.message"); errorMessage = causes.length > 0 ? new FixableIssueMessage(message + ' ', "Details", "", new Runnable() { @Override public void run() { showStackStace(causes); } }) : new FixableIssueMessage(message); + + if (causes.length == 0) { + warnMessages.addAll(e.getWarnMessages()); + } } catch (IOException e) { LOG.info(e); diff --git a/plugins/android/src/org/jetbrains/android/uipreview/RenderUtil.java b/plugins/android/src/org/jetbrains/android/uipreview/RenderUtil.java index 4ab024c41292..d790b9b62084 100644 --- a/plugins/android/src/org/jetbrains/android/uipreview/RenderUtil.java +++ b/plugins/android/src/org/jetbrains/android/uipreview/RenderUtil.java @@ -179,8 +179,7 @@ public class RenderUtil { if (exception != null) { final List exceptionsFromWarnings = getNonNullValues(callback.getBrokenClasses()); - if (exceptionsFromWarnings.size() > 0 && - exception instanceof ClassCastException && + if (exception instanceof ClassCastException && (SdkConstants.CLASS_MOCK_VIEW + " cannot be cast to " + SdkConstants.CLASS_VIEWGROUP) .equalsIgnoreCase(exception.getMessage())) { throw new RenderingException(exceptionsFromWarnings.toArray(new Throwable[exceptionsFromWarnings.size()]))