Package ptolemy.gui

Class GraphicalMessageHandler

  • All Implemented Interfaces:
    java.lang.Thread.UncaughtExceptionHandler
    Direct Known Subclasses:
    ActorGraphicalMessageHandler

    public class GraphicalMessageHandler
    extends UndeferredGraphicalMessageHandler
    This is a message handler that reports errors in a graphical dialog box. When an applet or application starts up, it should call setContext() to specify a component with respect to which the display window should be created. This ensures that if the application is iconified or deiconified, that the display window goes with it. If the context is not specified, then the display window is centered on the screen, but iconifying and deiconifying may not work as desired.

    Unlike the base class, this class defers messages to be invoked in the Swing thread if they are not already called from within the Swing thread.

    Note that to display a window with an error message, this graphical handler must be registered by calling MessageHandler.setMessageHandler(MessageHandler). For example:

     GraphicalMessageHandler handler = new GraphicalMessageHandler();
     GraphicalMessageHandler.setMessageHandler(handler);
     GraphicalMessageHandler.error("My error", new Exception("My Exception"));
     
    If setMessageHandler() is not called, then the error() call will use the default handler and possibly display the message on standard error.

    This class is based on (and contains code from) the diva GUIUtilities class.

    Since:
    Ptolemy II 1.0
    Version:
    $Id$
    Author:
    Edward A. Lee, Steve Neuendorffer, John Reekie, and Elaine Cheong
    Pt.AcceptedRating:
    Red (reviewmoderator)
    Pt.ProposedRating:
    Yellow (eal)
    • Constructor Detail

      • GraphicalMessageHandler

        public GraphicalMessageHandler()
    • Method Detail

      • _error

        protected void _error​(java.lang.String info)
        Show the specified error message. This is deferred to execute in the swing event thread if it is called outside that thread.
        Overrides:
        _error in class UndeferredGraphicalMessageHandler
        Parameters:
        info - The message.
      • _error

        protected void _error​(java.lang.String info,
                              java.lang.Throwable throwable)
        Show the specified message and throwable information. If the throwable is an instance of CancelException, then it is not shown. By default, only the message of the throwable is thrown. The stack trace information is only shown if the user clicks on the "Display Stack Trace" button. This is deferred to execute in the swing event thread if it is called outside that thread.
        Overrides:
        _error in class UndeferredGraphicalMessageHandler
        Parameters:
        info - The message.
        throwable - The throwable.
        See Also:
        CancelException
      • _message

        protected void _message​(java.lang.String info)
        Show the specified message in a modal dialog. This is deferred to execute in the swing event thread if it is called outside that thread.
        Overrides:
        _message in class UndeferredGraphicalMessageHandler
        Parameters:
        info - The message.
      • _warning

        protected void _warning​(java.lang.String info)
                         throws CancelException
        Show the specified message in a modal dialog. If the user clicks on the "Cancel" button, then throw an exception. This gives the user the option of not continuing the execution, something that is particularly useful if continuing execution will result in repeated warnings. NOTE: If this is called outside the swing event thread, then no cancel button is presented and no CancelException will be thrown. This is because the displaying of the message must be deferred to the swing event thread, according to the swing architecture, or we could get deadlock or rendering problems.
        Overrides:
        _warning in class UndeferredGraphicalMessageHandler
        Parameters:
        info - The message.
        Throws:
        CancelException - If the user clicks on the "Cancel" button.
      • _warning

        protected void _warning​(java.lang.String info,
                                java.lang.Throwable throwable)
                         throws CancelException
        Show the specified message and throwable information in a modal dialog. If the user clicks on the "Cancel" button, then throw an exception. This gives the user the option of not continuing the execution, something that is particularly useful if continuing execution will result in repeated warnings. By default, only the message of the throwable is shown. The stack trace information is only shown if the user clicks on the "Display Stack Trace" button. NOTE: If this is called outside the swing event thread, then no cancel button is presented and no CancelException will be thrown. This is because the displaying of the message must be deferred to the swing event thread, according to the swing architecture, or we could get deadlock or rendering problems.
        Overrides:
        _warning in class UndeferredGraphicalMessageHandler
        Parameters:
        info - The message.
        throwable - The throwable.
        Throws:
        CancelException - If the user clicks on the "Cancel" button.
      • _yesNoQuestion

        protected boolean _yesNoQuestion​(java.lang.String question)
        Ask the user a yes/no question, and return true if the answer is yes.
        Overrides:
        _yesNoQuestion in class UndeferredGraphicalMessageHandler
        Parameters:
        question - The yes/no question.
        Returns:
        True if the answer is yes.
      • _yesNoCancelQuestion

        protected boolean _yesNoCancelQuestion​(java.lang.String question,
                                               java.lang.String trueOption,
                                               java.lang.String falseOption,
                                               java.lang.String exceptionOption)
                                        throws CancelException
        Ask the user a question with three possible answers; return true if the answer is the first one and false if the answer is the second one; throw an exception if the user selects the third one. The default (selected by return and escape) is the third (the cancel option).
        Overrides:
        _yesNoCancelQuestion in class UndeferredGraphicalMessageHandler
        Parameters:
        question - The question.
        trueOption - The option for which to return true.
        falseOption - The option for which to return false.
        exceptionOption - The option for which to throw an exception.
        Returns:
        True if the answer is the first option, false if it is the second.
        Throws:
        CancelException - If the user selects the third option.