001/**
002 * CalendarOptions.bbj
003 * @author ndecker
004 *
005 * The <code>CalendarOptions</code> is a BBj Custom Class that exports a collection of options that are used to configure 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 * @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
012 *
013 * @since BBj 21.00
014*/
015package BBjCalendarWidget;
016import java.util.HashMap;
017import com.google.gson.Gson;
018import com.google.gson.JsonParser;
019import com.google.gson.JsonObject;
020import com.google.gson.JsonArray;
021/**
022 * The <code>CalendarOptions</code> is a BBj Interface that defines the options, or configuration parameters, for the calendar.
023 * <p>
024 * <b>Note</b>: There are several available options that affect the user's ability
025 * to edit/modify calendar entries, some of which are related to one another and
026 * some that override other options. The table below lists all the options
027 * associated with editability along with their default values.
028 * <table cellspacing = "0" border = "1" bordercolor = "#ccc">
029 * <thead>
030 * <tr>
031 * <th>Option</th>
032 * <th>Default</th>
033 * <th>Overview</th>
034 * </tr>
035 * </thead>
036 * <tbody>
037 * <tr>
038 * <td>EnableEditable</td>
039 * <td>0</td>
040 * <td>Entries may be dragged and resized, meaning that their starting date/time and duration may be changed. This enables/disables both capabilities at the same time. If you don't want both, use the more specific EnableEntryStartEditable and EnableEntryDurationEditable instead.</td>
041 * </tr>
042 * <tr>
043 * <td>EnableEntryStartEditable</td>
044 * <td>1</td>
045 * <td>Entry start times may be modified by dragging the entire entry, meaning that the user can effectively reschedule the entry by changing its starting date/time</td>
046 * </tr>
047 * <tr>
048 * <td>EnableEntryResizableFromStart</td>
049 * <td>0</td>
050 * <td>Entry start times may be modified by dragging their starting edge, meaning that the user can change the entry's starting date/time which affects its duration</td>
051 * </tr>
052 * <tr>
053 * <td>EnableEntryDurationEditable</td>
054 * <td>1</td>
055 * <td>Entry end times may be modified by dragging their ending edge, meaning that the user can change the entry's ending date/time which affects its duration</td>
056 * </tr>
057 * </tbody>
058 * </table>
059 *
060 * @since BBj 21.00
061*/
062public interface CalendarOptions {
063/** A constant value that's used with the <code>CalendarOptions::setButtonText()</code> method that uniquely identifies the 'today' toolbar button. */
064
065public static BBjString CALENDAR_TOOLBAR_BUTTON_TODAY() { }
066/** A constant value that's used with the <code>CalendarOptions::setButtonText()</code> method that uniquely identifies the 'month' toolbar button. */
067
068public static BBjString CALENDAR_TOOLBAR_BUTTON_MONTH() { }
069/** A constant value that's used with the <code>CalendarOptions::setButtonText()</code> method that uniquely identifies the 'week' toolbar button. */
070
071public static BBjString CALENDAR_TOOLBAR_BUTTON_WEEK() { }
072/** A constant value that's used with the <code>CalendarOptions::setButtonText()</code> method that uniquely identifies the 'day' toolbar button. */
073
074public static BBjString CALENDAR_TOOLBAR_BUTTON_DAY() { }
075/** A constant value that's used with the <code>CalendarOptions::setButtonText()</code> method that uniquely identifies the 'list' toolbar button. */
076
077public static BBjString CALENDAR_TOOLBAR_BUTTON_LIST() { }
078/**
079 * Sets whether to include Saturday/Sunday columns in any of the calendar views (1) or not (0), where the default value is 1.
080 *
081 * @param BBjNumber enableWeekends A BBjNumber acting as a boolean that determines whether to include Saturday/Sunday columns in any of the calendar views (1) or not (0).
082*/
083public void setEnableWeekends(BBjNumber enableWeekends) { }
084/**
085 * Returns whether the calendar views include Saturday/Sunday columns (1) or not (0).
086 *
087 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether the calendar views include Saturday/Sunday columns.
088*/
089public BBjNumber getEnableWeekends() { }
090/**
091 * Sets whether the day headers should appear for the Month, TimeGrid, and DayGrid views (1) or not(0), where the default value is 1.
092 * <p>
093 * Applicable views: <code>CalendarAPI.CALENDAR_VIEW_DAY_GRID_MONTH(), CalendarAPI.CALENDAR_VIEW_DAY_GRID_WEEK(),
094 * CalendarAPI.CALENDAR_VIEW_TIME_GRID_DAY(), CalendarAPI.CALENDAR_VIEW_TIME_GRID_WEEK()</code>.
095 *
096 * @param BBjNumber enableDayHeaders A BBjNumber acting as a boolean that determines whether the day headers should appear for the Month, TimeGrid, and DayGrid views (1) or not (0).
097*/
098public void setEnableDayHeaders(BBjNumber enableDayHeaders) { }
099/**
100 * Returns whether the day headers should appear for the Month, TimeGrid, and DayGrid views (1) or not (0).
101 *
102 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether the day headers should appear for the Month, TimeGrid, and DayGrid views (1) or not (0).
103*/
104public BBjNumber getEnableDayHeaders() { }
105/**
106 * Sets whether the previous or next month's dates should display in the calendar's month view (1) or not (0), where the default value is 1.
107 * <p>
108 * Applicable views: <code>CalendarAPI.CALENDAR_VIEW_DAY_GRID_MONTH()</code>
109 *
110 * @param BBjNumber enableShowNonCurrentDates A BBjNumber acting as a boolean that determines whether the previous or next month's dates should display in the calendar's month view (1) or not (0).
111*/
112public void setEnableShowNonCurrentDates(BBjNumber enableShowNonCurrentDates) { }
113/**
114 * Returns whether the previous or next month's dates should display in the calendar's month view (1) or not (0).
115 *
116 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether the previous or next month's dates should display in the calendar's month view (1) or not (0).
117*/
118public BBjNumber getEnableShowNonCurrentDates() { }
119/**
120 * Sets whether entries being dragged and resized are allowed to overlap one other (1) or not (0), where the default value is 1.
121 * <p>
122 * Note: This may be overridden on a per-entry basis.
123 *
124 * @param BBjNumber enableEntryOverlap A BBjNumber acting as a boolean that determines whether entries being dragged and resized are allowed to overlap one other (1) or not (0).
125*/
126public void setEnableEntryOverlap(BBjNumber enableEntryOverlap) { }
127/**
128 * Returns whether entries being dragged and resized are allowed to overlap one other (1) or not (0).
129 *
130 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether entries being dragged and resized are allowed to overlap one other (1) or not (0).
131*/
132public BBjNumber getEnableEntryOverlap() { }
133/**
134 * Sets whether the calendar will always show 6 weeks in month view (1) or not (0), where the default value is 1.
135 * <p>
136 * Setting this variable to 0 changes the calendar to show 4, 5, or 6 weeks in the month view, depending
137 * on how many days the month has. With the default value of 1, the calendar may show an empty
138 * sixth week at the bottom of the month view, depending on the number of days in the month.
139 * <p>
140 * Applicable views: <code>CalendarAPI.CALENDAR_VIEW_DAY_GRID_MONTH()</code>
141 *
142 * @param BBjNumber enableFixedWeekCount A BBjNumber acting as a boolean that determines whether the calendar will always show 6 weeks in month view (1) or not (0).
143*/
144public void setEnableFixedWeekCount(BBjNumber enableFixedWeekCount) { }
145/**
146 * Returns whether the calendar will always show 6 weeks in month view (1) or not (0).
147 *
148 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether the calendar will always show 6 weeks in month view (1) or not (0).
149*/
150public BBjNumber getEnableFixedWeekCount() { }
151/**
152 * Sets whether the calendar will display a marker indicating the current time (1) or not (0), where the default value is 0.
153 * <p>
154 * Setting this to 1 causes the calendar to display a marker showing the current time in applicable time grid views.
155 * <p>
156 * Applicable views: <code>CalendarAPI.CALENDAR_VIEW_TIME_GRID_DAY(), CalendarAPI.CALENDAR_VIEW_TIME_GRID_WEEK()</code>
157 *
158 * @param BBjNumber enableNowIndicator A BBjNumber acting as a boolean that determines whether the calendar will display a marker indicating the current time (1) or not (0).
159*/
160public void setEnableNowIndicator(BBjNumber enableNowIndicator) { }
161/**
162 * Returns whether the calendar will display a marker indicating the current time (1) or not (0).
163 *
164 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether the calendar will display a marker indicating the current time (1) or not (0).
165*/
166public BBjNumber getEnableNowIndicator() { }
167/**
168 * Sets whether the user can modify entries on the calendar (1) or not (0), where the default value is 0.
169 * <p>
170 * Setting this variable to 1 causes the entries to be both draggable and resizable. If you don't want both behaviors,
171 * use the <code><a href = '#setEnableEntryStartEditable'>setEnableEntryStartEditable()</a></code> or <code><a href = '#setEnableEntryDurationEditable'>setEnableEntryDurationEditable()</a></code> methods instead.
172 * <p>
173 * <b>Note</b>: See the top of the <code><a href = '#'>CalendarOptions()</a></code> class docs for an overview of the options that affect entry editabililty.
174 *
175 * @param BBjNumber enableEditable A BBjNumber acting as a boolean that determines whether the user can modify entries on the calendar (1) or not (0).
176*/
177public void setEnableEditable(BBjNumber enableEditable) { }
178/**
179 * Returns whether the user can modify entries on the calendar (1) or not (0).
180 *
181 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether the user can modify entries on the calendar (1) or not (0).
182*/
183public BBjNumber getEnableEditable() { }
184/**
185 * Sets whether the user can modify entry durations on the calendar (1) or not (0), where the default value is 1.
186 * <p>
187 * <b>Note</b>: See the top of the <code><a href = '#'>CalendarOptions()</a></code> class docs for an overview of the options that affect entry editabililty.
188 *
189 * @param BBjNumber enableEntryDurationEditable A BBjNumber acting as a boolean that determines whether the user can modify entry durations on the calendar (1) or not (0).
190*/
191public void setEnableEntryDurationEditable(BBjNumber enableEntryDurationEditable) { }
192/**
193 * Returns whether the user can modify entry durations on the calendar (1) or not (0).
194 *
195 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether the user can modify entry durations on the calendar (1) or not (0).
196*/
197public BBjNumber getEnableEntryDurationEditable() { }
198/**
199 * Sets whether the user can highlight multiple days or timeslots by clicking and dragging (1) or not (0), where the default value is 0.
200 * <p>
201 * This is used with the <code><a href = 'CalendarAPI.html#ON_CALENDAR_SELECT' target = '_blank'>CalendarAPI.ON_CALENDAR_SELECT</a></code>
202 * and <code><a href = 'CalendarAPI.html#ON_CALENDAR_UNSELECT' target = '_blank'>CalendarAPI.ON_CALENDAR_UNSELECT</a></code> callbacks
203 * to monitor selection events. You must set the calendar's options to enable selectability in order for the events to be fired.
204 * <p>
205 * The <code><a href = 'CalendarOptions.html#setEnableUnselectAuto' target = '_blank'>CalendarOptions::setEnableUnselectAuto()</a></code> impacts what causes the <code><a href = 'CalendarAPI.html#ON_CALENDAR_SELECT' target = '_blank'>CalendarAPI.ON_CALENDAR_SELECT</a></code> event to be fired.
206 * <p>
207 * How the calendar reacts to the user selecting a date or range of dates all depends on what your callback
208 * code does in response to the events. It could prompt the user to enter a new event title, or display
209 * a contextual popup-menu that allows the user to move/copy/edit/delete any events within the selected range.
210 *
211 * @param BBjNumber enableSelectable A BBjNumber acting as a boolean that determines whether the user can highlight multiple days or timeslots by clicking and dragging (1) or not (0).
212*/
213public void setEnableSelectable(BBjNumber enableSelectable) { }
214/**
215 * Returns whether the user can highlight multiple days or timeslots by clicking and dragging (1) or not (0).
216 *
217 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether the user can highlight multiple days or timeslots by clicking and dragging (1) or not (0).
218*/
219public BBjNumber getEnableSelectable() { }
220/**
221 * Sets whether clicking elsewhere on calendar/window causes the current selection to be cleared (1) or not (0), where the default value is 1.
222 * <p>
223 * This is only applicable if EnableSelectable() is set to 1.
224 *
225 * @param BBjNumber enableUnselectAuto A BBjNumber acting as a boolean that determines whether clicking elsewhere on calendar/window causes the current selection to be cleared (1) or not (0).
226*/
227public void setEnableUnselectAuto(BBjNumber enableUnselectAuto) { }
228/**
229 * Returns whether clicking elsewhere on calendar/window causes the current selection to be cleared (1) or not (0).
230 *
231 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether clicking elsewhere on calendar/window causes the current selection to be cleared (1) or not (0).
232*/
233public BBjNumber getEnableUnselectAuto() { }
234/**
235 * Sets whether the user can modify event start times through dragging (1) or not (0), where the default value is 1.
236 * <p>
237 * <b>Note</b>: See the top of the <code><a href = '#'>CalendarOptions()</a></code> class docs for an overview of the options that affect entry editabililty.
238 *
239 * @param BBjNumber enableEntryStartEditable A BBjNumber acting as a boolean that determines whether the user can modify event start times through dragging (1) or not (0).
240*/
241public void setEnableEntryStartEditable(BBjNumber enableEntryStartEditable) { }
242/**
243 * Returns whether the user can modify event start times through dragging (1) or not (0).
244 *
245 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether the user can modify event start times through dragging (1) or not (0).
246*/
247public BBjNumber getEnableEntryStartEditable() { }
248/**
249 * Sets whether the user can resize an entry from its starting edge (1) or not (0), where the default value is 0.
250 * <p>
251 * <b>Note</b>: See the top of the <code><a href = '#'>CalendarOptions()</a></code> class docs for an overview of the options that affect entry editabililty.
252 *
253 * @param BBjNumber enableEntryResizableFromStart A BBjNumber acting as a boolean that determines whether the user can resize an entry from its starting edge (1) or not (0).
254*/
255public void setEnableEntryResizableFromStart(BBjNumber enableEntryResizableFromStart) { }
256/**
257 * Returns whether the user can resize an entry from its starting edge (1) or not (0).
258 *
259 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether the user can resize an entry from its starting edge (1) or not (0).
260*/
261public BBjNumber getEnableEntryResizableFromStart() { }
262/**
263 * Sets whether entries should visually overlap one another (1) or not (0) where the default value is 1.
264 * <p>
265 * Setting this value to 0 prevents the entries from overlapping one another. This applies to entries in the
266 * <code>CalendarAPI.CALENDAR_VIEW_TIME_GRID_DAY()</code> and <code>CalendarAPI.CALENDAR_VIEW_TIME_GRID_WEEK()</code> view types.
267 *
268 * @param BBjNumber enableSlotEntryOverlap A BBjNumber acting as a boolean that determines whether entries should visually overlap one another (1) or not (0).
269*/
270public void setEnableSlotEntryOverlap(BBjNumber enableSlotEntryOverlap) { }
271/**
272 * Returns whether entries should visually overlap one another (1) or not (0).
273 *
274 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether entries should visually overlap one another (1) or not (0).
275*/
276public BBjNumber getEnableSlotEntryOverlap() { }
277/**
278 * Sets whether day and week names are clickable (1) or not (0), causing the associated view to be loaded on click, where the default value is 0.
279 *
280 * @param BBjNumber enableNavLinks A BBjNumber acting as a boolean that determines whether day and week names are clickable (1) or not (0).
281*/
282public void setEnableNavLinks(BBjNumber enableNavLinks) { }
283/**
284 * Returns whether day and week names are clickable (1) or not (0), causing the associated view to be loaded on click.
285 *
286 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether day and week names are clickable (1) or not (0).
287*/
288public BBjNumber getEnableNavLinks() { }
289/**
290 * Sets whether week numbers should be displayed on the calendar (1) or not (0), where the default value is 0.
291 *
292 * @param BBjNumber enableWeekNumbers A BBjNumber acting as a boolean that determines whether week numbers should be displayed on the calendar (1) or not (0).
293*/
294public void setEnableWeekNumbers(BBjNumber enableWeekNumbers) { }
295/**
296 * Returns whether week numbers should be displayed on the calendar (1) or not (0).
297 *
298 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether week numbers should be displayed on the calendar (1) or not (0).
299*/
300public BBjNumber getEnableWeekNumbers() { }
301/**
302 * Sets whether a calendar view's rows will expand to fit the available height (1) or not (0), where the default value is 0.
303 *
304 * @param BBjNumber enableExpandRows A BBjNumber acting as a boolean that determines whether a calendar view's rows will expand to fit the available height (1) or not (0).
305*/
306public void setEnableExpandRows(BBjNumber enableExpandRows) { }
307/**
308 * Returns whether a calendar view's rows will expand to fit the available height (1) or not (0).
309 *
310 * @return BBjNumber A BBjNumber acting as a boolean that indicates whether a calendar view's rows will expand to fit the available height (1) or not (0).
311*/
312public BBjNumber getEnableExpandRows() { }
313/**
314 * Sets the width-to-height aspect ratio of the calendar, where the default value is 1.35 but by default is overridden by the default Height option.
315 * <p>
316 * The calendar is a block-level element that fills its entire avaiable width. The calendar's height, however,
317 * is determined by this ratio of width to height. Because it's a ratio of the width to height, larger numbers
318 * result in smaller (or shorter) heights.
319 * <p>
320 * <b>Note</b>: The Height option, if set, will override the AspectRatio. Therefore, if you intend to set
321 * the calendar's height via the AspectRatio then you will need to unset the Height option by setting
322 * it to null() or an empty string.
323 *
324 * @param BBjNumber aspectRatio The width-to-height aspect ratio of the calendar.
325*/
326public void setAspectRatio(BBjNumber aspectRatio) { }
327/**
328 * Returns the width-to-height aspect ratio of the calendar.
329 *
330 * @return BBjNumber The width-to-height aspect ratio of the calendar.
331*/
332public BBjNumber getAspectRatio() { }
333/**
334 * Sets the day on which each week begins where the value is a 0-based number starting with Sunday, where the default value is 0.
335 * <p>
336 * The value is zero-based and ranges from 0 (Sunday) to 6 (Saturday).
337 *
338 * @param BBjNumber firstDay A BBjNumber corresponding to the beginning day of the week where the value is zero-based and ranges from 0 (Sunday) to 6 (Saturday).
339*/
340public void setFirstDay(BBjNumber firstDay) { }
341/**
342 * Returns the day on which each week begins where the value is a 0-based number starting with Sunday.
343 *
344 * @return BBjNumber A BBjNumber corresponding to the beginning day of the week where the value is zero-based and ranges from 0 (Sunday) to 6 (Saturday).
345*/
346public BBjNumber getFirstDay() { }
347/**
348 * Sets the height of the calendar, where the default value is "100%".
349 * <p>
350 * Note that you may set the calendar's height in multiple ways. The Height option defaults to "100%",
351 * meaning that it will match the height of its container, which is the <code>BBjCalendarWidget</code>'s height.
352 * Valid options for the height values are:
353 * <ul>
354 * <li>"100%" - The default, which means that the internal height fits inside the <code>BBjCalendarWidget</code>'s height.</li>
355 * <li>"auto" - The internal height will assume a natural height and no scrollbars will be used.</li>
356 * <li>"50px" - The internal height in the exact height specified in pixels, e.g. "250px" for a 250 pixel height - note that you must include the units.</li>
357 * </ul>
358 * <p>
359 * <b>Note</b>: The Height option, if set, will override the AspectRatio. Therefore, if you intend to set
360 * the calendar's height via the AspectRatio then you will need to unset the Height option by setting
361 * it to null() or an empty string.
362 *
363 * @param BBjString height! A BBjString corresponding to the desired height setting as listed above.
364*/
365public void setHeight(BBjString height!) { }
366/**
367 * Returns the height setting parameter for the calendar.
368 *
369 * @return BBjString A BBjString corresponding to the height setting as listed in the <code>setHeight()</code> method.
370*/
371public BBjString getHeight() { }
372/**
373 * Sets the text of the provided button, where the button is identified via a constant like CalenarAPI.CALENDAR_TOOLBAR_BUTTON_TODAY.
374 *
375 * @param BBjString buttonName! The toolbar button to which the new text should apply, that is identified via a constant like CalenarAPI.CALENDAR_TOOLBAR_BUTTON_TODAY.
376 * @param BBjString buttonText! The desired button text.
377*/
378public void setButtonText(BBjString buttonName!, BBjString buttonText!) { }
379/**
380 * Returns the text of the provided button or null() if the text has not been set, where the button is identified via a constant like CalenarAPI.CALENDAR_TOOLBAR_BUTTON_TODAY.
381 *
382 * @param BBjString buttonName! The toolbar button that is identified via a constant like CalenarAPI.CALENDAR_TOOLBAR_BUTTON_TODAY.
383 *
384 * @return BBjString The toolbar button's text, or null() if the button's text has not been customized.
385*/
386public BBjString getButtonText(BBjString buttonName!) { }
387/**
388 * Sets how entries are rendered on the calendar, where the default value is "auto".
389 * <p>
390 * Valid options are for the entry display are:
391 * <ul>
392 * <li>"auto" - The default. When in dayGrid view, renders the entry as a solid rectangle if it is all-day or multi-day. If a timed entry, will render it with a dot. When in other views, will render normally.</li>
393 * <li>"block" - When in dayGrid view, renders the entry as a solid rectangle. When in other views, will render normally.</li>
394 * <li>"list-item" - When in dayGrid view, renders the entry with a dot. When in other views, will render normally.</li>
395 * <li>"background" - Renders the entry by coloring in the entire cell/slot background.</li>
396 * <li>"inverse-background" - Renders the entry by coloring in the spans of time not occupied by the entry.</li>
397 * </ul>
398 *
399 * @param BBjString entryDisplay! A BBjString corresponding to the desired display setting as listed above.
400*/
401public void setEntryDisplay(BBjString entryDisplay!) { }
402/**
403 * Returns the display setting parameter for the calendar entries.
404 *
405 * @return BBjString A BBjString corresponding to the entry display setting as listed in the <code>setEntryDisplay()</code> method.
406*/
407public BBjString getEntryDisplay() { }
408/**
409 * Sets the frequency for displaying time slots, where the default value is "00:30:00" which translates to 30 minutes.
410 * <p>
411 * You can increase or decrease the slot duration in certain views by modifying this value. The format of the string
412 * is "HH:MM:SS" where H = hours, M = minutes, and S = seconds. For example, to increase the granularity of the timeslots
413 * on the calendar you can set each slot to be 5 minutes by passing in the value "00:05:00".
414 * <p>
415 * Applicable views: <code>CalendarAPI.CALENDAR_VIEW_TIME_GRID_DAY(), CalendarAPI.CALENDAR_VIEW_TIME_GRID_WEEK()</code>
416 *
417 * @param BBjString slotDuration! A BBjString corresponding to the desired time slot duration.
418 *
419 * @throws 530 if an invalid date/time parameter is provided
420 *
421 * @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.
422*/
423public void setSlotDuration(BBjString slotDuration!) { }
424/**
425 * Returns the time slot duration.
426 *
427 * @return BBjString A BBjString corresponding to the time slot duration.
428 *
429 * @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.
430*/
431public BBjString getSlotDuration() { }
432/**
433 * Sets the minimum time slot (earliest time) that will be displayed for each day, where the default value is "00:00:00" (midnight).
434 * <p>
435 * You can affect the starting time displayed on the calendar by modifying this value. The format of
436 * the string is "HH:MM:SS" where H = hours, M = minutes, and S = seconds. For example, to have the day start at 6:30 AM
437 * you can set this variable to "06:30:00".
438 *
439 * @param BBjString slotMinTime! A BBjString corresponding to the earliest time slot to be displayed in a time grid view.
440 *
441 * @throws 530 if an invalid date/time parameter is provided
442 *
443 * @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.
444*/
445public void setSlotMinTime(BBjString slotMinTime!) { }
446/**
447 * Returns the minimum time slot (earliest time) that will be displayed for each day in a time grid view.
448 *
449 * @return BBjString A BBjString that indicates the earliest time displayed.
450 *
451 * @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.
452*/
453public BBjString getSlotMinTime() { }
454/**
455 * Sets the maximum time slot (latest time) that will be displayed for each day, where the default value is "24:00:00" (midnight).
456 * <p>
457 * You can affect the ending time displayed on the calendar by modifying this value. The format of
458 * the string is "HH:MM:SS" where H = hours, M = minutes, and S = seconds. For example, to have the day end at, and include,
459 * 9:30 PM you can set this variable to "21:31:00".
460 * <p>
461 * <b>Note</b>: This should be specified as an exclusive end time, meaning that it indicates the ending time
462 * up to, but not including, this value. Therefore, the default of "24:00:00" means that time slots up to and
463 * including "23:59:59" will be displayed, but "24:00:00" will not be displayed.
464 *
465 * @param BBjString slotMaxTime! A BBjString corresponding to the latest time slot to be displayed in a time grid view.
466 *
467 * @throws 530 if an invalid date/time parameter is provided
468 *
469 * @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.
470*/
471public void setSlotMaxTime(BBjString slotMaxTime!) { }
472/**
473 * Returns the maximum time slot (latest time) that will be displayed for each day in a time grid view.
474 *
475 * @return BBjString A BBjString that indicates the latest time displayed.
476 *
477 * @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.
478*/
479public BBjString getSlotMaxTime() { }
480/**
481 * Sets the time slot that the calendar initially scrolls to, where the default value is "06:00:00" or 6 AM.
482 * <p>
483 * This only affects the initial position and does not prevent users from scrolling forwards and backwards
484 * from this time slot. If you need to prevent users from seeing earlier or later timeslots, use the SlotMinTime
485 * and/or SlotMaxTime options instead.
486 * <p>
487 * Valid options are:
488 * <ul>
489 * <li>"15:45" or "15:45:30" - a time string.</li>
490 * <li>"current" - a special value that indicates that the calendar should scroll to the current time.</li>
491 * </ol>
492 *
493 * @param BBjString slotScrollTime! A BBjString corresponding to the initial time slot that the calendar initially scrolls to.
494 *
495 * @throws 530 if an invalid date/time parameter is provided
496 *
497 * @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.
498*/
499public void setSlotScrollTime(BBjString slotScrollTime!) { }
500/**
501 * Returns the time slot that the calendar initially scrolls to.
502 *
503 * @return BBjString A BBjString that indicates the initial time slot that the calendar initially scrolls to.
504 *
505 * @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.
506*/
507public BBjString getSlotScrollTime() { }
508/**
509 * Sets the calendar's timezone, where the default value is "local" for the user's local timezone.
510 * <p>
511 * Whereas the local timezone will vary from browser to browser, the "UTC" time zone is guaranteed to be the same in every browser.
512 * It will also not experience daylight savings times. The UTC time zone was designed this way and it serves as a time zone that
513 * other time zones define themselves relative to.
514 * <p>
515 * Valid options are "local", "UTC", or a named timezone like "MST" or "America/New_York".
516 *
517 * @param BBjString timeZone! A BBjString corresponding to the calendar's desired timezone.
518 *
519 * @see <a href = 'https://fullcalendar.io/docs/timeZone' target = '_blank'>FullCalendar TimeZone</a> for information about specifying timezones.
520*/
521public void setTimeZone(BBjString timeZone!) { }
522/**
523 * Returns the calendar's timezone setting which defaults to "local".
524 *
525 * @return BBjString A BBjString that indicates the calendar's current timeZone property.
526*/
527public BBjString getTimeZone() { }
528/**
529 * Sets the initial view type when the calendar loads, where the default value is <code><a href = 'CalendarAPI.html#CALENDAR_VIEW_DAY_GRID_MONTH' target = '_blank'>CalendarAPI.CALENDAR_VIEW_DAY_GRID_MONTH()</a></code>.
530 * <p>
531 * The initial view can be set to any of the <code>CalendarAPI.CALENDAR_VIEW_*</code> types.
532 *
533 * @param BBjString initialView! A BBjString corresponding to the desired view type.
534*/
535public void setInitialView(BBjString initialView!) { }
536/**
537 * Returns the calendar's initial view type.
538 *
539 * @return BBjString A BBjString that indicates the initial view type.
540*/
541public BBjString getInitialView() { }
542/**
543 * Sets the initial date that the calendar displays, where the default value is the current date.
544 * <p>
545 * The value can be anything that can parse into a date, including a simple ISO8601 date string like "2014-02-01"
546 * or an advanced string like "2018-06-01T12:30:00-05:00" that specifies a date, time, and has a -05:00 UTC offset.
547 *
548 * @param BBjString initialDate! A BBjString corresponding to the desired initial date.
549 *
550 * @throws 530 if an invalid date/time parameter is provided
551 *
552 * @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.
553*/
554public void setInitialDate(BBjString initialDate!) { }
555/**
556 * Returns the initial date that the calendar displays.
557 *
558 * @return BBjString A BBjString that indicates the initial date that the calendar displays.
559 *
560 * @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.
561*/
562public BBjString getInitialDate() { }
563/**
564 * Sets the calendar's starting date that the user sees and interact with, where the default value is unset (null()) as setting it limits the dates shown.
565 * <p>
566 * The value can be anything that can parse into a date, including a simple ISO8601 date string like "2014-02-01". If your application needs to limit
567 * the timeframes for an appointment, you can provide a starting and/or ending date to set a valid modification range. That way, the calendar displays the
568 * invalid dates differently and the user may only move an entry inside the valid range. If they attempt to move an entry outside of the valid range,
569 * the entry will move back to its original position and the calendar cancels the user's modification. This has several benefits, including:
570 * <ul>
571 * <li>The calendar's date navigation buttons are intelligently hooked into the valid date range, so the user can only navigate to days, weeks, or months within the valid range.</li>
572 * <li>The calendar makes the invalid dates gray, making it easy to tell which dates are available and which are off-limits.</li>
573 * <li>The calendar takes care of handling the case where the user tries to reschedule an entry to an invalid date by repositioning it to its original time and date.
574 * The calendar handles this scenario 100%, so your application doesn't have to provide any code to deal with invalid dates.</li>
575 * </ul>
576 * Note that it's possible to set only the starting date or the ending date. For example, you can set only the starting date so that users can only reschedule entries into the future:
577 * <blockquote><pre><code><div style = 'background:#E1E6EA; border:1px solid #000; border-radius:1em; padding:0 1em;'>
578 *
579 * <i><span style = 'color:#080;'>rem Get and then set the desired options inline dynamically, calling the render() method afterwards to force the calendar to update with the new configuration:</span></i>
580 * myCal!.getOptions().setValidRangeStart(date(jul(0, 0, 0), "%Yl-%Mz-%Dz"))
581 * myCal!.render()
582 * </div></code></pre></blockquote>
583 *
584 * @param BBjString validRangeStart! A BBjString corresponding to the calendar's starting date.
585 *
586 * @throws 530 if an invalid date/time parameter is provided
587 *
588 * @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.
589*/
590public void setValidRangeStart(BBjString validRangeStart!) { }
591/**
592 * Returns the calendar's starting date that the user sees and interact with.
593 *
594 * @return BBjString The calendar's starting date that the user sees and interact with.
595*/
596public BBjString getValidRangeStart() { }
597/**
598 * Sets the calendar's ending date that the user sees and interact with, where the default value is unset (null()) as setting it limits the dates shown.
599 * <p>
600 * The value can be anything that can parse into a date, including a simple ISO8601 date string like "2014-02-01". If your application needs to limit
601 * the timeframes for an appointment, you can provide a starting and/or ending date to set a valid modification range. That way, the calendar displays the
602 * invalid dates differently and the user may only move an entry inside the valid range. If they attempt to move an entry outside of the valid range,
603 * the entry will move back to its original position and the calendar cancels the user's modification. This has several benefits, including:
604 * <ul>
605 * <li>The calendar's date navigation buttons are intelligently hooked into the valid date range, so the user can only navigate to days, weeks, or months within the valid range.</li>
606 * <li>The calendar makes the invalid dates gray, making it easy to tell which dates are available and which are off-limits.</li>
607 * <li>The calendar takes care of handling the case where the user tries to reschedule an entry to an invalid date by repositioning it to its original time and date.
608 * The calendar handles this scenario 100%, so your application doesn't have to provide any code to deal with invalid dates.</li>
609 * </ul>
610 * Note that it's possible to set only the starting date or the ending date. For example, you can set only the starting date so that users can only reschedule entries into the future:
611 * <blockquote><pre><code><div style = 'background:#E1E6EA; border:1px solid #000; border-radius:1em; padding:0 1em;'>
612 *
613 * <i><span style = 'color:#080;'>rem Get and then set the desired options inline dynamically, calling the render() method afterwards to force the calendar to update with the new configuration:</span></i>
614 * myCal!.getOptions().setValidRangeStart(date(jul(0, 0, 0), "%Yl-%Mz-%Dz"))
615 * myCal!.render()
616 * </div></code></pre></blockquote>
617 *
618 * @param BBjString validRangeEnd! A BBjString corresponding to the calendar's ending date.
619 *
620 * @throws 530 if an invalid date/time parameter is provided
621 *
622 * @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.
623*/
624public void setValidRangeEnd(BBjString validRangeEnd!) { }
625/**
626 * Returns the calendar's ending date that the user sees and interact with.
627 *
628 * @return BBjString The calendar's ending date that the user sees and interact with.
629 *
630 * @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.
631*/
632public BBjString getValidRangeEnd() { }
633/**
634 * Sets the fallback duration for timed entries that do not have a specified end time, where the default value is "01:00" or one hour.
635 * <p>
636 * This only applies to entries that are not designated as all-day entries.
637 *
638 * @param BBjString defaultTimedEntryDuration! A BBjString with the fallback duration for timed entries that do not have a specified end time in an ISO 8601 time format like "02:00" for two hours.
639 *
640 * @throws 530 if an invalid date/time parameter is provided
641 *
642 * @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.
643*/
644public void setDefaultTimedEntryDuration(BBjString defaultTimedEntryDuration!) { }
645/**
646 * Returns the fallback duration for timed entries that do not have a specified end time.
647 *
648 * @return BBjString A BBjString corresponding to the duration for timed entries that do not have a specified end time.
649 *
650 * @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.
651*/
652public BBjString getDefaultTimedEntryDuration() { }
653/**
654 * Sets the API key that is used to access public Goolge Calendars programmatically, where the default value can <b>only</b> be used for testing and should be changed before use in a production environment.
655 * <p>
656 * <b>Note</b>: THIS KEY WON'T WORK IN PRODUCTION! Before accessing a public Google calendar,
657 * you must create your own developer API key and set this option to your key's value.
658 *
659 * @param BBjString googleCalendarApiKey! A BBjString filled with your Google developer API key.
660 *
661 * @see <a href = 'https://developers.google.com/calendar/quickstart/js' target = '_blank'>Google Calendar API</a> for information about a developer account and creating an API key.
662*/
663public void setGoogleCalendarApiKey(BBjString googleCalendarApiKey!) { }
664/**
665 * Returns the API key that is used to access public Goolge Calendars programmatically.
666 *
667 * @return BBjString A BBjString filled with the Google developer API key.
668*/
669public BBjString getGoogleCalendarApiKey() { }
670/**
671 * Sets the theme that the calendar uses.
672 * <p>
673 * The <code>BBjCalendarWidget</code> has several options for modifying its appearance via themes. By default,
674 * the calendar uses a standard default theme. However, it's possible to change its appearance by applying
675 * a theme, which is a Bootstrap-compatible CSS file. Therefore, you can change the calendar's default
676 * appearance by applying the default Bootstrap theme, or a custom Bootstrap theme. The <code>BBjCalendarWidget</code>
677 * comes pre-installed with several free Bootstrap themes that were obtained from
678 * <a href = 'https://bootswatch.com/' target = '_blank'>https://bootswatch.com/</a> and are installed in the
679 * <code>BBjCalendarWidget</code>'s <code>lib/bootstrap/themes/</code> directory. Each theme consists of a
680 * subdirectory based on the name of the theme with two files in the directory: <code>bootstrap.css</code> and
681 * <code>bootstrap.min.css</code>. The minimized version is used unless the calendar is set to debug mode.
682 * <p>
683 * Note that there are many more freely-available Bootstrap-compatible themes besides those that come
684 * pre-installed with the <code>BBjCalendarWidget</code>. You many choose to download other free themes,
685 * or purchase a theme, and use it with the calendar. To do so, ensure that the CSS files are installed
686 * in a directory named after the theme under the <code>BBjCalendarWidget/lib/bootstrap/themes/</code> directory.
687 * The calendar widget will use the appropriate CSS file, <code>bootstrap.css</code> or <code>bootstrap.min.css</code>
688 * from that directory based on whether the calendar is in debug mode or not.
689 * <p>
690 * Possible values for the theme are:
691 * <ul>
692 * <li><code>"standard"</code> - The default calendar theme, which doesn't use Bootstrap.</li>
693 * <li><code>"bootstrap"</code> - The default Bootstrap theme.</li>
694 * <li><code>"&lt;theme_name&gt;"</code> - A custom bootstrap-compatible theme such as "slate", which is the name of the theme directory under the <code>BBjCalendarWidget/lib/bootstrap/themes/</code> directory.</li>
695 * </ul>
696 *
697 * @param BBjString theme! A BBjString filled with the desired theme name.
698 *
699 * @see <a href = 'https://getbootstrap.com/' target = '_blank'>https://getbootstrap.com/</a> for the latest Bootstrap files
700 * @see <a href = 'https://bootswatch.com/' target = '_blank'>https://bootswatch.com/</a> for more free Bootstrap themes
701*/
702public void setTheme(BBjString theme!) { }
703/**
704 * Returns the theme that the calendar is using.
705 *
706 * @return BBjString A BBjString that indicates the current calendar theme.
707*/
708public BBjString getTheme() { }
709/**
710 * Sets the header toolbar that's displayed on the calendar given a previously-defined
711 * <code>CalendarToolbar</code> object. To disable (remove or hide) the toolbar from the calendar, call this
712 * method providing <code>null()</code> for the <code>CalendarToolbar</code> object.
713 * <p>
714 * Note that the calendar's option define a header toolbar by default.
715 *
716 * @param CalendarToolbar toolbar! A <code>CalendarToolbar</code> object that has been previously defined, or <code>null()</code> to disable the toolbar.
717*/
718public void setHeaderToolbar(CalendarToolbar toolbar!) { }
719/**
720 * Returns the header or footer toolbar that's displayed on the calendar.
721 *
722 * @return CalendarToolbar A <code>CalendarToolbar</code> object or <code>null()</code> if the toolbar has been disabled.
723*/
724public CalendarToolbar getHeaderToolbar() { }
725/**
726 * Sets the footer toolbar that's displayed on the calendar given a previously-defined
727 * <code>CalendarToolbar</code> object. To disable (remove or hide) the toolbar from the calendar, call this
728 * method providing <code>null()</code> for the <code>CalendarToolbar</code> object.
729 * <p>
730 * Note that the calendar's option do NOT define a footer toolbar by default.
731 *
732 * @param CalendarToolbar toolbar! A <code>CalendarToolbar</code> object that has been previously defined, or <code>null()</code> to disable the toolbar.
733*/
734public void setFooterToolbar(CalendarToolbar toolbar!) { }
735/**
736 * Returns the header or footer toolbar that's displayed on the calendar.
737 *
738 * @return CalendarToolbar A <code>CalendarToolbar</code> object or <code>null()</code> if the toolbar has been disabled.
739*/
740public CalendarToolbar getFooterToolbar() { }
741/**
742 * Sets which days of the week should be hidden in the calendar, and defaults to an empty vector []
743 * which means that none of the days will be hidden.
744 * <p>
745 * The vector is filled with the day-of-week indices to hide, where each index is zero-based and ranges
746 * from 0 (Sunday) to 6 (Saturday). For example, by adding the numbers 1, 3, and 5 to the vector then Mondays,
747 * Wednesdays, and Fridays will be hidden. Note that you can also hide weekends via the <code>EnableWeekends()</code> method.
748 *
749 * @param BBjVector hiddenDays! A BBjVector filled with day numbers where the value is zero-based and ranges from 0 (Sunday) to 6 (Saturday).
750*/
751public void setHiddenDays(BBjVector hiddenDays!) { }
752/**
753 * Sets which days of the week should be hidden in the calendar
754 * <p>
755 * This is similar to the <code>setHiddenDays()</code> method that takes a BBjVector except that it takes a comma-delimted string of tags for succinctness.
756 *
757 * @param BBjString hiddenDays! A comma-delimted string of day numbers such as "1, 3, 5" to indicate that Mondays, Wednesdays, and Fridays should be hidden.
758*/
759public void setHiddenDays(BBjString hiddenDays!) { }
760/**
761 * Returns which days of the week should be hidden in the calendar in a BBjVector containing the day numbers that should be hidden.
762 *
763 * @return BBjVector
764*/
765public BBjVector getHiddenDays() { }
766/**
767 * Sets the background color for all calendar entries, unless overridden by the <code>CalendarEntry</code> object itself.
768 * <p>
769 * This is similar to the <code>setEntryBackgroundColor()</code> method that takes a BBjString except that it takes a BBjColor object for convenience.
770 * <p>
771 * <b>Note</b>: This can be overridden for specific calendar entries via the <code>CalendarEntry</code>'s methods.
772 *
773 * @param BBjColor entryBorderColor! A BBjColor that determines the background color for all calendar entries.
774 *
775 * @see <a href = 'https://documentation.basis.com/BASISHelp/WebHelp/gridctrl/bbjcolor_bbj.htm' target = '_blank'>BBjColor</a> for more information on BBjColors.
776*/
777public void setEntryBackgroundColor(BBjColor entryBackgroundColor!) { }
778/**
779 * Sets the background color for all calendar entries, unless overridden by the <code>CalendarEntry</code> object itself.
780 * <p>
781 * This is similar to the <code>setEntryBackgroundColor()</code> method that takes a BBjColor except that it takes any valid CSS color string for succinctness.
782 * <p>
783 * Colors may be specified as any valid CSS color, so <code>"red"</code>, <code>"rgb(255, 0, 0)"</code>, <code>"#ff0000"</code>, <code>"#f00"</code>, <code>"hsl(0, 100%, 50%)"</code>, and all the versions of those formats that include an alpha channel are valid ways of specifying the color red.
784 * <p>
785 * <b>Note</b>: This can be overridden for specific calendar entries via the <code>CalendarEntry</code>'s methods.
786 *
787 * @param BBjString backgroundColor! A BBjString that contains the color for the entry's background.
788*/
789public void setEntryBackgroundColor(BBjString backgroundColor!) { }
790/**
791 * Returns the background color for all calendar entries.
792 *
793 * @return BBjString A BBjString that indicates the background color for all calendar entries.
794*/
795public BBjString getEntryBackgroundColor() { }
796/**
797 * Sets the border color for all calendar entries, unless overridden by the <code>CalendarEntry</code> object itself.
798 * <p>
799 * This is similar to the <code>setEntryBorderColor()</code> method that takes a BBjString except that it takes a BBjColor object for convenience.
800 * <p>
801 * <b>Note</b>: This can be overridden for specific calendar entries via the <code>CalendarEntry</code>'s methods.
802 *
803 * @param BBjColor entryBorderColor! A BBjColor that determines the border color for all calendar entries.
804 *
805 * @see <a href = 'https://documentation.basis.com/BASISHelp/WebHelp/gridctrl/bbjcolor_bbj.htm' target = '_blank'>BBjColor</a> for more information on BBjColors.
806*/
807public void setEntryBorderColor(BBjColor entryBorderColor!) { }
808/**
809 * Sets the border color for all calendar entries, unless overridden by the <code>CalendarEntry</code> object itself.
810 * <p>
811 * This is similar to the <code>setEntryBorderColor()</code> method that takes a BBjColor except that it takes any valid CSS color string for succinctness.
812 * <p>
813 * Colors may be specified as any valid CSS color, so <code>"red"</code>, <code>"rgb(255, 0, 0)"</code>, <code>"#ff0000"</code>, <code>"#f00"</code>, <code>"hsl(0, 100%, 50%)"</code>, and all the versions of those formats that include an alpha channel are valid ways of specifying the color red.
814 * <p>
815 * <b>Note</b>: This can be overridden for specific calendar entries via the <code>CalendarEntry</code>'s methods.
816 *
817 * @param BBjString borderColor! A BBjString that contains the color for the entry's border.
818*/
819public void setEntryBorderColor(BBjString borderColor!) { }
820/**
821 * Returns the border color for all calendar entries.
822 *
823 * @return BBjString A BBjString that indicates the border color for all calendar entries.
824*/
825public BBjString getEntryBorderColor() { }
826/**
827 * Sets the text color for all calendar entries, unless overridden by the <code>CalendarEntry</code> object itself.
828 * <p>
829 * This is similar to the <code>setEntryTextColor()</code> method that takes a BBjString except that it takes a BBjColor object for convenience.
830 * <p>
831 * <b>Note</b>: This can be overridden for specific calendar entries via the <code>CalendarEntry</code>'s methods.
832 *
833 * @param BBjColor entryTextColor! A BBjColor that determines the text color for calendar entries.
834 *
835 * @see <a href = 'https://documentation.basis.com/BASISHelp/WebHelp/gridctrl/bbjcolor_bbj.htm' target = '_blank'>BBjColor</a> for more information on BBjColors.
836*/
837public void setEntryTextColor(BBjColor entryTextColor!) { }
838/**
839 * Sets the text color for all calendar entries, unless overridden by the <code>CalendarEntry</code> object itself.
840 * <p>
841 * This is similar to the <code>setEntryTextColor()</code> method that takes a BBjColor except that it takes any valid CSS color string for succinctness.
842 * <p>
843 * Colors may be specified as any valid CSS color, so <code>"red"</code>, <code>"rgb(255, 0, 0)"</code>, <code>"#ff0000"</code>, <code>"#f00"</code>, <code>"hsl(0, 100%, 50%)"</code>, and all the versions of those formats that include an alpha channel are valid ways of specifying the color red.
844 * <p>
845 * <b>Note</b>: This can be overridden for specific calendar entries via the <code>CalendarEntry</code>'s methods.
846 *
847 * @param BBjString textColor! A string that BBjString the color for the entry's text.
848*/
849public void setEntryTextColor(BBjString textColor!) { }
850/**
851 * Returns the text color for all calendar entries.
852 *
853 * @return BBjString A BBjString that indicates the text color for all calendar entries.
854*/
855public BBjString getEntryTextColor() { }
856/**
857 * Sets the combined background and border color for all calendar entries, unless overridden by the <code>CalendarEntry</code> object itself.
858 * <p>
859 * This is similar to the <code>setEntryColor()</code> method that takes a BBjString except that it takes a BBjColor object for convenience.
860 * <p>
861 * <b>Note</b>: This can be overridden for specific calendar entries via the <code>CalendarEntry</code>'s methods.
862 *
863 * @param BBjColor entryColor! A BBjColor that is used for the background and border for calendar entries.
864 *
865 * @see <a href = 'https://documentation.basis.com/BASISHelp/WebHelp/gridctrl/bbjcolor_bbj.htm' target = '_blank'>BBjColor</a> for more information on BBjColors.
866*/
867public void setEntryColor(BBjColor entryColor!) { }
868/**
869 * Sets the background and border color for all calendar entries, unless overridden by the <code>CalendarEntry</code> object itself.
870 * <p>
871 * This is similar to the <code>setEntryColor()</code> method that takes a BBjColor except that it takes any valid CSS color string for succinctness.
872 * <p>
873 * Colors may be specified as any valid CSS color, so <code>"red"</code>, <code>"rgb(255, 0, 0)"</code>, <code>"#ff0000"</code>, <code>"#f00"</code>, <code>"hsl(0, 100%, 50%)"</code>, and all the versions of those formats that include an alpha channel are valid ways of specifying the color red.
874 * <p>
875 * <b>Note</b>: This can be overridden for specific calendar entries via the <code>CalendarEntry</code>'s methods.
876 *
877 * @param BBjString color! A BBjString that contains the color for the entry's background and border.
878*/
879public void setEntryColor(BBjString color!) { }
880/**
881 * Returns the background and border color for all calendar entries.
882 *
883 * @return BBjString A BBjString that contains the background and border color for all calendar entries.
884*/
885public BBjString getEntryColor() { }
886/**
887 * Sets the locale for the calendar. Setting the calendar's affects the toolbar button text, month and day-of-week-strings, date formatting, week number calcuation, and the first day of the week.
888 * The locale is set to null() by default.
889 *
890 * @param BBjString locale! A BBjString that contains the desired locale, such as "en-US" for US English, "fr-FR" or "fr" for French (France), "es-MX" for Spanish (Mexico), etc.
891*/
892public void setLocale(BBjString locale!) { }
893/**
894 * Returns the calendar's locale setting which defaults to null() and can be modified via the <code>setLocale()<code> method.
895 *
896 * @return BBjString A BBjString that contains the current locale string, which defaults to null().
897*/
898public BBjString getLocale() { }
899/**
900 * Returns the <code>CalendarOptions</code> as a JsonObject.
901 *
902 * @return JsonObject The calendar's options as a JsonObject.
903 * @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.
904*/
905public JsonObject getAsJsonObject() { }
906/**
907 * Returns a stringified JsonObject representation of <code>CalendarOptions</code> object.
908 *
909 * @return BBjString The calendar's options object in stringified JSON format.
910*/
911public BBjString getAsString() { }
912/**
913 * Returns a formatted, i.e. pretty-printed or beautified, stringified JsonObject representation of the <code>CalendarOptions</code> object.
914 *
915 * @return BBjString The <code>CalendarOptions</code> in formatted stringified JSON format.
916*/
917public BBjString getAsFormattedString() { }
918}