package org.atdl4j.ui.swing.app.impl; import java.awt.Window; import javax.swing.JOptionPane; import org.apache.log4j.Logger; import org.atdl4j.config.Atdl4jOptions; import org.atdl4j.ui.app.impl.AbstractAtdl4jUserMessageHandler; /** * Represents the Swing-specific GUI pop-up message screen support. * * @author Scott Atwell * @version 1.0, Mar 1, 2010 */ public class SwingAtdl4jUserMessageHandler extends AbstractAtdl4jUserMessageHandler { private final Logger logger = Logger.getLogger(SwingAtdl4jUserMessageHandler.class); private Window parentComposite; public void init(Object parentOrShell, Atdl4jOptions atdl4jOptions) { init( (Window) parentOrShell, atdl4jOptions ); } public void init(Window aParentComposite, Atdl4jOptions atdl4jOptions) { parentComposite = aParentComposite; setAtdl4jOptions( atdl4jOptions ); } /* (non-Javadoc) * @see org.atdl4j.ui.app.Atdl4jUserMessageHandler#displayException(java.lang.String, java.lang.String, java.lang.Throwable) */ @Override public void displayException(String aTitle, String aMsgText, Throwable e) { String txt = ""; //TODO: remove e.printStackTrace(); if ( aTitle != null ) { txt += aTitle; logger.error( aTitle, e ); } else { txt += "Exception"; logger.error( "Exception: ", e ); } String msg = extractExceptionMessage( e ); if ( ( aMsgText != null ) && ( aMsgText.length() > 0 ) ) { txt += aMsgText + "\n\n" + msg; } else { txt += msg ; } JOptionPane.showMessageDialog(parentComposite, txt, aTitle, JOptionPane.ERROR_MESSAGE); } /* (non-Javadoc) * @see org.atdl4j.ui.app.Atdl4jUserMessageHandler#displayException(java.lang.String, java.lang.String, java.lang.Throwable) */ @Override public void displayMessage(String aTitle, String aMsgText) { JOptionPane.showMessageDialog(parentComposite, aMsgText, aTitle, JOptionPane.INFORMATION_MESSAGE); } }