From b40b00c498fe330dee9a4543a468df070efcf8fb Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 13 Apr 2015 19:23:41 +0300 Subject: [PATCH 01/22] modal progress already has its own modality state, don't start another one bound to its dialog (IDEA-137750) --- .../openapi/ui/impl/DialogWrapperPeerImpl.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java b/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java index 5fed8076f49f..6d5befb3f6d9 100644 --- a/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java @@ -214,8 +214,7 @@ public class DialogWrapperPeerImpl extends DialogWrapperPeer implements FocusTra @Deprecated public DialogWrapperPeerImpl(@NotNull DialogWrapper wrapper,final Window owner, final boolean canBeParent, final boolean applicationModalIfPossible) { - this(wrapper, owner, canBeParent, - applicationModalIfPossible ? DialogWrapper.IdeModalityType.IDE : DialogWrapper.IdeModalityType.PROJECT); + this(wrapper, owner, canBeParent, applicationModalIfPossible ? DialogWrapper.IdeModalityType.IDE : DialogWrapper.IdeModalityType.PROJECT); } @Override @@ -302,6 +301,10 @@ public class DialogWrapperPeerImpl extends DialogWrapperPeer implements FocusTra } } + private boolean isProgressDialog() { + return myWrapper.isModalProgress(); + } + @Override @Nullable public Container getContentPane() { @@ -449,7 +452,9 @@ public class DialogWrapperPeerImpl extends DialogWrapperPeer implements FocusTra ApplicationManager.getApplication() != null ? (CommandProcessorEx)CommandProcessor.getInstance() : null; final boolean appStarted = commandProcessor != null; - if (myDialog.isModal() && appStarted) { + boolean changeModalityState = appStarted && myDialog.isModal() + && !isProgressDialog(); // ProgressWindow starts a modality state itself + if (changeModalityState) { commandProcessor.enterModal(); LaterInvocator.enterModal(myDialog); } @@ -462,7 +467,7 @@ public class DialogWrapperPeerImpl extends DialogWrapperPeer implements FocusTra myDialog.show(); } finally { - if (myDialog.isModal() && appStarted) { + if (changeModalityState) { commandProcessor.leaveModal(); LaterInvocator.leaveModal(myDialog); } From 5ef36dd618b4a438007e13c6b7df13699ad30715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yann=20C=C3=A9bron?= Date: Mon, 13 Apr 2015 18:27:55 +0200 Subject: [PATCH 02/22] DomFileDescription#initializeFileDescription javadoc --- .../src/com/intellij/util/xml/DomFileDescription.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xml/dom-openapi/src/com/intellij/util/xml/DomFileDescription.java b/xml/dom-openapi/src/com/intellij/util/xml/DomFileDescription.java index 9e7a3ec61529..68985756cd2d 100644 --- a/xml/dom-openapi/src/com/intellij/util/xml/DomFileDescription.java +++ b/xml/dom-openapi/src/com/intellij/util/xml/DomFileDescription.java @@ -161,8 +161,11 @@ public class DomFileDescription { /** * The right place to call - * {@link #registerNamespacePolicy(String, String...)} - * and {@link #registerTypeChooser(java.lang.reflect.Type, TypeChooser)}. + *
    + *
  • {@link #registerNamespacePolicy(String, String...)}
  • + *
  • {@link #registerTypeChooser(java.lang.reflect.Type, TypeChooser)}
  • + *
  • {@link #registerReferenceInjector(DomReferenceInjector)}
  • + *
*/ protected void initializeFileDescription() {} From e7b08457ff07f48a69d4f15f68761bb49eaf1816 Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Mon, 13 Apr 2015 19:47:59 +0300 Subject: [PATCH 03/22] [groovy] build&restart action made not disposable --- .../console/BuildAndRestartConsoleAction.java | 13 +------------ .../plugins/groovy/console/GroovyConsole.java | 10 +++++----- .../console/GroovyConsoleResolveScopeProvider.java | 2 +- .../console/actions/GrSelectModuleAction.java | 4 ++-- .../plugins/groovy/shell/GroovyShellRunnerImpl.java | 1 - 5 files changed, 9 insertions(+), 21 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/console/BuildAndRestartConsoleAction.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/console/BuildAndRestartConsoleAction.java index c59123daa286..c772033362af 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/console/BuildAndRestartConsoleAction.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/console/BuildAndRestartConsoleAction.java @@ -20,7 +20,6 @@ import com.intellij.execution.Executor; import com.intellij.execution.process.ProcessHandler; import com.intellij.execution.ui.RunContentDescriptor; import com.intellij.icons.AllIcons; -import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.compiler.CompileContext; @@ -34,7 +33,7 @@ import org.jetbrains.annotations.NotNull; /** * Created by Max Medvedev on 21/03/14 */ -public class BuildAndRestartConsoleAction extends AnAction implements Disposable { +public class BuildAndRestartConsoleAction extends AnAction { private Module myModule; private Project myProject; @@ -82,14 +81,4 @@ public class BuildAndRestartConsoleAction extends AnAction implements Disposable }); } } - - - @Override - public void dispose() { - myModule = null; - myRestarter = null; - myProject = null; - myExecutor = null; - myContentDescriptor = null; - } } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/console/GroovyConsole.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/console/GroovyConsole.java index d6af9efd6ead..5e80030caa93 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/console/GroovyConsole.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/console/GroovyConsole.java @@ -131,14 +131,14 @@ public class GroovyConsole { }; final Module module = GroovyConsoleStateService.getInstance(project).getSelectedModule(contentFile); - if (module != null) { - // if module for console is already selected, then use it for creation - initializer.consume(module); - } - else { + if (module == null || module.isDisposed()) { // if not, then select module, then run initializer GroovyConsoleUtil.selectModuleAndRun(project, initializer); } + else { + // if module for console is already selected, then use it for creation + initializer.consume(module); + } } @Nullable diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/console/GroovyConsoleResolveScopeProvider.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/console/GroovyConsoleResolveScopeProvider.java index 693d4433fecd..7d2003db4500 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/console/GroovyConsoleResolveScopeProvider.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/console/GroovyConsoleResolveScopeProvider.java @@ -30,6 +30,6 @@ public class GroovyConsoleResolveScopeProvider extends ResolveScopeProvider { public GlobalSearchScope getResolveScope(@NotNull VirtualFile file, Project project) { final GroovyConsoleStateService projectConsole = GroovyConsoleStateService.getInstance(project); final Module module = projectConsole.getSelectedModule(file); - return module == null ? null : module.getModuleWithDependenciesAndLibrariesScope(false); + return module == null || module.isDisposed() ? null : module.getModuleWithDependenciesAndLibrariesScope(false); } } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/console/actions/GrSelectModuleAction.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/console/actions/GrSelectModuleAction.java index 883af820e0a2..ef42d563b50c 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/console/actions/GrSelectModuleAction.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/console/actions/GrSelectModuleAction.java @@ -26,8 +26,8 @@ import com.intellij.util.Consumer; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.console.GroovyConsole; -import org.jetbrains.plugins.groovy.console.GroovyConsoleUtil; import org.jetbrains.plugins.groovy.console.GroovyConsoleStateService; +import org.jetbrains.plugins.groovy.console.GroovyConsoleUtil; public class GrSelectModuleAction extends AnAction { @@ -58,7 +58,7 @@ public class GrSelectModuleAction extends AnAction { @NotNull public static String getText(@Nullable Module module) { - return module == null ? "