/** * Copyright 2015 ArcBees Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.arcbees.gaestudio.client.application.widget.ajax; import com.google.gwt.event.shared.EventHandler; import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.HasHandlers; public class LoadingEvent extends GwtEvent<LoadingEvent.LoadingEventHandler> { public interface LoadingEventHandler extends EventHandler { void onLoadingEvent(LoadingEvent event); } public enum Action { BEGIN, END } private static final Type<LoadingEventHandler> TYPE = new Type<>(); private final Action action; private LoadingEvent(Action action) { this.action = action; } public static Type<LoadingEventHandler> getType() { return TYPE; } public static void fire(HasHandlers source, Action action) { source.fireEvent(new LoadingEvent(action)); } public Action getAction() { return action; } @Override public Type<LoadingEventHandler> getAssociatedType() { return TYPE; } @Override protected void dispatch(LoadingEventHandler handler) { handler.onLoadingEvent(this); } }