package com.limegroup.gnutella; import com.limegroup.gnutella.settings.BooleanSetting; /** * Implementation of the <tt>MessageService</tt> interface for displaying * messages to the user. */ public class MessageService { /** * Variable for the <tt>MessageCallback</tt> implementation to use for * displaying messages. */ private static MessageCallback _callback = new ShellMessageService(); /** * Private constructor to ensure that this class cannot be instantiated. */ private MessageService() {} /** * Sets the class to use for making callbacks to the user. * * @param callback the <tt>MessageCallback</tt> instance to use */ public static void setCallback(MessageCallback callback) { _callback = callback; } /** * Shows a locale-specific message to the user using the specified key to * look up the message in the resource bundles. * * @param messageKey the key for looking up the message to display in the * resource bundles */ public static void showError(String messageKey) { _callback.showError(messageKey); } /** * Shows a locale-specific message to the user using the specified key to * look up the message in the resource bundles if the BooleanSetting * indicates to do so. * * @param messageKey the key for looking up the message to display in the * resource bundles */ public static void showError(String messageKey, BooleanSetting ignore) { _callback.showError(messageKey, ignore); } /** * Shows a locale-specific message to the user using the specified key to * look up the message in the resource bundles. Also appends a second, * non-locale-specific string to this message, such as a file name. * * @param messageKey the key for looking up the message to display in the * resource bundles * @param message a non-locale-specific message that will be appended as-is * to the message displayed to the user, such as a file name */ public static void showError(String messageKey, String message) { _callback.showError(messageKey, message); } /** * Shows a locale-specific message to the user using the specified key to * look up the message in the resource bundles if the BooleanSetting * indicates to do so. Also appends a second, * non-locale-specific string to this message, such as a file name. * * @param messageKey the key for looking up the message to display in the * resource bundles * @param message a non-locale-specific message that will be appended as-is * to the message displayed to the user, such as a file name */ public static void showError(String messageKey, String message, BooleanSetting ignore) { _callback.showError(messageKey, message, ignore); } /** * Shows a locale-specific message to the user using the specified key to * look up the message in the resource bundles. * * @param messageKey the key for looking up the message to display in the * resource bundles */ public static void showMessage(String messageKey) { _callback.showMessage(messageKey); } /** * Shows a locale-specific message to the user using the specified key to * look up the message in the resource bundles if the BooleanSetting * indicates to do so. * * @param messageKey the key for looking up the message to display in the * resource bundles */ public static void showMessage(String messageKey, BooleanSetting ignore) { _callback.showMessage(messageKey, ignore); } /** * Default messaging class that simply displays messages in the console. */ private static final class ShellMessageService implements MessageCallback { // Inherit doc comment. public void showError(String messageKey) { System.out.println("error key: "+messageKey); } // Inherit doc domment. public void showError(String messageKey, BooleanSetting ignore) { System.out.println("error key: "+messageKey); } // Inherit doc comment. public void showError(String messageKey, String message) { System.out.println("error key: "+messageKey+" extra message: "+ message); } // Inherit doc comment. public void showError(String messageKey, String message, BooleanSetting ignore) { System.out.println("error key: "+messageKey+" extra message: "+ message); } // Inherit doc comment. public void showMessage(String messageKey) { System.out.println("message key: "+messageKey); } // Inherit doc comment. public void showMessage(String messageKey, BooleanSetting ignore) { System.out.println("message key: "+messageKey); } } }