//(c) Copyright 2008, Scott Vorthmann. All rights reserved. package org.vorthmann.ui; import java.util.logging.Level; import java.util.logging.Logger; public class LoggingErrorChannel implements Controller .ErrorChannel { private final Logger logger; public LoggingErrorChannel( Logger logger ) { this.logger = logger; } @Override public void reportError( String errorCode, Object[] arguments ) { if ( Controller.USER_ERROR_CODE .equals( errorCode ) ) { errorCode = ((Exception) arguments[0]) .getMessage(); // don't want a stack trace for a user error logger .log( Level.WARNING, errorCode ); } else if ( Controller.UNKNOWN_ERROR_CODE .equals( errorCode ) ) { errorCode = ((Throwable) arguments[0]) .getMessage(); logger .log( Level.WARNING, "internal error: " + errorCode, ((Throwable) arguments[0]) ); } else { logger .log( Level.WARNING, "reporting error: " + errorCode, arguments ); ; // TODO use resources } logger .severe( "unable to open model file" ); } @Override public void clearError() {} }