package org.activityinfo.ui.client.widget.loading;
import com.google.gwt.user.client.ui.Widget;
import org.activityinfo.i18n.shared.I18N;
import org.activityinfo.ui.client.style.Icons;
/**
* Provides user-intelligible information about exceptions
*/
public class ExceptionOracle {
public static void setLoadingStyle(Widget widget, LoadingState state) {
widget.setStyleName(LoadingStylesheet.INSTANCE.loading(), state == LoadingState.LOADING);
widget.setStyleName(LoadingStylesheet.INSTANCE.failed(), state == LoadingState.FAILED);
widget.setStyleName(LoadingStylesheet.INSTANCE.loaded(), state == LoadingState.LOADED);
}
private static boolean isConnectionFailure(Throwable caught) {
return false;
}
public static String getIcon(Throwable caught) {
return isConnectionFailure(caught) ?
Icons.INSTANCE.connectionProblem() :
Icons.INSTANCE.exception();
}
public static String getHeading(Throwable caught) {
return isConnectionFailure(caught) ?
I18N.CONSTANTS.connectionProblem() :
I18N.CONSTANTS.unexpectedException() ;
}
public static String getExplanation(Throwable caught) {
return isConnectionFailure(caught) ?
I18N.CONSTANTS.connectionProblemText() :
I18N.CONSTANTS.unexpectedExceptionExplanation();
}
}