Custom Event Calendar Sample (Smart GWT)
/* * SmartGWT (GWT for SmartClient) * Copyright 2008 and beyond, Isomorphic Software, Inc. * * SmartGWT is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. SmartGWT is also * available under typical commercial license terms - see * http://smartclient.com/license * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package com.smartgwt.sample.showcase.client; import java.util.Date; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.ui.RootPanel; import com.smartgwt.client.data.DataSource; import com.smartgwt.client.data.fields.DataSourceDateField; import com.smartgwt.client.data.fields.DataSourceSequenceField; import com.smartgwt.client.data.fields.DataSourceTextField; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.calendar.Calendar; import com.smartgwt.client.widgets.calendar.CalendarEvent; import com.smartgwt.client.widgets.form.fields.HeaderItem; import com.smartgwt.client.widgets.form.fields.RadioGroupItem; import com.smartgwt.client.widgets.form.fields.SelectItem; import com.smartgwt.client.widgets.form.fields.TextItem; public class Showcase implements EntryPoint{ public void onModuleLoad() { RootPanel.get().add(getViewPanel()); } public Canvas getViewPanel() { DataSource eventDS = new DataSource(); DataSourceSequenceField eventIdField = new DataSourceSequenceField("eventId"); eventIdField.setPrimaryKey(true); DataSourceTextField nameField = new DataSourceTextField("name"); DataSourceTextField descField = new DataSourceTextField("description"); DataSourceDateField startDateField = new DataSourceDateField("startDate"); DataSourceDateField endDateField = new DataSourceDateField("endDate"); eventDS.setFields(eventIdField, nameField, descField, startDateField, endDateField); eventDS.setClientOnly(true); eventDS.setTestData(CalendarData.getRecords()); Calendar calendar = new Calendar(); calendar.setDataSource(eventDS); calendar.setAutoFetchData(true); //specify the last field from the default fields so that subsequent fields come after the //default fields TextItem descItem = new TextItem(); descItem.setName("description"); //custom fields below HeaderItem eventOptions = new HeaderItem(); eventOptions.setDefaultValue("Event Options"); SelectItem repeatsItem = new SelectItem(); repeatsItem.setName("repeats"); repeatsItem.setTitle("Repeats"); repeatsItem.setColSpan(4); repeatsItem.setDefaultToFirstOption(true); repeatsItem.setValueMap("Does not repeat", "Daily", "Weekly", "Monthly", "Yearly"); SelectItem reminderItem = new SelectItem(); reminderItem.setName("reminderType"); reminderItem.setTitle("Reminder"); reminderItem.setWidth(70); reminderItem.setDefaultToFirstOption(true); reminderItem.setValueMap("Pop-up", "Email"); TextItem reminderValue = new TextItem(); reminderValue.setName("reminderValue"); reminderValue.setShowTitle(false); reminderValue.setWidth(60); reminderValue.setDefaultValue(10); SelectItem reminderUnits = new SelectItem(); reminderUnits.setName("reminderUnits"); reminderUnits.setShowTitle(false); reminderUnits.setWidth(70); reminderUnits.setDefaultToFirstOption(false); reminderUnits.setValueMap("minutes", "hours", "days"); calendar.setEventEditorFields(descItem, eventOptions, repeatsItem, reminderItem, reminderValue, reminderUnits); TextItem nameItem = new TextItem(); nameItem.setType("text"); nameItem.setName("name"); RadioGroupItem radioGroupItem = new RadioGroupItem("sharing"); radioGroupItem.setTitle("Sharing"); radioGroupItem.setVertical(false); radioGroupItem.setValueMap("Public", "Private"); radioGroupItem.setWidth(50); calendar.setEventDialogFields(nameItem, radioGroupItem); return calendar; } } class CalendarData { private static CalendarEvent[] records; private static Date today = new Date(); private static int year = today.getYear(); private static int month = today.getMonth(); private static int start = today.getDate() - today.getDay(); public static CalendarEvent[] getRecords() { if (records == null) { records = getNewRecords(); } return records; } public static CalendarEvent[] getNewRecords() { return new CalendarEvent[]{ new CalendarEvent(1, "Meeting", "Shareholders meeting: monthly forecast report", new Date(year, month, start + 2, 9, 0, 0), new Date(year, month, start + 2, 14, 0, 0)), new CalendarEvent(2, "Realtor", "Breakfast with realtor to discuss moving plans", new Date(year, month, start + 3, 8, 0, 0), new Date(year, month, start + 3, 10, 0, 0)), new CalendarEvent(3, "Soccer", "Little league soccer finals", new Date(year, month, start + 4, 13, 0, 0), new Date(year, month, start + 4, 16, 0, 0)), new CalendarEvent(4, "Sleep", "Catch up on sleep", new Date(year, month, start + 4, 5, 0, 0), new Date(year, month, start + 4, 9, 0, 0)), new CalendarEvent(5, "Inspection", "Home inspector coming", new Date(year, month, start + 4, 10, 0, 0), new Date(year, month, start + 4, 12, 0, 0), false, "testStyle"), new CalendarEvent(6, "Airport run", "Pick James up from the airport", new Date(year, month, start + 4, 1, 0, 0), new Date(year, month, start + 4, 3, 0, 0)), new CalendarEvent(7, "Dinner Party", "Prepare elaborate meal for friends", new Date(year, month, start + 4, 17, 0, 0), new Date(year, month, start + 4, 20, 0, 0)), new CalendarEvent(8, "Poker", "Poker at Steve's house", new Date(year, month, start + 4, 21, 0, 0), new Date(year, month, start + 4, 23, 0, 0)), new CalendarEvent(9, "Meeting", "Board of directors meeting: discussion of next months strategy", new Date(year, month, start + 5, 11, 0, 0), new Date(year, month, start + 5, 15, 0, 0)) }; } }