From aee3c19478eb05686ffcb53ee4f2a7533bcbb6cc Mon Sep 17 00:00:00 2001 From: Roman Chernyatchik Date: Wed, 30 Sep 2009 18:00:32 +0400 Subject: [PATCH] cucumber, qick fix: preselection in new step dialog --- .../com/intellij/openapi/ui/DialogWrapperPeer.java | 2 ++ .../src/com/intellij/openapi/ui/Messages.java | 33 ++++++++++++++++++++++ .../openapi/ui/impl/DialogWrapperPeerImpl.java | 2 -- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapperPeer.java b/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapperPeer.java index 4849d07262..76da22229e 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapperPeer.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/DialogWrapperPeer.java @@ -25,6 +25,8 @@ import java.awt.event.MouseMotionListener; import java.util.List; public abstract class DialogWrapperPeer { + public static Object HAVE_INITIAL_SELECTION = new Object(); + public abstract void setUndecorated(boolean undecorated); /** diff --git a/platform/platform-api/src/com/intellij/openapi/ui/Messages.java b/platform/platform-api/src/com/intellij/openapi/ui/Messages.java index a7f717992e..f3447e0c3a 100644 --- a/platform/platform-api/src/com/intellij/openapi/ui/Messages.java +++ b/platform/platform-api/src/com/intellij/openapi/ui/Messages.java @@ -20,6 +20,7 @@ import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.TextRange; import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.BrowserHyperlinkListener; import com.intellij.ui.DocumentAdapter; @@ -291,6 +292,38 @@ public class Messages { } @Nullable + public static String showInputDialog(Project project, + @Nls String message, + @Nls String title, + Icon icon, + @NonNls String initialValue, + @Nullable InputValidator validator, + @Nullable TextRange selection) { + final Application application = ApplicationManager.getApplication(); + if (application.isUnitTestMode() || application.isHeadlessEnvironment()) { + return ourTestInputImplementation.show(message); + } + else { + InputDialog dialog = new InputDialog(project, message, title, icon, initialValue, validator); + + final JTextField field = dialog.getTextField(); + if (selection != null) { + // set custom selection + field.select(selection.getStartOffset(), + selection.getEndOffset()); + } else { + // reset selection + final int length = field.getDocument().getLength(); + field.select(length, length); + } + field.putClientProperty(DialogWrapperPeer.HAVE_INITIAL_SELECTION, true); + + dialog.show(); + return dialog.getInputString(); + } + } + + @Nullable public static String showInputDialog(Component parent, String message, String title, 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 391539d536..25aef17458 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 @@ -50,8 +50,6 @@ import java.util.List; import java.util.Map; public class DialogWrapperPeerImpl extends DialogWrapperPeer implements FocusTrackbackProvider { - public static Object HAVE_INITIAL_SELECTION = new Object(); - private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.ui.DialogWrapper"); private DialogWrapper myWrapper; -- 2.11.4.GIT