plugins: update existing descriptor if it exists (IDEA-77448 )

This commit is contained in:
anna
2011-11-23 11:17:08 +01:00
parent f3a2131881
commit ddbcdda159
3 changed files with 13 additions and 7 deletions
@@ -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);
}
@@ -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);
}
@@ -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() {