001package org.gwtbootstrap3.extras.fullcalendar.client.ui;
002
003/*
004 * #%L
005 * GwtBootstrap3
006 * %%
007 * Copyright (C) 2013 - 2014 GwtBootstrap3
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 * 
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 * 
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023import com.google.gwt.core.client.JavaScriptObject;
024
025/**
026 * @author Jeff Iesnhart
027 * @see http://arshaw.com/fullcalendar/docs/event_ui/
028 */
029public class DragAndResizeConfig implements IsJavaScriptObject {
030    private JavaScriptObject script;
031
032    public DragAndResizeConfig(final DragAndResizeCallback handler) {
033        if (handler != null) {
034            newInstance(handler);
035        }
036    }
037
038    private native void newInstance(DragAndResizeCallback handler) /*-{
039        var theInstance = this;
040        var dragResizeHandler = handler;
041        theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.DragAndResizeConfig::script = {};
042        theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.DragAndResizeConfig::script.eventDragStart = function (event, jsEvent, ui, view) {
043            if (event && jsEvent) {
044                var originalEvent = null;
045                if (jsEvent.originalEvent) {
046                    originalEvent = jsEvent.originalEvent;
047                }
048                dragResizeHandler.@org.gwtbootstrap3.extras.fullcalendar.client.ui.DragAndResizeCallback::eventDragStart(Lcom/google/gwt/core/client/JavaScriptObject;Lcom/google/gwt/dom/client/NativeEvent;)(event, originalEvent);
049            }
050        };
051        theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.DragAndResizeConfig::script.eventDragStop = function (event, jsEvent, ui, view) {
052            if (event && jsEvent) {
053                var originalEvent = null;
054                if (jsEvent.originalEvent) {
055                    originalEvent = jsEvent.originalEvent;
056                }
057                dragResizeHandler.@org.gwtbootstrap3.extras.fullcalendar.client.ui.DragAndResizeCallback::eventDragStop(Lcom/google/gwt/core/client/JavaScriptObject;Lcom/google/gwt/dom/client/NativeEvent;)(event, originalEvent);
058            }
059        };
060        theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.DragAndResizeConfig::script.eventDrop = function (event, delta, revertFunc, jsEvent, ui, view) {
061            var originalEvent = null;
062            if (jsEvent && jsEvent.originalEvent) {
063                originalEvent = jsEvent.originalEvent;
064            }
065            dragResizeHandler.@org.gwtbootstrap3.extras.fullcalendar.client.ui.DragAndResizeCallback::eventDrop(Lcom/google/gwt/core/client/JavaScriptObject;Lcom/google/gwt/core/client/JavaScriptObject;Lcom/google/gwt/dom/client/NativeEvent;)(event, revertFunc, originalEvent);
066        };
067
068        theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.DragAndResizeConfig::script.eventResizeStart = function (event, jsEvent, ui, view) {
069            if (event && jsEvent) {
070                var originalEvent = null;
071                if (jsEvent.originalEvent) {
072                    originalEvent = jsEvent.originalEvent;
073                }
074                dragResizeHandler.@org.gwtbootstrap3.extras.fullcalendar.client.ui.DragAndResizeCallback::eventResizeStart(Lcom/google/gwt/core/client/JavaScriptObject;Lcom/google/gwt/dom/client/NativeEvent;)(event, originalEvent);
075            }
076        };
077        theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.DragAndResizeConfig::script.eventResizeStop = function (event, jsEvent, ui, view) {
078            if (event && jsEvent) {
079                var originalEvent = null;
080                if (jsEvent.originalEvent) {
081                    originalEvent = jsEvent.originalEvent;
082                }
083                dragResizeHandler.@org.gwtbootstrap3.extras.fullcalendar.client.ui.DragAndResizeCallback::eventResizeStop(Lcom/google/gwt/core/client/JavaScriptObject;Lcom/google/gwt/dom/client/NativeEvent;)(event, originalEvent);
084            }
085        };
086        theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.DragAndResizeConfig::script.eventResize = function (event, delta, revertFunc, jsEvent, ui, view) {
087            var originalEvent = null;
088            if (jsEvent && jsEvent.originalEvent) {
089                originalEvent = jsEvent.originalEvent;
090            }
091            dragResizeHandler.@org.gwtbootstrap3.extras.fullcalendar.client.ui.DragAndResizeCallback::eventResize(Lcom/google/gwt/core/client/JavaScriptObject;Lcom/google/gwt/core/client/JavaScriptObject;Lcom/google/gwt/dom/client/NativeEvent;)(event, revertFunc, originalEvent);
092        };
093    }-*/;
094
095    @Override
096    public JavaScriptObject toJavaScript() {
097        return script;
098    }
099}