diff --git a/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/CalendarConfig.java b/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/CalendarConfig.java index 87b1807e..0ed92e18 100644 --- a/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/CalendarConfig.java +++ b/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/CalendarConfig.java @@ -33,6 +33,7 @@ public class CalendarConfig { private Language langauge;//http://arshaw.com/fullcalendar/docs/text/lang/ private ClickAndHoverConfig clickHoverConfig;//http://arshaw.com/fullcalendar/docs/mouse/ + private SelectConfig selectConfig;//http://arshaw.com/fullcalendar/docs/selection/ private DragAndResizeConfig dragResizeConfig;//http://arshaw.com/fullcalendar/docs/event_ui/; private EventDataConfig eventConfig;//http://arshaw.com/fullcalendar/docs/event_data/ private GeneralDisplay generalDisplay;//http://arshaw.com/fullcalendar/docs/display/ @@ -171,6 +172,14 @@ public ClickAndHoverConfig getClickHoverConfig() { public void setClickHoverConfig(final ClickAndHoverConfig clickHoverConfig) { this.clickHoverConfig = clickHoverConfig; } + + public SelectConfig getSelectConfig() { + return selectConfig; + } + + public void setSelectConfig(final SelectConfig selectConfig) { + this.selectConfig = selectConfig; + } public DragAndResizeConfig getDragResizeConfig() { return dragResizeConfig; @@ -209,6 +218,7 @@ public JsArray getJavaScriptParameters() { setParameter(params, getDayNames()); setParameter(params, getDragResizeConfig()); setParameter(params, getClickHoverConfig()); + setParameter(params, getSelectConfig()); setParameter(params, getEventConfig()); setParameter(params, getColumnFormat()); setParameter(params, getTimeFormat()); diff --git a/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/Event.java b/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/Event.java index f61386b2..68331821 100644 --- a/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/Event.java +++ b/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/Event.java @@ -97,6 +97,11 @@ private native void setStart(String start) /*-{ theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.Event::event.start = start; }-*/; + public native void setStart(final JavaScriptObject start) /*-{ + var theInstance = this; + theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.Event::event.start = start; + }-*/; + public native JsDate getStart() /*-{ var theInstance = this; if (theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.Event::event.start) { @@ -135,6 +140,11 @@ private native void setEnd(String end) /*-{ theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.Event::event.end = end; }-*/; + public native void setEnd(final JavaScriptObject end) /*-{ + var theInstance = this; + theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.Event::event.end = end; + }-*/; + public native JsDate getEnd() /*-{ var theInstance = this; if (theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.Event::event.end) { diff --git a/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/FullCalendar.java b/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/FullCalendar.java index 0aaa1902..794e2f16 100644 --- a/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/FullCalendar.java +++ b/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/FullCalendar.java @@ -373,4 +373,12 @@ private native void setAspectRatio(String id, double ratio) /*-{ public native void excecuteFunction(JavaScriptObject revertFunction)/*-{ revertFunction(); }-*/; + + public void unselect() { + unselect(getElement().getId()); + } + + private native void unselect(String id) /*-{ + $wnd.jQuery('#' + id).fullCalendar('unselect'); + }-*/; } diff --git a/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/SelectConfig.java b/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/SelectConfig.java new file mode 100644 index 00000000..59607d3a --- /dev/null +++ b/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/SelectConfig.java @@ -0,0 +1,55 @@ +package org.gwtbootstrap3.extras.fullcalendar.client.ui; + +/* + * #%L + * GwtBootstrap3 + * %% + * Copyright (C) 2013 - 2015 GwtBootstrap3 + * %% + * 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. + * #L% + */ + +import com.google.gwt.core.client.JavaScriptObject; + +/** + * Wraps selection events inside a JavaScriptObject + * + * @see http://fullcalendar.io/docs/selection/ + */ +public class SelectConfig implements IsJavaScriptObject { + private JavaScriptObject script; + + public SelectConfig(final SelectEventCallback handler) { + if (handler != null) { + newInstance(handler); + } + } + + private native void newInstance(SelectEventCallback handler) /*-{ + var theInstance = this; + var mouseHandler = handler; + theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.SelectConfig::script = {}; + theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.SelectConfig::script.select = function (start, end, jsEvent, view) { + mouseHandler.@org.gwtbootstrap3.extras.fullcalendar.client.ui.SelectEventCallback::select(Lcom/google/gwt/core/client/JavaScriptObject;Lcom/google/gwt/core/client/JavaScriptObject;Lcom/google/gwt/dom/client/NativeEvent;Lcom/google/gwt/core/client/JavaScriptObject;)(start, end, jsEvent, view); + }; + theInstance.@org.gwtbootstrap3.extras.fullcalendar.client.ui.SelectConfig::script.unselect = function (view, jsEvent) { + mouseHandler.@org.gwtbootstrap3.extras.fullcalendar.client.ui.SelectEventCallback::unselect(Lcom/google/gwt/core/client/JavaScriptObject;Lcom/google/gwt/dom/client/NativeEvent;)(view, jsEvent); + }; + }-*/; + + @Override + public JavaScriptObject toJavaScript() { + return script; + } +} diff --git a/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/SelectEventCallback.java b/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/SelectEventCallback.java new file mode 100644 index 00000000..55c46dd5 --- /dev/null +++ b/src/main/java/org/gwtbootstrap3/extras/fullcalendar/client/ui/SelectEventCallback.java @@ -0,0 +1,34 @@ +package org.gwtbootstrap3.extras.fullcalendar.client.ui; + +/* + * #%L + * GwtBootstrap3 + * %% + * Copyright (C) 2013 - 2015 GwtBootstrap3 + * %% + * 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. + * #L% + */ + +import com.google.gwt.core.client.JavaScriptObject; +import com.google.gwt.dom.client.NativeEvent; + +/** + * Selection callback interface + * + */ +public interface SelectEventCallback { + public void select(JavaScriptObject start, JavaScriptObject end, NativeEvent event, JavaScriptObject viewObject); + + public void unselect(JavaScriptObject viewObject, NativeEvent event); +} \ No newline at end of file diff --git a/src/main/resources/org/gwtbootstrap3/extras/fullcalendar/FullCalendar.gwt.xml b/src/main/resources/org/gwtbootstrap3/extras/fullcalendar/FullCalendar.gwt.xml index 61cb355b..7d551dc4 100644 --- a/src/main/resources/org/gwtbootstrap3/extras/fullcalendar/FullCalendar.gwt.xml +++ b/src/main/resources/org/gwtbootstrap3/extras/fullcalendar/FullCalendar.gwt.xml @@ -24,4 +24,5 @@ +