From 3a24d2578545549d87d5630ce2c06faed91153de Mon Sep 17 00:00:00 2001 From: Alexander Lobas Date: Tue, 12 Aug 2014 14:57:17 +0400 Subject: [PATCH] CPP-560 New Welcome Screen for CLion: move ultimate and community icons to platform --- .../src/plugins/OtherTools.png | Bin 2344 -> 0 bytes .../customize/CustomizePluginsStepPanel.java | 7 ++-- .../intellij/ide/customize/PluginGroups.java | 38 +++++++++--------- .../src/icons/PlatformImplIcons.java | 28 +++++++++++++ .../src/icons}/plugins/Android.png | Bin .../src/icons}/plugins/Android@2x.png | Bin .../src/icons}/plugins/ApplicationServers.png | Bin .../icons}/plugins/ApplicationServers@2x.png | Bin .../src/icons}/plugins/BuildTools.png | Bin .../src/icons}/plugins/BuildTools@2x.png | Bin .../src/icons}/plugins/Clouds.png | Bin .../src/icons}/plugins/Clouds@2x.png | Bin .../src/icons}/plugins/DatabaseTools.png | Bin .../src/icons}/plugins/DatabaseTools@2x.png | Bin .../src/icons}/plugins/JavaFrameworks.png | Bin .../src/icons}/plugins/JavaFrameworks@2x.png | Bin .../src/icons/plugins/OtherTools.png | Bin 0 -> 2343 bytes .../src/icons}/plugins/OtherTools@2x.png | Bin .../src/icons}/plugins/PluginDevelopment.png | Bin .../icons}/plugins/PluginDevelopment@2x.png | Bin .../src/icons}/plugins/Swing.png | Bin .../src/icons}/plugins/Swing@2x.png | Bin .../src/icons}/plugins/TestTools.png | Bin .../src/icons}/plugins/TestTools@2x.png | Bin .../src/icons}/plugins/VersionControls.png | Bin .../src/icons}/plugins/VersionControls@2x.png | Bin .../src/icons}/plugins/WebDevelopment.png | Bin .../src/icons}/plugins/WebDevelopment@2x.png | Bin 28 files changed, 51 insertions(+), 22 deletions(-) delete mode 100644 community-resources/src/plugins/OtherTools.png create mode 100644 platform/platform-impl/src/icons/PlatformImplIcons.java rename {community-resources/src => platform/platform-impl/src/icons}/plugins/Android.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/Android@2x.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/ApplicationServers.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/ApplicationServers@2x.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/BuildTools.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/BuildTools@2x.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/Clouds.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/Clouds@2x.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/DatabaseTools.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/DatabaseTools@2x.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/JavaFrameworks.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/JavaFrameworks@2x.png (100%) create mode 100644 platform/platform-impl/src/icons/plugins/OtherTools.png rename {community-resources/src => platform/platform-impl/src/icons}/plugins/OtherTools@2x.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/PluginDevelopment.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/PluginDevelopment@2x.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/Swing.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/Swing@2x.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/TestTools.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/TestTools@2x.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/VersionControls.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/VersionControls@2x.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/WebDevelopment.png (100%) rename {community-resources/src => platform/platform-impl/src/icons}/plugins/WebDevelopment@2x.png (100%) diff --git a/community-resources/src/plugins/OtherTools.png b/community-resources/src/plugins/OtherTools.png deleted file mode 100644 index 5fb7ae56774c2f4c32c17057349b9b8c614e133c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2344 zcmV+@3D@?CP) zeBb-M@Asakp8Ef51HU5lHb1Brx(B_o@eJhKz80B3B#{MB{*WCeezBnpq!gJyv;E~9 ziPZH=O!0_B8HVlQ8)YUi`T>BpMr60ijvt?uxI&A>m0pynf?@mqJnM;d4IiendX5{r71G+Xx?yj1yHfB5@UCa=7-A9K+~;w{t;GbYEL|sq5P2br&+h zIRhVqfkwhdVANxgC0WS zq?~2L@5wg#!9ZPz13nfZlZa72+H^&Zwa&?Lz^8UxmE&#mI5zXl65ziHT`4Rql*YzJ z>FVkdlgT6&i$!cUn^>(@DK0K1ykXh!L767MJ=p_BgpNcMsPNO0tiaDpYTH$1^cDEV zE1Z=t`w0Iz=vH%cvjW=F(<7~|t!q%)PEkusivnL-T1xmDhS;*< zcW3m4WAyEzc{YhgPCr;ZB}ol4auhM23?O=8T~BN?-}<|*ct#%4r9R{LFmwcs}48JJUnO|{~-GsZa?Wq|5lKOOjA`SrY4K+zIg0Cjs0>_^GKW>Fw>MiFcsq zy#PF<0nPwNp6?7RD8L8!&qIIVAb3ulIRo?R=pV%5gn>7qQ0Qss3(#wjHKArY383wc zkyo2zW=8r_+A7uw>@Kz@GyBNL9ipYH+w)6gGSGdO!*4TR`y52H)QB(8GmBbeB> z*tAwxS7)cEr+YK8)dl9A!NEbLfblvvCJLRi5I%2)uG28DThu_9e&}vA@_tOkM7OV5 z3nntXn79pXa{{`_G|EumHI!bjSBjZa1uk=JH8w%BtQ)FnUktnvRf49ZtQ!tL-^#~HGw{=7mjy%|3F#Oz7>j(bq zysHUjCwv}+UdYJJdj+5m%x1F^HiRR%ClkC6;dw8nUB0t|!@!?CuK}$sHB3KzYq>=b zP-mS@K)q1lIZghr5bt&ZaP!8(Rasf7fN3-uwa^Sf&x3k#u=VsnDq7aDPh6wG=IZU=R$QBnc2_o(0PlzPr0yv|8;4fchi!F7ywVhKBmcQLXuU_KCpbkA4k!@dVEidp{~{&%y(OG(4tRz(a#$PYUoGP?4jT z9f$IuuRG42=4g9^=UM>#2PchvnMrk*)8fj8Za-DY*A7zQjz{LJjZRHwo-gxtaBXte)4Sv_zb{d5}o>KklJ*{UX>>pOrg{C>Sn z*pKYVGQGAI22L@RG3^nCDUPtnB8mvj?*t}zMn=Zt@VT15yl%+om2720bXGxMF6hro1JnEbR?EPj2*fbqXybboK=086*91)voV!O> zPa0*2;dgI2_p#`&Gu`#qM-WPhcvKmOXRDD#7leH|`f~|P?`_z1zSn;>4BVjsE>3)Y z)p2Yupzk`H$jZu6w#EFdqX_+16OKN+z+Ios{`(LXH9NuxJUrf~waD(weu06mo#%Q2 zR%$?P|6X@F9t;!jv#N6QMHAfTI5jEBuJ?+szT}72w9H+<%|0CG+;*C>&hiazl6KXGut8g6a zfthJc_UFR{9 z7Bx(S!bA`<6V}50wSwQl2e-^T>L!jRaO`)BU3;KxJOHCT%%>r);w*4IL>7%I>2-HT zf9qPnM>88Sd{~v$>g-s=KlSAv(PiVCVk#ylVk-&#xNux>9#0HMMzN?jtv39Lyu7@B zGnF#t3D1;@{gHjC&-f3N!bJJRl~@3~DyD2=1pWHQR~!CS$nMBc|8f+qIj8{Ix}1CB zxzuKa)O8pURro%F#r$NNnbmkj6_0%?x^#T_K-t87ytm=|#)1Ezd;JI1;XM{s6ZM+_ O0000Z-+_% diff --git a/platform/platform-impl/src/com/intellij/ide/customize/CustomizePluginsStepPanel.java b/platform/platform-impl/src/com/intellij/ide/customize/CustomizePluginsStepPanel.java index 31cd5f4df35f..8924c09780dd 100644 --- a/platform/platform-impl/src/com/intellij/ide/customize/CustomizePluginsStepPanel.java +++ b/platform/platform-impl/src/com/intellij/ide/customize/CustomizePluginsStepPanel.java @@ -19,7 +19,6 @@ import com.intellij.ide.plugins.PluginManager; import com.intellij.openapi.application.ApplicationNamesInfo; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.ui.VerticalFlowLayout; -import com.intellij.openapi.util.IconLoader; import com.intellij.openapi.util.Pair; import com.intellij.ui.ColorUtil; import com.intellij.ui.JBCardLayout; @@ -68,8 +67,8 @@ public class CustomizePluginsStepPanel extends AbstractCustomizeWizardStep imple add(scrollPane, MAIN); add(myCustomizePanel, CUSTOMIZE); - Map>> groups = pluginGroups.getTree(); - for (final Map.Entry>> entry : groups.entrySet()) { + Map>> groups = pluginGroups.getTree(); + for (final Map.Entry>> entry : groups.entrySet()) { final String group = entry.getKey(); if (PluginGroups.CORE.equals(group)) continue; @@ -91,7 +90,7 @@ public class CustomizePluginsStepPanel extends AbstractCustomizeWizardStep imple return isGroupEnabled(group); } }; - groupPanel.add(new JLabel(IconLoader.getIcon(entry.getValue().getFirst())), gbc); + groupPanel.add(new JLabel(entry.getValue().getFirst()), gbc); //gbc.insets.bottom = 5; groupPanel.add(titleLabel, gbc); JLabel descriptionLabel = new JLabel(pluginGroups.getDescription(group), SwingConstants.CENTER) { diff --git a/platform/platform-impl/src/com/intellij/ide/customize/PluginGroups.java b/platform/platform-impl/src/com/intellij/ide/customize/PluginGroups.java index 22fb4a3405ea..5b934935af6b 100644 --- a/platform/platform-impl/src/com/intellij/ide/customize/PluginGroups.java +++ b/platform/platform-impl/src/com/intellij/ide/customize/PluginGroups.java @@ -26,8 +26,10 @@ import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.ArrayUtil; import com.intellij.util.containers.ContainerUtil; +import icons.PlatformImplIcons; import org.jetbrains.annotations.Nullable; +import javax.swing.*; import java.io.File; import java.util.*; @@ -35,7 +37,7 @@ public class PluginGroups { static final String CORE = "Core"; private static final int MAX_DESCR_LENGTH = 55; - final Map>> myTree = new LinkedHashMap>>(); + final Map>> myTree = new LinkedHashMap>>(); final Map myFeaturedPlugins = new LinkedHashMap(); private final Map> myGroups = new LinkedHashMap>(); @@ -60,8 +62,8 @@ public class PluginGroups { } protected void - initGroups(Map>> tree, Map featuredPlugins) { - tree.put(CORE, Pair.create((String)null, Arrays.asList( + initGroups(Map>> tree, Map featuredPlugins) { + tree.put(CORE, Pair.create((Icon)null, Arrays.asList( "com.intellij.copyright", "com.intellij.java-i18n", "org.intellij.intelliLang", @@ -70,7 +72,7 @@ public class PluginGroups { "Type Migration", "ZKM" ))); - tree.put("Java Frameworks", Pair.create("/plugins/JavaFrameworks.png", Arrays.asList( + tree.put("Java Frameworks", Pair.create(PlatformImplIcons.JavaFrameworks, Arrays.asList( "com.intellij.appengine", "org.intellij.grails", "com.intellij.gwt", @@ -105,12 +107,12 @@ public class PluginGroups { "com.intellij.aspectj", "Osmorc" ))); - tree.put("Build Tools", Pair.create("/plugins/BuildTools.png", Arrays.asList( + tree.put("Build Tools", Pair.create(PlatformImplIcons.BuildTools, Arrays.asList( "AntSupport", "Maven:org.jetbrains.idea.maven,org.jetbrains.idea.maven.ext", "org.jetbrains.plugins.gradle" ))); - tree.put("Web Development", Pair.create("/plugins/WebDevelopment.png", Arrays.asList( + tree.put("Web Development", Pair.create(PlatformImplIcons.WebDevelopment, Arrays.asList( "HTML:HtmlTools,QuirksMode,W3Validators", "org.jetbrains.plugins.haml", "com.jetbrains.plugins.jade", @@ -127,14 +129,14 @@ public class PluginGroups { addVcsGroup(tree); - tree.put("Test Tools", Pair.create("/plugins/TestTools.png", Arrays.asList( + tree.put("Test Tools", Pair.create(PlatformImplIcons.TestTools, Arrays.asList( "JUnit", "TestNG-J", "cucumber-java", "cucumber", "Coverage:Coverage,Emma" ))); - tree.put("Application Servers", Pair.create("/plugins/ApplicationServers.png", Arrays.asList( + tree.put("Application Servers", Pair.create(PlatformImplIcons.ApplicationServers, Arrays.asList( "com.intellij.javaee.view", "Geronimo", "GlassFish", @@ -147,7 +149,7 @@ public class PluginGroups { "com.intellij.dmserver", "JSR45Plugin" ))); - tree.put("Clouds", Pair.create("/plugins/Clouds.png", Arrays.asList( + tree.put("Clouds", Pair.create(PlatformImplIcons.Clouds, Arrays.asList( "CloudFoundry", "CloudBees", "Heroku", @@ -155,16 +157,16 @@ public class PluginGroups { ))); //myTree.put("Groovy", Arrays.asList("org.intellij.grails")); //TODO Scala -> Play 2.x (Play 2.0 Support) - tree.put("Swing", Pair.create("/plugins/Swing.png", Arrays.asList( + tree.put("Swing", Pair.create(PlatformImplIcons.Swing, Arrays.asList( "com.intellij.uiDesigner"//TODO JavaFX? ))); - tree.put("Android", Pair.create("/plugins/Android.png", Arrays.asList( + tree.put("Android", Pair.create(PlatformImplIcons.Android, Arrays.asList( "org.jetbrains.android", "com.intellij.android-designer"))); - tree.put("Database Tools", Pair.create("/plugins/DatabaseTools.png", Arrays.asList( + tree.put("Database Tools", Pair.create(PlatformImplIcons.DatabaseTools, Arrays.asList( "com.intellij.database" ))); - tree.put("Other Tools", Pair.create("/plugins/OtherTools.png", Arrays.asList( + tree.put("Other Tools", Pair.create(PlatformImplIcons.OtherTools, Arrays.asList( "ByteCodeViewer", "com.intellij.dsm", "org.jetbrains.idea.eclipse", @@ -175,7 +177,7 @@ public class PluginGroups { "org.jetbrains.plugins.yaml", "XSLT and XPath:XPathView,XSLT-Debugger" ))); - tree.put("Plugin Development", Pair.create("/plugins/PluginDevelopment.png", Arrays.asList("DevKit"))); + tree.put("Plugin Development", Pair.create(PlatformImplIcons.PluginDevelopment, Arrays.asList("DevKit"))); featuredPlugins.put("Scala", "Custom Languages:Plugin for Scala language support:org.intellij.scala"); featuredPlugins.put("Live Edit Tool", @@ -186,8 +188,8 @@ public class PluginGroups { "Tools Integration:Integration for Atlassian JIRA, Bamboo, Cricible, FishEye:atlassian-idea-plugin"); } - protected static void addVcsGroup(Map>> tree) { - tree.put("Version Controls", Pair.create("/plugins/VersionControls.png", Arrays.asList( + protected static void addVcsGroup(Map>> tree) { + tree.put("Version Controls", Pair.create(PlatformImplIcons.VersionControls, Arrays.asList( "ClearcasePlugin", "CVS", "Git4Idea", @@ -206,7 +208,7 @@ public class PluginGroups { private void initIfNeed() { if (myInitialized) return; myInitialized = true; - for (Map.Entry>> entry : myTree.entrySet()) { + for (Map.Entry>> entry : myTree.entrySet()) { final String group = entry.getKey(); if (CORE.equals(group)) continue; @@ -233,7 +235,7 @@ public class PluginGroups { } } - Map>> getTree() { + Map>> getTree() { initIfNeed(); return myTree; } diff --git a/platform/platform-impl/src/icons/PlatformImplIcons.java b/platform/platform-impl/src/icons/PlatformImplIcons.java new file mode 100644 index 000000000000..87dd75428d01 --- /dev/null +++ b/platform/platform-impl/src/icons/PlatformImplIcons.java @@ -0,0 +1,28 @@ +package icons; + +import com.intellij.openapi.util.IconLoader; + +import javax.swing.*; + +/** + * NOTE THIS FILE IS AUTO-GENERATED + * DO NOT EDIT IT BY HAND, run build/scripts/icons.gant instead + */ +public class PlatformImplIcons { + private static Icon load(String path) { + return IconLoader.getIcon(path, PlatformImplIcons.class); + } + + public static final Icon Android = load("/icons/plugins/Android.png"); // 48x48 + public static final Icon ApplicationServers = load("/icons/plugins/ApplicationServers.png"); // 48x48 + public static final Icon BuildTools = load("/icons/plugins/BuildTools.png"); // 48x48 + public static final Icon Clouds = load("/icons/plugins/Clouds.png"); // 48x48 + public static final Icon DatabaseTools = load("/icons/plugins/DatabaseTools.png"); // 48x48 + public static final Icon JavaFrameworks = load("/icons/plugins/JavaFrameworks.png"); // 48x48 + public static final Icon OtherTools = load("/icons/plugins/OtherTools.png"); // 48x48 + public static final Icon PluginDevelopment = load("/icons/plugins/PluginDevelopment.png"); // 48x48 + public static final Icon Swing = load("/icons/plugins/Swing.png"); // 48x48 + public static final Icon TestTools = load("/icons/plugins/TestTools.png"); // 48x48 + public static final Icon VersionControls = load("/icons/plugins/VersionControls.png"); // 48x48 + public static final Icon WebDevelopment = load("/icons/plugins/WebDevelopment.png"); // 48x48 +} diff --git a/community-resources/src/plugins/Android.png b/platform/platform-impl/src/icons/plugins/Android.png similarity index 100% rename from community-resources/src/plugins/Android.png rename to platform/platform-impl/src/icons/plugins/Android.png diff --git a/community-resources/src/plugins/Android@2x.png b/platform/platform-impl/src/icons/plugins/Android@2x.png similarity index 100% rename from community-resources/src/plugins/Android@2x.png rename to platform/platform-impl/src/icons/plugins/Android@2x.png diff --git a/community-resources/src/plugins/ApplicationServers.png b/platform/platform-impl/src/icons/plugins/ApplicationServers.png similarity index 100% rename from community-resources/src/plugins/ApplicationServers.png rename to platform/platform-impl/src/icons/plugins/ApplicationServers.png diff --git a/community-resources/src/plugins/ApplicationServers@2x.png b/platform/platform-impl/src/icons/plugins/ApplicationServers@2x.png similarity index 100% rename from community-resources/src/plugins/ApplicationServers@2x.png rename to platform/platform-impl/src/icons/plugins/ApplicationServers@2x.png diff --git a/community-resources/src/plugins/BuildTools.png b/platform/platform-impl/src/icons/plugins/BuildTools.png similarity index 100% rename from community-resources/src/plugins/BuildTools.png rename to platform/platform-impl/src/icons/plugins/BuildTools.png diff --git a/community-resources/src/plugins/BuildTools@2x.png b/platform/platform-impl/src/icons/plugins/BuildTools@2x.png similarity index 100% rename from community-resources/src/plugins/BuildTools@2x.png rename to platform/platform-impl/src/icons/plugins/BuildTools@2x.png diff --git a/community-resources/src/plugins/Clouds.png b/platform/platform-impl/src/icons/plugins/Clouds.png similarity index 100% rename from community-resources/src/plugins/Clouds.png rename to platform/platform-impl/src/icons/plugins/Clouds.png diff --git a/community-resources/src/plugins/Clouds@2x.png b/platform/platform-impl/src/icons/plugins/Clouds@2x.png similarity index 100% rename from community-resources/src/plugins/Clouds@2x.png rename to platform/platform-impl/src/icons/plugins/Clouds@2x.png diff --git a/community-resources/src/plugins/DatabaseTools.png b/platform/platform-impl/src/icons/plugins/DatabaseTools.png similarity index 100% rename from community-resources/src/plugins/DatabaseTools.png rename to platform/platform-impl/src/icons/plugins/DatabaseTools.png diff --git a/community-resources/src/plugins/DatabaseTools@2x.png b/platform/platform-impl/src/icons/plugins/DatabaseTools@2x.png similarity index 100% rename from community-resources/src/plugins/DatabaseTools@2x.png rename to platform/platform-impl/src/icons/plugins/DatabaseTools@2x.png diff --git a/community-resources/src/plugins/JavaFrameworks.png b/platform/platform-impl/src/icons/plugins/JavaFrameworks.png similarity index 100% rename from community-resources/src/plugins/JavaFrameworks.png rename to platform/platform-impl/src/icons/plugins/JavaFrameworks.png diff --git a/community-resources/src/plugins/JavaFrameworks@2x.png b/platform/platform-impl/src/icons/plugins/JavaFrameworks@2x.png similarity index 100% rename from community-resources/src/plugins/JavaFrameworks@2x.png rename to platform/platform-impl/src/icons/plugins/JavaFrameworks@2x.png diff --git a/platform/platform-impl/src/icons/plugins/OtherTools.png b/platform/platform-impl/src/icons/plugins/OtherTools.png new file mode 100644 index 0000000000000000000000000000000000000000..eabbc4bc32d55564e8548c964d9f93a8f38e464e GIT binary patch literal 2343 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