From e2e32e60defee52d28df36e1b6d0a4527f56e604 Mon Sep 17 00:00:00 2001 From: Alexander Lobas Date: Wed, 6 Aug 2014 11:54:00 +0400 Subject: [PATCH] IDEA-106381 GUI Designer: JComboBoxes list does not populated under JDK7 and works fine under JDK6 --- .../util/src/com/intellij/openapi/util/text/StringUtil.java | 4 ++++ .../src/com/intellij/uiDesigner/PsiPropertiesProvider.java | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java index 181d660503b8..bc37f673bb03 100644 --- a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java +++ b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java @@ -923,6 +923,10 @@ public class StringUtil extends StringUtilRt { } } + public static String defaultIfEmpty(@Nullable String value, String defaultValue) { + return isEmpty(value) ? defaultValue : value; + } + @Contract("null -> false") public static boolean isNotEmpty(@Nullable String s) { return s != null && !s.isEmpty(); diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/PsiPropertiesProvider.java b/plugins/ui-designer/src/com/intellij/uiDesigner/PsiPropertiesProvider.java index 5b8518f0d70b..91b75c91b619 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/PsiPropertiesProvider.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/PsiPropertiesProvider.java @@ -16,6 +16,7 @@ package com.intellij.uiDesigner; import com.intellij.openapi.module.Module; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.util.ClassUtil; @@ -74,7 +75,8 @@ public final class PsiPropertiesProvider implements PropertiesProvider { } final PsiType type = getter.getReturnType(); - final String propertyClassName = type.getCanonicalText(); + String propertyClassName = + StringUtil.defaultIfEmpty(StringUtil.substringBefore(type.getCanonicalText(), "<"), type.getCanonicalText()); LwIntrospectedProperty property = CompiledClassPropertiesProvider.propertyFromClassName(propertyClassName, name); if (property == null) {