001 package org.kuali.student.lum.program.client.rpc;
002
003 import com.google.gwt.core.client.GWT;
004 import com.google.gwt.user.client.Window;
005
006 import org.kuali.student.common.ui.client.application.KSAsyncCallback;
007 import org.kuali.student.common.ui.client.widgets.progress.BlockingTask;
008 import org.kuali.student.common.ui.client.widgets.progress.KSBlockingProgressIndicator;
009
010 /**
011 * @author Igor
012 */
013 public class AbstractCallback<T> extends KSAsyncCallback<T> {
014
015 private BlockingTask loadingTask;
016
017 public AbstractCallback() {
018 this("Loading");
019 }
020
021 public AbstractCallback(String text) {
022 loadingTask = new BlockingTask(text);
023 KSBlockingProgressIndicator.addTask(loadingTask);
024 }
025
026 @Override
027 public void onFailure(Throwable caught) {
028 super.onFailure(caught);
029 }
030
031 @Override
032 public void handleFailure(Throwable caught) {
033 KSBlockingProgressIndicator.removeTask(loadingTask);
034 Window.alert("Call failed on server.");
035 GWT.log("Exception:", caught);
036 }
037
038 @Override
039 public void onSuccess(T result) {
040 KSBlockingProgressIndicator.removeTask(loadingTask);
041 }
042 }