mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
traverseUI test fixed
This commit is contained in:
@@ -17,6 +17,7 @@ package com.intellij.openapi.components;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.UserDataHolder;
|
||||
import com.intellij.util.messages.MessageBus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -98,4 +99,11 @@ public interface ComponentManager extends UserDataHolder, Disposable {
|
||||
<T> T[] getExtensions(ExtensionPointName<T> extensionPointName);
|
||||
|
||||
ComponentConfig getConfig(Class componentImplementation);
|
||||
|
||||
/**
|
||||
* @return condition for this component being disposed.
|
||||
* see {@link com.intellij.openapi.application.Application#invokeLater(Runnable, Condition)} for the usage example.
|
||||
*/
|
||||
@NotNull
|
||||
Condition getDisposed();
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@ package com.intellij.openapi.project;
|
||||
|
||||
import com.intellij.openapi.components.ComponentManager;
|
||||
import com.intellij.openapi.extensions.AreaInstance;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -61,8 +60,6 @@ public interface Project extends ComponentManager, AreaInstance {
|
||||
|
||||
void save();
|
||||
|
||||
Condition getDisposed();
|
||||
|
||||
boolean isOpen();
|
||||
|
||||
boolean isInitialized();
|
||||
|
||||
+9
-2
@@ -87,7 +87,7 @@ public class ApplicationImpl extends ComponentManagerImpl implements Application
|
||||
|
||||
private final EventDispatcher<ApplicationListener> myDispatcher = EventDispatcher.create(ApplicationListener.class);
|
||||
|
||||
private final boolean myTestModeFlag;
|
||||
private boolean myTestModeFlag;
|
||||
private final boolean myHeadlessMode;
|
||||
private final boolean myCommandLineMode;
|
||||
|
||||
@@ -357,6 +357,10 @@ public class ApplicationImpl extends ComponentManagerImpl implements Application
|
||||
return myTestModeFlag;
|
||||
}
|
||||
|
||||
public void setUnitTestMode(boolean testModeFlag) {
|
||||
myTestModeFlag = testModeFlag;
|
||||
}
|
||||
|
||||
public boolean isHeadlessEnvironment() {
|
||||
return myHeadlessMode;
|
||||
}
|
||||
@@ -689,7 +693,10 @@ public class ApplicationImpl extends ComponentManagerImpl implements Application
|
||||
|
||||
if (!canExit()) return;
|
||||
|
||||
if (disposeSelf()) System.exit(myExitCode);
|
||||
boolean success = disposeSelf();
|
||||
if (success && !isUnitTestMode()) {
|
||||
System.exit(myExitCode);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+3
-3
@@ -19,16 +19,16 @@
|
||||
*/
|
||||
package com.intellij.openapi.application.impl;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityInvokator;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.util.ActionCallback;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.Conditions;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class ModalityInvokatorImpl implements ModalityInvokator {
|
||||
public ActionCallback invokeLater(Runnable runnable) {
|
||||
return invokeLater(runnable, Conditions.FALSE);
|
||||
return invokeLater(runnable, ApplicationManager.getApplication().getDisposed());
|
||||
}
|
||||
|
||||
public ActionCallback invokeLater(final Runnable runnable, @NotNull final Condition expired) {
|
||||
@@ -40,6 +40,6 @@ public class ModalityInvokatorImpl implements ModalityInvokator {
|
||||
}
|
||||
|
||||
public ActionCallback invokeLater(Runnable runnable, @NotNull ModalityState state) {
|
||||
return invokeLater(runnable, state, Conditions.FALSE);
|
||||
return invokeLater(runnable, state, ApplicationManager.getApplication().getDisposed());
|
||||
}
|
||||
}
|
||||
@@ -124,6 +124,7 @@ public class DummyProject extends UserDataHolderBase implements Project {
|
||||
return false;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Condition getDisposed() {
|
||||
return new Condition() {
|
||||
public boolean value(final Object o) {
|
||||
|
||||
+11
@@ -30,6 +30,7 @@ import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||
import com.intellij.openapi.progress.ProgressIndicator;
|
||||
import com.intellij.openapi.progress.ProgressManager;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.UserDataHolderBase;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
@@ -75,6 +76,11 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements
|
||||
private Boolean myHeadless;
|
||||
private ComponentsRegistry myComponentsRegistry = new ComponentsRegistry();
|
||||
private boolean myHaveProgressManager = false;
|
||||
private final Condition myDisposedCondition = new Condition() {
|
||||
public boolean value(final Object o) {
|
||||
return isDisposed();
|
||||
}
|
||||
};
|
||||
|
||||
protected ComponentManagerImpl(ComponentManager parentComponentManager) {
|
||||
myParentComponentManager = parentComponentManager;
|
||||
@@ -431,6 +437,11 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements
|
||||
return myComponentsRegistry.getConfig(componentImplementation);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Condition getDisposed() {
|
||||
return myDisposedCondition;
|
||||
}
|
||||
|
||||
private class ComponentsRegistry {
|
||||
private final Map<Class, Object> myInterfaceToLockMap = new HashMap<Class, Object>();
|
||||
private final Map<Class, Class> myInterfaceToClassMap = new HashMap<Class, Class>();
|
||||
|
||||
@@ -44,7 +44,6 @@ import com.intellij.openapi.project.ex.ProjectEx;
|
||||
import com.intellij.openapi.project.ex.ProjectManagerEx;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.ui.ex.MessagesEx;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
@@ -83,12 +82,6 @@ public class ProjectImpl extends ComponentManagerImpl implements ProjectEx {
|
||||
public boolean myOptimiseTestLoadSpeed;
|
||||
@NonNls public static final String TEMPLATE_PROJECT_NAME = "Default (Template) Project";
|
||||
|
||||
private final Condition myDisposedCondition = new Condition() {
|
||||
public boolean value(final Object o) {
|
||||
return isDisposed();
|
||||
}
|
||||
};
|
||||
|
||||
private String myName;
|
||||
private String myOldName;
|
||||
|
||||
@@ -174,10 +167,6 @@ public class ProjectImpl extends ComponentManagerImpl implements ProjectEx {
|
||||
return ProjectManagerEx.getInstanceEx().isProjectOpened(this);
|
||||
}
|
||||
|
||||
public Condition getDisposed() {
|
||||
return myDisposedCondition;
|
||||
}
|
||||
|
||||
public boolean isInitialized() {
|
||||
return isOpen() && !isDisposed() && StartupManagerEx.getInstanceEx(this).startupActivityPassed();
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.openapi.wm.impl;
|
||||
|
||||
import com.intellij.openapi.application.Application;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
@@ -76,7 +77,8 @@ public final class CommandProcessor implements Runnable {
|
||||
// max. I'm not actually quite sure this should have NON_MODAL modality but it should
|
||||
// definitely have some since runnables in command list may (and do) request some PSI activity
|
||||
final boolean queueNext = myCommandCount > 0;
|
||||
ApplicationManager.getApplication().getInvokator().invokeLater(command, ModalityState.NON_MODAL, expire == null ? Condition.FALSE : expire).doWhenDone(new Runnable() {
|
||||
Application application = ApplicationManager.getApplication();
|
||||
application.getInvokator().invokeLater(command, ModalityState.NON_MODAL, expire == null ? application.getDisposed() : expire).doWhenDone(new Runnable() {
|
||||
public void run() {
|
||||
if (queueNext) {
|
||||
CommandProcessor.this.run();
|
||||
|
||||
@@ -1823,7 +1823,7 @@ public final class ToolWindowManagerImpl extends ToolWindowManagerEx implements
|
||||
|
||||
@Nullable
|
||||
public Condition getExpireCondition() {
|
||||
return Condition.FALSE;
|
||||
return ApplicationManager.getApplication().getDisposed();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.intellij.openapi.components.BaseComponent;
|
||||
import com.intellij.openapi.components.ComponentConfig;
|
||||
import com.intellij.openapi.components.ComponentManager;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.UserDataHolderBase;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
@@ -149,4 +150,10 @@ public class MockComponentManager extends UserDataHolderBase implements Componen
|
||||
public ComponentConfig getConfig(Class componentImplementation) {
|
||||
throw new UnsupportedOperationException("Method getConfig not implemented in " + getClass());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Condition getDisposed() {
|
||||
return Condition.FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,6 +50,7 @@ public class MockProject extends MockComponentManager implements ProjectEx {
|
||||
return ServiceManager.getService(this, PomModel.class);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Condition getDisposed() {
|
||||
return new Condition() {
|
||||
|
||||
Reference in New Issue
Block a user