Coverage Report - org.xmlhammer.gui.util.UIAppender
 
Classes in this File Line Coverage Branch Coverage Complexity
UIAppender
19% 
20% 
0
 
 1  
 package org.xmlhammer.gui.util;
 2  
 
 3  
 import java.awt.Frame;
 4  
 
 5  
 import javax.swing.JOptionPane;
 6  
 import javax.swing.SwingUtilities;
 7  
 
 8  
 import org.apache.log4j.AppenderSkeleton;
 9  
 import org.apache.log4j.Level;
 10  
 import org.apache.log4j.spi.LoggingEvent;
 11  
 
 12  
 public class UIAppender extends AppenderSkeleton {
 13  220
     private Frame frame = null;
 14  
 
 15  
     public UIAppender( Frame frame) {
 16  220
         super();
 17  
 
 18  220
         this.frame = frame;
 19  220
     }
 20  
 
 21  
     @Override
 22  
     protected void append(LoggingEvent event) {
 23  102057
         if (event.getLevel() == Level.ERROR) {
 24  0
             if ( event.getThrowableInformation() != null && event.getThrowableInformation().getThrowable() != null) {
 25  0
                 Throwable t = event.getThrowableInformation().getThrowable();
 26  
                 
 27  0
                 while (t.getCause() != null) {
 28  0
                     t = t.getCause();
 29  0
                 }
 30  
 
 31  0
                 StringBuffer message = new StringBuffer();
 32  
 
 33  0
                 if (t.getMessage() == null || t.getMessage().length() == 0) {
 34  0
                     message.append(t.getClass().toString());
 35  0
                     message.append("\nPlease see log for more information.");
 36  0
                 } else {
 37  0
                     message.append(t.getMessage());
 38  0
                     message.append("\nPlease see log for more information.");
 39  
                 }
 40  
 
 41  0
                 showMessage(frame, message.toString(), event.getRenderedMessage());
 42  0
             } else {
 43  0
                 showMessage(frame, event.getRenderedMessage(), "Module Error");
 44  
             }
 45  
         }
 46  102057
     }
 47  
 
 48  
     private void showMessage(final Frame frame, final String message, final String title) {
 49  0
         if (SwingUtilities.isEventDispatchThread()) {
 50  0
             JOptionPane.showMessageDialog( frame, message, title, JOptionPane.ERROR_MESSAGE);
 51  0
         } else {
 52  0
             SwingUtilities.invokeLater(new Runnable() {
 53  0
                 public void run() {
 54  0
                     JOptionPane.showMessageDialog( frame, message, title, JOptionPane.ERROR_MESSAGE);
 55  0
                 }
 56  
             });
 57  
         }
 58  0
     }
 59  
 
 60  
     @Override
 61  
     public boolean requiresLayout() {
 62  0
         return false;
 63  
     }
 64  
 
 65  
     @Override
 66  
     public void close() {
 67  0
     }
 68  
 
 69  
 }