Skip to content

Commit

Permalink
more paging fix for uncountable provider (Accounts table on the edit …
Browse files Browse the repository at this point in the history
…resourcce page)
  • Loading branch information
KaterynaHonchar committed Jul 8, 2016
1 parent 8c837a5 commit ecfe84f
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 7 deletions.
Expand Up @@ -233,7 +233,7 @@ public void setType(Class<O> type) {
clearCache();
}

protected boolean isUseObjectCounting(){
public boolean isUseObjectCounting(){
return useObjectCounting;
}

Expand Down
Expand Up @@ -138,6 +138,7 @@ public abstract class ResourceContentPanel extends Panel {
private ShadowKindType kind;
private String intent;
private QName objectClass;
private SelectableBeanObjectDataProvider<ShadowType> provider;

IModel<PrismObject<ResourceType>> resourceModel;

Expand Down Expand Up @@ -224,7 +225,7 @@ protected void newObjectPerformed(AjaxRequestTarget target) {

@Override
protected BaseSortableDataProvider<SelectableBean<ShadowType>> initProvider() {
SelectableBeanObjectDataProvider<ShadowType> provider = (SelectableBeanObjectDataProvider<ShadowType>) super.initProvider();
provider = (SelectableBeanObjectDataProvider<ShadowType>) super.initProvider();
provider.setEmptyListOnNullQuery(true);
provider.setSort(null);
createSearchOptions(provider);
Expand All @@ -244,16 +245,20 @@ protected ObjectQuery createContentQuery() {
if (customQuery != null && customQuery.getFilter() != null) {
filters.add(customQuery.getFilter());
}

ObjectQuery query = new ObjectQuery();
if (filters.size() == 1) {
return ObjectQuery.createObjectQuery(filters.iterator().next());
query = ObjectQuery.createObjectQuery(filters.iterator().next());
setProviderAvailableDataSize(query);
return query;
}

if (filters.size() == 0) {
setProviderAvailableDataSize(query);
return null;
}

return ObjectQuery.createObjectQuery(AndFilter.createAnd(filters));
query = ObjectQuery.createObjectQuery(AndFilter.createAnd(filters));
setProviderAvailableDataSize(query);
return query;
}

@Override
Expand Down Expand Up @@ -469,7 +474,7 @@ private void createSearchOptions(SelectableBeanObjectDataProvider<ShadowType> pr
provider.setUseObjectCounting(useObjectCounting);
provider.setOptions(opts);
if (!useObjectCounting) {
provider.iterator(0, provider.size());
provider.iterator(0, Integer.MAX_VALUE);
provider.setSize(provider.getAvailableData().size());
}
}
Expand Down Expand Up @@ -1091,6 +1096,14 @@ private List<ShadowType> getSelectedShadowsList(ShadowType shadow){
return selectedShadow;
}

private void setProviderAvailableDataSize(ObjectQuery query){
if (provider != null && !provider.isUseObjectCounting()) {
provider.setQuery(query);
provider.iterator(0, Integer.MAX_VALUE);
provider.setSize(provider.getAvailableData().size());
}

}
protected abstract SelectorOptions<GetOperationOptions> addAdditionalOptions();

protected abstract boolean isUseObjectCounting();
Expand Down

0 comments on commit ecfe84f

Please sign in to comment.