writer.endElement("div");
}
private void encodeInitScript(FacesContext context, MonthTable timetableView, List<TimetableResource> resources) throws IOException {
Map<String, TimeZone> timeZoneParam = getTimeZoneParamForJSONConverter(timetableView);
JSONArray resourcesJsArray = DataUtil.listToJSONArray(resources, timeZoneParam);
timetableView.getAttributes().put(USE_RESOURCE_SEPARATION_MODE_ATTR, resourcesJsArray.length() > 0);
String clientId = timetableView.getClientId(context);
JSONObject editingOptions = getEditingOptionsObj(timetableView);
JSONObject stylingParams = getStylingParamsObj(context, timetableView);
JSONObject calendarOptions = getCalendarOptionsObj(timetableView);
TimeZone timeZone = (timetableView.getTimeZone() != null)
? timetableView.getTimeZone()
: TimeZone.getDefault();
boolean editable = timetableView.isEditable();
boolean thereIsChangeListener = timetableView.getTimetableChangeListener() != null ||
timetableView.getTimetableChangeListeners().length > 0;
if (editable && !thereIsChangeListener) {
Log.log(context, "The " + getComponentName() + " with clientID=[" + clientId + "] is set to be editable, but is not configured to accept the changes. " +
"You should either make it read-only explicitly (using editable=\"false\" attribute), or define timetableChangeListener attriubte to accept the changes (see " + getComponentName() + " reference).");
editable = false;
}
List<AbstractTimetableEvent> events = new ArrayList<AbstractTimetableEvent>();
JSONObject eventParams = composeEventParams(context, timetableView, events);
Map<String, AbstractTimetableEvent> loadedEvents = timetableView.getLoadedEvents();
loadedEvents.clear();
for (AbstractTimetableEvent event : events) {
loadedEvents.put(event.getId(), event);
}
JSONArray areaSettings = encodeEventAreas(context, timetableView, events);
UITimetableEvent uiEvent = timetableView.getUITimetableEvent();
Timetable timetable = timetableView.getTimetable();