Skip to content

Commit

Permalink
MID-1744 - fix for search on PageReports.
Browse files Browse the repository at this point in the history
  • Loading branch information
Erik Suta committed Feb 20, 2014
1 parent 30f14fb commit a157b25
Showing 1 changed file with 29 additions and 31 deletions.
Expand Up @@ -142,8 +142,9 @@ private void initLayout() {

//TablePanel table = new TablePanel<ReportDto>(ID_REPORTS_TABLE,
// new ListDataProvider<ReportDto>(this, new Model(REPORTS)), initColumns(ajaxDownloadBehavior));
TablePanel table = new TablePanel<>(ID_REPORTS_TABLE, new ObjectDataProvider(PageReports.this, ReportType.class),
initColumns());
ObjectDataProvider provider = new ObjectDataProvider(PageReports.this, ReportType.class);
provider.setQuery(createQuery());
TablePanel table = new TablePanel<>(ID_REPORTS_TABLE, provider, initColumns());
table.setShowPaging(false);
table.setOutputMarkupId(true);
mainForm.add(table);
Expand Down Expand Up @@ -458,7 +459,7 @@ private TablePanel getReportTable(){
}

private void searchPerformed(AjaxRequestTarget target){
ObjectQuery query = createQuery(target);
ObjectQuery query = createQuery();
ObjectDataProvider provider = getDataProvider();
provider.setQuery(query);

Expand All @@ -470,48 +471,45 @@ private void searchPerformed(AjaxRequestTarget target){
target.add(getFeedbackPanel());
}

private ObjectQuery createQuery(AjaxRequestTarget target){
/*
private ObjectQuery createParentOnlyQuery(){
ObjectQuery query = new ObjectQuery();
Boolean showSubtasks = false;
EqualsFilter boolFilter = EqualsFilter.createEqual(ReportType.F_PARENT, ReportType.class,
getPrismContext(), null, showSubtasks);
query.setFilter(boolFilter);
return query;
}
*/

private ObjectQuery createQuery(){
ReportSearchDto dto = searchModel.getObject();
String text = dto.getText();
Boolean parent = !dto.isParent();
ObjectQuery query = new ObjectQuery();

if(!StringUtils.isEmpty(text)){
// try{
PolyStringNormalizer normalizer = getPrismContext().getDefaultPolyStringNormalizer();
String normalizedText = normalizer.normalize(text);

ObjectFilter substring = SubstringFilter.createSubstring(ReportType.F_NAME, ReportType.class,
getPrismContext(), PolyStringNormMatchingRule.NAME, normalizedText);

if(parent == true){
EqualsFilter boolFilter = EqualsFilter.createEqual(ReportType.F_PARENT, ReportType.class,
getPrismContext(), null, parent);
PolyStringNormalizer normalizer = getPrismContext().getDefaultPolyStringNormalizer();
String normalizedText = normalizer.normalize(text);

// EqualsFilter nullFilter = EqualsFilter.createEqual(ReportType.F_PARENT, ReportType.class,
// getPrismContext(), null, null);
ObjectFilter substring = SubstringFilter.createSubstring(ReportType.F_NAME, ReportType.class,
getPrismContext(), PolyStringNormMatchingRule.NAME, normalizedText);

// OrFilter or = OrFilter.createOr(boolFilter, nullFilter);

query.setFilter(AndFilter.createAnd(substring, boolFilter));
} else {
query.setFilter(substring);
}
if(parent == true){
EqualsFilter boolFilter = EqualsFilter.createEqual(ReportType.F_PARENT, ReportType.class,
getPrismContext(), null, parent);

// }catch (Exception e){
// LoggingUtils.logException(LOGGER, "Couldn't create query filter", e);
// error(getString("PageReports.message.queryError", e.getMessage()));
// target.add(getFeedbackPanel());
// }
query.setFilter(AndFilter.createAnd(substring, boolFilter));
} else {
query.setFilter(substring);
}
} else{
if(parent == true){
EqualsFilter boolFilter = EqualsFilter.createEqual(ReportType.F_PARENT, ReportType.class,
getPrismContext(), null, parent);

// EqualsFilter nullFilter = EqualsFilter.createEqual(ReportType.F_PARENT, ReportType.class,
// getPrismContext(), null, null);

// query.setFilter(OrFilter.createOr(boolFilter, nullFilter));
query.setFilter(boolFilter);
} else{
query = null;
Expand Down

0 comments on commit a157b25

Please sign in to comment.