IDEA-251207 Set of plugins cannot be unloaded because of IconLoader
authorVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Tue, 22 Sep 2020 18:07:48 +0000 (20:07 +0200)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Thu, 24 Sep 2020 15:26:04 +0000 (15:26 +0000)
GitOrigin-RevId: 441b875462f12fe0d20d3830181e6280e3b829ba

adt-ui/src/main/java/com/android/tools/adtui/ImageComponent.java
adt-ui/src/main/java/com/android/tools/adtui/eventrenderer/EventRenderer.java
android/src/com/android/tools/idea/npw/template/IconLoader.kt
designer/src/com/android/tools/idea/uibuilder/palette/PreviewProvider.java

index 2fbb755e543bb46779b65523a4813cd8df07aa2f..84f20025b1ea2b676edaf6c315958f7bdfaff923 100644 (file)
  */
 package com.android.tools.adtui;
 
+import com.intellij.openapi.util.IconLoader;
 import com.intellij.ui.components.panels.OpaquePanel;
 import com.intellij.ui.scale.ScaleContext;
 import com.intellij.util.IconUtil;
 import com.intellij.util.ui.ImageUtil;
 import com.intellij.util.ui.UIUtil;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import javax.swing.*;
 import java.awt.*;
 import java.awt.image.BufferedImage;
+import javax.swing.*;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
 /**
  * ImageComponent is a Swing component that displays an image. The image is scaled to fit inside the component bounds, which are set
@@ -44,7 +44,7 @@ public class ImageComponent extends OpaquePanel {
   @Override
   protected void paintChildren(@NotNull Graphics g) {
     if (myIcon == null) return;
-    Image image = IconUtil.toImage(myIcon, ScaleContext.create((Graphics2D)g));
+    Image image = IconLoader.toImage(myIcon, ScaleContext.create((Graphics2D)g));
     UIUtil.drawImage(g, image, new Rectangle(getWidth(), getHeight()), new Rectangle(image.getWidth(null), image.getHeight(null)), null);
   }
 
index f325954d7c9a3a20efd813c158538b1238bfc65f..a470c7a74ecb8d4aa26e163778e16c2738cb7b1e 100644 (file)
 package com.android.tools.adtui.eventrenderer;
 
 import com.android.tools.adtui.model.event.EventAction;
+import com.intellij.openapi.util.IconLoader;
 import com.intellij.ui.scale.ScaleContext;
-import com.intellij.util.IconUtil;
 import com.intellij.util.ui.ImageUtil;
 import com.intellij.util.ui.JBImageIcon;
-import com.intellij.util.ui.UIUtil;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import javax.swing.*;
 import java.awt.*;
 import java.awt.geom.AffineTransform;
 import java.awt.image.BufferedImage;
+import javax.swing.*;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
 /**
  * Interface to define how events should be rendered in the event timeline.
@@ -72,10 +70,10 @@ public interface EventRenderer<E> {
    * @param g2d Graphics object to be used for painting the icon, used to get the appropriate scaling.
    */
   static ImageIcon createImageIconWithBackgroundBorder(Icon icon, int margin, Color borderColor, Graphics2D g2d) {
-    BufferedImage originalImage = ImageUtil.toBufferedImage(IconUtil.toImage(icon, ScaleContext.create(g2d)));
+    BufferedImage originalImage = ImageUtil.toBufferedImage(IconLoader.toImage(icon, ScaleContext.create(g2d)));
     // Border image has a bigger size to fit the extra border
-    BufferedImage borderImage = UIUtil.createImage(g2d, icon.getIconWidth() + margin * 2,icon.getIconHeight() + margin * 2,
-                                                   BufferedImage.TYPE_INT_ARGB);
+    BufferedImage borderImage =
+      ImageUtil.createImage(g2d, icon.getIconWidth() + margin * 2, icon.getIconHeight() + margin * 2, BufferedImage.TYPE_INT_ARGB);
 
     int scaledMargin = (borderImage.getHeight() - originalImage.getHeight()) / 2;
     for (int y = 0; y < originalImage.getHeight(); ++y) {
index fa2a7550275e9124f60df3b7ad184afea8934948..bc083f788cc9ea4672bb3e704299cafc317e21cd 100644 (file)
@@ -20,10 +20,11 @@ import com.google.common.cache.CacheLoader
 import com.intellij.openapi.diagnostic.logger
 import com.intellij.openapi.util.IconLoader.findIcon
 import java.net.URL
+import java.util.*
 import javax.swing.Icon
-import java.util.Optional
 
-private val log get() = logger<IconLoader>()
+private val log
+  get() = logger<IconLoader>()
 
 /**
  * Guava [CacheLoader] which can convert a file path to an icon. This is used to help us load standard 256x256 icons out of template files.
index 251dd648a4d5108ce6b314e3f63482bf8c4e928e..5ac0a7a2f88264e91d38bc1a4476b78719c18f58 100644 (file)
@@ -42,6 +42,7 @@ import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.util.Computable;
+import com.intellij.openapi.util.IconLoader;
 import com.intellij.openapi.util.SystemInfo;
 import com.intellij.psi.PsiFile;
 import com.intellij.psi.PsiFileFactory;
@@ -49,13 +50,10 @@ import com.intellij.psi.XmlElementFactory;
 import com.intellij.psi.xml.XmlFile;
 import com.intellij.psi.xml.XmlTag;
 import com.intellij.ui.scale.ScaleContext;
-import com.intellij.util.IconUtil;
 import com.intellij.util.IncorrectOperationException;
 import com.intellij.util.ui.ImageUtil;
 import com.intellij.util.ui.StartupUiUtil;
-import com.intellij.util.ui.UIUtil;
-import java.awt.Dimension;
-import java.awt.Image;
+import java.awt.*;
 import java.awt.image.BufferedImage;
 import java.awt.image.RasterFormatException;
 import java.util.List;
@@ -63,8 +61,7 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.function.Supplier;
-import javax.swing.Icon;
-import javax.swing.JComponent;
+import javax.swing.*;
 import org.jetbrains.android.facet.AndroidFacet;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -111,7 +108,7 @@ public class PreviewProvider implements Disposable {
 
     if (renderedItem == null) {
       Icon icon = item.getIcon();
-      image = IconUtil.toImage(icon, scaleContext);
+      image = IconLoader.toImage(icon, scaleContext);
     }
     else {
       image = ImageUtil.ensureHiDPI(renderedItem, scaleContext);