Einige Feinheiten im CategoryFilter

git-svn-id: https://svn.libreccm.org/ccm/trunk@2340 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2013-10-08 12:35:06 +00:00
parent f1d71671ae
commit e36ecd9b7a
1 changed files with 19 additions and 10 deletions

View File

@ -62,11 +62,20 @@ public class CategoryFilter {
final FilterFactory filterFactory = objects.getFilterFactory(); final FilterFactory filterFactory = objects.getFilterFactory();
final CompoundFilter compoundFilter = filterFactory.and(); final CompoundFilter compoundFilter = filterFactory.and();
for (String value : values) { for (String value : values) {
if (catNameToCatId.containsKey(value)) { if (multiple) {
//When using multiple search we assume text input for now
if (catNameToCatId.containsKey(value)) {
final com.arsdigita.persistence.Filter filter = filterFactory.in(
"parent.id", "com.arsdigita.categorization.objectIDsInSubtree");
//filter.set("categoryID", value);
filter.set("categoryID", catNameToCatId.get(value));
compoundFilter.addFilter(filter);
}
} else {
//Otherwise, we assume that we get the ID of a single category
final com.arsdigita.persistence.Filter filter = filterFactory.in( final com.arsdigita.persistence.Filter filter = filterFactory.in(
"parent.id", "com.arsdigita.categorization.objectIDsInSubtree"); "parent.id", "com.arsdigita.categorization.objectIDsInSubtree");
//filter.set("categoryID", value); filter.set("categoryID", value);
filter.set("categoryID", catNameToCatId.get(value));
compoundFilter.addFilter(filter); compoundFilter.addFilter(filter);
} }
} }
@ -82,8 +91,8 @@ public class CategoryFilter {
boolean invalidFound = false; boolean invalidFound = false;
final StringBuffer searchString = new StringBuffer(); final StringBuffer searchString = new StringBuffer();
final StringBuffer categoriesStr = new StringBuffer(); final StringBuffer categoriesStr = new StringBuffer();
filter.addAttribute("type", "categoryFilter"); filter.addAttribute("type", "categoryFilter");
filter.addAttribute("label", label); filter.addAttribute("label", label);
final CategoryCollection categories = filterRootCat.getChildren(); final CategoryCollection categories = filterRootCat.getChildren();
@ -108,7 +117,7 @@ public class CategoryFilter {
} else { } else {
multipleElem.setText("false"); multipleElem.setText("false");
} }
for (String value : values) { for (String value : values) {
if (!catNameToCatId.containsKey(value)) { if (!catNameToCatId.containsKey(value)) {
invalid.newChildElement("value").setText(value); invalid.newChildElement("value").setText(value);
@ -144,7 +153,7 @@ public class CategoryFilter {
public String getLabel() { public String getLabel() {
return label; return label;
} }
public String getSeparator() { public String getSeparator() {
return separator; return separator;
} }
@ -152,11 +161,11 @@ public class CategoryFilter {
public void setSeparator(final String separator) { public void setSeparator(final String separator) {
this.separator = separator; this.separator = separator;
} }
public boolean isMultiple() { public boolean isMultiple() {
return multiple; return multiple;
} }
public void setMultiple(final boolean multiple) { public void setMultiple(final boolean multiple) {
this.multiple = multiple; this.multiple = multiple;
} }