/*
* Smart GWT (GWT for SmartClient)
* Copyright 2008 and beyond, Isomorphic Software, Inc.
*
* Smart GWT 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. Smart GWT 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.client.widgets.calendar;
import com.smartgwt.client.event.*;
import com.smartgwt.client.core.*;
import com.smartgwt.client.types.*;
import com.smartgwt.client.data.*;
import com.smartgwt.client.data.events.*;
import com.smartgwt.client.rpc.*;
import com.smartgwt.client.widgets.*;
import com.smartgwt.client.widgets.events.*;
import com.smartgwt.client.widgets.form.*;
import com.smartgwt.client.widgets.form.validator.*;
import com.smartgwt.client.widgets.form.fields.*;
import com.smartgwt.client.widgets.tile.*;
import com.smartgwt.client.widgets.tile.events.*;
import com.smartgwt.client.widgets.grid.*;
import com.smartgwt.client.widgets.grid.events.*;
import com.smartgwt.client.widgets.chart.*;
import com.smartgwt.client.widgets.layout.*;
import com.smartgwt.client.widgets.layout.events.*;
import com.smartgwt.client.widgets.menu.*;
import com.smartgwt.client.widgets.tab.*;
import com.smartgwt.client.widgets.toolbar.*;
import com.smartgwt.client.widgets.tree.*;
import com.smartgwt.client.widgets.tree.events.*;
import com.smartgwt.client.widgets.viewer.*;
import com.smartgwt.client.widgets.calendar.*;
import com.smartgwt.client.widgets.calendar.events.*;
import com.smartgwt.client.widgets.cube.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.user.client.Element;
import com.smartgwt.client.util.*;
import com.google.gwt.event.shared.*;
/**
* The Calendar component provides several different ways for a user to view and edit a set of events. Note that the
* <b>ISC_Calendar.js</b> module must be loaded to make use of the Calendar class. <P> <b>CalendarEvents</b> <P> Events
* are represented as ordinary JavaScript Objects (see {@link com.smartgwt.client.widgets.calendar.CalendarEvent}). The
* Calendar expects to be able to read and write a basic set of properties on events: name, startDate, endDate,
* description, etc, which can be stored under configurable property names (see eg {@link
* com.smartgwt.client.widgets.calendar.Calendar#getStartDateField startDateField}. <P> Much like a {@link
* com.smartgwt.client.widgets.grid.ListGrid} manages it's ListGridRecords, the Calendar can either be passed an ordinary
* Array of CalendarEvents or can fetch data from a DataSource. <P> If the calendar is bound to a DataSource, event
* changes by user action or by calling methods will be saved to the DataSource. <P> <b>Navigation</b> <P> The calendar
* supports a {@link com.smartgwt.client.widgets.calendar.Calendar#getWeekView WeekView}, {@link
* com.smartgwt.client.widgets.calendar.Calendar#getDayView DayView} and {@link
* com.smartgwt.client.widgets.calendar.Calendar#getMonthView MonthView} by default. The user can navigate using back and
* forward buttons or via an attached {@link com.smartgwt.client.widgets.calendar.Calendar#getDateChooser DateChooser}.
* <P> <b>Event Manipulation</b> <P> Events can be created via clicking on the day, week or month views, or via the "Add
* Event" button. In the day and week views, the user may click and drag to create an event of a specific duration. <P>
* Creating an event via click or click and drag pops up the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getEventDialog EventDialog}, which provides a simple form for quick event
* entry (only one field, the description, is required by default). <P> A separate editor called the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getEventEditor EventEditor} provides an interface for editing all
* possible properties of an event, including custom properties. The EventEditor is used whenever a pre-existing event is
* being edited, and can also be invoked by the user wherever the simpler EventDialog appears. <P> Events can also be
* programmatically {@link com.smartgwt.client.widgets.calendar.Calendar#addEvent added}, {@link
* com.smartgwt.client.widgets.calendar.Calendar#removeEvent removed}, or {@link
* com.smartgwt.client.widgets.calendar.Calendar#updateEvent updated}.
*/
public class Calendar extends Canvas implements DataBoundComponent, com.smartgwt.client.widgets.calendar.events.HasDayBodyClickHandlers, com.smartgwt.client.widgets.calendar.events.HasDayHeaderClickHandlers, com.smartgwt.client.widgets.calendar.events.HasEventChangedHandlers, com.smartgwt.client.widgets.calendar.events.HasEventClickHandlers, com.smartgwt.client.widgets.calendar.events.HasEventRemoveClickHandlers, com.smartgwt.client.widgets.calendar.events.HasEventMovedHandlers, com.smartgwt.client.widgets.calendar.events.HasEventAddedHandlers, com.smartgwt.client.widgets.calendar.events.HasEventRemovedHandlers, com.smartgwt.client.widgets.calendar.events.HasEventResizedHandlers, com.smartgwt.client.widgets.calendar.events.HasDateChangedHandlers, com.smartgwt.client.widgets.calendar.events.HasBackgroundClickHandlers, com.smartgwt.client.widgets.calendar.events.HasBackgroundMouseDownHandlers {
public static Calendar getOrCreateRef(JavaScriptObject jsObj) {
if(jsObj == null) return null;
BaseWidget obj = BaseWidget.getRef(jsObj);
if(obj != null) {
return (Calendar) obj;
} else {
return new Calendar(jsObj);
}
}
public Calendar(){
scClassName = "Calendar";
}
public Calendar(JavaScriptObject jsObj){
super(jsObj);
}
protected native JavaScriptObject create()/*-{
var config = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
var scClassName = this.@com.smartgwt.client.widgets.BaseWidget::scClassName;
var widget = $wnd.isc[scClassName].create(config);
this.@com.smartgwt.client.widgets.BaseWidget::doInit()();
return widget;
}-*/;
// ********************* Properties / Attributes ***********************
/**
* The text to be displayed when a user hovers over the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getAddEventButton add event} toolbar button
*
* @param addEventButtonHoverText addEventButtonHoverText Default value is "Add an event"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setAddEventButtonHoverText(String addEventButtonHoverText) throws IllegalStateException {
setAttribute("addEventButtonHoverText", addEventButtonHoverText, false);
}
/**
* The text to be displayed when a user hovers over the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getAddEventButton add event} toolbar button
*
*
* @return String
*/
public String getAddEventButtonHoverText() {
return getAttributeAsString("addEventButtonHoverText");
}
/**
* If {@link com.smartgwt.client.widgets.calendar.Calendar#getAutoFetchData autoFetchData} is <code>true</code>, this
* attribute allows the developer to specify a textMatchStyle for the initial {@link
* com.smartgwt.client.widgets.calendar.Calendar#fetchData Calendar.fetchData} call.
*
* @param autoFetchTextMatchStyle autoFetchTextMatchStyle Default value is null
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.docs.Databinding Databinding overview and related methods
*/
public void setAutoFetchTextMatchStyle(TextMatchStyle autoFetchTextMatchStyle) throws IllegalStateException {
setAttribute("autoFetchTextMatchStyle", autoFetchTextMatchStyle == null ? null : autoFetchTextMatchStyle.getValue(), false);
}
/**
* If {@link com.smartgwt.client.widgets.calendar.Calendar#getAutoFetchData autoFetchData} is <code>true</code>, this
* attribute allows the developer to specify a textMatchStyle for the initial {@link
* com.smartgwt.client.widgets.calendar.Calendar#fetchData Calendar.fetchData} call.
*
*
* @return TextMatchStyle
* @see com.smartgwt.client.docs.Databinding Databinding overview and related methods
*/
public TextMatchStyle getAutoFetchTextMatchStyle() {
return EnumUtil.getEnum(TextMatchStyle.values(), getAttribute("autoFetchTextMatchStyle"));
}
/**
* The base name for the CSS class applied to the grid cells of the day and week views of the calendar. This style will
* have "Dark", "Over", "Selected", or "Disabled" appended to it according to the state of the cell.
*
* @param baseStyle baseStyle Default value is "calendar"
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public void setBaseStyle(String baseStyle) {
setAttribute("baseStyle", baseStyle, true);
}
/**
* The base name for the CSS class applied to the grid cells of the day and week views of the calendar. This style will
* have "Dark", "Over", "Selected", or "Disabled" appended to it according to the state of the cell.
*
*
* @return String
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public String getBaseStyle() {
return getAttributeAsString("baseStyle");
}
/**
* The title for the cancel button in the event editor
*
* @param cancelButtonTitle cancelButtonTitle Default value is "Cancel"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setCancelButtonTitle(String cancelButtonTitle) throws IllegalStateException {
setAttribute("cancelButtonTitle", cancelButtonTitle, false);
}
/**
* The title for the cancel button in the event editor
*
*
* @return String
*/
public String getCancelButtonTitle() {
return getAttributeAsString("cancelButtonTitle");
}
/**
* If true, users can create new events
*
* @param canCreateEvents canCreateEvents Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setCanCreateEvents(Boolean canCreateEvents) throws IllegalStateException {
setAttribute("canCreateEvents", canCreateEvents, false);
}
/**
* If true, users can create new events
*
*
* @return Boolean
*/
public Boolean getCanCreateEvents() {
return getAttributeAsBoolean("canCreateEvents");
}
/**
* If true, users can delete existing events. Defaults to {@link
* com.smartgwt.client.widgets.calendar.Calendar#getCanEditEvents canEditEvents}
*
* @param canDeleteEvents canDeleteEvents Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setCanDeleteEvents(Boolean canDeleteEvents) throws IllegalStateException {
setAttribute("canDeleteEvents", canDeleteEvents, false);
}
/**
* If true, users can delete existing events. Defaults to {@link
* com.smartgwt.client.widgets.calendar.Calendar#getCanEditEvents canEditEvents}
*
*
* @return Boolean
*/
public Boolean getCanDeleteEvents() {
return getAttributeAsBoolean("canDeleteEvents");
}
/**
* Name of the field on each {@link com.smartgwt.client.widgets.calendar.CalendarEvent} that determines dragability.
*
* @param canDragEventField canDragEventField Default value is "canEdit"
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public void setCanDragEventField(String canDragEventField) throws IllegalStateException {
setAttribute("canDragEventField", canDragEventField, false);
}
/**
* Name of the field on each {@link com.smartgwt.client.widgets.calendar.CalendarEvent} that determines dragability.
*
*
* @return String
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public String getCanDragEventField() {
return getAttributeAsString("canDragEventField");
}
/**
* If true, users can drag-reposition existing events.
*
* @param canDragEvents canDragEvents Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setCanDragEvents(Boolean canDragEvents) throws IllegalStateException {
setAttribute("canDragEvents", canDragEvents, false);
}
/**
* If true, users can drag-reposition existing events.
*
*
* @return Boolean
*/
public Boolean getCanDragEvents() {
return getAttributeAsBoolean("canDragEvents");
}
/**
* If true, users can edit existing events
*
* @param canEditEvents canEditEvents Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setCanEditEvents(Boolean canEditEvents) throws IllegalStateException {
setAttribute("canEditEvents", canEditEvents, false);
}
/**
* If true, users can edit existing events
*
*
* @return Boolean
*/
public Boolean getCanEditEvents() {
return getAttributeAsBoolean("canEditEvents");
}
/**
* Name of the field on each {@link com.smartgwt.client.widgets.calendar.CalendarEvent} that determines editability.
*
* @param canEditField canEditField Default value is "canEdit"
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public void setCanEditField(String canEditField) throws IllegalStateException {
setAttribute("canEditField", canEditField, false);
}
/**
* Name of the field on each {@link com.smartgwt.client.widgets.calendar.CalendarEvent} that determines editability.
*
*
* @return String
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public String getCanEditField() {
return getAttributeAsString("canEditField");
}
/**
* The date for which events are displayed in the day, week, and month tabs of the calendar. Default is today.
*
* <br><br>If this method is called after the component has been drawn/initialized:
* Set the current date for which the calendar will display events.
*
* @param chosenDate the new date to set as the current date. Default value is 'Today'
*/
public void setChosenDate(java.util.Date chosenDate) {
setAttribute("chosenDate", chosenDate, true);
}
/**
* The date for which events are displayed in the day, week, and month tabs of the calendar. Default is today.
*
*
* @return java.util.Date
*/
public java.util.Date getChosenDate() {
return getAttributeAsDate("chosenDate");
}
/**
* The name of the view that should be visible initially by default.
*
* <br><br>If this method is called after the component has been drawn/initialized:
* Sets the currently visible view
*
* @param currentViewName The name of the view that should be made visible.. Default value is null
*/
public void setCurrentViewName(ViewName currentViewName) {
setAttribute("currentViewName", currentViewName == null ? null : currentViewName.getValue(), true);
}
/**
* The name of the view that should be visible initially by default.
*
*
* @return Get the name of the visible view. Either 'day', 'week', or 'month'.
*/
public ViewName getCurrentViewName() {
return EnumUtil.getEnum(ViewName.values(), getAttribute("currentViewName"));
}
/**
* How to fetch and manage records retrieve from the server. See {@link com.smartgwt.client.types.FetchMode}. <P> This
* setting only applies to the {@link com.smartgwt.client.data.ResultSet} automatically created by calling {@link
* com.smartgwt.client.widgets.calendar.Calendar#fetchData Calendar.fetchData}. If a pre-existing ResultSet is passed to
* setData() instead, it's existing setting for {@link com.smartgwt.client.data.ResultSet#getFetchMode fetchMode} applies.
*
* @param dataFetchMode dataFetchMode Default value is "paged"
* @see com.smartgwt.client.docs.Databinding Databinding overview and related methods
*/
public void setDataFetchMode(FetchMode dataFetchMode) {
setAttribute("dataFetchMode", dataFetchMode == null ? null : dataFetchMode.getValue(), true);
}
/**
* How to fetch and manage records retrieve from the server. See {@link com.smartgwt.client.types.FetchMode}. <P> This
* setting only applies to the {@link com.smartgwt.client.data.ResultSet} automatically created by calling {@link
* com.smartgwt.client.widgets.calendar.Calendar#fetchData Calendar.fetchData}. If a pre-existing ResultSet is passed to
* setData() instead, it's existing setting for {@link com.smartgwt.client.data.ResultSet#getFetchMode fetchMode} applies.
*
*
* @return FetchMode
* @see com.smartgwt.client.docs.Databinding Databinding overview and related methods
*/
public FetchMode getDataFetchMode() {
return EnumUtil.getEnum(FetchMode.values(), getAttribute("dataFetchMode"));
}
/**
* Date formatter for displaying events. Default is to use the system-wide default short date format, configured via
* Date.setShortDisplayFormat. Specify any valid {@link com.smartgwt.client.types.DateDisplayFormat}.
*
* @param dateFormatter dateFormatter Default value is null
*/
public void setDateFormatter(DateDisplayFormat dateFormatter) {
setAttribute("dateFormatter", dateFormatter == null ? null : dateFormatter.getValue(), true);
}
/**
* Date formatter for displaying events. Default is to use the system-wide default short date format, configured via
* Date.setShortDisplayFormat. Specify any valid {@link com.smartgwt.client.types.DateDisplayFormat}.
*
*
* @return DateDisplayFormat
*/
public DateDisplayFormat getDateFormatter() {
return EnumUtil.getEnum(DateDisplayFormat.values(), getAttribute("dateFormatter"));
}
/**
* The text to be displayed when a user hovers over the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getDatePickerButton date picker} toolbar button
*
* @param datePickerHoverText datePickerHoverText Default value is "Choose a date"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setDatePickerHoverText(String datePickerHoverText) throws IllegalStateException {
setAttribute("datePickerHoverText", datePickerHoverText, false);
}
/**
* The text to be displayed when a user hovers over the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getDatePickerButton date picker} toolbar button
*
*
* @return String
*/
public String getDatePickerHoverText() {
return getAttributeAsString("datePickerHoverText");
}
/**
* The base name for the CSS class applied to the day body of the month view of the calendar. This style will have "Dark",
* "Over", "Selected", or "Disabled" appended to it according to the state of the cell.
*
* @param dayBodyBaseStyle dayBodyBaseStyle Default value is "calMonthDayBody"
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public void setDayBodyBaseStyle(String dayBodyBaseStyle) {
setAttribute("dayBodyBaseStyle", dayBodyBaseStyle, true);
}
/**
* The base name for the CSS class applied to the day body of the month view of the calendar. This style will have "Dark",
* "Over", "Selected", or "Disabled" appended to it according to the state of the cell.
*
*
* @return String
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public String getDayBodyBaseStyle() {
return getAttributeAsString("dayBodyBaseStyle");
}
/**
* The base name for the CSS class applied to the day headers of the month view. This style will have "Dark", "Over",
* "Selected", or "Disabled" appended to it according to the state of the cell.
*
* @param dayHeaderBaseStyle dayHeaderBaseStyle Default value is "calMonthDayHeader"
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public void setDayHeaderBaseStyle(String dayHeaderBaseStyle) {
setAttribute("dayHeaderBaseStyle", dayHeaderBaseStyle, true);
}
/**
* The base name for the CSS class applied to the day headers of the month view. This style will have "Dark", "Over",
* "Selected", or "Disabled" appended to it according to the state of the cell.
*
*
* @return String
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public String getDayHeaderBaseStyle() {
return getAttributeAsString("dayHeaderBaseStyle");
}
/**
* The title for the day view
*
* @param dayViewTitle dayViewTitle Default value is "Day"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setDayViewTitle(String dayViewTitle) throws IllegalStateException {
setAttribute("dayViewTitle", dayViewTitle, false);
}
/**
* The title for the day view
*
*
* @return String
*/
public String getDayViewTitle() {
return getAttributeAsString("dayViewTitle");
}
/**
* The name of the description field in a {@link com.smartgwt.client.widgets.calendar.CalendarEvent}.
*
* @param descriptionField descriptionField Default value is "description"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setDescriptionField(String descriptionField) throws IllegalStateException {
setAttribute("descriptionField", descriptionField, false);
}
/**
* The name of the description field in a {@link com.smartgwt.client.widgets.calendar.CalendarEvent}.
*
*
* @return String
*/
public String getDescriptionField() {
return getAttributeAsString("descriptionField");
}
/**
* The title for the edit button in the quick event dialog
*
* @param detailsButtonTitle detailsButtonTitle Default value is "Edit Details"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setDetailsButtonTitle(String detailsButtonTitle) throws IllegalStateException {
setAttribute("detailsButtonTitle", detailsButtonTitle, false);
}
/**
* The title for the edit button in the quick event dialog
*
*
* @return String
*/
public String getDetailsButtonTitle() {
return getAttributeAsString("detailsButtonTitle");
}
/**
* If set, weekend days appear in disabled style and events cannot be created on weekends. Which days are considered
* weekends is controlled by weekendDays.
*
* @param disableWeekends disableWeekends Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.docs.Visibility Visibility overview and related methods
*/
public void setDisableWeekends(Boolean disableWeekends) throws IllegalStateException {
setAttribute("disableWeekends", disableWeekends, false);
}
/**
* If set, weekend days appear in disabled style and events cannot be created on weekends. Which days are considered
* weekends is controlled by weekendDays.
*
*
* @return Boolean
* @see com.smartgwt.client.docs.Visibility Visibility overview and related methods
*/
public Boolean getDisableWeekends() {
return getAttributeAsBoolean("disableWeekends");
}
/**
* The name of the end date field in a {@link com.smartgwt.client.widgets.calendar.CalendarEvent}.
*
* @param endDateField endDateField Default value is "endDate"
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public void setEndDateField(String endDateField) throws IllegalStateException {
setAttribute("endDateField", endDateField, false);
}
/**
* The name of the end date field in a {@link com.smartgwt.client.widgets.calendar.CalendarEvent}.
*
*
* @return String
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public String getEndDateField() {
return getAttributeAsString("endDateField");
}
/**
* If set to true, enables the auto-arrangement of events that share time in the calendar. The default is true.
*
* @param eventAutoArrange eventAutoArrange Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setEventAutoArrange(Boolean eventAutoArrange) throws IllegalStateException {
setAttribute("eventAutoArrange", eventAutoArrange, false);
}
/**
* If set to true, enables the auto-arrangement of events that share time in the calendar. The default is true.
*
*
* @return Boolean
*/
public Boolean getEventAutoArrange() {
return getAttributeAsBoolean("eventAutoArrange");
}
/**
* The title for the event name field in the quick event dialog
*
* @param eventNameFieldTitle eventNameFieldTitle Default value is "Event Name"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setEventNameFieldTitle(String eventNameFieldTitle) throws IllegalStateException {
setAttribute("eventNameFieldTitle", eventNameFieldTitle, false);
}
/**
* The title for the event name field in the quick event dialog
*
*
* @return String
*/
public String getEventNameFieldTitle() {
return getAttributeAsString("eventNameFieldTitle");
}
/**
* When {@link com.smartgwt.client.widgets.calendar.Calendar#getEventAutoArrange eventAutoArrange} is true, setting
* eventOverlap to true causes events that share timeslots to overlap each other by a percentage of their width, specified
* by {@link com.smartgwt.client.widgets.calendar.Calendar#getEventOverlapPercent eventOverlapPercent}. The default is
* true.
*
* @param eventOverlap eventOverlap Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setEventOverlap(Boolean eventOverlap) throws IllegalStateException {
setAttribute("eventOverlap", eventOverlap, false);
}
/**
* When {@link com.smartgwt.client.widgets.calendar.Calendar#getEventAutoArrange eventAutoArrange} is true, setting
* eventOverlap to true causes events that share timeslots to overlap each other by a percentage of their width, specified
* by {@link com.smartgwt.client.widgets.calendar.Calendar#getEventOverlapPercent eventOverlapPercent}. The default is
* true.
*
*
* @return Boolean
*/
public Boolean getEventOverlap() {
return getAttributeAsBoolean("eventOverlap");
}
/**
* When set to true, events that start at the same time will not overlap each other to prevent events having their close
* button hidden
*
* @param eventOverlapIdenticalStartTimes eventOverlapIdenticalStartTimes Default value is false
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setEventOverlapIdenticalStartTimes(Boolean eventOverlapIdenticalStartTimes) throws IllegalStateException {
setAttribute("eventOverlapIdenticalStartTimes", eventOverlapIdenticalStartTimes, false);
}
/**
* When set to true, events that start at the same time will not overlap each other to prevent events having their close
* button hidden
*
*
* @return Boolean
*/
public Boolean getEventOverlapIdenticalStartTimes() {
return getAttributeAsBoolean("eventOverlapIdenticalStartTimes");
}
/**
* The size of the overlap, presented as a percentage of the width of events sharing timeslots
*
* @param eventOverlapPercent eventOverlapPercent Default value is 10
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setEventOverlapPercent(int eventOverlapPercent) throws IllegalStateException {
setAttribute("eventOverlapPercent", eventOverlapPercent, false);
}
/**
* The size of the overlap, presented as a percentage of the width of events sharing timeslots
*
*
* @return int
*/
public int getEventOverlapPercent() {
return getAttributeAsInt("eventOverlapPercent");
}
/**
* Determines how many minutes an event can be moved or resized by.
*
* @param eventSnapGap eventSnapGap Default value is 30
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.docs.Editing Editing overview and related methods
*/
public void setEventSnapGap(int eventSnapGap) throws IllegalStateException {
setAttribute("eventSnapGap", eventSnapGap, false);
}
/**
* Determines how many minutes an event can be moved or resized by.
*
*
* @return int
* @see com.smartgwt.client.docs.Editing Editing overview and related methods
*/
public int getEventSnapGap() {
return getAttributeAsInt("eventSnapGap");
}
/**
* The name of the field which will determine the row in which this event will be displayed for the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getTimelineView timelineView}
*
* @param eventTypeField eventTypeField Default value is "eventType"
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public void setEventTypeField(String eventTypeField) throws IllegalStateException {
setAttribute("eventTypeField", eventTypeField, false);
}
/**
* The name of the field which will determine the row in which this event will be displayed for the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getTimelineView timelineView}
*
*
* @return String
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public String getEventTypeField() {
return getAttributeAsString("eventTypeField");
}
/**
* The base name for the CSS class applied to event windows within calendars. This style will have "Header", "HeaderLabel",
* and "Body" appended to it, according to which part of the event window is being styled. For example, to style the
* header, define a css class called 'eventWindowHeader'.
*
* @param eventWindowStyle eventWindowStyle Default value is "eventWindow"
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public void setEventWindowStyle(String eventWindowStyle) {
setAttribute("eventWindowStyle", eventWindowStyle, true);
}
/**
* The base name for the CSS class applied to event windows within calendars. This style will have "Header", "HeaderLabel",
* and "Body" appended to it, according to which part of the event window is being styled. For example, to style the
* header, define a css class called 'eventWindowHeader'.
*
*
* @return String
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public String getEventWindowStyle() {
return getAttributeAsString("eventWindowStyle");
}
/**
* The name of the field used to override {@link com.smartgwt.client.widgets.calendar.Calendar#getEventWindowStyle
* eventWindowStyle} for an individual {@link com.smartgwt.client.widgets.calendar.CalendarEvent}. See {@link
* com.smartgwt.client.widgets.calendar.CalendarEvent#getEventWindowStyle eventWindowStyle}.
*
* @param eventWindowStyleField eventWindowStyleField Default value is "eventWindowStyle"
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public void setEventWindowStyleField(String eventWindowStyleField) throws IllegalStateException {
setAttribute("eventWindowStyleField", eventWindowStyleField, false);
}
/**
* The name of the field used to override {@link com.smartgwt.client.widgets.calendar.Calendar#getEventWindowStyle
* eventWindowStyle} for an individual {@link com.smartgwt.client.widgets.calendar.CalendarEvent}. See {@link
* com.smartgwt.client.widgets.calendar.CalendarEvent#getEventWindowStyle eventWindowStyle}.
*
*
* @return String
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public String getEventWindowStyleField() {
return getAttributeAsString("eventWindowStyleField");
}
/**
* The numeric day (0-6) which the calendar should consider as the first day of the week
*
* @param firstDayOfWeek firstDayOfWeek Default value is 0
*/
public void setFirstDayOfWeek(int firstDayOfWeek) {
setAttribute("firstDayOfWeek", firstDayOfWeek, true);
}
/**
* The numeric day (0-6) which the calendar should consider as the first day of the week
*
*
* @return int
*/
public int getFirstDayOfWeek() {
return getAttributeAsInt("firstDayOfWeek");
}
/**
* The message to display in the {@link com.smartgwt.client.widgets.calendar.Calendar#getEventEditor eventEditor} when the
* 'To' date is greater than the 'From' date and a save is attempted.
*
* @param invalidDateMessage invalidDateMessage Default value is "From must be before To"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setInvalidDateMessage(Boolean invalidDateMessage) throws IllegalStateException {
setAttribute("invalidDateMessage", invalidDateMessage, false);
}
/**
* The message to display in the {@link com.smartgwt.client.widgets.calendar.Calendar#getEventEditor eventEditor} when the
* 'To' date is greater than the 'From' date and a save is attempted.
*
*
* @return Boolean
*/
public Boolean getInvalidDateMessage() {
return getAttributeAsBoolean("invalidDateMessage");
}
/**
* The name of the end date field in a {@link com.smartgwt.client.widgets.calendar.CalendarEvent}.
*
* @param leadingDateField leadingDateField Default value is "leadingDate"
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public void setLeadingDateField(String leadingDateField) throws IllegalStateException {
setAttribute("leadingDateField", leadingDateField, false);
}
/**
* The name of the end date field in a {@link com.smartgwt.client.widgets.calendar.CalendarEvent}.
*
*
* @return String
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public String getLeadingDateField() {
return getAttributeAsString("leadingDateField");
}
/**
* The title for the month view
*
* @param monthViewTitle monthViewTitle Default value is "Month"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setMonthViewTitle(String monthViewTitle) throws IllegalStateException {
setAttribute("monthViewTitle", monthViewTitle, false);
}
/**
* The title for the month view
*
*
* @return String
*/
public String getMonthViewTitle() {
return getAttributeAsString("monthViewTitle");
}
/**
* The name of the name field in a {@link com.smartgwt.client.widgets.calendar.CalendarEvent}.
*
* @param nameField nameField Default value is "name"
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public void setNameField(String nameField) throws IllegalStateException {
setAttribute("nameField", nameField, false);
}
/**
* The name of the name field in a {@link com.smartgwt.client.widgets.calendar.CalendarEvent}.
*
*
* @return String
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public String getNameField() {
return getAttributeAsString("nameField");
}
/**
* The text to be displayed when a user hovers over the {@link com.smartgwt.client.widgets.calendar.Calendar#getNextButton
* next} toolbar button
*
* @param nextButtonHoverText nextButtonHoverText Default value is "Next"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setNextButtonHoverText(String nextButtonHoverText) throws IllegalStateException {
setAttribute("nextButtonHoverText", nextButtonHoverText, false);
}
/**
* The text to be displayed when a user hovers over the {@link com.smartgwt.client.widgets.calendar.Calendar#getNextButton
* next} toolbar button
*
*
* @return String
*/
public String getNextButtonHoverText() {
return getAttributeAsString("nextButtonHoverText");
}
/**
* In the month CSS style applied to both the header and body of days from other months when {@link
* com.smartgwt.client.widgets.calendar.Calendar#getShowOtherDays showOtherDays} is false.
*
* @param otherDayBlankStyle otherDayBlankStyle Default value is "calMonthOtherDayBlank"
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public void setOtherDayBlankStyle(String otherDayBlankStyle) throws IllegalStateException {
setAttribute("otherDayBlankStyle", otherDayBlankStyle, false);
}
/**
* In the month CSS style applied to both the header and body of days from other months when {@link
* com.smartgwt.client.widgets.calendar.Calendar#getShowOtherDays showOtherDays} is false.
*
*
* @return String
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public String getOtherDayBlankStyle() {
return getAttributeAsString("otherDayBlankStyle");
}
/**
* The base name for the CSS class applied to the day body of the month view of the calendar. This style will have "Dark",
* "Over", "Selected", or "Disabled" appended to it according to the state of the cell.
*
* @param otherDayBodyBaseStyle otherDayBodyBaseStyle Default value is "calMonthDayBody"
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public void setOtherDayBodyBaseStyle(String otherDayBodyBaseStyle) {
setAttribute("otherDayBodyBaseStyle", otherDayBodyBaseStyle, true);
}
/**
* The base name for the CSS class applied to the day body of the month view of the calendar. This style will have "Dark",
* "Over", "Selected", or "Disabled" appended to it according to the state of the cell.
*
*
* @return String
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public String getOtherDayBodyBaseStyle() {
return getAttributeAsString("otherDayBodyBaseStyle");
}
/**
* The base name for the CSS class applied to the day headers of the month view. This style will have "Dark", "Over",
* "Selected", or "Disabled" appended to it according to the state of the cell.
*
* @param otherDayHeaderBaseStyle otherDayHeaderBaseStyle Default value is "calMonthDayHeader"
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public void setOtherDayHeaderBaseStyle(String otherDayHeaderBaseStyle) {
setAttribute("otherDayHeaderBaseStyle", otherDayHeaderBaseStyle, true);
}
/**
* The base name for the CSS class applied to the day headers of the month view. This style will have "Dark", "Over",
* "Selected", or "Disabled" appended to it according to the state of the cell.
*
*
* @return String
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public String getOtherDayHeaderBaseStyle() {
return getAttributeAsString("otherDayHeaderBaseStyle");
}
/**
* The text to be displayed when a user hovers over the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getPreviousButton previous} toolbar button
*
* @param previousButtonHoverText previousButtonHoverText Default value is "Previous"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setPreviousButtonHoverText(String previousButtonHoverText) throws IllegalStateException {
setAttribute("previousButtonHoverText", previousButtonHoverText, false);
}
/**
* The text to be displayed when a user hovers over the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getPreviousButton previous} toolbar button
*
*
* @return String
*/
public String getPreviousButtonHoverText() {
return getAttributeAsString("previousButtonHoverText");
}
/**
* The height of time-slots in the calendar.
*
* @param rowHeight rowHeight Default value is 20
*/
public void setRowHeight(int rowHeight) {
setAttribute("rowHeight", rowHeight, true);
}
/**
* The height of time-slots in the calendar.
*
*
* @return int
*/
public int getRowHeight() {
return getAttributeAsInt("rowHeight");
}
/**
* The title for the save button in the quick event dialog and the event editor
*
* @param saveButtonTitle saveButtonTitle Default value is "Save Event"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setSaveButtonTitle(String saveButtonTitle) throws IllegalStateException {
setAttribute("saveButtonTitle", saveButtonTitle, false);
}
/**
* The title for the save button in the quick event dialog and the event editor
*
*
* @return String
*/
public String getSaveButtonTitle() {
return getAttributeAsString("saveButtonTitle");
}
/**
* If set, causes the {@link com.smartgwt.client.widgets.calendar.Calendar#getWorkdayStart workday hours} to be sized to
* fill the available space in the day view and week view, and automatically scrolls these views to the start of the
* workday when the calendar is first displayed and whenever the user switches to a new day or week.
*
* @param scrollToWorkday scrollToWorkday Default value is false
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setScrollToWorkday(Boolean scrollToWorkday) throws IllegalStateException {
setAttribute("scrollToWorkday", scrollToWorkday, false);
}
/**
* If set, causes the {@link com.smartgwt.client.widgets.calendar.Calendar#getWorkdayStart workday hours} to be sized to
* fill the available space in the day view and week view, and automatically scrolls these views to the start of the
* workday when the calendar is first displayed and whenever the user switches to a new day or week.
*
*
* @return Boolean
*/
public Boolean getScrollToWorkday() {
return getAttributeAsBoolean("scrollToWorkday");
}
/**
* The base name for the CSS class applied to a cell that is selected via a mouse drag.
*
* @param selectedCellStyle selectedCellStyle Default value is "calendarCellSelected"
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public void setSelectedCellStyle(String selectedCellStyle) {
setAttribute("selectedCellStyle", selectedCellStyle, true);
}
/**
* The base name for the CSS class applied to a cell that is selected via a mouse drag.
*
*
* @return String
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public String getSelectedCellStyle() {
return getAttributeAsString("selectedCellStyle");
}
/**
* If false the controls bar at the top of the calendar will not be displayed. This consists of the autoChildren: {@link
* com.smartgwt.client.widgets.calendar.Calendar#getPreviousButton previousButton}, {@link
* com.smartgwt.client.widgets.calendar.Calendar#getNextButton nextButton}, {@link
* com.smartgwt.client.widgets.calendar.Calendar#getAddEventButton addEventButton}, {@link
* com.smartgwt.client.widgets.calendar.Calendar#getDatePickerButton datePickerButton}
*
* @param showControlsBar showControlsBar Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setShowControlsBar(Boolean showControlsBar) throws IllegalStateException {
setAttribute("showControlsBar", showControlsBar, false);
}
/**
* If false the controls bar at the top of the calendar will not be displayed. This consists of the autoChildren: {@link
* com.smartgwt.client.widgets.calendar.Calendar#getPreviousButton previousButton}, {@link
* com.smartgwt.client.widgets.calendar.Calendar#getNextButton nextButton}, {@link
* com.smartgwt.client.widgets.calendar.Calendar#getAddEventButton addEventButton}, {@link
* com.smartgwt.client.widgets.calendar.Calendar#getDatePickerButton datePickerButton}
*
*
* @return Boolean
*/
public Boolean getShowControlsBar() {
return getAttributeAsBoolean("showControlsBar");
}
/**
* Determines whether the {@link com.smartgwt.client.widgets.calendar.Calendar#getDateChooser dateChooser} is displayed.
*
* @param showDateChooser showDateChooser Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.docs.Visibility Visibility overview and related methods
*/
public void setShowDateChooser(Boolean showDateChooser) throws IllegalStateException {
setAttribute("showDateChooser", showDateChooser, false);
}
/**
* Determines whether the {@link com.smartgwt.client.widgets.calendar.Calendar#getDateChooser dateChooser} is displayed.
*
*
* @return Boolean
* @see com.smartgwt.client.docs.Visibility Visibility overview and related methods
*/
public Boolean getShowDateChooser() {
return getAttributeAsBoolean("showDateChooser");
}
/**
* If false, the month view does not show day headers
*
* @param showDayHeaders showDayHeaders Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.docs.Visibility Visibility overview and related methods
*/
public void setShowDayHeaders(Boolean showDayHeaders) throws IllegalStateException {
setAttribute("showDayHeaders", showDayHeaders, false);
}
/**
* If false, the month view does not show day headers
*
*
* @return Boolean
* @see com.smartgwt.client.docs.Visibility Visibility overview and related methods
*/
public Boolean getShowDayHeaders() {
return getAttributeAsBoolean("showDayHeaders");
}
/**
* Whether to show fields marked <code>detail:true</code> when a DataBoundComponent is given a DataSource but no
* <code>component.fields</code>. <p> The <code>detail</code> property is used on DataSource fields to mark fields that
* shouldn't appear by default in a view that tries to show many records in a small space.
*
* @param showDetailFields showDetailFields Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.docs.Databinding Databinding overview and related methods
*/
public void setShowDetailFields(Boolean showDetailFields) throws IllegalStateException {
setAttribute("showDetailFields", showDetailFields, false);
}
/**
* Whether to show fields marked <code>detail:true</code> when a DataBoundComponent is given a DataSource but no
* <code>component.fields</code>. <p> The <code>detail</code> property is used on DataSource fields to mark fields that
* shouldn't appear by default in a view that tries to show many records in a small space.
*
*
* @return Boolean
* @see com.smartgwt.client.docs.Databinding Databinding overview and related methods
*/
public Boolean getShowDetailFields() {
return getAttributeAsBoolean("showDetailFields");
}
/**
* If set to true, in the month view, days that fall in an adjacent month are still shown with a header and body area, and
* are interactive. Otherwise days from other months are rendered in the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getOtherDayBlankStyle otherDayBlankStyle} and are non-interactive.
*
* @param showOtherDays showOtherDays Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.docs.Visibility Visibility overview and related methods
*/
public void setShowOtherDays(Boolean showOtherDays) throws IllegalStateException {
setAttribute("showOtherDays", showOtherDays, false);
}
/**
* If set to true, in the month view, days that fall in an adjacent month are still shown with a header and body area, and
* are interactive. Otherwise days from other months are rendered in the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getOtherDayBlankStyle otherDayBlankStyle} and are non-interactive.
*
*
* @return Boolean
* @see com.smartgwt.client.docs.Visibility Visibility overview and related methods
*/
public Boolean getShowOtherDays() {
return getAttributeAsBoolean("showOtherDays");
}
/**
* Determines whether the quick event dialog is displayed when a time is clicked. If this is false, the full event editor
* is displayed.
*
* @param showQuickEventDialog showQuickEventDialog Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.docs.Editing Editing overview and related methods
*/
public void setShowQuickEventDialog(Boolean showQuickEventDialog) throws IllegalStateException {
setAttribute("showQuickEventDialog", showQuickEventDialog, false);
}
/**
* Determines whether the quick event dialog is displayed when a time is clicked. If this is false, the full event editor
* is displayed.
*
*
* @return Boolean
* @see com.smartgwt.client.docs.Editing Editing overview and related methods
*/
public Boolean getShowQuickEventDialog() {
return getAttributeAsBoolean("showQuickEventDialog");
}
/**
* Suppresses the display of weekend days in the week and month views, and disallows the creation of events on weekends.
* Which days are considered weekends is controlled by weekendDays.
*
* <br><br>If this method is called after the component has been drawn/initialized:
* Setter for {@link com.smartgwt.client.widgets.calendar.Calendar#getShowWeekends showWeekends} to change this property at runtime.
*
* @param showWeekends showWeekends Default value is true
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.docs.Visibility Visibility overview and related methods
*/
public void setShowWeekends(Boolean showWeekends) throws IllegalStateException {
setAttribute("showWeekends", showWeekends, false);
}
/**
* Suppresses the display of weekend days in the week and month views, and disallows the creation of events on weekends.
* Which days are considered weekends is controlled by weekendDays.
*
*
* @return Boolean
* @see com.smartgwt.client.docs.Visibility Visibility overview and related methods
*/
public Boolean getShowWeekends() {
return getAttributeAsBoolean("showWeekends");
}
/**
* If set, causes the calendar to use {@link com.smartgwt.client.widgets.calendar.Calendar#getWorkdayBaseStyle
* workdayBaseStyle} for cells falling within the workday as defined by {@link
* com.smartgwt.client.widgets.calendar.Calendar#getWorkdayStart workdayStart} and {@link
* com.smartgwt.client.widgets.calendar.Calendar#getWorkdayEnd workdayEnd}, in both the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getWeekView weekView} and {@link
* com.smartgwt.client.widgets.calendar.Calendar#getDayView dayView}.
*
* @param showWorkday showWorkday Default value is false
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setShowWorkday(Boolean showWorkday) throws IllegalStateException {
setAttribute("showWorkday", showWorkday, false);
}
/**
* If set, causes the calendar to use {@link com.smartgwt.client.widgets.calendar.Calendar#getWorkdayBaseStyle
* workdayBaseStyle} for cells falling within the workday as defined by {@link
* com.smartgwt.client.widgets.calendar.Calendar#getWorkdayStart workdayStart} and {@link
* com.smartgwt.client.widgets.calendar.Calendar#getWorkdayEnd workdayEnd}, in both the {@link
* com.smartgwt.client.widgets.calendar.Calendar#getWeekView weekView} and {@link
* com.smartgwt.client.widgets.calendar.Calendar#getDayView dayView}.
*
*
* @return Boolean
*/
public Boolean getShowWorkday() {
return getAttributeAsBoolean("showWorkday");
}
/**
* The name of the start date field in a {@link com.smartgwt.client.widgets.calendar.CalendarEvent}.
*
* @param startDateField startDateField Default value is "startDate"
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public void setStartDateField(String startDateField) throws IllegalStateException {
setAttribute("startDateField", startDateField, false);
}
/**
* The name of the start date field in a {@link com.smartgwt.client.widgets.calendar.CalendarEvent}.
*
*
* @return String
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public String getStartDateField() {
return getAttributeAsString("startDateField");
}
/**
* The title for the timeline view
*
* @param timelineViewTitle timelineViewTitle Default value is "Timeline"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setTimelineViewTitle(String timelineViewTitle) throws IllegalStateException {
setAttribute("timelineViewTitle", timelineViewTitle, false);
}
/**
* The title for the timeline view
*
*
* @return String
*/
public String getTimelineViewTitle() {
return getAttributeAsString("timelineViewTitle");
}
/**
* The name of the end date field in a {@link com.smartgwt.client.widgets.calendar.CalendarEvent}.
*
* @param trailingDateField trailingDateField Default value is "trailingDate"
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public void setTrailingDateField(String trailingDateField) throws IllegalStateException {
setAttribute("trailingDateField", trailingDateField, false);
}
/**
* The name of the end date field in a {@link com.smartgwt.client.widgets.calendar.CalendarEvent}.
*
*
* @return String
* @see com.smartgwt.client.widgets.calendar.CalendarEvent
*/
public String getTrailingDateField() {
return getAttributeAsString("trailingDateField");
}
/**
* Augments the width of week event windows slightly to avoid duplicate adjacent borders between events.
*
* @param weekEventBorderOverlap weekEventBorderOverlap Default value is false
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public void setWeekEventBorderOverlap(Boolean weekEventBorderOverlap) throws IllegalStateException {
setAttribute("weekEventBorderOverlap", weekEventBorderOverlap, false);
}
/**
* Augments the width of week event windows slightly to avoid duplicate adjacent borders between events.
*
*
* @return Boolean
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public Boolean getWeekEventBorderOverlap() {
return getAttributeAsBoolean("weekEventBorderOverlap");
}
/**
* The title for the week view
*
* @param weekViewTitle weekViewTitle Default value is "Week"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setWeekViewTitle(String weekViewTitle) throws IllegalStateException {
setAttribute("weekViewTitle", weekViewTitle, false);
}
/**
* The title for the week view
*
*
* @return String
*/
public String getWeekViewTitle() {
return getAttributeAsString("weekViewTitle");
}
/**
* If {@link com.smartgwt.client.widgets.calendar.Calendar#getShowWorkday showWorkday} is set, style used for cells that
* are within the workday, as defined by {@link com.smartgwt.client.widgets.calendar.Calendar#getWorkdayStart workdayStart}
* and {@link com.smartgwt.client.widgets.calendar.Calendar#getWorkdayEnd workdayEnd}.
*
* @param workdayBaseStyle workdayBaseStyle Default value is "calendarWorkday"
* @throws IllegalStateException this property cannot be changed after the component has been created
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public void setWorkdayBaseStyle(String workdayBaseStyle) throws IllegalStateException {
setAttribute("workdayBaseStyle", workdayBaseStyle, false);
}
/**
* If {@link com.smartgwt.client.widgets.calendar.Calendar#getShowWorkday showWorkday} is set, style used for cells that
* are within the workday, as defined by {@link com.smartgwt.client.widgets.calendar.Calendar#getWorkdayStart workdayStart}
* and {@link com.smartgwt.client.widgets.calendar.Calendar#getWorkdayEnd workdayEnd}.
*
*
* @return String
* @see com.smartgwt.client.docs.Appearance Appearance overview and related methods
*/
public String getWorkdayBaseStyle() {
return getAttributeAsString("workdayBaseStyle");
}
/**
* When using {@link com.smartgwt.client.widgets.calendar.Calendar#getShowWorkday showWorkday}:true,
* <code>workdayStart</code> and <code>workdayEnd</code> specify the time of day when the workday starts and ends,
* specified as a String acceptable to String. <P> Both start and end time must fall on a 30 minute increment (eg 9:30, but
* not 9:45).
*
* @param workdayEnd workdayEnd Default value is "5:00pm"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setWorkdayEnd(String workdayEnd) throws IllegalStateException {
setAttribute("workdayEnd", workdayEnd, false);
}
/**
* When using {@link com.smartgwt.client.widgets.calendar.Calendar#getShowWorkday showWorkday}:true,
* <code>workdayStart</code> and <code>workdayEnd</code> specify the time of day when the workday starts and ends,
* specified as a String acceptable to String. <P> Both start and end time must fall on a 30 minute increment (eg 9:30, but
* not 9:45).
*
*
* @return String
*/
public String getWorkdayEnd() {
return getAttributeAsString("workdayEnd");
}
/**
* When using {@link com.smartgwt.client.widgets.calendar.Calendar#getShowWorkday showWorkday}:true,
* <code>workdayStart</code> and <code>workdayEnd</code> specify the time of day when the workday starts and ends,
* specified as a String acceptable to String. <P> Both start and end time must fall on a 30 minute increment (eg 9:30, but
* not 9:45).
*
* @param workdayStart workdayStart Default value is "9:00am"
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setWorkdayStart(String workdayStart) throws IllegalStateException {
setAttribute("workdayStart", workdayStart, false);
}
/**
* When using {@link com.smartgwt.client.widgets.calendar.Calendar#getShowWorkday showWorkday}:true,
* <code>workdayStart</code> and <code>workdayEnd</code> specify the time of day when the workday starts and ends,
* specified as a String acceptable to String. <P> Both start and end time must fall on a 30 minute increment (eg 9:30, but
* not 9:45).
*
*
* @return String
*/
public String getWorkdayStart() {
return getAttributeAsString("workdayStart");
}
// ********************* Methods ***********************
/**
* Add a backgroundClick handler.
* <p>
* Callback fired when the mouse is clicked in a background-cell, ie, one without an event.
*
* @param handler the backgroundClick handler
* @return {@link HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addBackgroundClickHandler(com.smartgwt.client.widgets.calendar.events.BackgroundClickHandler handler) {
if(getHandlerCount(com.smartgwt.client.widgets.calendar.events.BackgroundClickEvent.getType()) == 0) setupBackgroundClickEvent();
return doAddHandler(handler, com.smartgwt.client.widgets.calendar.events.BackgroundClickEvent.getType());
}
private native void setupBackgroundClickEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({backgroundClick:$debox($entry(function(){
var param = {"startDate" : arguments[0], "endDate" : arguments[1]};
var event = @com.smartgwt.client.widgets.calendar.events.BackgroundClickEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}))
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.backgroundClick = $debox($entry(function(){
var param = {"startDate" : arguments[0], "endDate" : arguments[1]};
var event = @com.smartgwt.client.widgets.calendar.events.BackgroundClickEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}));
}
}-*/;
/**
* Add a backgroundMouseDown handler.
* <p>
* Callback fired when the mouse button is depressed over a background-cell, ie, one without an event. Call {@link com.smartgwt.client.widgets.calendar.events.BackgroundMouseDownEvent#cancel()} from within {@link BackgroundMouseDownHandler#onBackgroundMouseDown} to
* cancel the default behavior of allowing sweep selection via dragging.
*
* @param handler the backgroundMouseDown handler
* @return {@link HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addBackgroundMouseDownHandler(com.smartgwt.client.widgets.calendar.events.BackgroundMouseDownHandler handler) {
if(getHandlerCount(com.smartgwt.client.widgets.calendar.events.BackgroundMouseDownEvent.getType()) == 0) setupBackgroundMouseDownEvent();
return doAddHandler(handler, com.smartgwt.client.widgets.calendar.events.BackgroundMouseDownEvent.getType());
}
private native void setupBackgroundMouseDownEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({backgroundMouseDown:$debox($entry(function(){
var param = {"startDate" : arguments[0]};
var event = @com.smartgwt.client.widgets.calendar.events.BackgroundMouseDownEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}))
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.backgroundMouseDown = $debox($entry(function(){
var param = {"startDate" : arguments[0]};
var event = @com.smartgwt.client.widgets.calendar.events.BackgroundMouseDownEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}));
}
}-*/;
/**
* Add a dateChanged handler.
* <p>
* Fires whenever the user changes the current date, including picking a specific date or navigating to a new week or
* month.
*
* @param handler the dateChanged handler
* @return {@link HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addDateChangedHandler(com.smartgwt.client.widgets.calendar.events.DateChangedHandler handler) {
if(getHandlerCount(com.smartgwt.client.widgets.calendar.events.DateChangedEvent.getType()) == 0) setupDateChangedEvent();
return doAddHandler(handler, com.smartgwt.client.widgets.calendar.events.DateChangedEvent.getType());
}
private native void setupDateChangedEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({dateChanged:$entry(function(){
var param = {};
var event = @com.smartgwt.client.widgets.calendar.events.DateChangedEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
})
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.dateChanged = $entry(function(){
var param = {};
var event = @com.smartgwt.client.widgets.calendar.events.DateChangedEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
});
}
}-*/;
/**
* Should the parameter date be considered a workday? By default this method tries to find the parameter date day in {@link
* com.smartgwt.client.widgets.calendar.Calendar#getWorkdays workdays}, and returns true if found. Override this method to
* provide custom logic for determining workday, for example returning false on holidays.
* @param date date to check for being a workday
*
* @return true if date is a workday, false otherwise
*/
public native Boolean dateIsWorkday(Date date) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var retVal =self.dateIsWorkday(@com.smartgwt.client.util.JSOHelper::convertToJavaScriptDate(Ljava/util/Date;)(date));
if(retVal == null || retVal === undefined) {
return null;
} else {
return @com.smartgwt.client.util.JSOHelper::toBoolean(Z)(retVal);
}
}-*/;
/**
* Add a dayBodyClick handler.
* <p>
* Called when the body area of a day in the month view is clicked on, outside of any links to a particular event. <P> By
* default, if the user can add events, shows a dialog for adding a new event for that day. Call {@link com.smartgwt.client.widgets.calendar.events.DayBodyClickEvent#cancel()} from within {@link DayBodyClickHandler#onDayBodyClick} to cancel this
* action. <P> Not called if the day falls outside the current month and {@link
* com.smartgwt.client.widgets.calendar.Calendar#getShowOtherDays showOtherDays} is false.
*
* @param handler the dayBodyClick handler
* @return {@link HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addDayBodyClickHandler(com.smartgwt.client.widgets.calendar.events.DayBodyClickHandler handler) {
if(getHandlerCount(com.smartgwt.client.widgets.calendar.events.DayBodyClickEvent.getType()) == 0) setupDayBodyClickEvent();
return doAddHandler(handler, com.smartgwt.client.widgets.calendar.events.DayBodyClickEvent.getType());
}
private native void setupDayBodyClickEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({dayBodyClick:$debox($entry(function(){
var param = {"date" : arguments[0], "events" : arguments[1], "calendar" : arguments[2], "rowNum" : arguments[3], "colNum" : arguments[4]};
var event = @com.smartgwt.client.widgets.calendar.events.DayBodyClickEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}))
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.dayBodyClick = $debox($entry(function(){
var param = {"date" : arguments[0], "events" : arguments[1], "calendar" : arguments[2], "rowNum" : arguments[3], "colNum" : arguments[4]};
var event = @com.smartgwt.client.widgets.calendar.events.DayBodyClickEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}));
}
}-*/;
/**
* Add a dayHeaderClick handler.
* <p>
* Called when the header area of a day in the month view is clicked on. <P> By default, moves to the day tab and shows the
* clicked days events. Call {@link com.smartgwt.client.widgets.calendar.events.DayHeaderClickEvent#cancel()} from within {@link DayHeaderClickHandler#onDayHeaderClick} to cancel this action. <P> Not called if the day falls outside the current month and
* {@link com.smartgwt.client.widgets.calendar.Calendar#getShowOtherDays showOtherDays} is false.
*
* @param handler the dayHeaderClick handler
* @return {@link HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addDayHeaderClickHandler(com.smartgwt.client.widgets.calendar.events.DayHeaderClickHandler handler) {
if(getHandlerCount(com.smartgwt.client.widgets.calendar.events.DayHeaderClickEvent.getType()) == 0) setupDayHeaderClickEvent();
return doAddHandler(handler, com.smartgwt.client.widgets.calendar.events.DayHeaderClickEvent.getType());
}
private native void setupDayHeaderClickEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({dayHeaderClick:$debox($entry(function(){
var param = {"date" : arguments[0], "events" : arguments[1], "calendar" : arguments[2], "rowNum" : arguments[3], "colNum" : arguments[4]};
var event = @com.smartgwt.client.widgets.calendar.events.DayHeaderClickEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}))
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.dayHeaderClick = $debox($entry(function(){
var param = {"date" : arguments[0], "events" : arguments[1], "calendar" : arguments[2], "rowNum" : arguments[3], "colNum" : arguments[4]};
var event = @com.smartgwt.client.widgets.calendar.events.DayHeaderClickEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}));
}
}-*/;
/**
* Add a eventAdded handler.
* <p>
* Notification fired whenever a user adds an event. <P> In a calendar with a DataSource, eventAdded() fires <b>after</b>
* the event has been successfully added to the server
*
* @param handler the eventAdded handler
* @return {@link HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addEventAddedHandler(com.smartgwt.client.widgets.calendar.events.EventAddedHandler handler) {
if(getHandlerCount(com.smartgwt.client.widgets.calendar.events.CalendarEventAdded.getType()) == 0) setupEventAddedEvent();
return doAddHandler(handler, com.smartgwt.client.widgets.calendar.events.CalendarEventAdded.getType());
}
private native void setupEventAddedEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({eventAdded:$entry(function(){
var param = {"event" : arguments[0]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventAdded::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
})
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.eventAdded = $entry(function(){
var param = {"event" : arguments[0]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventAdded::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
});
}
}-*/;
/**
* Add a eventChanged handler.
* <p>
* Notification fired whenever a user changes an event, whether by dragging the event or by editing it in a dialog. <P> In
* a calendar with a DataSource, eventChanged() fires <b>after</b> the updated event has been successfully saved to the
* server
*
* @param handler the eventChanged handler
* @return {@link HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addEventChangedHandler(com.smartgwt.client.widgets.calendar.events.EventChangedHandler handler) {
if(getHandlerCount(com.smartgwt.client.widgets.calendar.events.CalendarEventChangedEvent.getType()) == 0) setupEventChangedEvent();
return doAddHandler(handler, com.smartgwt.client.widgets.calendar.events.CalendarEventChangedEvent.getType());
}
private native void setupEventChangedEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({eventChanged:$entry(function(){
var param = {"event" : arguments[0]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventChangedEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
})
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.eventChanged = $entry(function(){
var param = {"event" : arguments[0]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventChangedEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
});
}
}-*/;
/**
* Add a eventClick handler.
* <p>
* Called whenever an event is clicked on in the day, week or month views. <P> By default a dialog appears showing details
* for the event, and offering the ability to edit events which are editable. Call {@link com.smartgwt.client.widgets.calendar.events.CalendarEventClick#cancel()} from within {@link EventClickHandler#onEventClick} to cancel the default action.
* This is a good place to, for example, show a completely customized event dialog instead of the default one.
*
* @param handler the eventClick handler
* @return {@link HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addEventClickHandler(com.smartgwt.client.widgets.calendar.events.EventClickHandler handler) {
if(getHandlerCount(com.smartgwt.client.widgets.calendar.events.CalendarEventClick.getType()) == 0) setupEventClickEvent();
return doAddHandler(handler, com.smartgwt.client.widgets.calendar.events.CalendarEventClick.getType());
}
private native void setupEventClickEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({eventClick:$debox($entry(function(){
var param = {"event" : arguments[0], "viewName" : arguments[1]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventClick::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}))
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.eventClick = $debox($entry(function(){
var param = {"event" : arguments[0], "viewName" : arguments[1]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventClick::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}));
}
}-*/;
/**
* Add a eventMoved handler.
* <p>
* Called when an event is moved via dragging by a user. Call {@link com.smartgwt.client.widgets.calendar.events.CalendarEventMoved#cancel()} from within {@link EventMovedHandler#onEventMoved} to disallow the move.
*
* @param handler the eventMoved handler
* @return {@link HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addEventMovedHandler(com.smartgwt.client.widgets.calendar.events.EventMovedHandler handler) {
if(getHandlerCount(com.smartgwt.client.widgets.calendar.events.CalendarEventMoved.getType()) == 0) setupEventMovedEvent();
return doAddHandler(handler, com.smartgwt.client.widgets.calendar.events.CalendarEventMoved.getType());
}
private native void setupEventMovedEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({eventMoved:$debox($entry(function(){
var param = {"newDate" : arguments[0], "event" : arguments[1]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventMoved::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}))
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.eventMoved = $debox($entry(function(){
var param = {"newDate" : arguments[0], "event" : arguments[1]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventMoved::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}));
}
}-*/;
/**
* Add a eventRemoveClick handler.
* <p>
* Called whenever the close icon of an event is clicked within the day or week view. Call {@link com.smartgwt.client.widgets.calendar.events.CalendarEventRemoveClick#cancel()} from within {@link EventRemoveClickHandler#onEventRemoveClick} to cancel the removal,
* or . <P> Implement this method to do something like, for example, showing a confirmation dialog before
* an event is removed.
*
* @param handler the eventRemoveClick handler
* @return {@link HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addEventRemoveClickHandler(com.smartgwt.client.widgets.calendar.events.EventRemoveClickHandler handler) {
if(getHandlerCount(com.smartgwt.client.widgets.calendar.events.CalendarEventRemoveClick.getType()) == 0) setupEventRemoveClickEvent();
return doAddHandler(handler, com.smartgwt.client.widgets.calendar.events.CalendarEventRemoveClick.getType());
}
private native void setupEventRemoveClickEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({eventRemoveClick:$debox($entry(function(){
var param = {"event" : arguments[0], "viewName" : arguments[1]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventRemoveClick::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}))
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.eventRemoveClick = $debox($entry(function(){
var param = {"event" : arguments[0], "viewName" : arguments[1]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventRemoveClick::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}));
}
}-*/;
/**
* Add a eventRemoved handler.
* <p>
* Notification fired whenever a user removes an event <P> In a calendar with a DataSource, eventRemoved() fires
* <b>after</b> the event has been successfully removed from the server
*
* @param handler the eventRemoved handler
* @return {@link HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addEventRemovedHandler(com.smartgwt.client.widgets.calendar.events.EventRemovedHandler handler) {
if(getHandlerCount(com.smartgwt.client.widgets.calendar.events.CalendarEventRemoved.getType()) == 0) setupEventRemovedEvent();
return doAddHandler(handler, com.smartgwt.client.widgets.calendar.events.CalendarEventRemoved.getType());
}
private native void setupEventRemovedEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({eventRemoved:$entry(function(){
var param = {"event" : arguments[0]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventRemoved::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
})
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.eventRemoved = $entry(function(){
var param = {"event" : arguments[0]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventRemoved::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
});
}
}-*/;
/**
* Add a eventResized handler.
* <p>
* Called when an event is resized via dragging by a user. Call {@link com.smartgwt.client.widgets.calendar.events.CalendarEventResized#cancel()} from within {@link EventResizedHandler#onEventResized} to disallow the resize.
*
* @param handler the eventResized handler
* @return {@link HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addEventResizedHandler(com.smartgwt.client.widgets.calendar.events.EventResizedHandler handler) {
if(getHandlerCount(com.smartgwt.client.widgets.calendar.events.CalendarEventResized.getType()) == 0) setupEventResizedEvent();
return doAddHandler(handler, com.smartgwt.client.widgets.calendar.events.CalendarEventResized.getType());
}
private native void setupEventResizedEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({eventResized:$debox($entry(function(){
var param = {"newDate" : arguments[0], "event" : arguments[1]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventResized::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}))
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.eventResized = $debox($entry(function(){
var param = {"newDate" : arguments[0], "event" : arguments[1]};
var event = @com.smartgwt.client.widgets.calendar.events.CalendarEventResized::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
var ret = event.@com.smartgwt.client.event.Cancellable::isCancelled()();
return !ret;
}));
}
}-*/;
/**
* Gets the day of the week (0-6) that the mouse is currently over.
*
* @return the day that the mouse is currently over
* @see com.smartgwt.client.widgets.calendar.Calendar#getActiveTime
*/
public native int getActiveDay() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
return self.getActiveDay();
}-*/;
/**
* Gets a date object representing the date over which the mouse is hovering for the current selected view. For month view,
* the time will be set to midnight of the active day. For dayview and week view, the time will be the rounded to the
* closest half hour relative to the mouse position.
*
* @return the date that the mouse is over
*/
public native Date getActiveTime() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var retVal =self.getActiveTime();
if(retVal == null || retVal === undefined) {
return null;
} else {
return @com.smartgwt.client.util.JSOHelper::toDate(D)(retVal.getTime());
}
}-*/;
/**
* Move to the next day, week, or month, depending on which tab is selected.
*/
public native void next() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.next();
}-*/;
/**
* Move to the previous day, week, or month, depending on which tab is selected.
*/
public native void previous() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.previous();
}-*/;
/**
* Fires whenever the user changes the current date, including picking a specific date or navigating to a new week or
* month.
* @param tabnum the index of the tab to select
*/
public native void selectTab(int tabnum) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.selectTab(tabnum);
}-*/;
/**
* Sets the range over which the timeline will display events
* @param start start of range
* @param end end of range
*/
public native void setTimelineRange(Date start, Date end) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.setTimelineRange(@com.smartgwt.client.util.JSOHelper::convertToJavaScriptDate(Ljava/util/Date;)(start), @com.smartgwt.client.util.JSOHelper::convertToJavaScriptDate(Ljava/util/Date;)(end));
}-*/;
// ********************* Static Methods ***********************
/**
* Class level method to set the default properties of this class. If set, then all subsequent instances of this
* class will automatically have the default properties that were set when this method was called. This is a powerful
* feature that eliminates the need for users to create a separate hierarchy of subclasses that only alter the default
* properties of this class. Can also be used for skinning / styling purposes.
* <P>
* <b>Note:</b> This method is intended for setting default attributes only and will effect all instances of the
* underlying class (including those automatically generated in JavaScript).
* This method should not be used to apply standard EventHandlers or override methods for
* a class - use a custom subclass instead.
*
* @param calendarProperties properties that should be used as new defaults when instances of this class are created
*/
public static native void setDefaultProperties(Calendar calendarProperties) /*-{
var properties = $wnd.isc.addProperties({},calendarProperties.@com.smartgwt.client.widgets.BaseWidget::getConfig()());
delete properties.ID;
$wnd.isc.Calendar.addProperties(properties);
}-*/;
// ***********************************************************
protected void onInit() {
super.onInit();
onInit_Calendar();
}
protected native void onInit_Calendar() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self._getDayBodyHTML = self.getDayBodyHTML;
self.getDayBodyHTML = $debox($entry(function(date, events, calendar, rowNum, colNum) {
var jObj = this.__ref;
var dateJ = @com.smartgwt.client.util.JSOHelper::toDate(D)(date.getTime());
var eventsJ = events == null ? null : @com.smartgwt.client.widgets.calendar.CalendarEvent::convertToCalendarEventArray(Lcom/google/gwt/core/client/JavaScriptObject;)(events);
var calendarJ = @com.smartgwt.client.widgets.calendar.Calendar::getOrCreateRef(Lcom/google/gwt/core/client/JavaScriptObject;)(calendar);
return jObj.@com.smartgwt.client.widgets.calendar.Calendar::getDayBodyHTML(Ljava/util/Date;[Lcom/smartgwt/client/widgets/calendar/CalendarEvent;Lcom/smartgwt/client/widgets/calendar/Calendar;II)(dateJ, eventsJ, calendarJ, rowNum, colNum);
}));
}-*/;
protected native String getDayBodyHTML(Date date, CalendarEvent[] events, Calendar calendar, int rowNum, int colNum) /*-{
var dateJS = @com.smartgwt.client.util.JSOHelper::convertToJavaScriptDate(Ljava/util/Date;)(date);
var eventsJS = @com.smartgwt.client.util.JSOHelper::convertToJavaScriptArray([Ljava/lang/Object;)(events);
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var calendarJS = calendar.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
return self._getDayBodyHTML(dateJS, eventsJS, calendarJS,rowNum, colNum);
}-*/;
/**
* The set of fields for the {@link com.smartgwt.client.widgets.calendar.Calendar#getEventEditor eventEditor}. <p>
* The default set of fields are: <pre> {name: "startHours", title: "From", type: "select", width: 60},
* {name: "startMinutes", showTitle: false, type: "select", width: 60}, {name: "startAMPM", showTitle: false,
* type: "select", width: 60}, {name: "invalidDate", type: "blurb", colSpan: 4, visible: false} {name:
* "endHours", title: "To", type: "select", width: 60}, {name: "endMinutes", showTitle: false, type: "select",
* width: 60}, {name: "endAMPM", showTitle: false, type: "select", width: 60}, {name: "name", title: "Name",
* type: "text", colSpan: 4}, {name: "description", title: "Description", type: "textArea", colSpan: 4, height:
* 50} </pre> See the Customized Binding example below for more information on altering default datasource fields
* within forms.
*
* @param eventEditorFields eventEditorFields Default value is see below
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setEventEditorFields(FormItem... eventEditorFields) throws IllegalStateException {
setAttribute("eventEditorFields", toJsArray(eventEditorFields), false);
}
/**
* The set of fields for the {@link com.smartgwt.client.widgets.calendar.Calendar#getEventEditor eventEditor}. <p> The default set of fields are: <pre> {name: "startHours", title: "From", type: "select", width: 60}, {name: "startMinutes", showTitle: false, type: "select", width: 60}, {name: "startAMPM", showTitle: false, type: "select", width: 60}, {name: "invalidDate", type: "blurb", colSpan: 4, visible: false} {name: "endHours", title: "To", type: "select", width: 60}, {name: "endMinutes", showTitle: false, type: "select", width: 60}, {name: "endAMPM", showTitle: false, type: "select", width: 60}, {name: "name", title: "Name", type: "text", colSpan: 4}, {name: "description", title: "Description", type: "textArea", colSpan: 4, height: 50} </pre> See the Customized Binding example below for more information on altering default datasource fields within forms.
*
*
* @return Array of FormItem
*
*/
/*
public FormItem[] getEventEditorFields() {
return getAttribute("eventEditorFields");
}*/
/**
* The set of fields for the {@link com.smartgwt.client.widgets.calendar.Calendar#getEventDialog eventDialog}. <p>
* The default set of fields are: <pre> {name: "name", title: "Event Name", type: nameType, width: 250 },
* {name: "save", title: "Save Event", type: "SubmitItem", endRow: false}, {name: "details", title: "Edit
* Details", type: "button", startRow: false} </pre> See the Customized Binding example below for more information
* on altering default datasource fields within forms.
*
* @param eventDialogFields eventDialogFields Default value is see below
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setEventDialogFields(FormItem... eventDialogFields) throws IllegalStateException {
setAttribute("eventDialogFields", toJsArray(eventDialogFields), false);
}
private static JavaScriptObject toJsArray(FormItem[] formItems) {
JavaScriptObject jsArray = JSOHelper.createJavaScriptArray();
int i = 0;
for (FormItem formItem : formItems) {
JavaScriptObject config = formItem.getEditorTypeConfig();
JSOHelper.setAttribute(config, "name", formItem.getName());
JSOHelper.setAttribute(config, "type", formItem.getType());
JSOHelper.setArrayValue(jsArray, i, config);
i++;
}
return jsArray;
}
/**
* The set of fields for the {@link com.smartgwt.client.widgets.calendar.Calendar#getEventDialog eventDialog}. <p> The default set of fields are: <pre> {name: "name", title: "Event Name", type: nameType, width: 250 }, {name: "save", title: "Save Event", type: "SubmitItem", endRow: false}, {name: "details", title: "Edit Details", type: "button", startRow: false} </pre> See the Customized Binding example below for more information on altering default datasource fields within forms.
*
*
* @return Array of FormItem
*
*/
/*
public FormItem[] getEventDialogFields() {
return getAttribute("eventDialogFields");
} */
/**
* A List of CalendarEvent objects, specifying the data to be used to populate the calendar. <p> This property
* will typically not be explicitly specified for databound Calendars, where the data is returned from the server
* via databound component methods such as {@link com.smartgwt.client.widgets.calendar.Calendar#fetchData}. In this
* case the data objects will be set to a {@link com.smartgwt.client.data.ResultSet} rather than a simple array.
* Initialize the data object with the given array. Observes methods of the data object so that when the data
* changes, the calendar will redraw automatically.
*
* @param data data to show in the list. Default value is null
*/
public void setData(CalendarEvent[] data) {
setAttribute("data", data, true);
}
/**
* An array of Record objects, specifying the data to be used to populate the DataBoundComponent. Note that not
* all DataBoundComponents observe the changes to the data to redraw themselves. Refer to the version of setData
* that accepts component specific records.
*
* @param data array of Record objects.
* @see #setData(CalendarEvent[])
*/
public void setData(Record[] data) {
setAttribute("data", data, true);
}
/**
* An List of Record objects, specifying the data to be used to populate the DataBoundComponent. Note that not
* all DataBoundComponents observe the changes to the data to redraw themselves. Refer to the version of setData
* that accepts component specific records.
*
* @param data List of Records
*/
public void setData(RecordList data) {
setAttribute("data", data == null ? null : data.getOrCreateJsObj(), true);
}
/**
* Display format to use for the time portion of events' date information.
*
* @param timeFormatter timeFormatter Default value is "toShortPaddedTime"
* @deprecated use {@link #setTimeFormatter(TimeDisplayFormat)} instead.
*/
public void setTimeFormatter(TimeFormatter timeFormatter) {
setAttribute("timeFormatter", timeFormatter, true);
}
/**
* Display format to use for the time portion of events' date information.
*
* @param timeFormatter timeFormatter Default value is "toShortPaddedTime"
*/
public void setTimeFormatter(TimeDisplayFormat timeFormatter) {
setAttribute("timeFormatter", timeFormatter, true);
}
/**
* Display format to use for the time portion of events' date information.
*
*
* @return TimeDisplayFormat
*/
public TimeDisplayFormat getTimeFormatter() {
return EnumUtil.getEnum(TimeDisplayFormat.values(), getAttribute("timeFormatter"));
}
/**
* A List of CalendarEvent objects, specifying the data to be used to populate the calendar. <p> This property will typically not be explicitly specified for databound Calendars, where the data is returned from the server via databound component methods such as {@link com.smartgwt.client.widgets.calendar.Calendar#fetchData}. In this case the data objects will be set to a {@link com.smartgwt.client.data.ResultSet} rather than a simple array.
*
* @return List of CalendarEvent
*/
/*
public CalendarEvent[] getData() {
return getAttribute("data");
}*/
/**
* Create a new event in this calendar instance.
*
* @param startDate start date of event
* @param endDate end date of event
* @param name name of event
* @param description description of event
*/
public native void addEvent(Date startDate, Date endDate, String name, String description) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.addEvent(@com.smartgwt.client.util.JSOHelper::convertToJavaScriptDate(Ljava/util/Date;)(startDate),
@com.smartgwt.client.util.JSOHelper::convertToJavaScriptDate(Ljava/util/Date;)(endDate),
name, description);
}-*/;
/**
* Create a new event in this calendar instance.
*
* @param startDate start date of event
* @param endDate end date of event
* @param name name of event
* @param description description of event
* @param otherFields new values of additional fields to be updated
*/
public native void addEvent(Date startDate, Date endDate, String name, String description, Map otherFields) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var otherFieldsJS = @com.smartgwt.client.util.JSOHelper::convertMapToJavascriptObject(Ljava/util/Map;)(otherFields);
self.addEvent(@com.smartgwt.client.util.JSOHelper::convertToJavaScriptDate(Ljava/util/Date;)(startDate),
@com.smartgwt.client.util.JSOHelper::convertToJavaScriptDate(Ljava/util/Date;)(endDate),
name, description,
otherFieldsJS);
}-*/;
/**
* Remove an event from this calendar.
*
* @param event The event object to remove from the calendar
*/
public native void removeEvent(CalendarEvent event) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.removeEvent(event.@com.smartgwt.client.widgets.calendar.CalendarEvent::getJsObj()());
}-*/;
/**
* update an event in this calendar.
*
* @param event The event object to remove from the calendar
* @param startDate start date of event
* @param endDate end date of event
* @param name name of event
* @param description description of event
*/
public native void updateEvent(CalendarEvent event, Date startDate, Date endDate, String name, String description) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.updateEvent(event.@com.smartgwt.client.widgets.calendar.CalendarEvent::getJsObj()(),
@com.smartgwt.client.util.JSOHelper::convertToJavaScriptDate(Ljava/util/Date;)(startDate),
@com.smartgwt.client.util.JSOHelper::convertToJavaScriptDate(Ljava/util/Date;)(endDate), name, description);
}-*/;
public void setShowDayView(Boolean showDayView) throws IllegalStateException {
setAttribute("showDayView", showDayView, false);
}
public void setShowWeekView(Boolean showWeekView) throws IllegalStateException {
setAttribute("showWeekView", showWeekView, false);
}
public void setShowMonthView(Boolean showMonthView) throws IllegalStateException {
setAttribute("showMonthView", showMonthView, false);
}
public void setShowDatePickerButton(Boolean showDatePickerButton) throws IllegalStateException {
setAttribute("showDatePickerButton", showDatePickerButton, false);
}
public void setShowAddEventButton(Boolean showAddEventButton) throws IllegalStateException {
setAttribute("showAddEventButton", showAddEventButton, false);
}
/**
* Array of days that are considered workdays when {@link com.smartgwt.client.widgets.calendar.Calendar#getShowWorkday
* showWorkday} is true
*
* @param workdays workdays Default value is [1,2,3,4,5]
* @throws IllegalStateException this property cannot be changed after the component has been created
*/
public void setWorkdays(int[] workdays) throws IllegalStateException {
setAttribute("workdays", workdays, false);
}
public CalendarEvent[] getData() {
JavaScriptObject dataJS = getAttributeAsJavaScriptObject("data");
CalendarEvent[] data = convertToCalendarEventArray(dataJS);
return data;
}
private static CalendarEvent[] convertToCalendarEventArray(JavaScriptObject nativeArray) {
if (nativeArray == null) {
return new CalendarEvent[]{};
}
JavaScriptObject[] componentsj = JSOHelper.toArray(nativeArray);
CalendarEvent[] objects = new CalendarEvent[componentsj.length];
for (int i = 0; i < componentsj.length; i++) {
JavaScriptObject componentJS = componentsj[i];
CalendarEvent obj = (CalendarEvent) RefDataClass.getRef(componentJS);
if (obj == null) obj = new CalendarEvent(componentJS);
objects[i] = obj;
}
return objects;
}
// ********************* DataBoundComponent Properties / Attributes ***********************
public void setDataPageSize(int dataPageSize) {
setAttribute("dataPageSize", dataPageSize, true);
}
public int getDataPageSize() {
return getAttributeAsInt("dataPageSize");
}
public void setUseAllDataSourceFields(Boolean useAllDataSourceFields) {
setAttribute("useAllDataSourceFields", useAllDataSourceFields, true);
}
public Boolean getUseAllDataSourceFields() {
return getAttributeAsBoolean("useAllDataSourceFields");
}
public void setShowHiddenFields(Boolean showHiddenFields) {
setAttribute("showHiddenFields", showHiddenFields, true);
}
public Boolean getShowHiddenFields() {
return getAttributeAsBoolean("showHiddenFields");
}
public void setShowComplexFields(Boolean showComplexFields) {
setAttribute("showComplexFields", showComplexFields, true);
}
public Boolean getShowComplexFields() {
return getAttributeAsBoolean("showComplexFields");
}
public void setFetchOperation(String fetchOperation) {
setAttribute("fetchOperation", fetchOperation, true);
}
public String getFetchOperation() {
return getAttributeAsString("fetchOperation");
}
public void setUpdateOperation(String updateOperation) {
setAttribute("updateOperation", updateOperation, true);
}
public String getUpdateOperation() {
return getAttributeAsString("updateOperation");
}
public void setAddOperation(String addOperation) {
setAttribute("addOperation", addOperation, true);
}
public String getAddOperation() {
return getAttributeAsString("addOperation");
}
public void setRemoveOperation(String removeOperation) {
setAttribute("removeOperation", removeOperation, true);
}
public String getRemoveOperation() {
return getAttributeAsString("removeOperation");
}
public void setExportFields(String[] exportFields) {
setAttribute("exportFields", exportFields, true);
}
public String[] getExportFields() {
return getAttributeAsStringArray("exportFields");
}
public void setExportAll(Boolean exportAll) {
setAttribute("exportAll", exportAll, true);
}
public Boolean getExportAll() {
return getAttributeAsBoolean("exportAll");
}
public void setPreventDuplicates(Boolean preventDuplicates) throws IllegalStateException {
setAttribute("preventDuplicates", preventDuplicates, false);
}
public Boolean getPreventDuplicates() {
return getAttributeAsBoolean("preventDuplicates");
}
public void setDuplicateDragMessage(String duplicateDragMessage) throws IllegalStateException {
setAttribute("duplicateDragMessage", duplicateDragMessage, false);
}
public String getDuplicateDragMessage() {
return getAttributeAsString("duplicateDragMessage");
}
public void setAddDropValues(Boolean addDropValues) {
setAttribute("addDropValues", addDropValues, true);
}
public Boolean getAddDropValues() {
return getAttributeAsBoolean("addDropValues");
}
public void setDropValues(Map dropValues) {
setAttribute("dropValues", dropValues, true);
}
public Map getDropValues() {
return getAttributeAsMap("dropValues");
}
public void setUseFlatFields(Boolean useFlatFields) throws IllegalStateException {
setAttribute("useFlatFields", useFlatFields, false);
}
public Boolean getUseFlatFields() {
return getAttributeAsBoolean("useFlatFields");
}
public void setHiliteProperty(String hiliteProperty) {
setAttribute("hiliteProperty", hiliteProperty, true);
}
public String getHiliteProperty() {
return getAttributeAsString("hiliteProperty");
}
/**
* Shows a HiliteEditor interface allowing end-users to edit the data-hilites currently in use by this DataBoundComponent.
*/
public native void editHilites() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.editHilites();
}-*/;
/**
* Get the current hilites encoded as a String, for saving.
*
* @return the hilite state
*/
public native String getHiliteState() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
return self.getHiliteState();
}-*/;
/**
* Set the current hilites based on a hiliteState String previously returned from getHilitesState.
*
* @param hiliteState hilites state encoded as a String
*/
public native void setHiliteState(String hiliteState) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
return self.setHiliteState(hiliteState);
}-*/;
/**
* Accepts an array of hilite objects and applies them to this DataBoundComponent. See also {@link #getHilites() getHilites} for a method of
* retrieving the hilite array for storage, including hilites manually added by the user.
*
* @param hilites array of hilite objects
*/
public native void setHilites(Hilite[] hilites)/*-{
var isCreated = this.@com.smartgwt.client.widgets.BaseWidget::isCreated()();
var hilitesJS = @com.smartgwt.client.util.JSOHelper::convertToJavaScriptArray([Ljava/lang/Object;)(hilites);
if (isCreated) {
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.setHilites(hilitesJS);
} else {
var obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.hilites = hilitesJS;
}
}-*/;
/**
* Return the set of hilite-objects currently applied to this DataBoundComponent. These can be saved for
* storage and then restored to a component later via setHilites().
*
* @return array of hilite objects
*/
public native Hilite[] getHilites()/*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var hilitesJS = self.getHilites();
return @com.smartgwt.client.data.Hilite::convertToHiliteArray(Lcom/google/gwt/core/client/JavaScriptObject;)(hilitesJS);
}-*/;
public void setDragDataAction(DragDataAction dragDataAction) {
setAttribute("dragDataAction", dragDataAction.getValue(), true);
}
public DragDataAction getDragDataAction() {
return EnumUtil.getEnum(DragDataAction.values(), getAttribute("dragDataAction"));
}
public void setDragTrackerStyle(String dragTrackerStyle) {
setAttribute("dragTrackerStyle", dragTrackerStyle, true);
}
public String getDragTrackerStyle() {
return getAttributeAsString("dragTrackerStyle");
}
public void setCanAddFormulaFields(Boolean canAddFormulaFields) {
setAttribute("canAddFormulaFields", canAddFormulaFields, true);
}
public native void addSummaryField() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.addSummaryField();
}-*/;
public native void addFormulaField() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.addFormulaField();
}-*/;
public Boolean getCanAddFormulaFields() {
return getAttributeAsBoolean("canAddFormulaFields");
}
public void setAddFormulaFieldText(String addFormulaFieldText) {
setAttribute("addFormulaFieldText", addFormulaFieldText, true);
}
public String getAddFormulaFieldText() {
return getAttributeAsString("addFormulaFieldText");
}
public void setEditFormulaFieldText(String editFormulaFieldText) {
setAttribute("editFormulaFieldText", editFormulaFieldText, true);
}
public String getEditFormulaFieldText() {
return getAttributeAsString("editFormulaFieldText");
}
public void setCanAddSummaryFields(Boolean canAddSummaryFields) {
setAttribute("canAddSummaryFields", canAddSummaryFields, true);
}
public Boolean getCanAddSummaryFields() {
return getAttributeAsBoolean("canAddSummaryFields");
}
public void setAddSummaryFieldText(String addSummaryFieldText) {
setAttribute("addSummaryFieldText", addSummaryFieldText, true);
}
public String getAddSummaryFieldText() {
return getAttributeAsString("addSummaryFieldText");
}
public void setEditSummaryFieldText(String editSummaryFieldText) {
setAttribute("editSummaryFieldText", editSummaryFieldText, true);
}
public String getEditSummaryFieldText() {
return getAttributeAsString("editSummaryFieldText");
}
// ********************* Methods ***********************
public native void selectRecord(Record record)/*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var recordJS = record.@com.smartgwt.client.data.Record::getJsObj()();
self.selectRecord(recordJS);
}-*/;
public native void selectRecord(int record)/*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.selectRecord(record);
}-*/;
public native void selectRecord(int record, boolean newState)/*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.selectRecord(record, newState);
}-*/;
public native void selectRecord(Record record, boolean newState)/*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var recordJS = record.@com.smartgwt.client.data.Record::getJsObj()();
self.selectRecord(recordJS, newState);
}-*/;
public native void selectRecords(int[] records)/*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var recordsJS = @com.smartgwt.client.util.JSOHelper::convertToJavaScriptArray([I)(records);
self.selectRecord(recordsJS);
}-*/;
public native void selectRecords(int[] records, boolean newState)/*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var recordsJS = @com.smartgwt.client.util.JSOHelper::convertToJavaScriptArray([I)(records);
self.selectRecords(recordsJS, newState);
}-*/;
public native void selectRecords(Record[] records)/*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var recordsJS = @com.smartgwt.client.util.JSOHelper::convertToJavaScriptArray([Ljava/lang/Object;)(records);
self.selectRecords(recordsJS);
}-*/;
public native void selectRecords(Record[] records, boolean newState)/*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var recordsJS = @com.smartgwt.client.util.JSOHelper::convertToJavaScriptArray([Ljava/lang/Object;)(records);
self.selectRecords(recordsJS, newState);
}-*/;
public native void deselectRecord(Record record)/*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var recordJS = record.@com.smartgwt.client.data.Record::getJsObj()();
self.deselectRecord(recordJS);
}-*/;
public native void deselectRecord(int record)/*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.deselectRecord(record);
}-*/;
public native void deselectRecords(int[] records)/*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var recordsJS = @com.smartgwt.client.util.JSOHelper::convertToJavaScriptArray([I)(records);
self.deselectRecords(recordsJS);
}-*/;
public native void deselectRecords(Record[] records)/*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var recordsJS = @com.smartgwt.client.util.JSOHelper::convertToJavaScriptArray([Ljava/lang/Object;)(records);
self.deselectRecords(recordsJS);
}-*/;
public native void selectAllRecords() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.selectAllRecords();
}-*/;
public native void deselectAllRecords() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.deselectAllRecords();
}-*/;
public native Boolean anySelected() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var retVal =self.anySelected();
if(retVal == null || retVal === undefined) {
return null;
} else {
return @com.smartgwt.client.util.JSOHelper::toBoolean(Z)(retVal);
}
}-*/;
public native void enableHilite(String hiliteID) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.enableHilite(hiliteID);
}-*/;
public native void enableHilite(String hiliteID, boolean enable) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.enableHilite(hiliteID, enable);
}-*/;
public native void disableHilite(String hiliteID) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.disableHilite(hiliteID);
}-*/;
public native void enableHiliting() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.enableHiliting();
}-*/;
public native void enableHiliting(boolean enable) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.enableHiliting(enable);
}-*/;
public native void disableHiliting() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.disableHiliting();
}-*/;
public native Record[] getDragData() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var recordsJS = self.getDragData();
return @com.smartgwt.client.data.Record::convertToRecordArray(Lcom/google/gwt/core/client/JavaScriptObject;)(recordsJS);
}-*/;
public native void transferSelectedData(DataBoundComponent source) /*-{
var self = this.@com.smartgwt.client.widgets.DataBoundComponent::getOrCreateJsObj()();
self.transferSelectedData(source.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()());
}-*/;
public native void transferSelectedData(DataBoundComponent source, int index) /*-{
var self = this.@com.smartgwt.client.widgets.DataBoundComponent::getOrCreateJsObj()();
self.transferSelectedData(source.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()(), index);
}-*/;
public native int getRecordIndex(Record record) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
return self.getRecordIndex(record.@com.smartgwt.client.core.DataClass::getJsObj()());
}-*/;
public native String getTitleFieldValue(Record record) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
return self.getTitleFieldValue(record);
}-*/;
public void setTitleField(String titleField) {
setAttribute("titleField", titleField, true);
}
public String getTitleField() {
return getAttributeAsString("titleField");
}
public void setDataSource(DataSource dataSource) {
setAttribute("dataSource", dataSource.getOrCreateJsObj(), true);
}
public DataSource getDataSource() {
return DataSource.getOrCreateRef(getAttributeAsJavaScriptObject("dataSource"));
}
public void setAutoFetchData(Boolean autoFetchData) throws IllegalStateException {
setAttribute("autoFetchData", autoFetchData, false);
}
public Boolean getAutoFetchData() {
return getAttributeAsBoolean("autoFetchData");
}
public void setAutoFetchAsFilter(Boolean autoFetchAsFilter) throws IllegalStateException {
setAttribute("autoFetchAsFilter", autoFetchAsFilter, false);
}
public Boolean getAutoFetchAsFilter() {
return getAttributeAsBoolean("autoFetchAsFilter");
}
public void setInitialCriteria(Criteria initialCriteria) throws IllegalStateException {
setAttribute("initialCriteria", initialCriteria.getJsObj(), false);
}
public Criteria getInitialCriteria() {
return new Criteria(getAttributeAsJavaScriptObject("initialCriteria"));
}
public native void fetchData() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.fetchData();
}-*/;
public native void fetchData(Criteria criteria) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.fetchData(criteria == null ? null : criteria.@com.smartgwt.client.data.Criteria::getJsObj()());
}-*/;
public native void fetchData(Criteria criteria, DSCallback callback) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var critJS = criteria == null ? null : criteria.@com.smartgwt.client.data.Criteria::getJsObj()();
self.fetchData(critJS, $entry(function (dsResponse, data, dsRequest) {
var responseJ = @com.smartgwt.client.data.DSResponse::new(Lcom/google/gwt/core/client/JavaScriptObject;)(dsResponse);
var requestJ = @com.smartgwt.client.data.DSRequest::new(Lcom/google/gwt/core/client/JavaScriptObject;)(dsRequest);
if(callback != null) callback.@com.smartgwt.client.data.DSCallback::execute(Lcom/smartgwt/client/data/DSResponse;Ljava/lang/Object;Lcom/smartgwt/client/data/DSRequest;)(responseJ, data, requestJ);
}));
}-*/;
public native void fetchData(Criteria criteria, DSCallback callback, DSRequest requestProperties) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var critJS = criteria == null ? null : criteria.@com.smartgwt.client.data.Criteria::getJsObj()();
var requestPropertiesJS = requestProperties == null ? null : requestProperties.@com.smartgwt.client.core.DataClass::getJsObj()();
self.fetchData(critJS, $entry(function (dsResponse, data, dsRequest) {
var responseJ = @com.smartgwt.client.data.DSResponse::new(Lcom/google/gwt/core/client/JavaScriptObject;)(dsResponse);
var requestJ = @com.smartgwt.client.data.DSRequest::new(Lcom/google/gwt/core/client/JavaScriptObject;)(dsRequest);
if(callback != null) callback.@com.smartgwt.client.data.DSCallback::execute(Lcom/smartgwt/client/data/DSResponse;Ljava/lang/Object;Lcom/smartgwt/client/data/DSRequest;)(responseJ, data, requestJ);
}), requestPropertiesJS);
}-*/;
public native void filterData() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.filterData();
}-*/;
public native void filterData(Criteria criteria) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.filterData(criteria == null ? null : criteria.@com.smartgwt.client.data.Criteria::getJsObj()());
}-*/;
public native void filterData(Criteria criteria, DSCallback callback) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var critJS = criteria == null ? null : criteria.@com.smartgwt.client.data.Criteria::getJsObj()();
self.filterData(critJS, $entry(function (dsResponse, data, dsRequest) {
var responseJ = @com.smartgwt.client.data.DSResponse::new(Lcom/google/gwt/core/client/JavaScriptObject;)(dsResponse);
var requestJ = @com.smartgwt.client.data.DSRequest::new(Lcom/google/gwt/core/client/JavaScriptObject;)(dsRequest);
if(callback != null) callback.@com.smartgwt.client.data.DSCallback::execute(Lcom/smartgwt/client/data/DSResponse;Ljava/lang/Object;Lcom/smartgwt/client/data/DSRequest;)(responseJ, data, requestJ);
}));
}-*/;
public native void filterData(Criteria criteria, DSCallback callback, DSRequest requestProperties) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
var critJS = criteria == null ? null : criteria.@com.smartgwt.client.data.Criteria::getJsObj()();
var requestPropertiesJS = requestProperties == null ? null : requestProperties.@com.smartgwt.client.core.DataClass::getJsObj()();
self.filterData(critJS, $entry(function (dsResponse, data, dsRequest) {
var responseJ = @com.smartgwt.client.data.DSResponse::new(Lcom/google/gwt/core/client/JavaScriptObject;)(dsResponse);
var requestJ = @com.smartgwt.client.data.DSRequest::new(Lcom/google/gwt/core/client/JavaScriptObject;)(dsRequest);
if(callback != null) callback.@com.smartgwt.client.data.DSCallback::execute(Lcom/smartgwt/client/data/DSResponse;Ljava/lang/Object;Lcom/smartgwt/client/data/DSRequest;)(responseJ, data, requestJ);
}), requestPropertiesJS);
}-*/;
public native void invalidateCache() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.invalidateCache();
}-*/;
public ResultSet getResultSet() {
JavaScriptObject dataJS = getAttributeAsJavaScriptObject("data");
if(dataJS == null) return null;
if(!ResultSet.isResultSet(dataJS)) {
SC.logWarn("getResultSet(): data is not a ResultSet; returning null " +
"(if grouped, use getOriginalResultSet(); if unbound, use getRecordList(); " +
"can only be called on DataBoundComponents after initial data has been fetched)");
return null;
}
return new ResultSet(dataJS);
}
public RecordList getRecordList() {
JavaScriptObject dataJS = getAttributeAsJavaScriptObject("data");
if(dataJS == null) return null;
if(ResultSet.isResultSet(dataJS)) {
return getResultSet();
}
return new RecordList(dataJS);
}
/**
* Uses a "fetch" operation on the current {@link com.smartgwt.client.widgets.DataBoundComponent#getDataSource DataSource}
* to retrieve data that matches the current filter and sort criteria for this component, then exports the resulting data
* to a file or window in the requested format. <P> A variety of DSRequest settings, such as {@link
* com.smartgwt.client.data.DSRequest#getExportAs exportAs} and {@link com.smartgwt.client.data.DSRequest#getExportFilename
* exportFilename}, affect the exporting process: see {@link com.smartgwt.client.data.DSRequest#getExportResults
* exportResults} for further detail. <P> Note that data exported via this method does not include any client-side
* formatting and relies on both the Smart GWT server and server-side DataSources. To export client-data with formatters
* applied, see {@link com.smartgwt.client.widgets.DataBoundComponent#exportClientData exportClientData}, which still
* requires the Smart GWT server but does not rely on server-side DataSources. <P> For more information on exporting data,
* see {@link com.smartgwt.client.data.DataSource#exportData DataSource.exportData}.
*/
public native void exportData() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.exportData();
}-*/;
/**
* Uses a "fetch" operation on the current {@link com.smartgwt.client.widgets.DataBoundComponent#getDataSource DataSource}
* to retrieve data that matches the current filter and sort criteria for this component, then exports the resulting data
* to a file or window in the requested format. <P> A variety of DSRequest settings, such as {@link
* com.smartgwt.client.data.DSRequest#getExportAs exportAs} and {@link com.smartgwt.client.data.DSRequest#getExportFilename
* exportFilename}, affect the exporting process: see {@link com.smartgwt.client.data.DSRequest#getExportResults
* exportResults} for further detail. <P> Note that data exported via this method does not include any client-side
* formatting and relies on both the Smart GWT server and server-side DataSources. To export client-data with formatters
* applied, see {@link com.smartgwt.client.widgets.DataBoundComponent#exportClientData exportClientData}, which still
* requires the Smart GWT server but does not rely on server-side DataSources. <P> For more information on exporting data,
* see {@link com.smartgwt.client.data.DataSource#exportData DataSource.exportData}.
* @param requestProperties additional properties to set on the DSRequest that will be issued
* @see com.smartgwt.client.docs.DataBoundComponentMethods DataBoundComponentMethods overview and related methods
*/
public native void exportData(DSRequest requestProperties) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.exportData(requestProperties.@com.smartgwt.client.core.DataClass::getJsObj()());
}-*/;
/**
* Exports this component's data with client-side formatters applied, so is suitable for
* direct display to users. This feature requires the SmartClient server, but does not
* rely on any server-side DataSources.
* <P>To export unformatted data from this component's dataSource, see
* {@link com.smartgwt.client.widgets.DataBoundComponent#exportData exportData}
* which does not include client-side formatters,
* but relies on both the SmartClient server and server-side DataSources.
* @see com.smartgwt.client.data.DataSource#exportClientData
*/
public native void exportClientData() /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.exportClientData();
}-*/;
/**
* Exports this component's data with client-side formatters applied, so is suitable for
* direct display to users. This feature requires the SmartClient server, but does not
* rely on any server-side DataSources.
* <P>To export unformatted data from this component's dataSource, see
* {@link com.smartgwt.client.widgets.DataBoundComponent#exportData exportData}
* which does not include client-side formatters,
* but relies on both the SmartClient server and server-side DataSources.
* @param requestProperties Request properties for the export
* @see com.smartgwt.client.data.DataSource#exportClientData
*/
public native void exportClientData(DSRequest requestProperties) /*-{
var self = this.@com.smartgwt.client.widgets.BaseWidget::getOrCreateJsObj()();
self.exportClientData(requestProperties.@com.smartgwt.client.core.DataClass::getJsObj()());
}-*/;
/**
* Add a fetchData handler.
* <p>
* Notification function fired on fetchData() or filterData()
*
* @param handler the filterData handler
* @return {@link com.google.gwt.event.shared.HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addFetchDataHandler(FetchDataHandler handler) {
if(getHandlerCount(FetchDataEvent.getType()) == 0) setupFetchDataEvent();
return doAddHandler(handler, FetchDataEvent.getType());
}
private native void setupFetchDataEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({onFetchData:$debox($entry(function(){
var param = {"criteria" : arguments[0], "requestProperties" : arguments[1]};
var event = @com.smartgwt.client.widgets.events.FetchDataEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
}))
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.onFetchData = $debox($entry(function(){
var param = {"criteria" : arguments[0], "requestProperties" : arguments[1]};
var event = @com.smartgwt.client.widgets.events.FetchDataEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
}));
}
}-*/;
/**
* Add a {@link com.smartgwt.client.widgets.DropCompleteHandler}. See that class's documentation for a definition of "drop complete",
* and how it differs from "drag complete" ({@link com.smartgwt.client.widgets.DragCompleteHandler}).
*
* @param handler the DropCompleteHandler
* @return {@link com.google.gwt.event.shared.HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addDropCompleteHandler(DropCompleteHandler handler) {
if(getHandlerCount(DropCompleteEvent.getType()) == 0) setupDropCompleteEvent();
return doAddHandler(handler, DropCompleteEvent.getType());
}
private native void setupDropCompleteEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({dropComplete:$debox($entry(function(){
var param = {"transferredRecords" : arguments[0]};
var event = @com.smartgwt.client.widgets.events.DropCompleteEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
}))
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.dropComplete = $debox($entry(function(){
var param = {"transferredRecords" : arguments[0]};
var event = @com.smartgwt.client.widgets.events.DropCompleteEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)(param);
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
}));
}
}-*/;
/**
* Add a {@link com.smartgwt.client.widgets.DragCompleteHandler}. See that class's documentation for a definition of "drag complete",
* and how it differs from "drop complete" ({@link com.smartgwt.client.widgets.DropCompleteHandler}).
*
* @param handler the DropCompleteHandler
* @return {@link com.google.gwt.event.shared.HandlerRegistration} used to remove this handler
*/
public HandlerRegistration addDragCompleteHandler(DragCompleteHandler handler) {
if(getHandlerCount(DragCompleteEvent.getType()) == 0) setupDragCompleteEvent();
return doAddHandler(handler, DragCompleteEvent.getType());
}
private native void setupDragCompleteEvent() /*-{
var obj = null;
var selfJ = this;
if(this.@com.smartgwt.client.widgets.BaseWidget::isCreated()()) {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getJsObj()();
obj.addProperties({dragComplete:$debox($entry(function(){
var event = @com.smartgwt.client.widgets.events.DragCompleteEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)();
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
}))
});
} else {
obj = this.@com.smartgwt.client.widgets.BaseWidget::getConfig()();
obj.dragComplete = $debox($entry(function(){
var event = @com.smartgwt.client.widgets.events.DragCompleteEvent::new(Lcom/google/gwt/core/client/JavaScriptObject;)();
selfJ.@com.smartgwt.client.widgets.BaseWidget::fireEvent(Lcom/google/gwt/event/shared/GwtEvent;)(event);
}));
}
}-*/;
}