summaryrefslogtreecommitdiff
path: root/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapperPeerFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/platform-api/src/com/intellij/openapi/ui/DialogWrapperPeerFactory.java')
-rw-r--r--platform/platform-api/src/com/intellij/openapi/ui/DialogWrapperPeerFactory.java21
1 files changed, 14 insertions, 7 deletions
diff --git a/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapperPeerFactory.java b/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapperPeerFactory.java
index c9515a884f97..c1239e523896 100644
--- a/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapperPeerFactory.java
+++ b/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapperPeerFactory.java
@@ -24,17 +24,24 @@ import org.jetbrains.annotations.Nullable;
import java.awt.*;
public abstract class DialogWrapperPeerFactory {
+ @NotNull
public static DialogWrapperPeerFactory getInstance() {
if (ApplicationManager.getApplication() == null) {
- try {
- return (DialogWrapperPeerFactory)Class.forName("com.intellij.openapi.ui.impl.DialogWrapperPeerFactoryImpl").newInstance();
- }
- catch (Exception e) {
- throw new RuntimeException("Can't instantiate DialogWrapperPeerFactory", e);
- }
+ return getInstanceByName();
}
- return ServiceManager.getService(DialogWrapperPeerFactory.class);
+ DialogWrapperPeerFactory factory = ServiceManager.getService(DialogWrapperPeerFactory.class);
+ return factory == null ? getInstanceByName() : factory;
+ }
+
+ @NotNull
+ private static DialogWrapperPeerFactory getInstanceByName() {
+ try {
+ return (DialogWrapperPeerFactory)Class.forName("com.intellij.openapi.ui.impl.DialogWrapperPeerFactoryImpl").newInstance();
+ }
+ catch (Exception e) {
+ throw new RuntimeException("Can't instantiate DialogWrapperPeerFactory", e);
+ }
}
@NotNull