From 95207fd561d28805226fccd37df36fc1b06a7bcb Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 26 Apr 2017 13:37:23 +0300 Subject: [PATCH] make icons a bit lazier to reduce class load time --- .../roots/ui/OrderEntryAppearanceServiceImpl.java | 3 +-- .../lookup/DefaultLookupItemRenderer.java | 9 +++------ .../intellij/execution/impl/RunConfigurable.java | 13 ++++--------- .../ide/projectView/impl/ProjectViewImpl.java | 4 +--- .../openapi/actionSystem/impl/ActionButton.java | 4 +--- plugins/devkit/src/projectRoots/IdeaJdk.java | 6 ++---- 6 files changed, 12 insertions(+), 27 deletions(-) diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/OrderEntryAppearanceServiceImpl.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/OrderEntryAppearanceServiceImpl.java index f6dbec5fc368..c7614428c1c5 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/OrderEntryAppearanceServiceImpl.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/OrderEntryAppearanceServiceImpl.java @@ -49,7 +49,6 @@ import java.awt.*; import java.io.File; public class OrderEntryAppearanceServiceImpl extends OrderEntryAppearanceService { - private static final Icon EXCLUDE_FOLDER_ICON = IconLoader.getDisabledIcon(PlatformIcons.FOLDER_ICON); private static final String NO_JDK = ProjectBundle.message("jdk.missing.item"); @@ -162,7 +161,7 @@ public class OrderEntryAppearanceServiceImpl extends OrderEntryAppearanceService return formatRelativePath(folder, PlatformIcons.FOLDER_ICON); } else if (folder instanceof ExcludeFolder) { - return formatRelativePath(folder, EXCLUDE_FOLDER_ICON); + return formatRelativePath(folder, IconLoader.getDisabledIcon(PlatformIcons.FOLDER_ICON)); } else { throw new RuntimeException(folder.getClass().getName()); diff --git a/platform/lang-impl/src/com/intellij/codeInsight/lookup/DefaultLookupItemRenderer.java b/platform/lang-impl/src/com/intellij/codeInsight/lookup/DefaultLookupItemRenderer.java index a67e30db2481..ee5794a91dc9 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/lookup/DefaultLookupItemRenderer.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/lookup/DefaultLookupItemRenderer.java @@ -23,8 +23,6 @@ import com.intellij.psi.util.PsiUtilCore; import com.intellij.ui.SizedIcon; import com.intellij.util.PlatformIcons; import com.intellij.util.ui.EmptyIcon; -import com.intellij.util.ui.JBUI.ScalableJBIcon; -import com.intellij.util.ui.JBUI.ScalableJBIcon.Scale; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -34,7 +32,6 @@ import javax.swing.*; */ public class DefaultLookupItemRenderer extends LookupElementRenderer{ public static final DefaultLookupItemRenderer INSTANCE = new DefaultLookupItemRenderer(); - private static final Icon SAMPLE_ICON = PlatformIcons.CLASS_ICON; @Override public void renderElement(final LookupItem item, final LookupElementPresentation presentation) { @@ -50,8 +47,8 @@ public class DefaultLookupItemRenderer extends LookupElementRenderer public static Icon getRawIcon(final LookupElement item, boolean real) { Icon icon = _getRawIcon(item, real); if (icon instanceof ScalableIcon) icon = ((ScalableIcon)icon).scale(1f); - if (icon != null && icon.getIconHeight() > SAMPLE_ICON.getIconHeight()) { - return new SizedIcon(icon, icon.getIconWidth(), SAMPLE_ICON.getIconHeight()); + if (icon != null && icon.getIconHeight() > PlatformIcons.CLASS_ICON.getIconHeight()) { + return new SizedIcon(icon, icon.getIconWidth(), PlatformIcons.CLASS_ICON.getIconHeight()); } return icon; } @@ -70,7 +67,7 @@ public class DefaultLookupItemRenderer extends LookupElementRenderer return EmptyIcon.ICON_0; } - return EmptyIcon.create(SAMPLE_ICON.getIconWidth() * 2, SAMPLE_ICON.getIconHeight()); + return EmptyIcon.create(PlatformIcons.CLASS_ICON.getIconWidth() * 2, PlatformIcons.CLASS_ICON.getIconHeight()); } if (o instanceof Iconable && !(o instanceof PsiElement)) { diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java index 22f1f19db84e..543f5490acd9 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java @@ -68,11 +68,6 @@ import static com.intellij.ui.RowsDnDSupport.RefinedDropSupport.Position.*; class RunConfigurable extends BaseConfigurable { - private static final Icon ADD_ICON = IconUtil.getAddIcon(); - private static final Icon REMOVE_ICON = IconUtil.getRemoveIcon(); - private static final Icon SHARED_ICON = AllIcons.Nodes.Shared; - private static final Icon NON_SHARED_ICON = EmptyIcon.ICON_16; - @NonNls private static final Object DEFAULTS = new Object() { @Override public String toString() { @@ -194,7 +189,7 @@ class RunConfigurable extends BaseConfigurable { } if (shared != null) { Icon icon = getIcon(); - LayeredIcon layeredIcon = new LayeredIcon(icon, shared ? SHARED_ICON : NON_SHARED_ICON); + LayeredIcon layeredIcon = new LayeredIcon(icon, shared ? AllIcons.Nodes.Shared : EmptyIcon.ICON_16); setIcon(layeredIcon); setIconTextGap(0); } else { @@ -491,7 +486,7 @@ class RunConfigurable extends BaseConfigurable { panel.setBorder(new EmptyBorder(30, 0, 0, 0)); panel.add(new JLabel("Press the")); - ActionLink addIcon = new ActionLink("", ADD_ICON, myAddAction); + ActionLink addIcon = new ActionLink("", IconUtil.getAddIcon(), myAddAction); addIcon.setBorder(new EmptyBorder(0, 0, 0, 5)); panel.add(addIcon); @@ -1104,7 +1099,7 @@ class RunConfigurable extends BaseConfigurable { private class MyToolbarAddAction extends AnAction implements AnActionButtonRunnable { public MyToolbarAddAction() { super(ExecutionBundle.message("add.new.run.configuration.acrtion.name"), - ExecutionBundle.message("add.new.run.configuration.acrtion.name"), ADD_ICON); + ExecutionBundle.message("add.new.run.configuration.acrtion.name"), IconUtil.getAddIcon()); registerCustomShortcutSet(CommonShortcuts.INSERT, myTree); } @@ -1162,7 +1157,7 @@ class RunConfigurable extends BaseConfigurable { public MyRemoveAction() { super(ExecutionBundle.message("remove.run.configuration.action.name"), - ExecutionBundle.message("remove.run.configuration.action.name"), REMOVE_ICON); + ExecutionBundle.message("remove.run.configuration.action.name"), IconUtil.getRemoveIcon()); registerCustomShortcutSet(CommonShortcuts.getDelete(), myTree); } diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java index 6e1b8f4616da..951dc118ff78 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java @@ -154,13 +154,11 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo private final Map myId2Pane = new LinkedHashMap<>(); private final Collection myUninitializedPanes = new THashSet<>(); - static final DataKey DATA_KEY = DataKey.create("com.intellij.ide.projectView.impl.ProjectViewImpl"); + private static final DataKey DATA_KEY = DataKey.create("com.intellij.ide.projectView.impl.ProjectViewImpl"); private DefaultActionGroup myActionGroup; private String mySavedPaneId = ProjectViewPane.ID; private String mySavedPaneSubId; - //private static final Icon COMPACT_EMPTY_MIDDLE_PACKAGES_ICON = IconLoader.getIcon("/objectBrowser/compactEmptyPackages.png"); - //private static final Icon HIDE_EMPTY_MIDDLE_PACKAGES_ICON = IconLoader.getIcon("/objectBrowser/hideEmptyPackages.png"); @NonNls private static final String ELEMENT_NAVIGATOR = "navigator"; @NonNls private static final String ELEMENT_PANES = "panes"; @NonNls private static final String ELEMENT_PANE = "pane"; diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java index cc7c1c0fbd46..9f496f77898f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionButton.java @@ -44,8 +44,6 @@ import static java.awt.event.KeyEvent.VK_SPACE; public class ActionButton extends JComponent implements ActionButtonComponent, AnActionHolder, Accessible { - private static final Icon ourEmptyIcon = EmptyIcon.ICON_18; - private JBDimension myMinimumButtonSize; private PropertyChangeListener myPresentationListener; private Icon myDisabledIcon; @@ -243,7 +241,7 @@ public class ActionButton extends JComponent implements ActionButtonComponent, A */ protected Icon getIcon() { Icon icon = isButtonEnabled() ? myIcon : myDisabledIcon; - return icon == null ? ourEmptyIcon : icon; + return icon == null ? EmptyIcon.ICON_18 : icon; } public void updateIcon() { diff --git a/plugins/devkit/src/projectRoots/IdeaJdk.java b/plugins/devkit/src/projectRoots/IdeaJdk.java index acbb05ec103e..5e3aafe9a0b6 100644 --- a/plugins/devkit/src/projectRoots/IdeaJdk.java +++ b/plugins/devkit/src/projectRoots/IdeaJdk.java @@ -81,8 +81,6 @@ import java.util.zip.ZipFile; * @since Nov 22, 2004 */ public class IdeaJdk extends JavaDependentSdkType implements JavaSdkType { - private static final Icon ADD_SDK = DevkitIcons.Add_sdk; - private static final Icon SDK_CLOSED = DevkitIcons.Sdk_closed; private static final Logger LOG = Logger.getInstance("#org.jetbrains.idea.devkit.projectRoots.IdeaJdk"); @NonNls private static final String LIB_DIR_NAME = "lib"; @@ -95,7 +93,7 @@ public class IdeaJdk extends JavaDependentSdkType implements JavaSdkType { @Override public Icon getIcon() { - return SDK_CLOSED; + return DevkitIcons.Sdk_closed; } @NotNull @@ -107,7 +105,7 @@ public class IdeaJdk extends JavaDependentSdkType implements JavaSdkType { @Override @NotNull public Icon getIconForAddAction() { - return ADD_SDK; + return DevkitIcons.Add_sdk; } @Override