custom icons for intention actions 94.527
authorKonstantin Bulenkov <kb@jetbrains.com>
Thu, 11 Mar 2010 02:59:56 +0000 (05:59 +0300)
committerKonstantin Bulenkov <kb@jetbrains.com>
Thu, 11 Mar 2010 02:59:56 +0000 (05:59 +0300)
platform/lang-impl/src/com/intellij/codeInsight/intention/impl/IntentionListStep.java

index 67ec6f21d9856a821524906fda1fa45e38818b97..ed8375b957a48d0e1c15755d51c4f3c1b043bc84 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2010 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@ import com.intellij.codeInsight.hint.HintManager;
 import com.intellij.codeInsight.intention.EmptyIntentionAction;
 import com.intellij.codeInsight.intention.IntentionAction;
 import com.intellij.codeInsight.intention.PreferredAction;
+import com.intellij.codeInsight.intention.impl.config.IntentionActionWrapper;
 import com.intellij.codeInsight.intention.impl.config.IntentionManagerSettings;
 import com.intellij.codeInspection.ex.QuickFixWrapper;
 import com.intellij.openapi.application.ApplicationManager;
@@ -273,14 +274,18 @@ class IntentionListStep implements ListPopupStep<IntentionActionWithTextCaching>
 
     final IntentionAction action = value.getAction();
 
+    Object iconable = null;
     //custom icon
     if (action instanceof QuickFixWrapper) {
-      final QuickFixWrapper quickFix = (QuickFixWrapper)action;
-      if (quickFix.getFix() instanceof Iconable) {
-        final Icon icon = ((Iconable)quickFix.getFix()).getIcon(0);
-        if (icon != null) {
-          return icon;
-        }
+      iconable = ((QuickFixWrapper)action).getFix();
+    } else if (action instanceof IntentionActionWrapper) {
+      iconable = ((IntentionActionWrapper)action).getDelegate(); 
+    }
+
+    if (iconable instanceof Iconable) {
+      final Icon icon = ((Iconable)iconable).getIcon(0);
+      if (icon != null) {
+        return icon;
       }
     }