001/** 002 * CalendarEvents.bbj 003 * @author ndecker 004 * 005 * The <code>CalendarEvents</code> is a BBj Interface that defines custom events for the <code>BBjCalendarWidget</code>. 006 * This file is part of the <code>BBjCalendarWidget</code> plugin. 007 * 008 * For the full copyright and license information, please see the LICENSE.txt files distributed with this source code in the appropriate lib directory. 009 * 010 * @see <a href = 'https://fullcalendar.io' target = '_blank'>FullCalendar</a> for further information on the underlying JavaScript-based calendar. 011 * 012 * @since BBj 21.00 013*/ 014package BBjCalendarWidget; 015import com.google.gson.JsonObject; 016import com.google.gson.JsonArray; 017/** 018 * <code>CalendarEvent</code> is a BBj Interface that contains event information for 019 * a <a href = 'BBjCalendarWidget.html' target = '_blank'>BBjCalendarWidget</a>. This is 020 * the base class for all <code>BBjCalendarWidget</code> events. 021 * 022 * @since BBj 21.00 023*/ 024public interface CalendarEvent { 025/** 026 * Returns the event number that corresponds to one of the <code>CalendarAPI.ON_CALENDAR_*</code> callback constants. 027 * 028 * @return BBjNumber The event number that corresponds to one of the <code>CalendarAPI.ON_CALENDAR_*</code> callback constants. 029*/ 030public BBjNumber getEventNumber() { } 031/** 032 * Returns a unique ID that identifes the calendar instance to which the event belongs. 033 * 034 * @return BBjString The calendar instance's unique auto-generated ID that is used in the client to distinguish between instances of the class. 035*/ 036public BBjString getCalendarUuid() { } 037/** 038 * Returns the calendar's <code>CalendarView</code> object. 039 * 040 * @return CalendarView The calendar's current <code>CalendarView</code> object. 041*/ 042public CalendarView getCalendarView() { } 043/** 044 * Returns a stringified JsonObject representation of the <code>CalendarEvent</code>. 045 * 046 * @return BBjString The <code>CalendarEvent</code> in stringified JSON format. 047*/ 048public BBjString getAsString() { } 049/** 050 * Returns a formatted, i.e. pretty-printed or beautified, stringified JsonObject representation of the <code>CalendarEvent</code> object. 051 * 052 * @return BBjString The <code>CalendarEvent</code> in stringified JSON format. 053*/ 054public BBjString getAsFormattedString() { } 055/** 056 * Returns a JsonObject representation of the <code>CalendarEvent</code>. 057 * 058 * @return JsonObject The <code>CalendarEvent</code> as a JsonObject. 059 * @see <a href = 'https://www.javadoc.io/doc/com.google.code.gson/gson/2.8.5/com/google/gson/JsonObject.html' target = '_blank'>JsonObject</a> for information about an object in JSON format. 060*/ 061public JsonObject getAsJsonObject() { } 062} 063/** 064 * <code>CalendarEventWithJavaScriptEvent</code> is a BBj Interface that contains event information for 065 * a <a href = 'BBjCalendarWidget.html' target = '_blank'>BBjCalendarWidget</a>. This is 066 * the base class for all <code>BBjCalendarWidget</code> events that also contain the underlying native JavaScript event object. 067 * 068 * This interface that provides methods that simplify retreiving useful information from the underly native JavaScript event object. For example, 069 * it gives developers easy access to mouse coordinates for events that have a native JavaScript event (see the hyperlinked list of qualifying events below). 070 * The data in this class is technically available in the JavaScript JSON event object if you call the <code>getJsEvent()</code> method and parse the resultant JSON for the desired coordinates. 071 * The purpose of this class is to simplify getting the mouse coordinates from the <code>CalendarEvent</code> instead of having to parse them out of the native JavaScript event. 072 * This makes it much easier to display a popup menu as a result of a user clicking on the calendar or a calendar entry, as you would usually call the 073 * BBjPopupMenu::show() method which takes a control (the calendar's control) and X and Y coordinates that are relative to the control. For example: 074 * <blockquote><pre><code><div style = 'background:#E1E6EA; border:1px solid #000; border-radius:1em; padding:0 1em;'> 075 * 076 * <i><span style = 'color:#080;'>rem Display the popup menu based on the calendar control and the mouse's X and Y positions</span></i> 077 * myPopupMenu!.show(myCal!.getHtmlView(), myEvent!.getCalendarX(), myEvent!.getCalendarY()) 078 * </div></code></pre></blockquote> 079 * 080 * This class provides the X/Y coordinates of the user's mouse for calendar events that contain such information, namely: 081 * <ul> 082 * <li><code><a href = 'CalendarSelectEvent.html' target = '_blank'>CalendarSelectEvent</a></code></li> 083 * <li><code><a href = 'CalendarUnselectEvent.html' target = '_blank'>CalendarUnselectEvent</a></code></li> 084 * <li><code><a href = 'CalendarDateClickEvent.html' target = '_blank'>CalendarDateClickEvent</a></code></li> 085 * <li><code><a href = 'CalendarEntryEvent.html' target = '_blank'>CalendarEntryEvent and the classes that extend it:</a></code></li> 086 * <ul> 087 * <li><code><a href = 'CalendarEntryResizeEvent.html' target = '_blank'>CalendarEntryResizeEvent</a></code></li> 088 * <li><code><a href = 'CalendarEntryResizeStartEvent.html' target = '_blank'>CalendarEntryResizeStartEvent</a></code></li> 089 * <li><code><a href = 'CalendarEntryResizeStopEvent.html' target = '_blank'>CalendarEntryResizeStopEvent</a></code></li> 090 * <li><code><a href = 'CalendarEntryDropEvent.html' target = '_blank'>CalendarEntryDropEvent</a></code></li> 091 * <li><code><a href = 'CalendarEntryClickEvent.html' target = '_blank'>CalendarEntryClickEvent</a></code></li> 092 * <li><code><a href = 'CalendarEntryMouseEnterEvent.html' target = '_blank'>CalendarEntryMouseEnterEvent</a></code></li> 093 * <li><code><a href = 'CalendarEntryMouseLeaveEvent.html' target = '_blank'>CalendarEntryMouseLeaveEvent</a></code></li> 094 * </ul> 095 * </ul> 096 * 097 * The class parses out X/Y coordinates from the native JavaScript event for the screenX, screenY, clientX, and clientY values. It 098 * also provides computed coordinates called calendarX and calendarY. This values are relative to the calendar control, and they are determined 099 * by taking the mouse's clientX value and subtracting the calendar's X coordinate. This makes the X/Y values relative to the calendar 100 * control instead of the screen or client area of the browser. 101 * 102 * @since BBj 21.12 103*/ 104public interface CalendarEventWithJavaScriptEvent extends CalendarEvent { 105/** 106 * Returns the native JavaScript event for the calendar event with low-level information such as click coordinates. 107 * 108 * @return JsonObject Returns the native JavaScript event for the calendar event in JSON format. 109 * @since BBj 21.12 110*/ 111public JsonObject getJsEvent() { } 112/** 113 * Returns a stringified JsonObject representation of the native JavaScript event. 114 * 115 * @return BBjString The native JavaScript event in stringified JSON format. 116 * @since BBj 21.12 117*/ 118public BBjString getJsEventAsString() { } 119/** 120 * Returns a formatted, i.e. pretty-printed or beautified, stringified JsonObject representation of the native JavaScript event object. 121 * 122 * @return BBjString The native JavaScript event in stringified JSON format. 123 * @since BBj 21.12 124*/ 125public BBjString getJsEventAsFormattedString() { } 126/** 127 * Returns the X-coordinate of the user's mouse relative to the screen. 128 * <p> 129 * In the BUI and DWC clients, this value increases as the browser's position moves further right on the screen. 130 * In the GUI client, this value increases as the window moves further right on the screen. 131 * 132 * @return BBjNumber The X-coordinate of the user's mouse relative to the screen. 133 * @since BBj 21.12 134*/ 135public BBjNumber getScreenX() { } 136/** 137 * Returns the Y-coordinate of the user's mouse relative to the screen. 138 * 139 * @return BBjNumber The Y-coordinate of the user's mouse relative to the screen. 140 * @since BBj 21.12 141*/ 142public BBjNumber getScreenY() { } 143/** 144 * Returns the X-coordinate of the user's mouse relative to the calendar's window. 145 * <p> 146 * In the BUI and DWC clients, this value increases as the windows's position moves further right on the browser. 147 * In the GUI client, this value increases as the mouse moves further right on the calendar. 148 * 149 * @return BBjNumber The X-coordinate of the user's mouse relative to the calendar's window. 150 * @since BBj 21.12 151*/ 152public BBjNumber getClientX() { } 153/** 154 * Returns the Y-coordinate of the user's mouse relative to the calendar's window. 155 * 156 * @return BBjNumber The Y-coordinate of the user's mouse relative to the calendar's window. 157 * @since BBj 21.12 158*/ 159public BBjNumber getClientY() { } 160/** 161 * Returns the X-coordinate of the user's mouse relative to the calendar control. This can be used along with <code>getCalendarY()</code> to show a popup at the user's click location relative to the calendar control. 162 * <p> 163 * This value is calculated to be the horizontal offset of the mouse compared to the calendar control. It's technically the clientX of the mouse minus the calendar's X coordinate. 164 * This method can be used to show a popup when the user clicks on the calendar or an entry in the calendar: 165 * <blockquote><pre><code><div style = 'background:#E1E6EA; border:1px solid #000; border-radius:1em; padding:0 1em;'> 166 * 167 * <i><span style = 'color:#080;'>rem Display the popup menu based on the calendar control and the click X and Y positions</span></i> 168 * myPopupMenu!.show(myCal!.getHtmlView(), myEvent!.getCalendarX(), myEvent!.getCalendarY()) 169 * </div></code></pre></blockquote> 170 * 171 * @return BBjNumber The X-coordinate of the user's mouse relative to the calendar control. 172 * @since BBj 21.12 173*/ 174public BBjNumber getCalendarX() { } 175/** 176 * Returns the Y-coordinate of the user's mouse relative to the calendar control. This can be used along with <code>getCalendarX()</code> to show a popup at the user's click location relative to the calendar control. 177 * <p> 178 * This value is calculated to be the vertical offset of the mouse compared to the calendar control. It's technically the clientY of the mouse minus the calendar's Y coordinate. 179 * This method can be used to show a popup when the user mouses on the calendar or an entry in the calendar: 180 * <blockquote><pre><code><div style = 'background:#E1E6EA; border:1px solid #000; border-radius:1em; padding:0 1em;'> 181 * 182 * <i><span style = 'color:#080;'>rem Display the popup menu based on the calendar control and the click X and Y positions</span></i> 183 * myPopupMenu!.show(myCal!.getHtmlView(), myEvent!.getCalendarX(), myEvent!.getCalendarY()) 184 * </div></code></pre></blockquote> 185 * 186 * @return BBjNumber The Y-coordinate of the user's mouse relative to the calendar control. 187 * @since BBj 21.12 188*/ 189public BBjNumber getCalendarY() { } 190/** 191 * Returns whether the user's control key was pressed when the event occurred. 192 * 193 * @return BBjNumber A BBjNumber acting as a boolean that determines whether the user's control key was pressed when the event occurred. 194 * @see <a href = 'https://www.w3schools.com/jsref/obj_mouseevent.asp' target = '_blank'>HTML DOM MouseEvent</a> for information about a native HTML mouse event. 195 * @since BBj 21.12 196*/ 197public BBjNumber getControlKey() { } 198/** 199 * Returns whether the user's shift key was pressed when the event occurred. 200 * 201 * @return BBjNumber A BBjNumber acting as a boolean that determines whether the user's shift key was pressed when the event occurred. 202 * @see <a href = 'https://www.w3schools.com/jsref/obj_mouseevent.asp' target = '_blank'>HTML DOM MouseEvent</a> for information about a native HTML mouse event. 203 * @since BBj 21.12 204*/ 205public BBjNumber getShiftKey() { } 206/** 207 * Returns whether the user's alt key was pressed when the event occurred. 208 * 209 * @return BBjNumber A BBjNumber acting as a boolean that determines whether the user's alt key was pressed when the event occurred. 210 * @see <a href = 'https://www.w3schools.com/jsref/obj_mouseevent.asp' target = '_blank'>HTML DOM MouseEvent</a> for information about a native HTML mouse event. 211 * @since BBj 21.12 212*/ 213public BBjNumber getAltKey() { } 214/** 215 * Returns whether the user's meta key was pressed when the event occurred. 216 * 217 * @return BBjNumber A BBjNumber acting as a boolean that determines whether the user's meta key was pressed when the event occurred. 218 * @see <a href = 'https://www.w3schools.com/jsref/obj_mouseevent.asp' target = '_blank'>HTML DOM MouseEvent</a> for information about a native HTML mouse event. 219 * @since BBj 21.12 220*/ 221public BBjNumber getMetaKey() { } 222} 223/** 224 * <code>CalendarReadyEvent</code> is a BBj Interface that contains event information when the calendar has been initialized and may be interacted with. 225 * This data class will be made available to your custom callback routine after the calendar has initialized and 226 * you have previously executed the <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> 227 * method to register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_READY' target = '_blank'>CalendarAPI.ON_CALENDAR_READY</a></code> event. 228*/ 229public interface CalendarReadyEvent extends CalendarEvent { 230} 231/** 232 * <code>CalendarViewChangeEvent</code> is a BBj Interface that contains event information for a calendar's view change event. 233 * This data class will be made available to your custom callback routine after the user changes the calendar's view type and 234 * you have previously executed the <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> 235 * method to register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_VIEW_CHANGE' target = '_blank'>CalendarAPI.ON_CALENDAR_VIEW_CHANGE</a></code> event. 236*/ 237public interface CalendarViewChangeEvent extends CalendarEvent { 238/** 239 * Returns the native HTML element with low-level information such as content, size, and position. 240 * 241 * @return JsonObject Returns the native HTML element with low-level information such as content, size, and position. 242 * @see <a href = 'https://www.w3schools.com/jsref/dom_obj_all.asp' target = '_blank'>HTML DOM Element Object</a> for information about a native HTML element. 243*/ 244public JsonObject getHtmlElement() { } 245} 246/** 247 * <code>CalendarSelectEvent</code> is a BBj Interface that contains event information after the user selects a date and/or time. 248 * This data class will be made available to your custom callback routine after the user clicks on a date or time and 249 * you have previously executed the <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> 250 * method to register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_SELECT' target = '_blank'>CalendarAPI.ON_CALENDAR_SELECT</a></code> event. 251*/ 252public interface CalendarSelectEvent extends CalendarEventWithJavaScriptEvent { 253/** 254 * Returns the calendar's selected starting date, which may include timezone information. 255 * 256 * @return BBjString The calendar's selected starting date, which may include timezone information. 257 * 258 * @see <a href = 'https://www.w3.org/TR/NOTE-datetime' target = '_blank'>Date and Time Formats</a> for information on ISO 8601 date/time formats. 259*/ 260public BBjString getStart() { } 261/** 262 * Returns the calendar's ending date of the selection, which may include timezone information and is <b><i>exclusive</b></i>. 263 * 264 * @return BBjString The calendar's ending date of the selection, which may include timezone information and is <b><i>exclusive</b></i>. 265 * 266 * @see <a href = 'https://www.w3.org/TR/NOTE-datetime' target = '_blank'>Date and Time Formats</a> for information on ISO 8601 date/time formats. 267*/ 268public BBjString getEnd() { } 269/** 270 * Returns the calendar's selected starting date in ISO 8601 format. Depending on what the user selected, it may or may not include a time and time zone portion. 271 * 272 * @return BBjString The calendar's selected starting date in ISO 8601 format. Depending on what the user selected, it may or may not include a time and time zone portion. 273 * 274 * @see <a href = 'https://www.w3.org/TR/NOTE-datetime' target = '_blank'>Date and Time Formats</a> for information on ISO 8601 date/time formats. 275*/ 276public BBjString getStartString() { } 277/** 278 * Returns the calendar's selected ending date in ISO 8601 format and is <b><i>exclusive</b></i>. Depending on what the user selected, it may or may not include a time and time zone portion. 279 * 280 * @return BBjString The calendar's selected ending date in ISO 8601 format and is <b><i>exclusive</b></i>. Depending on what the user selected, it may or may not include a time and time zone portion. 281 * 282 * @see <a href = 'https://www.w3.org/TR/NOTE-datetime' target = '_blank'>Date and Time Formats</a> for information on ISO 8601 date/time formats. 283*/ 284public BBjString getEndString() { } 285/** 286 * Returns a BBjNumber acting as a boolean that determines whether the user selected all-day cells (1) or not (0). 287 * 288 * @return BBjNumber A BBjNumber acting as a boolean that determines whether the user selected all-day cells. 289*/ 290public BBjNumber getAllDay() { } 291} 292/** 293 * <code>CalendarUnselectEvent</code> is a BBj Interface that contains event information after the user deselects a 294 * previously-selected date and/or time. This data class will be made available to your custom callback routine after the 295 * user clears their date/time selection if you have previously executed the 296 * <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> 297 * method to register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_UNSELECT' target = '_blank'>CalendarAPI.ON_CALENDAR_UNSELECT</a></code> event. 298*/ 299public interface CalendarUnselectEvent extends CalendarEventWithJavaScriptEvent { 300} 301/** 302 * <code>CalendarDateClickEvent</code> is a BBj Interface that contains event information after the user clicks on a date or time. 303 * This data class will be made available to your custom callback routine after the user clicks on a date or time and 304 * you have previously executed the <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> 305 * method to register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_DATE_CLICK' target = '_blank'>CalendarAPI.ON_CALENDAR_DATE_CLICK</a></code> event. 306*/ 307public interface CalendarDateClickEvent extends CalendarEventWithJavaScriptEvent { 308/** 309 * Returns the native HTML element with low-level information such as content, size, and position. 310 * 311 * @return JsonObject Returns the native HTML element with low-level information such as content, size, and position. 312 * @see <a href = 'https://www.w3schools.com/jsref/dom_obj_all.asp' target = '_blank'>HTML DOM Element Object</a> for information about a native HTML element. 313*/ 314public JsonObject getHtmlElement() { } 315/** 316 * Returns the calendar's date (day/time) that was clicked. 317 * 318 * @return BBjString The calendar's date (day/time) that was clicked. 319*/ 320public BBjString getDate() { } 321/** 322 * Returns the calendar's date in ISO 8601 format. Depending on what the user clicked, it may or may not include a time and time zone portion. 323 * 324 * @return BBjString The calendar's date in ISO 8601 format. Depending on what the user clicked, it may or may not include a time and time zone portion. 325 * 326 * @see <a href = 'https://www.w3.org/TR/NOTE-datetime' target = '_blank'>Date and Time Formats</a> for information on ISO 8601 date/time formats. 327*/ 328public BBjString getDateString() { } 329/** 330 * Returns a BBjNumber acting as a boolean that determines whether the user clicked on an all-day cell (1) or not (0). 331 * 332 * @return BBjNumber A BBjNumber acting as a boolean that determines whether the user clicked on an all-day cell (1) or not (0). 333*/ 334public BBjNumber getAllDay() { } 335} 336/** 337 * <code>CalendarDatesSetEvent</code> is a BBj Interface that contains event information after the calendar's date range 338 * has been initially set or changed in some way and the DOM has been updated. The dates can also change when the 339 * current-date is manipulated via the API, such as when gotoDate is called. 340 * This data class will be made available to your custom callback routine after the user clicks the prev/next buttons, changes the view, clicks a navlink, etc. 341 * you have previously executed the <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> 342 * method to register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_DATES_SET' target = '_blank'>CalendarAPI.ON_CALENDAR_DATES_SET</a></code> event. 343*/ 344public interface CalendarDatesSetEvent extends CalendarEvent { 345/** 346 * Returns the calendar's starting date for the current range. 347 * 348 * @return BBjString The calendar's starting date for the current range. 349 * 350 * @see <a href = 'https://www.w3.org/TR/NOTE-datetime' target = '_blank'>Date and Time Formats</a> for information on ISO 8601 date/time formats. 351*/ 352public BBjString getStart() { } 353/** 354 * Returns the calendar's ending date for the current range. 355 * 356 * @return BBjString The calendar's ending date for the current range. 357 * 358 * @see <a href = 'https://www.w3.org/TR/NOTE-datetime' target = '_blank'>Date and Time Formats</a> for information on ISO 8601 date/time formats. 359*/ 360public BBjString getEnd() { } 361/** 362 * Returns the calendar's starting date in ISO 8601 format for the current range. 363 * 364 * @return BBjString The calendar's starting date in ISO 8601 format. 365 * 366 * @see <a href = 'https://www.w3.org/TR/NOTE-datetime' target = '_blank'>Date and Time Formats</a> for information on ISO 8601 date/time formats. 367*/ 368public BBjString getStartStr() { } 369/** 370 * Returns the calendar's ending date in ISO 8601 format for the current range. 371 * 372 * @return BBjString The calendar's ending date in ISO 8601 format. 373 * 374 * @see <a href = 'https://www.w3.org/TR/NOTE-datetime' target = '_blank'>Date and Time Formats</a> for information on ISO 8601 date/time formats. 375*/ 376public BBjString getEndStr() { } 377/** 378 * Returns the calendar's time zone setting. 379 * 380 * @return BBjString A BBjString with the calendar's time zone setting. 381*/ 382public BBjString getTimeZone() { } 383} 384/** 385 * <code>CalendarEntriesSetEvent</code> is a BBj Interface that contains event information after the calendar's entry data 386 * has been initially set or changed in some way. 387 * This data class will be made available to your custom callback routine after the user clicks the prev/next buttons, changes the view, adds events, clicks a navlink, etc. 388 * you have previously executed the <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> 389 * method to register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_ENTRIES_SET' target = '_blank'>CalendarAPI.ON_CALENDAR_ENTRIES_SET</a></code> event. 390*/ 391public interface CalendarEntriesSetEvent extends CalendarEvent { 392/** 393 * Returns the calendar's entries as a BBjVector filled with <code>CalendarEntry</code> objects. 394 * 395 * @return BBjVector The calendar's entries as a BBjVector filled with <code>CalendarEntry</code> objects. 396*/ 397public BBjVector getEntries() { } 398} 399/** 400 * <code>CalendarEntryEvent</code> is a BBj Interface that contains event information for a calendar's entry 401 * (appointment, event, etc.) object. It's the base class for several calendar events that deal with the calendar's 402 * entries (appointments, events, etc.) including the <code>CalendarEntryClickEvent</code>, 403 * <code>CalendarEntryMouseEnterEvent</code>, and <code>CalendarEntryMouseLeaveEvent</code>. 404*/ 405public interface CalendarEntryEvent extends CalendarEventWithJavaScriptEvent { 406/** 407 * Returns the entry (appointment, event, etc.) from the calendar. 408 * 409 * @return CalendarEntry The calendar entry (appointment, event, etc.) 410*/ 411public CalendarEntry getCalendarEntry() { } 412/** 413 * Returns the native HTML element with low-level information such as content, size, and position. 414 * 415 * @return JsonObject Returns the native HTML element with low-level information such as content, size, and position. 416 * @see <a href = 'https://www.w3schools.com/jsref/dom_obj_all.asp' target = '_blank'>HTML DOM Element Object</a> for information about a native HTML element. 417*/ 418public JsonObject getHtmlElement() { } 419} 420/** 421 * <code>CalendarEntryResizeEvent</code> is a BBj Interface that contains event information for a calendar's entry resize event. 422 * This data class will be made available to your custom callback routine after the user finishes resizing a calendar entry 423 * if you have previously executed the <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> 424 * method to register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_ENTRY_RESIZE' target = '_blank'>CalendarAPI.ON_CALENDAR_ENTRY_RESIZE()</a></code> event. 425*/ 426public interface CalendarEntryResizeEvent extends CalendarEntryEvent { 427/** 428 * Returns the old version of the calendar entry, e.g. the entry as it existed before the user resized it. 429 * 430 * @return CalendarEntry The old verison of the calendar entry, e.g. the entry as it existed before the user resized it. 431*/ 432public CalendarEntry getOldCalendarEntry() { } 433/** 434 * Returns a BBjVector filled with related entries, such as recurring entries or entries with the same groupId. 435 * 436 * @return BBjVector a BBjVector filled with related entries, such as recurring entries or entries with the same groupId. 437*/ 438public BBjVector getRelatedEntries() { } 439/** 440 * Returns the native JavaScript Duration Object as a JsonObject that represents the amount of time the entry's start date was moved by. 441 * 442 * @return JsonObject The native JavaScript Duration Object as a JsonObject that represents the amount of time that the entry's start date was moved. 443*/ 444public JsonObject getStartDelta() { } 445/** 446 * Returns the native JavaScript Duration Object as a JsonObject that represents the amount of time the entry's end date was moved by. 447 * 448 * @return JsonObject The native JavaScript Duration Object as a JsonObject that represents the amount of time that the entry's end date was moved. 449*/ 450public JsonObject getEndDelta() { } 451} 452/** 453 * <code>CalendarEntryDropEvent</code> is a BBj Interface that contains event information for a calendar's entry drop event. 454 * This data class will be made available to your custom callback routine after the user finishes repositioning a calendar entry 455 * if you have previously executed the <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> 456 * method to register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_ENTRY_DROP' target = '_blank'>CalendarAPI.ON_CALENDAR_ENTRY_DROP()</a></code> event. 457*/ 458public interface CalendarEntryDropEvent extends CalendarEntryEvent { 459/** 460 * Returns the old version of the calendar entry, e.g. the entry as it existed before the user resized it. 461 * 462 * @return CalendarEntry The old verison of the calendar entry, e.g. the entry as it existed before the user resized it. 463*/ 464public CalendarEntry getOldCalendarEntry() { } 465/** 466 * Returns a BBjVector filled with related entries, such as recurring entries or entries with the same groupId. 467 * 468 * @return BBjVector a BBjVector filled with related entries, such as recurring entries or entries with the same groupId. 469*/ 470public BBjVector getRelatedEntries() { } 471/** 472 * Returns the native JavaScript Duration Object as a JsonObject that represents the amount of time the entry's date/time was moved by. 473 * 474 * @return JsonObject The native JavaScript Duration Object as a JsonObject that represents the amount of time that the entry was moved. 475*/ 476public JsonObject getDelta() { } 477} 478/** 479 * <code>CalendarEntryClickEvent</code> is a BBj Interface that contains event information for a calendar's entry click. 480 * This data class will be made available to your custom callback routine after the user executes a click on a calendar entry 481 * if you have previously executed the <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> 482 * method to register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_ENTRY_CLICK' target = '_blank'>CalendarAPI.ON_CALENDAR_ENTRY_CLICK</a></code> event. 483*/ 484public interface CalendarEntryClickEvent extends CalendarEntryEvent { 485} 486/** 487 * <code>CalendarEntryMouseEnterEvent</code> is a BBj Interface that contains event information for a calendar's entry mouse enter event. 488 * This data class will be made available to your custom callback routine after mouses over a calendar entry if you have previously executed 489 * the <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> method to 490 * register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_ENTRY_MOUSE_ENTER' target = '_blank'>CalendarAPI.ON_CALENDAR_ENTRY_MOUSE_ENTER</a></code> event. 491*/ 492public interface CalendarEntryMouseEnterEvent extends CalendarEntryEvent { 493} 494/** 495 * <code>CalendarEntryMouseLeaveEvent</code> is a BBj Interface that contains event information for a calendar's entry mouse leave event. 496 * This data class will be made available to your custom callback routine after mouses out of a calendar entry if you have previously executed 497 * the <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> method to 498 * register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_ENTRY_MOUSE_LEAVE' target = '_blank'>CalendarAPI.ON_CALENDAR_ENTRY_MOUSE_LEAVE</a></code> event. 499*/ 500public interface CalendarEntryMouseLeaveEvent extends CalendarEntryEvent { 501} 502/** 503 * <code>CalendarEntryModificationEvent</code> is a BBj Interface that contains event information for a calendar's 504 * entry (appointment, event, etc.) object. It's never instantiated as it's the base class for several calendar 505 * events that deal with the calendar's entries (appointments, events, etc.) including the <code>CalendarEntryAddEvent</code>, 506 * <code>CalendarEntryRemoveEvent</code>, and <code>CalendarEntryChangeEvent</code>. 507*/ 508public interface CalendarEntryModificationEvent extends CalendarEvent { 509/** 510 * Returns the entry (appointment, event, etc.) from the calendar. 511 * 512 * @return CalendarEntry The calendar entry (appointment, event, etc.) 513*/ 514public CalendarEntry getCalendarEntry() { } 515/** 516 * Returns a BBjVector filled with related entries, such as recurring entries or entries with the same groupId. 517 * 518 * @return BBjVector a BBjVector filled with related entries, such as recurring entries or entries with the same groupId. 519*/ 520public BBjVector getRelatedEntries() { } 521} 522/** 523 * <code>CalendarEntryAddEvent</code> is a BBj Interface that contains event information for when a single entry (not an event source) has 524 * been added to the calendar via the <code>BBjCalendarWidget::addEntry()</code> method. This data class will be made available to your 525 * custom callback routine after mouses over a calendar entry if you have previously executed the 526 * <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> method to 527 * register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_ENTRY_ADD' target = '_blank'>CalendarAPI.ON_CALENDAR_ENTRY_ADD</a></code> event. 528*/ 529public interface CalendarEntryAddEvent extends CalendarEntryModificationEvent { 530} 531/** 532 * <code>CalendarEntryRemoveEvent</code> is a BBj Interface that contains event information when an entry has been removed from the calendar. 533 * This data class will be made available to your custom callback routine after mouses over a calendar entry if you have previously executed 534 * the <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> method to 535 * register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_ENTRY_REMOVE' target = '_blank'>CalendarAPI.ON_CALENDAR_ENTRY_REMOVE</a></code> event. 536*/ 537public interface CalendarEntryRemoveEvent extends CalendarEntryModificationEvent { 538} 539/** 540 * <code>CalendarEntryChangeEvent</code> is a BBj Interface that contains event information for when a calendar entry has been changed. 541 * This data class will be made available to your custom callback routine after the user changes calendar entry if you have previously executed 542 * the <code><a href = 'BBjCalendarWidget.html#setCallback' target = '_blank'>BBjCalendarWidget::setCallback()</a></code> method to 543 * register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_ENTRY_CHANGE' target = '_blank'>CalendarAPI.ON_CALENDAR_ENTRY_CHANGE</a></code> event. 544*/ 545public interface CalendarEntryChangeEvent extends CalendarEntryModificationEvent { 546/** 547 * Returns the old version of the calendar entry, e.g. the entry as it existed before the changes were applied. 548 * 549 * @return CalendarEntry The old verison of the calendar entry, e.g. the entry as it existed before the changes were applied. 550*/ 551public CalendarEntry getOldCalendarEntry() { } 552} 553/** 554 * <code>CalendarEntrySourceSuccessEvent</code> is a BBj Interface that contains event information for the case where fetching a <code>CalendarEntrySource</code> succeeded. 555 * This data class will be made available to your custom callback routine after the entry source was successfully queried if you have previously executed 556 * the <a href = 'BBjCalendarWidget.html#setCallback-BBjNumber-BBjString-' target = '_blank'>BBjCalendarWidget::setCallback()</a> method to 557 * register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_ENTRY_SOURCE_SUCCESS' target = '_blank'>CalendarAPI.ON_CALENDAR_ENTRY_SOURCE_SUCCESS</a></code> event. 558*/ 559public interface CalendarEntrySourceSuccessEvent extends CalendarEvent { 560/** 561 * Returns a BBjVector filled with <code>CalendarEntry</code> objects for all the fetched entries. 562 * 563 * @return BBjVector A BBjVector that filled with the fetched entries from the source. 564*/ 565public BBjVector getEntriesFetched() { } 566/** 567 * Returns the number of fetched entries. 568 * 569 * @return JsonObject The number of entries successfully fetched from the source. 570*/ 571public BBjNumber getNumberOfEntriesFetched() { } 572} 573/** 574 * <code>CalendarEntrySourceFailureEvent</code> is a BBj Interface that contains event information for the case where fetching a <code>CalendarEntrySource</code> failed. 575 * This data class will be made available to your custom callback routine after fetching the entry source failed if you have previously executed 576 * the <a href = 'BBjCalendarWidget.html#setCallback-BBjNumber-BBjString-' target = '_blank'>BBjCalendarWidget::setCallback()</a> method to 577 * register for the <code><a href = 'CalendarAPI.html#ON_CALENDAR_ENTRY_SOURCE_FAILURE' target = '_blank'>CalendarAPI.ON_CALENDAR_ENTRY_SOURCE_FAILURE</a></code> event. 578*/ 579public interface CalendarEntrySourceFailureEvent extends CalendarEvent { 580/** 581 * Returns a the error message associate with the fetching failure. 582 * 583 * @return BBjString A BBjString with the information associated with the fetching error. 584*/ 585public BBjString getErrorMessage() { } 586}