CCM NG: Possible fix for missing items in FolderBrowser (see #2739).

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5188 8810af33-2d31-482b-a856-94f89814c4df

Former-commit-id: 0feb8271d5
pull/2/head
jensp 2018-01-10 16:56:23 +00:00
parent 5ea86b45f7
commit 774a96cfd9
4 changed files with 39 additions and 31 deletions

View File

@ -105,7 +105,7 @@ public class FolderBrowser extends Table {
private StringParameter atozFilterParameter = null; private StringParameter atozFilterParameter = null;
private StringParameter filterParameter = null; private StringParameter filterParameter = null;
private FolderManipulator folderManipulator; private FolderManipulator folderManipulator;
private Paginator paginator; // private Paginator paginator;
// private FolderManipulator.FilterForm filterForm; // private FolderManipulator.FilterForm filterForm;
private long folderSize; private long folderSize;
@ -227,13 +227,13 @@ public class FolderBrowser extends Table {
return folderSize; return folderSize;
} }
protected Paginator getPaginator() { // protected Paginator getPaginator() {
return paginator; // return paginator;
} // }
//
protected void setPaginator(final Paginator paginator) { // protected void setPaginator(final Paginator paginator) {
this.paginator = paginator; // this.paginator = paginator;
} // }
protected String getFilter(final PageState state) { protected String getFilter(final PageState state) {
return (String) state.getValue(filterParameter); return (String) state.getValue(filterParameter);

View File

@ -291,6 +291,7 @@ public class FolderBrowserController {
final String orderDirection, final String orderDirection,
final int firstResult, final int firstResult,
final int maxResults) { final int maxResults) {
final List<Folder> subFolders = findSubFolders(folder, final List<Folder> subFolders = findSubFolders(folder,
filterTerm, filterTerm,
orderBy, orderBy,
@ -302,9 +303,9 @@ public class FolderBrowserController {
.map(subFolder -> buildRow(subFolder)) .map(subFolder -> buildRow(subFolder))
.collect(Collectors.toList()); .collect(Collectors.toList());
if (subFolders.size() > maxResults) { // if (subFolders.size() >= maxResults) {
return subFolderRows; // return subFolderRows;
} else { // } else {
final int maxItems = maxResults - subFolders.size(); final int maxItems = maxResults - subFolders.size();
final int firstItem = firstResult - subFolders.size(); final int firstItem = firstResult - subFolders.size();
@ -323,7 +324,7 @@ public class FolderBrowserController {
rows.addAll(itemRows); rows.addAll(itemRows);
return rows; return rows;
} // }
} }
/** /**

View File

@ -60,7 +60,7 @@ class FolderBrowserTableModelBuilder
return Table.EMPTY_MODEL; return Table.EMPTY_MODEL;
} else { } else {
folderBrowser.getRowSelectionModel().clearSelection(state); folderBrowser.getRowSelectionModel().clearSelection(state);
final Paginator paginator = folderBrowser.getPaginator(); // final Paginator paginator = folderBrowser.getPaginator();
final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final FolderBrowserController controller = cdiUtil final FolderBrowserController controller = cdiUtil
.findBean(FolderBrowserController.class); .findBean(FolderBrowserController.class);
@ -78,8 +78,8 @@ class FolderBrowserTableModelBuilder
orderDirection = folderBrowser.getSortDirection(state); orderDirection = folderBrowser.getSortDirection(state);
} }
final String atozFilter = folderBrowser.getAtoZfilter(state); final String atozFilter = folderBrowser.getAtoZfilter(state);
final int first = paginator.getFirst(state); // final int first = paginator.getFirst(state);
final int pageSize = paginator.getPageSize(state); // final int pageSize = paginator.getPageSize(state);
final String filterTerm; final String filterTerm;
if (filter != null && !filter.trim().isEmpty()) { if (filter != null && !filter.trim().isEmpty()) {
@ -96,16 +96,23 @@ class FolderBrowserTableModelBuilder
if (filterTerm == null) { if (filterTerm == null) {
rows = controller.getObjectRows(folder, rows = controller.getObjectRows(folder,
orderBy, orderBy,
orderDirection, orderDirection);
first - 1, // rows = controller.getObjectRows(folder,
pageSize); // orderBy,
// orderDirection,
// first - 1,
// pageSize);
} else { } else {
rows = controller.getObjectRows(folder, rows = controller.getObjectRows(folder,
filterTerm, filterTerm,
orderBy, orderBy,
orderDirection, orderDirection);
first - 1, // rows = controller.getObjectRows(folder,
pageSize); // filterTerm,
// orderBy,
// orderDirection,
// first - 1,
// pageSize);
} }
LOGGER.debug("Retrieve table rows in {} ms.", LOGGER.debug("Retrieve table rows in {} ms.",

View File

@ -883,7 +883,7 @@ public class FolderManipulator extends SimpleContainer implements
private static final String ITEM_VIEW = "itemView"; private static final String ITEM_VIEW = "itemView";
private final FolderBrowser folderBrowser; private final FolderBrowser folderBrowser;
private final Paginator paginator; // private final Paginator paginator;
private final OptionGroup checkboxGroup; private final OptionGroup checkboxGroup;
private final SingleSelect actionSelect; private final SingleSelect actionSelect;
private final Submit submit; private final Submit submit;
@ -904,11 +904,11 @@ public class FolderManipulator extends SimpleContainer implements
folderBrowser.setFilterParameter(filterParam); folderBrowser.setFilterParameter(filterParam);
// folderBrowser.setFilterForm(filterForm); // folderBrowser.setFilterForm(filterForm);
folderBrowser.setFolderManipulator(FolderManipulator.this); folderBrowser.setFolderManipulator(FolderManipulator.this);
paginator = new Paginator( // paginator = new Paginator(
new FolderBrowserPaginationModelBuilder(folderBrowser), // new FolderBrowserPaginationModelBuilder(folderBrowser),
CMSConfig.getConfig().getFolderBrowseListSize()); // CMSConfig.getConfig().getFolderBrowseListSize());
folderBrowser.setPaginator(paginator); // folderBrowser.setPaginator(paginator);
panel.add(paginator); // panel.add(paginator);
panel.add(folderBrowser); panel.add(folderBrowser);
LOGGER.debug("Adding filter form..."); LOGGER.debug("Adding filter form...");
@ -966,16 +966,16 @@ public class FolderManipulator extends SimpleContainer implements
return folderBrowser; return folderBrowser;
} }
public Paginator getPaginator() { // public Paginator getPaginator() {
return paginator; // return paginator;
} // }
@Override @Override
public void reset(final PageState state) { public void reset(final PageState state) {
checkboxGroup.setValue(state, null); checkboxGroup.setValue(state, null);
actionSelect.setValue(state, null); actionSelect.setValue(state, null);
paginator.reset(state); // paginator.reset(state);
//state.setValue(m_aToZfilter, null); //state.setValue(m_aToZfilter, null);
state.setValue(filterParam, null); state.setValue(filterParam, null);
filterForm.getFilterField().setValue(state, null); filterForm.getFilterField().setValue(state, null);