diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/InstallPluginAction.java b/platform/platform-impl/src/com/intellij/ide/plugins/InstallPluginAction.java index 5432dbcb79e4..98638ce7bff6 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/InstallPluginAction.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/InstallPluginAction.java @@ -24,7 +24,6 @@ import com.intellij.openapi.extensions.PluginId; import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.ui.Messages; import com.intellij.util.net.IOExceptionDialog; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -117,7 +116,7 @@ public class InstallPluginAction extends AnAction implements DumbAware { } final InstalledPluginsTableModel installedModel = (InstalledPluginsTableModel)myInstalled.getPluginsModel(); - PluginEnablerImpl pluginEnabler = new PluginEnablerImpl(installedModel); + PluginManagerMain.PluginEnabler.UI pluginEnabler = new PluginManagerMain.PluginEnabler.UI(installedModel); if (PluginManagerMain.suggestToEnableInstalledDependantPlugins(pluginEnabler, list)) { myInstalled.setRequireShutdown(true); @@ -179,25 +178,6 @@ public class InstallPluginAction extends AnAction implements DumbAware { } } - private static class PluginEnablerImpl implements PluginManagerMain.PluginEnabler { - @NotNull - private final InstalledPluginsTableModel pluginsModel; - - private PluginEnablerImpl(@NotNull InstalledPluginsTableModel model) { - pluginsModel = model; - } - - @Override - public void enablePlugins(Set disabled) { - pluginsModel.enableRows(disabled.toArray(new IdeaPluginDescriptor[disabled.size()]), true); - } - - @Override - public boolean isDisabled(PluginId pluginId) { - return pluginsModel.isDisabled(pluginId); - } - } - public PluginTable getPluginTable() { return myHost.getPluginTable(); } diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerMain.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerMain.java index efc3959c3719..02e64a402657 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerMain.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginManagerMain.java @@ -735,6 +735,42 @@ public abstract class PluginManagerMain implements Disposable { boolean isDisabled(PluginId pluginId); + class HEADLESS implements PluginEnabler { + @Override + public void enablePlugins(Set disabled) { + for (IdeaPluginDescriptor descriptor : disabled) { + PluginManagerCore.enablePlugin(descriptor.getPluginId().getIdString()); + } + } + + @Override + public boolean isDisabled(PluginId pluginId) { + return isDisabled(pluginId.getIdString()); + } + + public boolean isDisabled(String pluginId) { + return PluginManagerCore.getDisabledPlugins().contains(pluginId); + } + } + + class UI implements PluginEnabler { + @NotNull + private final InstalledPluginsTableModel pluginsModel; + + public UI(@NotNull InstalledPluginsTableModel model) { + pluginsModel = model; + } + + @Override + public void enablePlugins(Set disabled) { + pluginsModel.enableRows(disabled.toArray(new IdeaPluginDescriptor[disabled.size()]), true); + } + + @Override + public boolean isDisabled(PluginId pluginId) { + return pluginsModel.isDisabled(pluginId); + } + } } public static void notifyPluginsUpdated(@Nullable Project project) { diff --git a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginsAdvertiserDialog.java b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginsAdvertiserDialog.java index b1a7bdb704e4..c60f5d4316d7 100644 --- a/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginsAdvertiserDialog.java +++ b/platform/platform-impl/src/com/intellij/openapi/updateSettings/impl/pluginsAdvertisement/PluginsAdvertiserDialog.java @@ -40,7 +40,7 @@ public class PluginsAdvertiserDialog extends DialogWrapper { private final List myAllPlugins; private final Set mySkippedPlugins = new HashSet(); - private final PluginEnablerImpl pluginHelper = new PluginEnablerImpl(); + private final PluginManagerMain.PluginEnabler.HEADLESS pluginHelper = new PluginManagerMain.PluginEnabler.HEADLESS(); PluginsAdvertiserDialog(@Nullable Project project, PluginDownloader[] plugins, List allPlugins) { super(project); @@ -117,22 +117,4 @@ public class PluginsAdvertiserDialog extends DialogWrapper { } super.doOKAction(); } - - private static class PluginEnablerImpl implements PluginManagerMain.PluginEnabler { - @Override - public void enablePlugins(Set disabled) { - for (IdeaPluginDescriptor descriptor : disabled) { - PluginManagerCore.enablePlugin(descriptor.getPluginId().getIdString()); - } - } - - @Override - public boolean isDisabled(PluginId pluginId) { - return PluginManagerCore.getDisabledPlugins().contains(pluginId.getIdString()); - } - - public boolean isDisabled(String pluginId) { - return PluginManagerCore.getDisabledPlugins().contains(pluginId); - } - } } diff --git a/platform/platform-impl/src/com/intellij/ui/BalloonLayoutImpl.java b/platform/platform-impl/src/com/intellij/ui/BalloonLayoutImpl.java index e789cac6fb09..c7a0ecceae67 100644 --- a/platform/platform-impl/src/com/intellij/ui/BalloonLayoutImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/BalloonLayoutImpl.java @@ -19,6 +19,7 @@ import com.intellij.ide.ui.LafManager; import com.intellij.ide.ui.LafManagerListener; import com.intellij.notification.impl.NotificationsManagerImpl; import com.intellij.openapi.Disposable; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.ui.popup.Balloon; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.wm.impl.IdeRootPane; @@ -102,6 +103,7 @@ public class BalloonLayoutImpl implements BalloonLayout { @Override public void add(@NotNull final Balloon balloon, @Nullable Object layoutData) { + ApplicationManager.getApplication().assertIsDispatchThread(); myBalloons.add(balloon); if (layoutData instanceof BalloonLayoutData) { BalloonLayoutData balloonLayoutData = (BalloonLayoutData)layoutData;