/* * Copyright 2000-2016 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.components.calendar; import java.util.Date; import java.util.List; import com.vaadin.server.VaadinRequest; import com.vaadin.tests.components.AbstractReindeerTestUI; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; import com.vaadin.v7.ui.Calendar; import com.vaadin.v7.ui.components.calendar.event.BasicEvent; import com.vaadin.v7.ui.components.calendar.event.BasicEventProvider; import com.vaadin.v7.ui.components.calendar.event.CalendarEvent; import com.vaadin.v7.ui.components.calendar.event.CalendarEventProvider.EventSetChangeEvent; import com.vaadin.v7.ui.components.calendar.event.CalendarEventProvider.EventSetChangeListener; /** * Test UI for DnD regular (not all day event) in month view. * * @author Vaadin Ltd */ public class CalendarMonthViewDndEvent extends AbstractReindeerTestUI { @Override protected void setup(VaadinRequest request) { final Calendar calendar = new Calendar("Test calendar"); final java.util.Calendar cal = getAdjustedCalendar(); if (cal.get( java.util.Calendar.DAY_OF_WEEK) == java.util.Calendar.SUNDAY) { // don't use Sunday: no space to move event on the left cal.add(java.util.Calendar.DAY_OF_MONTH, 1); } Date from = cal.getTime(); Date start = new Date(from.getTime() - 24 * 3600000); calendar.setStartDate(start); cal.add(java.util.Calendar.HOUR, 1); Date to = cal.getTime(); cal.add(java.util.Calendar.MONTH, 1); calendar.setEndDate(cal.getTime()); final BasicEvent basicEvent = new BasicEvent("event", "description", from, to); HorizontalLayout info = new HorizontalLayout(); info.setSpacing(true); info.setMargin(true); addComponent(info); final Label startLbl = new Label(String.valueOf(from.getTime())); startLbl.addStyleName("start"); info.addComponent(startLbl); final Label endLbl = new Label(String.valueOf(to.getTime())); endLbl.addStyleName("end"); info.addComponent(endLbl); BasicEventProvider provider = new BasicEventProvider(); provider.addEvent(basicEvent); calendar.setEventProvider(provider); provider.addEventSetChangeListener(new EventSetChangeListener() { @Override public void eventSetChange(EventSetChangeEvent event) { List<CalendarEvent> events = event.getProvider() .getEvents(new Date(0), new Date(Long.MAX_VALUE)); CalendarEvent calEvent = events.get(0); Date startEvent = calEvent.getStart(); Date endEvent = calEvent.getEnd(); startLbl.setValue(String.valueOf(startEvent.getTime())); endLbl.setValue(String.valueOf(endEvent.getTime())); } }); addComponent(calendar); } @Override protected String getTestDescription() { return "Allow DnD any events in Calendar Month view"; } @Override protected Integer getTicketNumber() { return 12413; } private java.util.Calendar getAdjustedCalendar() { final java.util.Calendar cal = java.util.Calendar.getInstance(); cal.set(java.util.Calendar.SECOND, 0); cal.set(java.util.Calendar.MILLISECOND, 0); return cal; } }