diff options
author | Denis Anisimov <denis@vaadin.com> | 2014-08-17 18:04:11 +0300 |
---|---|---|
committer | Sauli Tähkäpää <sauli@vaadin.com> | 2014-10-16 15:47:50 +0300 |
commit | c3219ae8636181c1dd60373304515d85fc3b7d40 (patch) | |
tree | 6b2455633ae34afcd15d810f5023956448f0d107 | |
parent | 33f3e452fba575d7be58e46d6f79dde1e571a89f (diff) | |
download | vaadin-framework-c3219ae8636181c1dd60373304515d85fc3b7d40.tar.gz vaadin-framework-c3219ae8636181c1dd60373304515d85fc3b7d40.zip |
All day property support is added to ContainerEventProvider (#14178).
Change-Id: I8d5580895a218440a8295ed79453d6cbe24195b1
-rw-r--r-- | server/src/com/vaadin/ui/components/calendar/ContainerEventProvider.java | 21 | ||||
-rw-r--r-- | server/tests/src/com/vaadin/tests/server/component/calendar/ContainerEventProviderTest.java | 88 |
2 files changed, 109 insertions, 0 deletions
diff --git a/server/src/com/vaadin/ui/components/calendar/ContainerEventProvider.java b/server/src/com/vaadin/ui/components/calendar/ContainerEventProvider.java index a8804caedb..8dff224627 100644 --- a/server/src/com/vaadin/ui/components/calendar/ContainerEventProvider.java +++ b/server/src/com/vaadin/ui/components/calendar/ContainerEventProvider.java @@ -61,6 +61,7 @@ public class ContainerEventProvider implements CalendarEditableEventProvider, public static final String STARTDATE_PROPERTY = "start"; public static final String ENDDATE_PROPERTY = "end"; public static final String STYLENAME_PROPERTY = "styleName"; + public static final String ALL_DAY_PROPERTY = "allDay"; /** * Internal class to keep the container index which item this event @@ -106,6 +107,7 @@ public class ContainerEventProvider implements CalendarEditableEventProvider, private Object startDateProperty = STARTDATE_PROPERTY; private Object endDateProperty = ENDDATE_PROPERTY; private Object styleNameProperty = STYLENAME_PROPERTY; + private Object allDayProperty = ALL_DAY_PROPERTY; /** * Constructor @@ -227,6 +229,11 @@ public class ContainerEventProvider implements CalendarEditableEventProvider, basicEvent.setStyleName(String.valueOf(item.getItemProperty( styleNameProperty).getValue())); } + if (allDayProperty != null + && item.getItemPropertyIds().contains(allDayProperty)) { + basicEvent.setAllDay((Boolean) item.getItemProperty( + allDayProperty).getValue()); + } event = basicEvent; } return event; @@ -433,6 +440,20 @@ public class ContainerEventProvider implements CalendarEditableEventProvider, this.styleNameProperty = styleNameProperty; } + /** + * Set the all day property for the event + */ + public void setAllDayProperty(Object allDayProperty) { + this.allDayProperty = allDayProperty; + } + + /** + * Get the all day property for the event + */ + public Object getAllDayProperty() { + return allDayProperty; + } + /* * (non-Javadoc) * diff --git a/server/tests/src/com/vaadin/tests/server/component/calendar/ContainerEventProviderTest.java b/server/tests/src/com/vaadin/tests/server/component/calendar/ContainerEventProviderTest.java new file mode 100644 index 0000000000..63749a2fc9 --- /dev/null +++ b/server/tests/src/com/vaadin/tests/server/component/calendar/ContainerEventProviderTest.java @@ -0,0 +1,88 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * 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.vaadin.tests.server.component.calendar; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import org.junit.Assert; +import org.junit.Test; + +import com.vaadin.data.util.BeanItemContainer; +import com.vaadin.ui.components.calendar.ContainerEventProvider; +import com.vaadin.ui.components.calendar.event.CalendarEvent; + +/** + * + * @author Vaadin Ltd + */ +public class ContainerEventProviderTest { + + @Test + public void testDefaultAllDayProperty() { + ContainerEventProvider provider = new ContainerEventProvider(null); + Assert.assertEquals(ContainerEventProvider.ALL_DAY_PROPERTY, + provider.getAllDayProperty()); + + } + + @Test + public void testSetAllDayProperty() { + ContainerEventProvider provider = new ContainerEventProvider(null); + Object prop = new Object(); + provider.setAllDayProperty(prop); + Assert.assertEquals(prop, provider.getAllDayProperty()); + } + + @Test + public void testGetEvents() { + BeanItemContainer<EventBean> container = new BeanItemContainer<EventBean>( + EventBean.class); + EventBean bean = new EventBean(); + container.addBean(bean); + ContainerEventProvider provider = new ContainerEventProvider(container); + List<CalendarEvent> events = provider.getEvents(bean.getStart(), + bean.getEnd()); + Assert.assertTrue(events.get(0).isAllDay()); + } + + public static class EventBean { + + public boolean isAllDay() { + return true; + } + + public void setAllDay(boolean allDay) { + } + + public Date getStart() { + return Calendar.getInstance().getTime(); + } + + public Date getEnd() { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.MINUTE, 10); + return calendar.getTime(); + } + + public void setStart(Date date) { + } + + public void setEnd(Date date) { + } + } +} |