From 7318d5d0a6ae44dfd979caaf595340ad83dc202d Mon Sep 17 00:00:00 2001 From: Sergey Simonchik Date: Mon, 10 Feb 2014 01:08:33 +0400 Subject: [PATCH] load installed packages in a background thread --- .../packaging/ManagePackagesDialog.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/webcore/packaging/ManagePackagesDialog.java b/platform/lang-impl/src/com/intellij/webcore/packaging/ManagePackagesDialog.java index 07f5477b6d15..184b2331f1d0 100644 --- a/platform/lang-impl/src/com/intellij/webcore/packaging/ManagePackagesDialog.java +++ b/platform/lang-impl/src/com/intellij/webcore/packaging/ManagePackagesDialog.java @@ -275,16 +275,26 @@ public class ManagePackagesDialog extends DialogWrapper { } private void updateInstalledPackages() { - try { - Collection installedPackages = myController.getInstalledPackages(); - myInstalledPackages.clear(); - for (InstalledPackage pkg : installedPackages) { - myInstalledPackages.add(pkg.getName()); + ApplicationManager.getApplication().executeOnPooledThread(new Runnable() { + @Override + public void run() { + try { + final Collection installedPackages = myController.getInstalledPackages(); + UIUtil.invokeLaterIfNeeded(new Runnable() { + @Override + public void run() { + myInstalledPackages.clear(); + for (InstalledPackage pkg : installedPackages) { + myInstalledPackages.add(pkg.getName()); + } + } + }); + } + catch(IOException e) { + LOG.info("Error updating list of installed packages:" + e); + } } - } - catch(IOException e) { - LOG.info("Error updating list of installed packages:" + e); - } + }); } public void initModel() {