mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
install plugins from disc: use mac chooser when appropriate (IDEA-93912)
This commit is contained in:
+40
-27
@@ -30,7 +30,7 @@ import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.updateSettings.impl.PluginDownloader;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.ui.IdeBorderFactory;
|
||||
import com.intellij.ui.ScrollPaneFactory;
|
||||
@@ -93,35 +93,48 @@ public class InstalledPluginsManagerMain extends PluginManagerMain {
|
||||
};
|
||||
descriptor.setTitle("Choose Plugin File");
|
||||
descriptor.setDescription("JAR and ZIP archives are accepted");
|
||||
final VirtualFile virtualFile = FileChooser.chooseFile(descriptor, myActionsPanel, null, null);
|
||||
if (virtualFile != null) {
|
||||
final File file = VfsUtil.virtualToIoFile(virtualFile);
|
||||
try {
|
||||
final IdeaPluginDescriptorImpl pluginDescriptor = PluginDownloader.loadDescriptionFromJar(file);
|
||||
if (pluginDescriptor == null) {
|
||||
Messages.showErrorDialog("Fail to load plugin descriptor from file " + file.getName(), CommonBundle.getErrorTitle());
|
||||
return;
|
||||
}
|
||||
final IdeaPluginDescriptor alreadyInstalledPlugin = PluginManager.getPlugin(pluginDescriptor.getPluginId());
|
||||
if (alreadyInstalledPlugin != null) {
|
||||
final File oldFile = alreadyInstalledPlugin.getPath();
|
||||
if (oldFile != null) {
|
||||
StartupActionScriptManager.addActionCommand(new StartupActionScriptManager.DeleteCommand(oldFile));
|
||||
FileChooser.chooseFiles(descriptor, null, myActionsPanel, null, new FileChooser.FileChooserConsumer() {
|
||||
@Override
|
||||
public void cancelled() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void consume(List<VirtualFile> files) {
|
||||
if (files != null && files.size() == 1) {
|
||||
VirtualFile virtualFile = files.get(0);
|
||||
if (virtualFile != null) {
|
||||
final File file = VfsUtilCore.virtualToIoFile(virtualFile);
|
||||
try {
|
||||
final IdeaPluginDescriptorImpl pluginDescriptor = PluginDownloader.loadDescriptionFromJar(file);
|
||||
if (pluginDescriptor == null) {
|
||||
Messages.showErrorDialog("Fail to load plugin descriptor from file " + file.getName(), CommonBundle.getErrorTitle());
|
||||
return;
|
||||
}
|
||||
final IdeaPluginDescriptor alreadyInstalledPlugin = PluginManager.getPlugin(pluginDescriptor.getPluginId());
|
||||
if (alreadyInstalledPlugin != null) {
|
||||
final File oldFile = alreadyInstalledPlugin.getPath();
|
||||
if (oldFile != null) {
|
||||
StartupActionScriptManager.addActionCommand(new StartupActionScriptManager.DeleteCommand(oldFile));
|
||||
}
|
||||
}
|
||||
if (((InstalledPluginsTableModel)pluginsModel).appendOrUpdateDescriptor(pluginDescriptor)) {
|
||||
PluginDownloader.install(file, file.getName(), false);
|
||||
select(pluginDescriptor);
|
||||
checkInstalledPluginDependencies(pluginDescriptor);
|
||||
setRequireShutdown(true);
|
||||
}
|
||||
else {
|
||||
Messages.showInfoMessage(myActionsPanel, "Plugin " + pluginDescriptor.getName() + " was already installed",
|
||||
CommonBundle.getWarningTitle());
|
||||
}
|
||||
}
|
||||
catch (IOException ex) {
|
||||
Messages.showErrorDialog(ex.getMessage(), CommonBundle.getErrorTitle());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (((InstalledPluginsTableModel)pluginsModel).appendOrUpdateDescriptor(pluginDescriptor)) {
|
||||
PluginDownloader.install(file, file.getName(), false);
|
||||
select(pluginDescriptor);
|
||||
checkInstalledPluginDependencies(pluginDescriptor);
|
||||
setRequireShutdown(true);
|
||||
} else {
|
||||
Messages.showInfoMessage(myActionsPanel, "Plugin " + pluginDescriptor.getName() + " was already installed", CommonBundle.getWarningTitle());
|
||||
}
|
||||
}
|
||||
catch (IOException ex) {
|
||||
Messages.showErrorDialog(ex.getMessage(), CommonBundle.getErrorTitle());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
myActionsPanel.add(installPluginFromFileSystem);
|
||||
|
||||
Reference in New Issue
Block a user