package com.smartgwt.client.widgets.calendar;
import java.util.Date;
import com.smartgwt.client.widgets.calendar.*;
/**
* Called to determine whether a particular event should be visible in the passed view
*/
public abstract class ShowEventCustomizer {
private Calendar calendar;
public void setCalendar(Calendar calendar) {
this.calendar = calendar;
}
/**
* Returns the Calendar being customized
* @return Calendar being customized
*/
public Calendar getCalendar() {
return this.calendar;
}
/**
* Call executeDefault() to run the original method for default behavior
*/
public native boolean executeDefault(CalendarEvent event, CalendarView calendarView) /*-{
var calendarViewJS = calendarView == null ? null : calendarView.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var eventJS = event.@com.smartgwt.client.core.DataClass::getJsObj()();
var calendarJ = this.@com.smartgwt.client.widgets.calendar.ShowEventCustomizer::getCalendar()();
var calendarJS = calendarJ.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
if (calendarJS == null) {
$wnd.isc.logWarn('no calendar');
return null;
}
var ret = calendarJS._shouldShowEvent(eventJS, calendarViewJS);
return ret;
}-*/;
/**
* shouldShowEvent() should be implemented and return true if the passed event should be visible in the passed view
* Use executeDefault() to run the original method to fall back on default behavior.
* To access the Calendar itself, call getCalendar() on the event or the calendarView.
* @param event the event in question
* @param calendarView the view in which the event will appear
* @return true if the event should be rendered in the passed view, or false otherwise
*/
public abstract boolean shouldShowEvent(CalendarEvent event, CalendarView calendarView);
}