ptolemy.gui
Class GraphicalMessageHandler

java.lang.Object
  extended by ptolemy.util.MessageHandler
      extended by ptolemy.gui.UndeferredGraphicalMessageHandler
          extended by ptolemy.gui.GraphicalMessageHandler

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.

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: GraphicalMessageHandler.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Edward A. Lee, Steve Neuendorffer, John Reekie, and Elaine Cheong
Accepted Rating:
Red (reviewmoderator)
Proposed Rating:
Yellow (eal)

Field Summary
 
Fields inherited from class ptolemy.gui.UndeferredGraphicalMessageHandler
_context
 
Constructor Summary
GraphicalMessageHandler()
           
 
Method Summary
protected  void _error(java.lang.String info)
          Show the specified error message.
protected  void _error(java.lang.String info, java.lang.Throwable throwable)
          Show the specified message and throwable information.
protected  void _message(java.lang.String info)
          Show the specified message in a modal dialog.
protected  void _warning(java.lang.String info)
          Show the specified message in a modal dialog.
protected  void _warning(java.lang.String info, java.lang.Throwable throwable)
          Show the specified message and throwable information in a modal dialog.
protected  boolean _yesNoCancelQuestion(java.lang.String question)
          Ask the user a yes/no/cancel question, and return true if the answer is yes.
protected  boolean _yesNoQuestion(java.lang.String question)
          Ask the user a yes/no question, and return true if the answer is yes.
 
Methods inherited from class ptolemy.gui.UndeferredGraphicalMessageHandler
_showStackTrace, getContext, setContext
 
Methods inherited from class ptolemy.util.MessageHandler
error, error, getMessageHandler, message, setMessageHandler, shortDescription, warning, warning, yesNoCancelQuestion, yesNoQuestion
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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)
                                throws CancelException
Ask the user a yes/no/cancel question, and return true if the answer is yes.

Overrides:
_yesNoCancelQuestion in class UndeferredGraphicalMessageHandler
Parameters:
question - The yes/no/cancel question.
Returns:
True if the answer is yes.
Throws:
CancelException - If the user clicks on the "Cancel" button.