mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-10-02 00:57:59 +07:00
IDEADEV-752
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 883 B |
Binary file not shown.
|
After Width: | Height: | Size: 965 B |
Binary file not shown.
|
After Width: | Height: | Size: 882 B |
Binary file not shown.
|
After Width: | Height: | Size: 698 B |
@@ -62,19 +62,23 @@ public abstract class PsiType {
|
||||
return manager.getElementFactory().createTypeByFQClassName("java.lang.Object", resolveScope);
|
||||
}
|
||||
|
||||
public static PsiType getJavaLangClass(PsiManager manager, GlobalSearchScope resolveScope) {
|
||||
public static PsiClassType getJavaLangClass(PsiManager manager, GlobalSearchScope resolveScope) {
|
||||
return manager.getElementFactory().createTypeByFQClassName("java.lang.Class", resolveScope);
|
||||
}
|
||||
|
||||
public static PsiType getJavaLangString(PsiManager manager, GlobalSearchScope resolveScope) {
|
||||
public static PsiClassType getJavaLangTrowable(PsiManager manager, GlobalSearchScope resolveScope) {
|
||||
return manager.getElementFactory().createTypeByFQClassName("java.lang.Throwable", resolveScope);
|
||||
}
|
||||
|
||||
public static PsiClassType getJavaLangString(PsiManager manager, GlobalSearchScope resolveScope) {
|
||||
return manager.getElementFactory().createTypeByFQClassName("java.lang.String", resolveScope);
|
||||
}
|
||||
|
||||
public static PsiType getJavaLangError(PsiManager manager, GlobalSearchScope resolveScope) {
|
||||
public static PsiClassType getJavaLangError(PsiManager manager, GlobalSearchScope resolveScope) {
|
||||
return manager.getElementFactory().createTypeByFQClassName("java.lang.Error", resolveScope);
|
||||
}
|
||||
|
||||
public static PsiType getJavaLangRuntimeException(PsiManager manager, GlobalSearchScope resolveScope) {
|
||||
public static PsiClassType getJavaLangRuntimeException(PsiManager manager, GlobalSearchScope resolveScope) {
|
||||
return manager.getElementFactory().createTypeByFQClassName("java.lang.RuntimeException", resolveScope);
|
||||
}
|
||||
|
||||
|
||||
@@ -46,6 +46,10 @@ public interface Icons {
|
||||
Icon DIRECTORY_CLOSED_ICON = IconLoader.getIcon("/nodes/TreeClosed.png");
|
||||
Icon DIRECTORY_OPEN_ICON = IconLoader.getIcon("/nodes/TreeOpen.png");
|
||||
Icon CLASS_ICON = IconLoader.getIcon("/nodes/class.png");
|
||||
Icon EXCEPTION_CLASS_ICON = IconLoader.getIcon("/nodes/exceptionClass.png");
|
||||
Icon ANONYMOUS_CLASS_ICON = IconLoader.getIcon("/nodes/anonymousClass.png");
|
||||
Icon ABSTRACT_CLASS_ICON = IconLoader.getIcon("/nodes/abstractClass.png");
|
||||
Icon JUNIT_TEST_CLASS_ICON = IconLoader.getIcon("/nodes/junitTestClass.png");
|
||||
Icon ANNOTATION_TYPE_ICON = IconLoader.getIcon("/nodes/annotationType.png");
|
||||
Icon ENUM_ICON = IconLoader.getIcon("/nodes/enum.png");
|
||||
Icon INTERFACE_ICON = IconLoader.getIcon("/nodes/interface.png");
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.intellij.openapi.util.Iconable;
|
||||
import com.intellij.openapi.util.UserDataHolderBase;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.InheritanceUtil;
|
||||
import com.intellij.psi.impl.source.jsp.jspJava.JspClass;
|
||||
import com.intellij.psi.xml.XmlTag;
|
||||
import com.intellij.ui.LayeredIcon;
|
||||
@@ -64,34 +65,8 @@ public abstract class ElementBase extends UserDataHolderBase implements Iconable
|
||||
baseIcon = createLockableIcon(symbolIcon, showReadStatus && !elementWritable);
|
||||
}
|
||||
else if (element instanceof PsiClass) {
|
||||
Icon symbolIcon;
|
||||
final PsiClass aClass = (PsiClass)element;
|
||||
final EjbClassRole role = J2EERolesUtil.getEjbRole(aClass);
|
||||
if (role != null) {
|
||||
symbolIcon = role.getIcon();
|
||||
}
|
||||
else {
|
||||
if (aClass instanceof PsiAspect) {
|
||||
symbolIcon = Icons.ASPECT_ICON;
|
||||
} else if (aClass.isAnnotationType()) {
|
||||
symbolIcon = Icons.ANNOTATION_TYPE_ICON;
|
||||
} else if (aClass.isEnum()) {
|
||||
symbolIcon = Icons.ENUM_ICON;
|
||||
}
|
||||
else if (aClass.isInterface()) {
|
||||
symbolIcon = aClass.hasModifierProperty(PsiModifier.STATIC)
|
||||
? Icons.STATIC_INTERFACE_ICON
|
||||
: Icons.INTERFACE_ICON;
|
||||
}
|
||||
else if (aClass instanceof JspClass) {
|
||||
symbolIcon = Icons.JSP_ICON;
|
||||
}
|
||||
else {
|
||||
symbolIcon = aClass.hasModifierProperty(PsiModifier.STATIC)
|
||||
? Icons.STATIC_CLASS_ICON
|
||||
: Icons.CLASS_ICON;
|
||||
}
|
||||
}
|
||||
Icon symbolIcon = getClassIcon(aClass);
|
||||
boolean isExcluded = false;
|
||||
final PsiFile containingFile = aClass.getContainingFile();
|
||||
if (containingFile != null) {
|
||||
@@ -157,6 +132,50 @@ public abstract class ElementBase extends UserDataHolderBase implements Iconable
|
||||
return baseIcon;
|
||||
}
|
||||
|
||||
private static Icon getClassIcon(final PsiClass aClass) {
|
||||
final EjbClassRole role = J2EERolesUtil.getEjbRole(aClass);
|
||||
if (role != null) return role.getIcon();
|
||||
if (aClass instanceof PsiAspect) {
|
||||
return Icons.ASPECT_ICON;
|
||||
}
|
||||
if (aClass.isAnnotationType()) {
|
||||
return Icons.ANNOTATION_TYPE_ICON;
|
||||
}
|
||||
if (aClass.isEnum()) {
|
||||
return Icons.ENUM_ICON;
|
||||
}
|
||||
if (aClass.isInterface()) {
|
||||
return aClass.hasModifierProperty(PsiModifier.STATIC)
|
||||
? Icons.STATIC_INTERFACE_ICON
|
||||
: Icons.INTERFACE_ICON;
|
||||
}
|
||||
if (aClass instanceof JspClass) {
|
||||
return Icons.JSP_ICON;
|
||||
}
|
||||
if (aClass.hasModifierProperty(PsiModifier.STATIC)) {
|
||||
return Icons.STATIC_CLASS_ICON;
|
||||
}
|
||||
|
||||
if (aClass instanceof PsiAnonymousClass) {
|
||||
return Icons.ANONYMOUS_CLASS_ICON;
|
||||
}
|
||||
if (aClass.hasModifierProperty(PsiModifier.ABSTRACT)) {
|
||||
return Icons.ABSTRACT_CLASS_ICON;
|
||||
}
|
||||
|
||||
final PsiManager manager = aClass.getManager();
|
||||
final PsiClass javaLangTrowable = manager.findClass("java.lang.Throwable", aClass.getResolveScope());
|
||||
final boolean isException = javaLangTrowable != null && InheritanceUtil.isInheritorOrSelf(aClass, javaLangTrowable, true);
|
||||
if (isException) {
|
||||
return Icons.EXCEPTION_CLASS_ICON;
|
||||
}
|
||||
|
||||
final PsiClass testClass = manager.findClass("junit.framework.TestCase", aClass.getResolveScope());
|
||||
if (testClass != null && InheritanceUtil.isInheritorOrSelf(aClass, testClass, true)) return Icons.JUNIT_TEST_CLASS_ICON;
|
||||
|
||||
return Icons.CLASS_ICON;
|
||||
}
|
||||
|
||||
private static RowIcon createLockableIcon(Icon icon, boolean isLocked) {
|
||||
return createLockableExcludableIcon(icon, isLocked, false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user