/*
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
*
* Copyright @ 2015 Atlassian Pty Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.java.sip.communicator.service.gui;
/**
* A configurable popup dialog, that could be used from other services for
* simple interactions with the user, throught the gui interface. This dialog
* allows showing error, warning or info messages, prompting the user for simple
* one field input or choice, or asking the user for certain confirmation.
*
* Three types of dialogs are differentiated: Message, Confirm and Input dialog.
* Each of them has several show methods corresponging, allowing additional
* specific configuration, like specifying or not a title, confirmation option
* or initial value.
*
* @author Yana Stamcheva
*/
public interface PopupDialog extends ExportedWindow
{
public static final WindowID WINDOW_GENERAL_POPUP
= new WindowID("GeneralPopupWindow");
//
// Option types
//
/** Type used for showConfirmDialog
. */
public static final int YES_NO_OPTION = 0;
/** Type used for showConfirmDialog
. */
public static final int YES_NO_CANCEL_OPTION = 1;
/** Type used for showConfirmDialog
. */
public static final int OK_CANCEL_OPTION = 2;
//
// Return values.
//
/** Return value from class method if YES is chosen. */
public static final int YES_OPTION = 0;
/** Return value from class method if NO is chosen. */
public static final int NO_OPTION = 1;
/** Return value from class method if CANCEL is chosen. */
public static final int CANCEL_OPTION = 2;
/** Return value form class method if OK is chosen. */
public static final int OK_OPTION = 0;
/**
* Return value from class method if user closes window without
* selecting anything.
*/
public static final int CLOSED_OPTION = -1;
/*
* Message types. Meant to be used by the UI implementation to determine
* what icon to display and possibly what behavior to give based on the
* type.
*/
/** Used for error messages. */
public static final int ERROR_MESSAGE = 0;
/** Used for information messages. */
public static final int INFORMATION_MESSAGE = 1;
/** Used for warning messages. */
public static final int WARNING_MESSAGE = 2;
/** Used for questions. */
public static final int QUESTION_MESSAGE = 3;
/** No icon is used. */
public static final int PLAIN_MESSAGE = -1;
/**
* Shows a question-message dialog requesting input from the user.
*
* @param message the Object
to display.
* @return user's input, or null
meaning the user
* canceled the input
*/
public abstract String showInputPopupDialog(Object message);
/**
* Shows a question-message dialog requesting input from the user, with
* the input value initialized to initialSelectionValue
.
*
* @param message the Object
to display
* @param initialSelectionValue the value used to initialize the input
* field
* @return user's input, or null
meaning the user
* canceled the input
*/
public abstract String showInputPopupDialog(Object message,
String initialSelectionValue);
/**
* Shows a dialog with title title
and message type
* messageType
, requesting input from the user. The message
* type is meant to be used by the ui implementation to determine the
* icon of the dialog.
*
* @param message the Object
to display
* @param title the String
to display in the dialog
* title bar
* @param messageType the type of message that is to be displayed:
* ERROR_MESSAGE
,
* INFORMATION_MESSAGE
,
* WARNING_MESSAGE
,
* QUESTION_MESSAGE
,
* or PLAIN_MESSAGE
* @return user's input, or null
meaning the user
* canceled the input
*/
public abstract String showInputPopupDialog(Object message, String title,
int messageType);
/**
* Shows an input dialog, where all options like title, type of message
* etc., could be configured. The user will be able to choose from
* selectionValues
, where null
implies the
* users can input whatever they wish.
* initialSelectionValue
is the initial value to prompt
* the user with.
* It is up to the UI implementation to decide how best to represent the
* selectionValues
. In the case of swing per example it could
* be a JComboBox
, JList
or
* JTextField
. The message type is meant to be used by the ui
* implementation to determine the icon of the dialog.
*
* @param message the Object
to display
* @param title the String
to display in the
* dialog title bar
* @param messageType the type of message to be displayed:
* ERROR_MESSAGE
,
* INFORMATION_MESSAGE
,
* WARNING_MESSAGE
,
* QUESTION_MESSAGE
,
* or PLAIN_MESSAGE
*
* @param selectionValues an array of Object
s that
* gives the possible selections
* @param initialSelectionValue the value used to initialize the input
* field
* @return user's input, or null
meaning the user
* canceled the input
*/
public abstract Object showInputPopupDialog(Object message, String title,
int messageType, Object[] selectionValues,
Object initialSelectionValue);
/**
* Shows an information-message dialog titled "Message".
*
* @param message the Object
to display
*/
public abstract void showMessagePopupDialog(Object message);
/**
* Shows a dialog that displays a message using a default
* icon determined by the messageType
parameter.
*
* @param message the Object
to display
* @param title the title string for the dialog
* @param messageType the type of message to be displayed:
* ERROR_MESSAGE
,
* INFORMATION_MESSAGE
,
* WARNING_MESSAGE
,
* QUESTION_MESSAGE
,
* or PLAIN_MESSAGE
*/
public abstract void showMessagePopupDialog(Object message,
String title, int messageType);
/**
* Shows a dialog that prompts the user for confirmation.
*
* @param message the Object
to display
* @return one of the YES_OPTION, NO_OPTION,.., XXX_OPTION, indicating the
* option selected by the user
*/
public abstract int showConfirmPopupDialog(Object message);
/**
* Shows a dialog where the number of choices is determined
* by the optionType
parameter.
*
* @param message the Object
to display
* @param title the title string for the dialog
* @param optionType an int designating the options available on the dialog:
* YES_NO_OPTION
, or
* YES_NO_CANCEL_OPTION
* @return one of the YES_OPTION, NO_OPTION,.., XXX_OPTION, indicating the
* option selected by the user
*/
public abstract int showConfirmPopupDialog(Object message,
String title, int optionType);
/**
* Shows a dialog where the number of choices is determined
* by the optionType
parameter, where the
* messageType
parameter determines the icon to display.
* The messageType
parameter is primarily used to supply
* a default icon for the dialog.
*
* @param message the Object
to display
* @param title the title string for the dialog
* @param optionType an integer designating the options available
* on the dialog: YES_NO_OPTION
,
* or YES_NO_CANCEL_OPTION
* @param messageType an integer designating the kind of message this is;
* ERROR_MESSAGE
,
* INFORMATION_MESSAGE
,
* WARNING_MESSAGE
,
* QUESTION_MESSAGE
,
* or PLAIN_MESSAGE
* @return one of the YES_OPTION, NO_OPTION,.., XXX_OPTION, indicating the
* option selected by the user
*/
public abstract int showConfirmPopupDialog(Object message, String title,
int optionType, int messageType);
/**
* Implements the
* PopupDialog.showInputPopupDialog(Object, String, int, Object[],
* Object) method. Invokes the corresponding
* JOptionPane.showInputDialog method.
*
* @param message the message to display
* @param messageType the type of message to be displayed: ERROR_MESSAGE,
* INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, or PLAIN_MESSAGE
* @param title the String to display in the dialog title bar
* @param selectionValues an array of Objects that gives the possible
* selections
* @param initialSelectionValue the value used to initialize the input field
* @param icon the icon to show in the input window.
*/
public Object showInputPopupDialog(Object message, String title,
int messageType, Object[] selectionValues,
Object initialSelectionValue, byte[] icon);
/**
* Implements the PopupDialog.showMessagePopupDialog(Object, String,
* int) method. Invokes the corresponding
* JOptionPane.showMessageDialog method.
*
* @param message the Object to display
* @param title the title string for the dialog
* @param messageType the type of message to be displayed: ERROR_MESSAGE,
* INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, or PLAIN_MESSAGE
* @param icon the image to display in the message dialog.
*/
public void showMessagePopupDialog(Object message, String title,
int messageType, byte[] icon);
/**
* Implements the PopupDialog.showConfirmPopupDialog(Object, String,
* int, int) method. Invokes the corresponding
* JOptionPane.showConfirmDialog method.
*
* @param message the Object to display
* @param title the title string for the dialog
* @param optionType an integer designating the options available on the
* dialog: YES_NO_OPTION, or YES_NO_CANCEL_OPTION
* @param messageType an integer designating the kind of message this is;
* primarily used to determine the icon from the pluggable Look and Feel:
* ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE,
* or PLAIN_MESSAGE
* @param icon the icon to display in the dialog
*/
public int showConfirmPopupDialog(Object message, String title,
int optionType, int messageType, byte[] icon);
}