package authoritymanager.client;

import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback;

public class StatusMonitor extends Timer {
	private AuthorityManagerView view ;
	private boolean initialized ;
	
	public StatusMonitor(AuthorityManagerView view) {
		this.view = view ;
		this.initialized = false ;
	}
	
	public void run() {
		if (!initialized) {
			AsyncCallback<Void> callback = new AsyncCallback<Void>() {
				public void onFailure(Throwable caught) {					
					view.setStatus("Server failed: error " + caught) ;
				}
				public void onSuccess(Void result) {
					initialized = true ;
					view.setStatus("Server ready.") ;
				};
			};
			view.setStatus("Server initializing...") ;
			view.getController().initServer(callback) ;
		}		
	}
}
