001: /*
002: * Lucane - a collaborative platform
003: * Copyright (C) 2002-2004 Vincent Fiack <vfiack@mail15.com>
004: *
005: * This library is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU Lesser General Public
007: * License as published by the Free Software Foundation; either
008: * version 2.1 of the License, or (at your option) any later version.
009: *
010: * This library is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * Lesser General Public License for more details.
014: *
015: * You should have received a copy of the GNU Lesser General Public
016: * License along with this library; if not, write to the Free Software
017: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
018: */
019: package org.lucane.client.widgets;
020:
021: import java.util.Vector;
022: import javax.swing.*;
023: import javax.swing.JOptionPane;
024:
025: import org.lucane.client.util.Translation;
026: import org.lucane.common.Logging;
027:
028: public class DialogBox {
029: /**
030: * Outputs and logs a graphical error message
031: *
032: * @param message the error message
033: */
034: public static void error(String message) {
035: JOptionPane.showMessageDialog(null, message, "Lucane",
036: JOptionPane.ERROR_MESSAGE);
037: Logging.getLogger().info(message);
038: }
039:
040: /**
041: * Outputs and logs a graphical informative message
042: *
043: * @param message the informative message
044: */
045: public static void info(String message) {
046: JOptionPane.showMessageDialog(null, message, "Lucane",
047: JOptionPane.INFORMATION_MESSAGE);
048: Logging.getLogger().info(message);
049: }
050:
051: /**
052: * Display a question box (yes/no)
053: *
054: * @param title the dialog box title
055: * @param message the message
056: * @return true if yes is cliqued, false otherwise
057: */
058: public static boolean question(String title, String message) {
059: Object[] options = { Translation.tr("yes"),
060: Translation.tr("no") };
061: int response = JOptionPane.showOptionDialog(null, message,
062: title, JOptionPane.YES_NO_OPTION,
063: JOptionPane.QUESTION_MESSAGE, null, //don't use a custom Icon
064: options, //the titles of buttons
065: options[0]); //default button title);
066:
067: if (response == JOptionPane.YES_OPTION)
068: return true;
069: else
070: return false;
071: }
072:
073: /**
074: * Display a text box
075: *
076: * @param title the dialog box title
077: * @param message the message
078: * @return the user answer
079: */
080: public static String input(String title, String message) {
081: return JOptionPane.showInputDialog(null, message, title,
082: JOptionPane.QUESTION_MESSAGE);
083: }
084:
085: /**
086: * Display a text box
087: *
088: * @param title the dialog box title
089: * @param message the message
090: * @param defaultValue the default value
091: * @return the user answer
092: */
093: public static String input(String title, String message,
094: String defaultValue) {
095: return (String) JOptionPane.showInputDialog(null, message,
096: title, JOptionPane.QUESTION_MESSAGE, null, null,
097: defaultValue);
098: }
099:
100: /**
101: * Display a ListBox
102: *
103: * @param owner the owner JFrame or null
104: * @param title the dialog title
105: * @param message the dialog message
106: * @param list the selectables items
107: * @return the selected index
108: */
109: public static int list(JFrame owner, String title, String message,
110: Vector list) {
111: return (new ListBox(owner, title, message, list))
112: .selectItemByIndex();
113: }
114: }
|