package nl.fontys.sofa.limo.view.status;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import nl.fontys.sofa.limo.api.service.status.StatusBarService;
import nl.fontys.sofa.limo.view.util.LIMOResourceBundle;
import org.openide.util.Lookup;
/**
* New Handler for Exceptions. It pass the Exception to the new Status bar
* @author Pascal Lindner
*/
public class ExceptionHandler extends Handler {
@Override
public void publish(LogRecord record) {
if (record != null && record.getMessage() != null) {
// This is an uncaught exception being thrown.
Exception e = new Exception(LIMOResourceBundle.getString("ERROR"), record.getThrown());
if (record.getLevel() == Level.SEVERE || record.getLevel() == Level.FINE) {
if (record.getMessage() != null) {
e = new Exception(record.getMessage(), record.getThrown());
}
Lookup.getDefault().lookup(StatusBarService.class).setMessage(record.getMessage(), StatusBarService.ACTION_NULL, StatusBarService.STATE_ERROR, e);
}
}
}
@Override
public void flush() {
}
@Override
public void close() {
}
}