summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/ide/customize
diff options
context:
space:
mode:
Diffstat (limited to 'platform/platform-impl/src/com/intellij/ide/customize')
-rw-r--r--platform/platform-impl/src/com/intellij/ide/customize/CustomizeFeaturedPluginsStepPanel.java8
-rw-r--r--platform/platform-impl/src/com/intellij/ide/customize/CustomizeIDEWizardDialog.java27
-rw-r--r--platform/platform-impl/src/com/intellij/ide/customize/CustomizeIDEWizardStepsProvider.java25
-rw-r--r--platform/platform-impl/src/com/intellij/ide/customize/CustomizeKeyboardSchemeStepPanel.java2
-rw-r--r--platform/platform-impl/src/com/intellij/ide/customize/CustomizePluginsStepPanel.java39
-rw-r--r--platform/platform-impl/src/com/intellij/ide/customize/CustomizeUIThemeStepPanel.java56
-rw-r--r--platform/platform-impl/src/com/intellij/ide/customize/IdSet.java6
-rw-r--r--platform/platform-impl/src/com/intellij/ide/customize/PluginGroups.java116
8 files changed, 180 insertions, 99 deletions
diff --git a/platform/platform-impl/src/com/intellij/ide/customize/CustomizeFeaturedPluginsStepPanel.java b/platform/platform-impl/src/com/intellij/ide/customize/CustomizeFeaturedPluginsStepPanel.java
index c7c729c89424..786a5825e783 100644
--- a/platform/platform-impl/src/com/intellij/ide/customize/CustomizeFeaturedPluginsStepPanel.java
+++ b/platform/platform-impl/src/com/intellij/ide/customize/CustomizeFeaturedPluginsStepPanel.java
@@ -50,7 +50,7 @@ public class CustomizeFeaturedPluginsStepPanel extends AbstractCustomizeWizardSt
public final AtomicBoolean myCanceled = new AtomicBoolean(false);
- public CustomizeFeaturedPluginsStepPanel() throws OfflineException {
+ public CustomizeFeaturedPluginsStepPanel(PluginGroups pluginGroups) throws OfflineException {
setLayout(new GridLayout(1, 1));
JPanel gridPanel = new JPanel(new GridLayout(0, 3));
JBScrollPane scrollPane =
@@ -58,9 +58,9 @@ public class CustomizeFeaturedPluginsStepPanel extends AbstractCustomizeWizardSt
scrollPane.getVerticalScrollBar().setUnitIncrement(10);
scrollPane.setBorder(null);
- Map<String, String> config = PluginGroups.getInstance().getFeaturedPlugins();
+ Map<String, String> config = pluginGroups.getFeaturedPlugins();
boolean isEmptyOrOffline = true;
- List<IdeaPluginDescriptor> pluginsFromRepository = PluginGroups.getInstance().getPluginsFromRepository();
+ List<IdeaPluginDescriptor> pluginsFromRepository = pluginGroups.getPluginsFromRepository();
for (Map.Entry<String, String> entry : config.entrySet()) {
JPanel groupPanel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
@@ -263,5 +263,5 @@ public class CustomizeFeaturedPluginsStepPanel extends AbstractCustomizeWizardSt
return "New plugins can also be downloaded in " + CommonBundle.settingsTitle() + " | Plugins";
}
- static class OfflineException extends Exception {};
+ public static class OfflineException extends Exception {};
}
diff --git a/platform/platform-impl/src/com/intellij/ide/customize/CustomizeIDEWizardDialog.java b/platform/platform-impl/src/com/intellij/ide/customize/CustomizeIDEWizardDialog.java
index 1b0644a3a20f..be37f9d9d7f6 100644
--- a/platform/platform-impl/src/com/intellij/ide/customize/CustomizeIDEWizardDialog.java
+++ b/platform/platform-impl/src/com/intellij/ide/customize/CustomizeIDEWizardDialog.java
@@ -16,6 +16,7 @@
package com.intellij.ide.customize;
import com.intellij.ide.startup.StartupActionScriptManager;
+import com.intellij.idea.Main;
import com.intellij.openapi.application.ApplicationNamesInfo;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.util.SystemInfo;
@@ -62,6 +63,26 @@ public class CustomizeIDEWizardDialog extends DialogWrapper implements ActionLis
System.setProperty(StartupActionScriptManager.STARTUP_WIZARD_MODE, "true");
}
+ public static void showCustomSteps(String stepsProviderName) {
+ final CustomizeIDEWizardStepsProvider provider;
+
+ try {
+ Class<CustomizeIDEWizardStepsProvider> providerClass = (Class<CustomizeIDEWizardStepsProvider>)Class.forName(stepsProviderName);
+ provider = providerClass.newInstance();
+ }
+ catch (Throwable e) {
+ Main.showMessage("Start Failed", e);
+ return;
+ }
+
+ new CustomizeIDEWizardDialog() {
+ @Override
+ protected void initSteps() {
+ provider.initSteps(this, mySteps);
+ }
+ }.show();
+ }
+
@Override
protected void dispose() {
System.clearProperty(StartupActionScriptManager.STARTUP_WIZARD_MODE);
@@ -73,9 +94,11 @@ public class CustomizeIDEWizardDialog extends DialogWrapper implements ActionLis
if (SystemInfo.isMac) {
mySteps.add(new CustomizeKeyboardSchemeStepPanel());
}
- mySteps.add(new CustomizePluginsStepPanel());
+
+ PluginGroups pluginGroups = new PluginGroups();
+ mySteps.add(new CustomizePluginsStepPanel(pluginGroups));
try {
- mySteps.add(new CustomizeFeaturedPluginsStepPanel());
+ mySteps.add(new CustomizeFeaturedPluginsStepPanel(pluginGroups));
}
catch (CustomizeFeaturedPluginsStepPanel.OfflineException e) {
//skip featured step if we're offline
diff --git a/platform/platform-impl/src/com/intellij/ide/customize/CustomizeIDEWizardStepsProvider.java b/platform/platform-impl/src/com/intellij/ide/customize/CustomizeIDEWizardStepsProvider.java
new file mode 100644
index 000000000000..ceea34db05fd
--- /dev/null
+++ b/platform/platform-impl/src/com/intellij/ide/customize/CustomizeIDEWizardStepsProvider.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2000-2014 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.intellij.ide.customize;
+
+import java.util.List;
+
+/**
+ * @author Alexander Lobas
+ */
+public interface CustomizeIDEWizardStepsProvider {
+ void initSteps(CustomizeIDEWizardDialog wizardDialog, List<AbstractCustomizeWizardStep> steps);
+} \ No newline at end of file
diff --git a/platform/platform-impl/src/com/intellij/ide/customize/CustomizeKeyboardSchemeStepPanel.java b/platform/platform-impl/src/com/intellij/ide/customize/CustomizeKeyboardSchemeStepPanel.java
index 2b35ebe7a6fc..53b215516c09 100644
--- a/platform/platform-impl/src/com/intellij/ide/customize/CustomizeKeyboardSchemeStepPanel.java
+++ b/platform/platform-impl/src/com/intellij/ide/customize/CustomizeKeyboardSchemeStepPanel.java
@@ -94,6 +94,6 @@ public class CustomizeKeyboardSchemeStepPanel extends AbstractCustomizeWizardSte
@Override
public String getHTMLFooter() {
- return "Keymap scheme can be later changed in " + CommonBundle.settingsTitle() + " | Keymap";
+ return "Keymap scheme can be changed later in " + CommonBundle.settingsTitle() + " | Keymap";
}
}
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 9bd14b69cb47..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;
@@ -52,9 +51,11 @@ public class CustomizePluginsStepPanel extends AbstractCustomizeWizardStep imple
private static final String CUSTOMIZE_COMMAND = "Customize";
private final JBCardLayout myCardLayout;
private final IdSetPanel myCustomizePanel;
+ private final PluginGroups myPluginGroups;
- public CustomizePluginsStepPanel() {
+ public CustomizePluginsStepPanel(PluginGroups pluginGroups) {
+ myPluginGroups = pluginGroups;
myCardLayout = new JBCardLayout();
setLayout(myCardLayout);
JPanel gridPanel = new JPanel(new GridLayout(0, COLS));
@@ -66,8 +67,8 @@ public class CustomizePluginsStepPanel extends AbstractCustomizeWizardStep imple
add(scrollPane, MAIN);
add(myCustomizePanel, CUSTOMIZE);
- Map<String, Pair<String, List<String>>> groups = PluginGroups.getInstance().getTree();
- for (final Map.Entry<String, Pair<String, List<String>>> entry : groups.entrySet()) {
+ Map<String, Pair<Icon, List<String>>> groups = pluginGroups.getTree();
+ for (final Map.Entry<String, Pair<Icon, List<String>>> entry : groups.entrySet()) {
final String group = entry.getKey();
if (PluginGroups.CORE.equals(group)) continue;
@@ -89,10 +90,10 @@ 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.getInstance().getDescription(group), SwingConstants.CENTER) {
+ JLabel descriptionLabel = new JLabel(pluginGroups.getDescription(group), SwingConstants.CENTER) {
@Override
public Dimension getPreferredSize() {
Dimension size = super.getPreferredSize();
@@ -116,7 +117,7 @@ public class CustomizePluginsStepPanel extends AbstractCustomizeWizardStep imple
gbc.weighty = 0;
JPanel buttonsPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 10, 5));
buttonsPanel.setOpaque(false);
- if (PluginGroups.getInstance().getSets(group).size() == 1) {
+ if (pluginGroups.getSets(group).size() == 1) {
buttonsPanel.add(createLink(SWITCH_COMMAND + ":" + group, getGroupSwitchTextProvider(group)));
}
else {
@@ -152,11 +153,11 @@ public class CustomizePluginsStepPanel extends AbstractCustomizeWizardStep imple
if (SWITCH_COMMAND.equals(command)) {
boolean enabled = isGroupEnabled(group);
- List<IdSet> sets = PluginGroups.getInstance().getSets(group);
+ List<IdSet> sets = myPluginGroups.getSets(group);
for (IdSet idSet : sets) {
String[] ids = idSet.getIds();
for (String id : ids) {
- PluginGroups.getInstance().setPluginEnabledWithDependencies(id, !enabled);
+ myPluginGroups.setPluginEnabledWithDependencies(id, !enabled);
}
}
repaint();
@@ -190,17 +191,17 @@ public class CustomizePluginsStepPanel extends AbstractCustomizeWizardStep imple
@Override
public String getText() {
return (isGroupEnabled(group) ? "Disable" : "Enable") +
- (PluginGroups.getInstance().getSets(group).size() > 1 ? " All" : "");
+ (myPluginGroups.getSets(group).size() > 1 ? " All" : "");
}
};
}
private boolean isGroupEnabled(String group) {
- List<IdSet> sets = PluginGroups.getInstance().getSets(group);
+ List<IdSet> sets = myPluginGroups.getSets(group);
for (IdSet idSet : sets) {
String[] ids = idSet.getIds();
for (String id : ids) {
- if (PluginGroups.getInstance().isPluginEnabled(id)) return true;
+ if (myPluginGroups.isPluginEnabled(id)) return true;
}
}
return false;
@@ -229,7 +230,7 @@ public class CustomizePluginsStepPanel extends AbstractCustomizeWizardStep imple
@Override
public boolean beforeOkAction() {
try {
- PluginManager.saveDisabledPlugins(PluginGroups.getInstance().getDisabledPluginIds(), false);
+ PluginManager.saveDisabledPlugins(myPluginGroups.getDisabledPluginIds(), false);
}
catch (IOException ignored) {
}
@@ -269,9 +270,9 @@ public class CustomizePluginsStepPanel extends AbstractCustomizeWizardStep imple
public void linkSelected(LinkLabel aSource, String command) {
if (myGroup == null) return;
boolean enable = "enable".equals(command);
- List<IdSet> idSets = PluginGroups.getInstance().getSets(myGroup);
+ List<IdSet> idSets = myPluginGroups.getSets(myGroup);
for (IdSet set : idSets) {
- PluginGroups.getInstance().setIdSetEnabled(set, enable);
+ myPluginGroups.setIdSetEnabled(set, enable);
}
CustomizePluginsStepPanel.this.repaint();
}
@@ -280,19 +281,19 @@ public class CustomizePluginsStepPanel extends AbstractCustomizeWizardStep imple
myGroup = group;
myTitleLabel.setText("<html><body><h2 style=\"text-align:left;\">" + group + "</h2></body></html>");
myContentPanel.removeAll();
- List<IdSet> idSets = PluginGroups.getInstance().getSets(group);
+ List<IdSet> idSets = myPluginGroups.getSets(group);
for (final IdSet set : idSets) {
- final JCheckBox checkBox = new JCheckBox(set.getTitle(), PluginGroups.getInstance().isIdSetAllEnabled(set));
+ final JCheckBox checkBox = new JCheckBox(set.getTitle(), myPluginGroups.isIdSetAllEnabled(set));
checkBox.setModel(new JToggleButton.ToggleButtonModel() {
@Override
public boolean isSelected() {
- return PluginGroups.getInstance().isIdSetAllEnabled(set);
+ return myPluginGroups.isIdSetAllEnabled(set);
}
});
checkBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- PluginGroups.getInstance().setIdSetEnabled(set, !checkBox.isSelected());
+ myPluginGroups.setIdSetEnabled(set, !checkBox.isSelected());
CustomizePluginsStepPanel.this.repaint();
}
});
diff --git a/platform/platform-impl/src/com/intellij/ide/customize/CustomizeUIThemeStepPanel.java b/platform/platform-impl/src/com/intellij/ide/customize/CustomizeUIThemeStepPanel.java
index 1af2fb883efb..b369e49f8bca 100644
--- a/platform/platform-impl/src/com/intellij/ide/customize/CustomizeUIThemeStepPanel.java
+++ b/platform/platform-impl/src/com/intellij/ide/customize/CustomizeUIThemeStepPanel.java
@@ -34,12 +34,12 @@ import java.util.LinkedHashMap;
import java.util.Map;
public class CustomizeUIThemeStepPanel extends AbstractCustomizeWizardStep {
+ protected static final String DEFAULT = "Default";
+ protected static final String DARCULA = "Darcula";
+ protected static final String INTELLIJ = "IntelliJ";
+ protected static final String ALLOY = "Alloy. IDEA Theme";
+ protected static final String GTK = "GTK+";
- private static final String DEFAULT = "Default";
- private static final String DARCULA = "Darcula";
- private static final String INTELLIJ = "IntelliJ";
- private static final String ALLOY = "Alloy. IDEA Theme";
- private static final String GTK = "GTK+";
private boolean myInitial = true;
private boolean myColumnMode;
private JLabel myPreviewLabel;
@@ -49,24 +49,8 @@ public class CustomizeUIThemeStepPanel extends AbstractCustomizeWizardStep {
setLayout(new BorderLayout(10, 10));
IconLoader.activate();
- if (SystemInfo.isMac) {
- myLafNames.put(DEFAULT, IconLoader.getIcon("/lafs/OSXAqua.png"));
- myLafNames.put(DARCULA, IconLoader.getIcon("/lafs/OSXDarcula.png"));
- }
- else if (SystemInfo.isWindows) {
- //if (PlatformUtils.isIdeaCommunity()) {
- myLafNames.put(INTELLIJ, IconLoader.getIcon("/lafs/WindowsIntelliJ.png"));
- //}
- //else {
- // myLafNames.put(ALLOY, IconLoader.getIcon("/lafs/WindowsAlloy.png"));
- //}
- myLafNames.put(DARCULA, IconLoader.getIcon("/lafs/WindowsDarcula.png"));
- }
- else {
- myLafNames.put(INTELLIJ, IconLoader.getIcon("/lafs/LinuxIntelliJ.png"));
- myLafNames.put(DARCULA, IconLoader.getIcon("/lafs/LinuxDarcula.png"));
- myLafNames.put(GTK, IconLoader.getIcon("/lafs/LinuxGTK.png"));
- }
+ initLafs();
+
myColumnMode = myLafNames.size() > 2;
JPanel buttonsPanel = new JPanel(new GridLayout(myColumnMode ? myLafNames.size() : 1, myColumnMode ? 1 : myLafNames.size(), 5, 5));
ButtonGroup group = new ButtonGroup();
@@ -111,6 +95,31 @@ public class CustomizeUIThemeStepPanel extends AbstractCustomizeWizardStep {
myInitial = false;
}
+ protected void initLafs() {
+ if (SystemInfo.isMac) {
+ addLaf(DEFAULT, "/lafs/OSXAqua.png");
+ addLaf(DARCULA, "/lafs/OSXDarcula.png");
+ }
+ else if (SystemInfo.isWindows) {
+ //if (PlatformUtils.isIdeaCommunity()) {
+ addLaf(INTELLIJ,"/lafs/WindowsIntelliJ.png");
+ //}
+ //else {
+ // addLaf(ALLOY, "/lafs/WindowsAlloy.png");
+ //}
+ addLaf(DARCULA, "/lafs/WindowsDarcula.png");
+ }
+ else {
+ addLaf(INTELLIJ, "/lafs/LinuxIntelliJ.png");
+ addLaf(DARCULA, "/lafs/LinuxDarcula.png");
+ addLaf(GTK, "/lafs/LinuxGTK.png");
+ }
+ }
+
+ protected final void addLaf(String name, String icon) {
+ myLafNames.put(name, IconLoader.getIcon(icon));
+ }
+
@Override
public Dimension getPreferredSize() {
Dimension size = super.getPreferredSize();
@@ -118,7 +127,6 @@ public class CustomizeUIThemeStepPanel extends AbstractCustomizeWizardStep {
return size;
}
-
@Override
public String getTitle() {
return "UI Themes";
diff --git a/platform/platform-impl/src/com/intellij/ide/customize/IdSet.java b/platform/platform-impl/src/com/intellij/ide/customize/IdSet.java
index 47f8863b9ceb..fb406d21359a 100644
--- a/platform/platform-impl/src/com/intellij/ide/customize/IdSet.java
+++ b/platform/platform-impl/src/com/intellij/ide/customize/IdSet.java
@@ -28,7 +28,7 @@ class IdSet {
String myTitle;
String[] myIds;
- IdSet(String description) {
+ IdSet(final PluginGroups pluginGroups, String description) {
int i = description.indexOf(":");
if (i > 0) {
myTitle = description.substring(0, i);
@@ -38,7 +38,7 @@ class IdSet {
myIds = ContainerUtil.filter(myIds, new Condition<String>() {
@Override
public boolean value(String id) {
- return PluginGroups.getInstance().findPlugin(id) != null;
+ return pluginGroups.findPlugin(id) != null;
}
}).toArray(new String[]{});
@@ -47,7 +47,7 @@ class IdSet {
}
if (myTitle == null && myIds.length>0) {
//noinspection ConstantConditions
- myTitle = PluginGroups.getInstance().findPlugin(myIds[0]).getName();
+ myTitle = pluginGroups.findPlugin(myIds[0]).getName();
}
if (myTitle != null) {
for (String skipWord : BLACK_LIST) {
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 930901d55105..b17805579869 100644
--- a/platform/platform-impl/src/com/intellij/ide/customize/PluginGroups.java
+++ b/platform/platform-impl/src/com/intellij/ide/customize/PluginGroups.java
@@ -16,7 +16,6 @@
package com.intellij.ide.customize;
import com.intellij.ide.plugins.IdeaPluginDescriptor;
-import com.intellij.ide.plugins.PluginManager;
import com.intellij.ide.plugins.PluginManagerCore;
import com.intellij.ide.plugins.RepositoryHelper;
import com.intellij.idea.StartupUtil;
@@ -27,19 +26,18 @@ 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.*;
-class PluginGroups {
+public class PluginGroups {
static final String CORE = "Core";
private static final int MAX_DESCR_LENGTH = 55;
-
- private static PluginGroups instance = null;
-
- final Map<String, Pair<String, List<String>>> myTree = new LinkedHashMap<String, Pair<String, List<String>>>();
+ final Map<String, Pair<Icon, List<String>>> myTree = new LinkedHashMap<String, Pair<Icon, List<String>>>();
final Map<String, String> myFeaturedPlugins = new LinkedHashMap<String, String>();
private final Map<String, List<IdSet>> myGroups = new LinkedHashMap<String, List<IdSet>>();
@@ -50,15 +48,7 @@ class PluginGroups {
private boolean myInitialized = false;
private Set<String> myFeaturedIds = new HashSet<String>();
-
- static synchronized PluginGroups getInstance() {
- if (instance == null) {
- instance = new PluginGroups();
- }
- return instance;
- }
-
- private PluginGroups() {
+ public PluginGroups() {
myAllPlugins = PluginManagerCore.loadDescriptors(null);
try {
myPluginsFromRepository.addAll(RepositoryHelper.loadPluginsFromRepository(null));
@@ -68,8 +58,12 @@ class PluginGroups {
}
PluginManagerCore.loadDisabledPlugins(new File(PathManager.getConfigPath()).getPath(), myDisabledPluginIds);
+ initGroups(myTree, myFeaturedPlugins);
+ }
- myTree.put(CORE, Pair.create((String)null, Arrays.asList(
+ protected void
+ initGroups(Map<String, Pair<Icon, List<String>>> tree, Map<String, String> featuredPlugins) {
+ tree.put(CORE, Pair.create((Icon)null, Arrays.asList(
"com.intellij.copyright",
"com.intellij.java-i18n",
"org.intellij.intelliLang",
@@ -78,7 +72,7 @@ class PluginGroups {
"Type Migration",
"ZKM"
)));
- myTree.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",
@@ -113,12 +107,12 @@ class PluginGroups {
"com.intellij.aspectj",
"Osmorc"
)));
- myTree.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"
)));
- myTree.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",
@@ -132,24 +126,17 @@ class PluginGroups {
"com.intellij.plugins.html.instantEditing",
"com.jetbrains.restClient"
)));
- myTree.put("Version Controls", Pair.create("/plugins/VersionControls.png", Arrays.asList(
- "ClearcasePlugin",
- "CVS",
- "Git4Idea",
- "org.jetbrains.plugins.github",
- "hg4idea",
- "PerforceDirectPlugin",
- "Subversion",
- "TFS"
- )));
- myTree.put("Test Tools", Pair.create("/plugins/TestTools.png", Arrays.asList(
+
+ addVcsGroup(tree);
+
+ tree.put("Test Tools", Pair.create(PlatformImplIcons.TestTools, Arrays.asList(
"JUnit",
"TestNG-J",
"cucumber-java",
"cucumber",
"Coverage:Coverage,Emma"
)));
- myTree.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",
@@ -162,7 +149,7 @@ class PluginGroups {
"com.intellij.dmserver",
"JSR45Plugin"
)));
- myTree.put("Clouds", Pair.create("/plugins/Clouds.png", Arrays.asList(
+ tree.put("Clouds", Pair.create(PlatformImplIcons.Clouds, Arrays.asList(
"CloudFoundry",
"CloudBees",
"Heroku",
@@ -170,16 +157,16 @@ class PluginGroups {
)));
//myTree.put("Groovy", Arrays.asList("org.intellij.grails"));
//TODO Scala -> Play 2.x (Play 2.0 Support)
- myTree.put("Swing", Pair.create("/plugins/Swing.png", Arrays.asList(
+ tree.put("Swing", Pair.create(PlatformImplIcons.Swing, Arrays.asList(
"com.intellij.uiDesigner"//TODO JavaFX?
)));
- myTree.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")));
- myTree.put("Database Tools", Pair.create("/plugins/DatabaseTools.png", Arrays.asList(
+ tree.put("Database Tools", Pair.create(PlatformImplIcons.DatabaseTools, Arrays.asList(
"com.intellij.database"
)));
- myTree.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",
@@ -190,27 +177,63 @@ class PluginGroups {
"org.jetbrains.plugins.yaml",
"XSLT and XPath:XPathView,XSLT-Debugger"
)));
- myTree.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",
+ "Web Development:Provides live edit HTML/CSS/JavaScript:com.intellij.plugins.html.instantEditing");
+ addVimPlugin(featuredPlugins);
+ featuredPlugins.put("NodeJS", "JavaScript:Node.js integration:NodeJS");
+ featuredPlugins.put("Atlassian Connector",
+ "Tools Integration:Integration for Atlassian JIRA, Bamboo, Cricible, FishEye:atlassian-idea-plugin");
+ }
- myFeaturedPlugins.put("Scala", "Custom Languages:Plugin for Scala language support:org.intellij.scala");
- myFeaturedPlugins.put("Live Edit Tool", "Web Development:Provides live edit HTML/CSS/JavaScript:com.intellij.plugins.html.instantEditing");
- myFeaturedPlugins.put("IdeaVIM", "Editor:Vim emulation plug-in for IDEs based on the IntelliJ platform:IdeaVIM");
- myFeaturedPlugins.put("NodeJS", "JavaScript:Node.js integration:NodeJS");
- myFeaturedPlugins.put("Atlassian Connector", "Tools Integration:Integration for Atlassian JIRA, Bamboo, Cricible, FishEye:atlassian-idea-plugin");
+ protected static void addVcsGroup(Map<String, Pair<Icon, List<String>>> tree) {
+ tree.put("Version Controls", Pair.create(PlatformImplIcons.VersionControls, Arrays.asList(
+ "ClearcasePlugin",
+ "CVS",
+ "Git4Idea",
+ "org.jetbrains.plugins.github",
+ "hg4idea",
+ "PerforceDirectPlugin",
+ "Subversion",
+ "TFS"
+ )));
+ }
+ protected static void addVimPlugin(Map<String, String> featuredPlugins) {
+ featuredPlugins.put("IdeaVIM", "Editor:Vim emulation plug-in for IDEs based on the IntelliJ platform:IdeaVIM");
+ }
+
+ protected static void addLuaPlugin(Map<String, String> featuredPlugins) {
+ featuredPlugins.put("Lua", "Custom Languages:Lua language integration:Lua");
+ }
+
+ protected static void addMarkdownPlugin(Map<String, String> featuredPlugins) {
+ featuredPlugins.put("Markdown", "Custom Languages:Markdown language integration:net.nicoulaj.idea.markdown");
+ }
+
+ protected static void addConfigurationServerPlugin(Map<String, String> featuredPlugins) {
+ featuredPlugins.put("Configuration Server",
+ "Team Work:Supports sharing settings between installations of IntelliJ Platform based products used by the same developer on different computers:IdeaServerPlugin");
+ }
+
+ protected static void addTeamCityPlugin(Map<String, String> featuredPlugins) {
+ featuredPlugins.put("TeamCity Integration",
+ "Tools Integration:Integration with JetBrains TeamCity - innovative solution for continuous integration and build management:Jetbrains TeamCity Plugin");
}
private void initIfNeed() {
if (myInitialized) return;
myInitialized = true;
- for (Map.Entry<String, Pair<String, List<String>>> entry : myTree.entrySet()) {
+ for (Map.Entry<String, Pair<Icon, List<String>>> entry : myTree.entrySet()) {
final String group = entry.getKey();
if (CORE.equals(group)) continue;
List<IdSet> idSets = new ArrayList<IdSet>();
StringBuilder description = new StringBuilder();
for (String idDescription : entry.getValue().getSecond()) {
- IdSet idSet = new IdSet(idDescription);
+ IdSet idSet = new IdSet(this, idDescription);
String idSetTitle = idSet.getTitle();
if (idSetTitle == null) continue;
idSets.add(idSet);
@@ -230,7 +253,7 @@ class PluginGroups {
}
}
- Map<String, Pair<String, List<String>>> getTree() {
+ Map<String, Pair<Icon, List<String>>> getTree() {
initIfNeed();
return myTree;
}
@@ -302,7 +325,8 @@ class PluginGroups {
void setFeaturedPluginEnabled(String pluginId, boolean enabled) {
if (enabled) {
myFeaturedIds.add(pluginId);
- } else {
+ }
+ else {
myFeaturedIds.remove(pluginId);
}
StartupUtil.setFeaturedPluginsToInstall(myFeaturedIds);