From ddbcdda15945cd05bed042c54124ee40207c3870 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 23 Nov 2011 11:13:31 +0100 Subject: [PATCH] plugins: update existing descriptor if it exists (IDEA-77448 ) --- .../ide/plugins/ActionInstallPlugin.java | 2 +- .../ide/plugins/InstalledPluginsManagerMain.java | 2 +- .../ide/plugins/InstalledPluginsTableModel.java | 16 +++++++++++----- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/ActionInstallPlugin.java b/platform/platform-impl/src/com/intellij/ide/plugins/ActionInstallPlugin.java index 7f1a1df6ac93..b3b3e68ee128 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/ActionInstallPlugin.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/ActionInstallPlugin.java @@ -104,7 +104,7 @@ public class ActionInstallPlugin extends AnAction implements DumbAware { } final InstalledPluginsTableModel installedPluginsModel = (InstalledPluginsTableModel)installed.getPluginsModel(); for (PluginNode node : list) { - installedPluginsModel.appendDescriptor(node); + installedPluginsModel.appendOrUpdateDescriptor(node); } installed.setRequireShutdown(true); } diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsManagerMain.java b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsManagerMain.java index b3248aafaee9..3bb9aebc9941 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsManagerMain.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsManagerMain.java @@ -91,7 +91,7 @@ public class InstalledPluginsManagerMain extends PluginManagerMain { return; } PluginDownloader.install(file, file.getName()); - ((InstalledPluginsTableModel)pluginsModel).appendDescriptor(pluginDescriptor); + ((InstalledPluginsTableModel)pluginsModel).appendOrUpdateDescriptor(pluginDescriptor); select(pluginDescriptor); setRequireShutdown(true); } diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java index 011c686fa62d..cd64322fe318 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/InstalledPluginsTableModel.java @@ -84,11 +84,17 @@ public class InstalledPluginsTableModel extends PluginTableModel { setSortKey(new RowSorter.SortKey(getNameColumn(), SortOrder.ASCENDING)); } - public void appendDescriptor(IdeaPluginDescriptor descriptor) { - myInstalled.add(descriptor); - view.add(descriptor); - setEnabled(descriptor, true); - fireTableDataChanged(); + public void appendOrUpdateDescriptor(IdeaPluginDescriptor descriptor) { + final PluginId descrId = descriptor.getPluginId(); + final IdeaPluginDescriptor existing = PluginManager.getPlugin(descrId); + if (existing != null) { + updateExistingPluginInfo(descriptor, existing); + } else { + myInstalled.add(descriptor); + view.add(descriptor); + setEnabled(descriptor, true); + fireTableDataChanged(); + } } public static int getCheckboxColumn() {