X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FJvOptionPane.java;fp=src%2Fjalview%2Fgui%2FJvOptionPane.java;h=539f3c2a870652c760d665e27569bda08473c3b6;hb=2595e9d4ee0dbbd3406a98c4e49a61ccde806479;hp=0000000000000000000000000000000000000000;hpb=e20075ba805d744d7cc4976e2b8d5e5840fb0a8d;p=jalview.git diff --git a/src/jalview/gui/JvOptionPane.java b/src/jalview/gui/JvOptionPane.java new file mode 100644 index 0000000..539f3c2 --- /dev/null +++ b/src/jalview/gui/JvOptionPane.java @@ -0,0 +1,306 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ + +package jalview.gui; + +import java.awt.Component; +import java.awt.HeadlessException; + +import javax.swing.Icon; +import javax.swing.JOptionPane; + +public class JvOptionPane extends JOptionPane +{ + /** + * + */ + private static final long serialVersionUID = -3019167117756785229L; + + private static Object mockResponse = JvOptionPane.CANCEL_OPTION; + + private static boolean interactiveMode = true; + + public static int showConfirmDialog(Component parentComponent, + Object message) throws HeadlessException + { + return isInteractiveMode() ? JOptionPane.showConfirmDialog( + parentComponent, message) : (int) getMockResponse(); + } + + public static int showConfirmDialog(Component parentComponent, + Object message, String title, int optionType) + throws HeadlessException + { + return isInteractiveMode() ? JOptionPane.showConfirmDialog( + parentComponent, message, title, optionType) + : (int) getMockResponse(); + } + + public static int showConfirmDialog(Component parentComponent, + Object message, String title, int optionType, int messageType) + throws HeadlessException + { + return isInteractiveMode() ? JOptionPane.showConfirmDialog( + parentComponent, message, title, optionType, messageType) + : (int) getMockResponse(); + } + + public static int showConfirmDialog(Component parentComponent, + Object message, String title, int optionType, int messageType, + Icon icon) throws HeadlessException + { + return isInteractiveMode() ? JOptionPane.showConfirmDialog( + parentComponent, message, title, optionType, messageType, icon) + : (int) getMockResponse(); + } + + public static int showInternalConfirmDialog(Component parentComponent, + Object message) + { + return isInteractiveMode() ? JOptionPane.showInternalConfirmDialog( + parentComponent, message) : (int) getMockResponse(); + } + + public static int showInternalConfirmDialog(Component parentComponent, + Object message, String title, int optionType) + { + return isInteractiveMode() ? JOptionPane.showConfirmDialog( + parentComponent, message, title, optionType) + : (int) getMockResponse(); + } + + public static int showInternalConfirmDialog(Component parentComponent, + Object message, String title, int optionType, int messageType) + { + return isInteractiveMode() ? JOptionPane.showConfirmDialog( + parentComponent, message, title, optionType, messageType) + : (int) getMockResponse(); + } + + public static int showInternalConfirmDialog(Component parentComponent, + Object message, String title, int optionType, int messageType, + Icon icon) + { + return isInteractiveMode() ? JOptionPane.showInternalConfirmDialog( + parentComponent, message, title, optionType, messageType, icon) + : (int) getMockResponse(); + } + + public static int showOptionDialog(Component parentComponent, + Object message, String title, int optionType, int messageType, + Icon icon, Object[] options, Object initialValue) + throws HeadlessException + { + return isInteractiveMode() ? JOptionPane.showOptionDialog( + parentComponent, message, title, optionType, messageType, icon, + options, initialValue) : (int) getMockResponse(); + } + + public static void showMessageDialog(Component parentComponent, + Object message) throws HeadlessException + { + if (isInteractiveMode()) + { + JOptionPane.showMessageDialog(parentComponent, message); + } + else + { + outputMessage(message); + } + } + + public static void showMessageDialog(Component parentComponent, + Object message, String title, int messageType) + throws HeadlessException + { + if (isInteractiveMode()) + { + JOptionPane.showMessageDialog(parentComponent, message, title, + messageType); + } + else + { + outputMessage(message); + } + } + + public static void showMessageDialog(Component parentComponent, + Object message, String title, int messageType, Icon icon) + throws HeadlessException + { + if (isInteractiveMode()) + { + JOptionPane.showMessageDialog(parentComponent, message, title, + messageType, icon); + } + else + { + outputMessage(message); + } + } + + public static void showInternalMessageDialog(Component parentComponent, + Object message) + { + if (isInteractiveMode()) + { + JOptionPane.showMessageDialog(parentComponent, message); + } + else + { + outputMessage(message); + } + } + + public static void showInternalMessageDialog(Component parentComponent, + Object message, String title, int messageType) + { + if (isInteractiveMode()) + { + JOptionPane.showMessageDialog(parentComponent, message, title, + messageType); + } + else + { + outputMessage(message); + } + } + + public static void showInternalMessageDialog(Component parentComponent, + Object message, String title, int messageType, Icon icon) + { + if (isInteractiveMode()) + { + JOptionPane.showMessageDialog(parentComponent, message, title, + messageType, icon); + } + else + { + outputMessage(message); + } + } + + public static String showInputDialog(Object message) + throws HeadlessException + { + return isInteractiveMode() ? JOptionPane.showInputDialog(message) + : getMockResponse().toString(); + } + + public static String showInputDialog(Object message, + Object initialSelectionValue) + { + return isInteractiveMode() ? JOptionPane.showInputDialog(message, + initialSelectionValue) : getMockResponse().toString(); + } + + public static String showInputDialog(Component parentComponent, + Object message) throws HeadlessException + { + return isInteractiveMode() ? JOptionPane.showInputDialog( + parentComponent, message) : getMockResponse().toString(); + } + + public static String showInputDialog(Component parentComponent, + Object message, Object initialSelectionValue) + { + return isInteractiveMode() ? JOptionPane.showInputDialog( + parentComponent, message, initialSelectionValue) + : getMockResponse().toString(); + } + + public static String showInputDialog(Component parentComponent, + Object message, String title, int messageType) + throws HeadlessException + { + return isInteractiveMode() ? JOptionPane.showInputDialog( + parentComponent, message, title, messageType) + : getMockResponse().toString(); + } + + public static Object showInputDialog(Component parentComponent, + Object message, String title, int messageType, Icon icon, + Object[] selectionValues, Object initialSelectionValue) + throws HeadlessException + { + return isInteractiveMode() ? JOptionPane.showInputDialog( + parentComponent, message, title, messageType, icon, + selectionValues, initialSelectionValue) : getMockResponse() + .toString(); + } + + public static String showInternalInputDialog(Component parentComponent, + Object message) + { + return isInteractiveMode() ? JOptionPane.showInternalInputDialog( + parentComponent, message) : getMockResponse().toString(); + } + + public static String showInternalInputDialog(Component parentComponent, + Object message, String title, int messageType) + { + return isInteractiveMode() ? JOptionPane.showInternalInputDialog( + parentComponent, message, title, messageType) + : getMockResponse().toString(); + } + + public static Object showInternalInputDialog(Component parentComponent, + Object message, String title, int messageType, Icon icon, + Object[] selectionValues, Object initialSelectionValue) + { + return isInteractiveMode() ? JOptionPane.showInternalInputDialog( + parentComponent, message, title, messageType, icon, + selectionValues, initialSelectionValue) : getMockResponse() + .toString(); + } + + private static void outputMessage(Object message) + { + System.out.println(">>> JOption Message : " + message.toString()); + } + + public static Object getMockResponse() + { + return mockResponse; + } + + public static void setMockResponse(Object mockOption) + { + JvOptionPane.mockResponse = mockOption; + } + + public static void resetMock() + { + setMockResponse(JvOptionPane.CANCEL_OPTION); + setInteractiveMode(true); + } + + public static boolean isInteractiveMode() + { + return interactiveMode; + } + + public static void setInteractiveMode(boolean interactiveMode) + { + JvOptionPane.interactiveMode = interactiveMode; + } + +}