public final class ConditionalOptionPaneUtil extends java.lang.Object
JOptionPane
. Within JOSM you should use these
methods rather than the bare methods from JOptionPane
because the methods provided
by ConditionalOptionPaneUtil ensure that a dialog window is always on top and isn't hidden by one of the
JOSM windows for detached dialogs, relation editors, history browser and the like.Modifier and Type | Class and Description |
---|---|
(package private) static class |
ConditionalOptionPaneUtil.MessagePanel
This is a message panel used in dialogs which can be enabled/disabled with a preference
setting.
|
(package private) static class |
ConditionalOptionPaneUtil.NotShowAgain
An enum designating how long to not show this message again, i.e., for how long to store
|
Modifier and Type | Field and Description |
---|---|
static int |
DIALOG_DISABLED_OPTION |
protected static java.util.Set<java.lang.String> |
immediateActive
a set indication that (preference key) is or may be stored for the currently active bulk operation
|
protected static java.util.Map<java.lang.String,java.lang.Integer> |
immediateChoices
(preference key => return value) mappings valid for the current session
|
protected static java.util.Map<java.lang.String,java.lang.Integer> |
sessionChoices
(preference key => return value) mappings valid for the current operation (no, those two maps cannot be combined)
|
Modifier | Constructor and Description |
---|---|
private |
ConditionalOptionPaneUtil()
this is a static utility class only
|
Modifier and Type | Method and Description |
---|---|
static void |
endBulkOperation(java.lang.String prefKey)
Marks the ending of a bulk operation.
|
static int |
getDialogReturnValue(java.lang.String prefKey)
Returns the preference value for the preference key "message." +
prefKey + ".value". |
static boolean |
isInBulkOperation(java.lang.String prefKey)
Determines whether the key has been marked to be part of a bulk operation (in order to provide a "Do not show again (this operation)" option).
|
private static boolean |
isYesOrNo(int returnCode) |
static boolean |
showConfirmationDialog(java.lang.String preferenceKey,
java.awt.Component parent,
java.lang.Object message,
java.lang.String title,
int optionType,
int messageType,
int trueOption)
Displays a confirmation dialog with some option buttons given by
optionType . |
static void |
showMessageDialog(java.lang.String preferenceKey,
java.awt.Component parent,
java.lang.Object message,
java.lang.String title,
int messageType)
Displays an message in modal dialog with an OK button.
|
static int |
showOptionDialog(java.lang.String preferenceKey,
java.awt.Component parent,
java.lang.Object message,
java.lang.String title,
int optionType,
int messageType,
java.lang.Object[] options,
java.lang.Object defaultOption)
Displays an confirmation dialog with some option buttons given by
optionType . |
static void |
startBulkOperation(java.lang.String prefKey)
Marks the beginning of a bulk operation in order to provide a "Do not show again (this operation)" option.
|
public static final int DIALOG_DISABLED_OPTION
protected static final java.util.Map<java.lang.String,java.lang.Integer> sessionChoices
protected static final java.util.Map<java.lang.String,java.lang.Integer> immediateChoices
protected static final java.util.Set<java.lang.String> immediateActive
private ConditionalOptionPaneUtil()
public static int getDialogReturnValue(java.lang.String prefKey)
prefKey
+ ".value".
The default value if the preference key is missing is -1.prefKey
- the preference keyprefKey
+ ".value"public static void startBulkOperation(java.lang.String prefKey)
prefKey
- the preference keypublic static boolean isInBulkOperation(java.lang.String prefKey)
prefKey
- the preference keypublic static void endBulkOperation(java.lang.String prefKey)
prefKey
- the preference keypublic static int showOptionDialog(java.lang.String preferenceKey, java.awt.Component parent, java.lang.Object message, java.lang.String title, int optionType, int messageType, java.lang.Object[] options, java.lang.Object defaultOption) throws java.awt.HeadlessException
optionType
.
It is always on top even if there are other open windows like detached dialogs,
relation editors, history browsers and the like.
Set optionType
to JOptionPane.YES_NO_OPTION
for a dialog with a YES and
a NO button.
Set optionType
to JOptionPane.YES_NO_CANCEL_OPTION
for a dialog with a YES,
a NO and a CANCEL button
Returns one of the constants JOptionPane.YES_OPTION, JOptionPane.NO_OPTION,
JOptionPane.CANCEL_OPTION or JOptionPane.CLOSED_OPTION depending on the action chosen by
the user.preferenceKey
- the preference keyparent
- the parent componentmessage
- the messagetitle
- the titleoptionType
- the option typemessageType
- the message typeoptions
- a list of optionsdefaultOption
- the default option; only meaningful if options is used; can be nullJOptionPane.CLOSED_OPTION
if the dialog was closed.java.awt.HeadlessException
public static boolean showConfirmationDialog(java.lang.String preferenceKey, java.awt.Component parent, java.lang.Object message, java.lang.String title, int optionType, int messageType, int trueOption) throws java.awt.HeadlessException
optionType
.
It is always on top even if there are other open windows like detached dialogs,
relation editors, history browsers and the like.
Set optionType
to JOptionPane.YES_NO_OPTION
for a dialog with a YES and
a NO button.
Set optionType
to JOptionPane.YES_NO_CANCEL_OPTION
for a dialog with a YES,
a NO and a CANCEL button
Replies true, if the selected option is equal to trueOption
, otherwise false.
Replies true, if the dialog is not displayed because the respective preference option
preferenceKey
is set to false and the user has previously chosen
trueOption
.preferenceKey
- the preference keyparent
- the parent componentmessage
- the messagetitle
- the titleoptionType
- the option typemessageType
- the message typetrueOption
- if this option is selected the method replies truetrueOption
, otherwise false.java.awt.HeadlessException
JOptionPane.INFORMATION_MESSAGE
,
JOptionPane.WARNING_MESSAGE
,
JOptionPane.ERROR_MESSAGE
private static boolean isYesOrNo(int returnCode)
public static void showMessageDialog(java.lang.String preferenceKey, java.awt.Component parent, java.lang.Object message, java.lang.String title, int messageType)
preferenceKey
and value false
the dialog is not show.preferenceKey
- the preference keyparent
- the parent componentmessage
- the messagetitle
- the titlemessageType
- the message typeJOptionPane.INFORMATION_MESSAGE
,
JOptionPane.WARNING_MESSAGE
,
JOptionPane.ERROR_MESSAGE