package com.project.website.canvas.client.canvastools.base; import com.google.gwt.event.dom.client.BlurEvent; import com.google.gwt.event.dom.client.BlurHandler; import com.google.gwt.event.dom.client.FocusEvent; import com.google.gwt.event.dom.client.FocusHandler; import com.google.gwt.event.dom.client.MouseEvent; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.ui.Widget; import com.project.shared.client.events.SimpleEvent; import com.project.shared.client.events.SimpleEvent.Handler; import com.project.shared.data.Point2D; import com.project.website.canvas.client.canvastools.base.eventargs.LoadStartedEventArgs; import com.project.website.canvas.client.canvastools.base.interfaces.ICanvasToolEvents; public class CanvasToolEvents implements ICanvasToolEvents { //#region Events private final SimpleEvent<Void> _killRequestEvent = new SimpleEvent<Void>(); private final SimpleEvent<MouseEvent<?>> _moveStartRequestEvent = new SimpleEvent<MouseEvent<?>>(); private SimpleEvent<Point2D> _selfMoveRequestEvent = new SimpleEvent<Point2D>(); private final SimpleEvent<LoadStartedEventArgs> _loadStartedEvent = new SimpleEvent<LoadStartedEventArgs>(); private final SimpleEvent<Void> _loadEndedEvent = new SimpleEvent<Void>(); private Widget _domDispatcher = null; //#endregion public CanvasToolEvents(Widget domDispatcher) { this._domDispatcher = domDispatcher; } @Override public HandlerRegistration addKillRequestEventHandler(Handler<Void> handler) { return this._killRequestEvent.addHandler(handler); } public void dispatchKillRequestEvent() { this._killRequestEvent.dispatch(null); } @Override public HandlerRegistration addMoveStartEventHandler(Handler<MouseEvent<?>> handler) { return this._moveStartRequestEvent.addHandler(handler); } public void dispatchMoveStartRequestEvent(MouseEvent<?> mouseEvent) { this._moveStartRequestEvent.dispatch(mouseEvent); } @Override public HandlerRegistration addSelfMoveRequestEventHandler(Handler<Point2D> handler) { return this._selfMoveRequestEvent.addHandler(handler); } public void dispatchSelfMoveRequestEvent(Point2D targetPoint) { this._selfMoveRequestEvent.dispatch(targetPoint); } @Override public HandlerRegistration addFocusHandler(FocusHandler handler) { return this._domDispatcher.addDomHandler(handler, FocusEvent.getType()); } @Override public HandlerRegistration addBlurHandler(BlurHandler handler) { return this._domDispatcher.addDomHandler(handler, BlurEvent.getType()); } @Override public HandlerRegistration addLoadStartedEventHandler(Handler<LoadStartedEventArgs> handler) { return this._loadStartedEvent.addHandler(handler); } public void dispatchLoadStartedEvent() { this._loadStartedEvent.dispatch(new LoadStartedEventArgs()); } public void dispatchLoadStartedEvent(LoadStartedEventArgs args) { this._loadStartedEvent.dispatch(args); } @Override public HandlerRegistration addLoadEndedEventHandler(Handler<Void> handler) { return this._loadEndedEvent.addHandler(handler); } public void dispatchLoadEndedEvent() { this._loadEndedEvent.dispatch(null); } }