From ab2dbba24908e945d71fae17427e8b9b5c32edc9 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 11 Apr 2017 13:26:43 +0300 Subject: [PATCH] Abstract class icon added (KT-7810) #KT-7810 Fixed --- .../kotlin/idea/KotlinDescriptorIconProvider.java | 7 +++++-- .../jetbrains/kotlin/idea/KotlinIconProvider.kt | 3 ++- .../org/jetbrains/kotlin/idea/KotlinIcons.java | 1 + .../kotlin/idea/icons/abstractClassKotlin.png | Bin 0 -> 407 bytes .../kotlin/idea/icons/abstractClassKotlin@2x.png | Bin 0 -> 879 bytes 5 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 idea/resources/org/jetbrains/kotlin/idea/icons/abstractClassKotlin.png create mode 100644 idea/resources/org/jetbrains/kotlin/idea/icons/abstractClassKotlin@2x.png diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinDescriptorIconProvider.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinDescriptorIconProvider.java index 3a0f8294415..578daf79c42 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinDescriptorIconProvider.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinDescriptorIconProvider.java @@ -99,7 +99,8 @@ public final class KotlinDescriptorIconProvider { } } if (descriptor instanceof ClassDescriptor) { - switch (((ClassDescriptor) descriptor).getKind()) { + ClassDescriptor classDescriptor = (ClassDescriptor) descriptor; + switch (classDescriptor.getKind()) { case INTERFACE: return KotlinIcons.INTERFACE; case ENUM_CLASS: @@ -111,7 +112,9 @@ public final class KotlinDescriptorIconProvider { case OBJECT: return KotlinIcons.OBJECT; case CLASS: - return KotlinIcons.CLASS; + return Modality.ABSTRACT == classDescriptor.getModality() ? + KotlinIcons.ABSTRACT_CLASS : + KotlinIcons.CLASS; default: LOG.warn("No icon for descriptor: " + descriptor); return null; diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt index 9845692b652..e40fd37f03a 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIconProvider.kt @@ -29,6 +29,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.lightClasses.KtLightClassForDeco import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType +import org.jetbrains.kotlin.psi.psiUtil.isAbstract import javax.swing.Icon class KotlinIconProvider : IconProvider(), DumbAware { @@ -104,7 +105,7 @@ class KotlinIconProvider : IconProvider(), DumbAware { isEnum() -> KotlinIcons.ENUM isAnnotation() -> KotlinIcons.ANNOTATION this is KtEnumEntry && getPrimaryConstructorParameterList() == null -> KotlinIcons.ENUM - else -> KotlinIcons.CLASS + else -> if (isAbstract()) KotlinIcons.ABSTRACT_CLASS else KotlinIcons.CLASS } is KtObjectDeclaration -> KotlinIcons.OBJECT is KtParameter -> { diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java index 05cd5b42659..5bd33406fc7 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinIcons.java @@ -28,6 +28,7 @@ public interface KotlinIcons { Icon SMALL_LOGO_13 = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin13.png"); Icon CLASS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/classKotlin.png"); + Icon ABSTRACT_CLASS = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/abstractClassKotlin.png"); Icon ENUM = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/enumKotlin.png"); Icon FILE = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_file.png"); Icon ACTIVITY = IconLoader.getIcon("/org/jetbrains/kotlin/idea/icons/kotlin_activity.png"); diff --git a/idea/resources/org/jetbrains/kotlin/idea/icons/abstractClassKotlin.png b/idea/resources/org/jetbrains/kotlin/idea/icons/abstractClassKotlin.png new file mode 100644 index 0000000000000000000000000000000000000000..5d6e2cabb7f810d6a11eb14af0aed9b1fe895e51 GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85m^SL71`s>Bm%{pk#?_L`iUdT1k0gQ7S`0VrE{6US4X6f{C7i zo}sY`b95EZRCZ4n#}Etu_I;LQ%ur(l8fI%dHIcbB6nePdSEQSuZ3icBxTezBdH$>NFuFLcIWa(@D zon2wg(>LYp-HbB>-X<_RFcmO6%-U+}y#BV1%{Go@g58Y93vU_nGTh9HGEe5-l_tQp zvTz}9hK#mH|DQ8vc+HM5{o8c|7;X%nu6{1-oD!MPx#1ZP1_K>z@;j|==^1poj532;bRa{vGxhX4Q_hXIe}@nrx202y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^DS16z6k00Q4hL_t(oN9~tOXcJ)&$M>9rcv36)fS!C* zf*ur+BIY0p)`MC>JVg5l@qv#7L!qD)YLTL=q4iZ1TG5aef`?L25HHq453X255f6bP zh!;VWqDaP>Ftg7u*+-h21AhX$GynhZ+iZ5fX#Xo{?Vc&ePzh8TrK9e-M91hH^~89r z@gg%+66Fr`6U{URa=-9&Ihv?e8&o=ZuwA&q!PTg33e!*`5AtH$V1)ynJh)TyjKAaCR|M(fSq@rJ+TLG?l?Z* zcDU;e$qqu0J^%@hwF(cWT}=)EGL>-p+@Y7I(%GE$}0LbcTmG%HXi4S|4;#jNP4JZeIte$Q(dw`$BhdoVk ztX1v?R3HEzZ@gUL9sv0Y=#Fm|K%|?H$F*f80F}n_{qSqB6&A0qRmtG-DnO*4A&)Bo zM)Yg&?ecc`KG3FuFi_U38pA?Ai0Gli;~sz;!?&T_cL2Wh?@>WG!>KSV(xbR_-TLZd z)gC@H^a$Q(PQs^4M^zBsa48H7{W9WF6X4M3TbMhW1LOP|6@-BhwRcDu82WY0qg8-| z`H%22bsc6;4X7Xtgz(>ZbjrA^o9b)vt z473z~o4<_65Ev3e)%;_^ZQ4lh4-kmqiw3MJ{&9zk!b4DD7=ft%npMqirYb-XS2AB= zW$~{n*sf?0^-50x