/* ** 2012 June 3 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. */ package info.ata4.log; import java.awt.Component; import java.util.logging.ErrorManager; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.LogRecord; import javax.swing.JOptionPane; /** * Log handler for dialog messages. * * @author Nico Bergemann <barracuda415 at yahoo.de> */ public class DialogHandler extends Handler { private final Component parentComponent; public DialogHandler(Component parentComponent) { this.parentComponent = parentComponent; setFormatter(new DialogFormatter()); // don't spam dialog messages setLevel(Level.WARNING); } @Override public void publish(LogRecord record) { if (record.getLevel().intValue() < getLevel().intValue()) { return; } int dialogType; String title; String message; try { message = getFormatter().format(record); } catch (Exception ex) { reportError(null, ex, ErrorManager.FORMAT_FAILURE); return; } if (record.getLevel() == Level.WARNING) { dialogType = JOptionPane.WARNING_MESSAGE; title = "Warning"; } else if (record.getLevel() == Level.SEVERE) { dialogType = JOptionPane.ERROR_MESSAGE; title = "Error"; } else { dialogType = JOptionPane.INFORMATION_MESSAGE; title = "Information"; } JOptionPane.showMessageDialog(parentComponent, message, title, dialogType); } @Override public void flush() { } @Override public void close() throws SecurityException { } }