diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurableNew.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurableNew.java index 2d93badb9623..e92a09bdf2e9 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurableNew.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerConfigurableNew.java @@ -2,6 +2,7 @@ package com.intellij.ide.plugins; import com.intellij.icons.AllIcons; +import com.intellij.ide.BrowserUtil; import com.intellij.ide.HelpTooltip; import com.intellij.ide.IdeBundle; import com.intellij.ide.impl.ProjectUtil; @@ -72,6 +73,8 @@ import javax.swing.border.Border; import javax.swing.event.DocumentEvent; import javax.swing.text.BadLocationException; import javax.swing.text.View; +import javax.swing.text.html.HTMLEditorKit; +import javax.swing.text.html.StyleSheet; import java.awt.*; import java.awt.event.*; import java.io.IOException; @@ -1014,7 +1017,7 @@ public class PluginManagerConfigurableNew linePanel.add(new JLabel(text)); } else { - linePanel.add(new LinkLabel(text, null)); + linePanel.add(new LinkLabel<>(text, null, (_0, _1) -> BrowserUtil.browse(link))); } return linePanel; @@ -2645,7 +2648,7 @@ public class PluginManagerConfigurableNew } public void sortByName() { - ContainerUtil.sort(descriptors, Comparator.comparing(IdeaPluginDescriptor::getName)); + ContainerUtil.sort(descriptors, (o1, o2) -> StringUtil.compare(o1.getName(), o2.getName(), true)); } } @@ -2889,11 +2892,16 @@ public class PluginManagerConfigurableNew createButtons(pluginForUpdate); - JPanel westPanel = new NonOpaquePanel(createCheckboxIconLayout()); - westPanel.setBorder(JBUI.Borders.emptyTop(5)); - westPanel.add(myEnableDisableButton); - addIconComponent(westPanel, null); - add(westPanel, BorderLayout.WEST); + if (pluginForUpdate) { + addIconComponent(this, BorderLayout.WEST); + } + else { + JPanel westPanel = new NonOpaquePanel(createCheckboxIconLayout()); + westPanel.setBorder(JBUI.Borders.emptyTop(5)); + westPanel.add(myEnableDisableButton); + addIconComponent(westPanel, null); + add(westPanel, BorderLayout.WEST); + } JPanel centerPanel = new NonOpaquePanel(new VerticalLayout(0)); add(centerPanel); @@ -2908,10 +2916,7 @@ public class PluginManagerConfigurableNew } updateErrors(); - if (pluginForUpdate) { - addDescriptionComponent(centerPanel, getChangeNotes(plugin), new LineFunction(3, false)); - } - else { + if (!pluginForUpdate) { addDescriptionComponent(centerPanel, getShortDescription(plugin, false), new LineFunction(1, true)); } @@ -3056,12 +3061,6 @@ public class PluginManagerConfigurableNew } } - @Nullable - private static String getChangeNotes(@NotNull IdeaPluginDescriptor plugin) { - String notes = plugin.getChangeNotes(); - return StringUtil.isEmptyOrSpaces(notes) ? null : "Change Notes
\n" + notes; - } - @Override public void setListeners(@NotNull LinkListener listener, @NotNull LinkListener searchListener, @@ -3845,7 +3844,7 @@ public class PluginManagerConfigurableNew nameButtons.add(myButtonsPanel = createButtons(update), BorderLayout.EAST); centerPanel.add(nameButtons, VerticalLayout.FILL_HORIZONTAL); - boolean bundled = myPlugin.isBundled(); + boolean bundled = myPlugin.isBundled() && !myPlugin.allowBundledUpdate(); String version = bundled ? "bundled" : myPlugin.getVersion(); if (!StringUtil.isEmptyOrSpaces(version)) { @@ -4122,12 +4121,16 @@ public class PluginManagerConfigurableNew if (!StringUtil.isEmptyOrSpaces(description)) { JEditorPane descriptionComponent = new JEditorPane(); - descriptionComponent.setEditorKit(UIUtil.getHTMLEditorKit()); + HTMLEditorKit kit = UIUtil.getHTMLEditorKit(); + StyleSheet sheet = kit.getStyleSheet(); + sheet.addRule("ul {margin-left: 16px}"); // list-style-type: none; + descriptionComponent.setEditorKit(kit); descriptionComponent.setEditable(false); descriptionComponent.setFocusable(false); descriptionComponent.setOpaque(false); descriptionComponent.setBorder(null); descriptionComponent.setText(XmlStringUtil.wrapInHtml(description)); + descriptionComponent.addHyperlinkListener(BrowserHyperlinkListener.INSTANCE); if (descriptionComponent.getCaret() != null) { descriptionComponent.setCaretPosition(0); @@ -4423,7 +4426,6 @@ public class PluginManagerConfigurableNew @SuppressWarnings("UseJBColor") private static final Color WhiteForeground = new JBColor(Color.white, new Color(0xBBBBBB)); @SuppressWarnings("UseJBColor") - private static final Color WhiteBackground = new JBColor(Color.white, new Color(0x3C3F41)); private static final Color BlueColor = new JBColor(0x1D73BF, 0x134D80); private static final Color GreenColor = new JBColor(0x5D9B47, 0x457335); @SuppressWarnings("UseJBColor") @@ -4470,7 +4472,7 @@ public class PluginManagerConfigurableNew else { setTextColor(GreenColor); setFocusedTextColor(GreenColor); - setBgColor(WhiteBackground); + setBgColor(MAIN_BG_COLOR); } setFocusedBgColor(GreenFocusedBackground);