Compact 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.util.SC;
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.calendar.events.DayBodyClickEvent;
import com.smartgwt.client.widgets.calendar.events.DayBodyClickHandler;
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() {
protected String getDayBodyHTML(Date date, CalendarEvent[] events, Calendar calendar, int rowNum, int colNum) {
String returnStr = date.getDate() + "";
if(events != null && events.length > 0) {
returnStr += imgHTML("icons/16/approved.png", 16, 16, "image", "style='margin-top:6px'", null);
}
return returnStr;
}
};
calendar.setWidth(500);
calendar.setHeight(220);
calendar.setShowDayView(false);
calendar.setShowWeekView(false);
calendar.setShowOtherDays(false);
calendar.setShowDayHeaders(false);
calendar.setShowDatePickerButton(false);
calendar.setShowAddEventButton(false);
calendar.setDisableWeekends(false);
calendar.setShowDateChooser(false);
calendar.setCanCreateEvents(false);
calendar.setDataSource(eventDS);
calendar.setAutoFetchData(true);
calendar.addDayBodyClickHandler(new DayBodyClickHandler() {
public void onDayBodyClick(DayBodyClickEvent event) {
String nameStr = "";
CalendarEvent[] events = event.getEvents();
if(events.length == 0) {
nameStr = "No events";
} else {
for (CalendarEvent calEvent : events) {
nameStr += calEvent.getName() + "<br/>";
}
}
SC.say(nameStr);
}
});
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))
};
}
}
SmartGWT.zip( 9,880 k)Related examples in the same category