001    package 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    
023    import com.google.gwt.core.client.JavaScriptObject;
024    
025    /**
026     * @author Jeff Iesnhart
027     * @see http://arshaw.com/fullcalendar/docs/event_ui/
028     */
029    public 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, 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, 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    }