@Override public void makeQuery(Map<String, Object> map, String prefix, XWikiCriteria query, List<String> criteriaList) { Object values = map.get(prefix); if ((values == null) || (values.equals(""))) { return; } // if multiselect // :category member of obj.category // otherwise // :category = obj.category String separator = isMultiSelect() ? " member of " : " = "; if (values instanceof String) { // general comparison '=' - tests at least one value = criteriaList.add("'" + values.toString() + "'" + separator + getFullQueryPropertyName()); } else { String[] valuesarray = (String[]) values; String[] criteriaarray = new String[valuesarray.length]; for (int i = 0; i < valuesarray.length; i++) { criteriaarray[i] = "'" + valuesarray[i] + "'" + separator + getFullQueryPropertyName(); } criteriaList.add("(" + StringUtils.join(criteriaarray, " or ") + ")"); } return; }
@Override public BaseProperty newProperty() { BaseProperty lprop; if (isRelationalStorage() && isMultiSelect()) { lprop = new DBStringListProperty(); } else if (isMultiSelect()) { lprop = new StringListProperty(); } else { lprop = new StringProperty(); } return lprop; }
@Override public BaseProperty newPropertyfromXML(Element ppcel) { if (!isMultiSelect()) { return super.newPropertyfromXML(ppcel); } @SuppressWarnings("unchecked") List<Element> elist = ppcel.elements("value"); BaseProperty lprop = newProperty(); if (lprop instanceof ListProperty) { List<String> llist = ((ListProperty) lprop).getList(); for (int i = 0; i < elist.size(); i++) { Element el = elist.get(i); llist.add(el.getText()); } } else { for (int i = 0; i < elist.size(); i++) { Element el = elist.get(i); ((StringProperty) lprop).setValue(el.getText()); } } return lprop; }
@Override public BaseProperty fromStringArray(String[] strings) { if (!isMultiSelect()) { return fromString(strings[0]); } BaseProperty prop = newProperty(); if (prop instanceof StringProperty) { return fromString(strings[0]); } List<String> list = new ArrayList<String>(); ((ListProperty) prop).setList(list); if (strings.length == 0) { return prop; } if ((strings.length == 1) && (getDisplayType().equals("input") || isMultiSelect())) { ((ListProperty) prop).setList(getListFromString(strings[0], getSeparators(), false)); return prop; } // If Multiselect and multiple results for (int i = 0; i < strings.length; i++) { String item = strings[i]; if (!item.trim().equals("")) { list.add(item); } } return prop; }
@Override public BaseProperty fromString(String value) { BaseProperty prop = newProperty(); if (isMultiSelect()) { ((ListProperty) prop).setList(getListFromString(value, getSeparators(), false)); } else { prop.setValue(value); } return prop; }
String value = getElementValue(rawvalue); input radio = new input((getDisplayType().equals("radio") && !isMultiSelect()) ? input.radio : input.checkbox, prefix + name, value); radio.setID("xwiki-form-" + name + "-" + count);
select.setMultiple(isMultiSelect()); select.setSize(getSize()); select.setName(prefix + name);
lp1.setId(lp.getId()); lp1.setName(lp.getName()); if (lc.isMultiSelect()) { List tmp; if (lp.getValue() instanceof List) {