package com.idega.business.chooser.helper; import java.util.List; import com.idega.builder.bean.AdvancedProperty; import com.idega.cal.bean.CalendarPropertiesBean; import com.idega.core.builder.business.ICBuilderConstants; import com.idega.user.bean.PropertiesBean; import com.idega.util.CoreConstants; public class CalendarsChooserHelper extends GroupsChooserHelper { public CalendarPropertiesBean getExtractedPropertiesFromString(String value) { PropertiesBean propBean = super.getExtractedPropertiesFromString(value); if (propBean == null) { return null; } CalendarPropertiesBean calendarProperties = new CalendarPropertiesBean(propBean); if (value == null) { return calendarProperties; } String[] values = value.split(ICBuilderConstants.BUILDER_MODULE_PROPERTY_VALUES_SEPARATOR); if (values == null) { return calendarProperties; } List<String> ledgers = getValuesFromString(values[values.length - 1], CoreConstants.COMMA); List<String> events = getValuesFromString(values[values.length - 2], CoreConstants.COMMA); if (isValueListValid(events)) { calendarProperties.setEvents(events); } if (isValueListValid(ledgers)) { calendarProperties.setLedgers(ledgers); } return calendarProperties; } public String[] getPropertyValue(List<AdvancedProperty> properties, boolean groupsAreRquired) { String[] basicValues = super.getPropertyValue(properties, groupsAreRquired); if (basicValues == null) { return null; } if (basicValues.length > 1) { return basicValues; } StringBuffer value = new StringBuffer(basicValues[0]).append(ICBuilderConstants.BUILDER_MODULE_PROPERTY_VALUES_SEPARATOR); String events = findPropertyValue(properties, ICBuilderConstants.CALENDAR_EVENTS_ADVANCED_PROPERTY_KEY); if (events == null) { events = CoreConstants.MINUS; } String ledgers = findPropertyValue(properties, ICBuilderConstants.CALENDAR_LEDGERS_ADVANCED_PROPERTY_KEY); if (ledgers == null) { ledgers = CoreConstants.MINUS; } value.append(events).append(ICBuilderConstants.BUILDER_MODULE_PROPERTY_VALUES_SEPARATOR).append(ledgers); return new String[] {value.toString()}; } private boolean isValueListValid(List<String> values) { if (values == null) { return false; } if (values.size() == 1) { if (values.get(0).equals(CoreConstants.MINUS)) { return false; } } return true; } }