Filterbox für Folder verwendet jetzt eine Substring-Search (... LIKE '%foo%' statt ... LIKE 'foo%'
git-svn-id: https://svn.libreccm.org/ccm/trunk@921 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
d957e4e786
commit
7e17c324dc
|
|
@ -109,6 +109,7 @@ public class FolderBrowser extends Table {
|
|||
private final static String SORT_KEY_CREATION_DATE = "creationDate";
|
||||
private StringParameter m_sortType = new StringParameter("sortType");
|
||||
private StringParameter m_sortDirection = new StringParameter("sortDirn");
|
||||
private StringParameter m_aToZfilter = null;
|
||||
private StringParameter m_filter = null;
|
||||
private FolderManipulator.FilterForm m_filterForm;
|
||||
private long m_folderSize;
|
||||
|
|
@ -138,21 +139,21 @@ public class FolderBrowser extends Table {
|
|||
m_currentFolder = currentFolder;
|
||||
|
||||
/*
|
||||
|
||||
|
||||
This code should be uncommented if the desired behaviour is for a change
|
||||
of folder to cause reversion to default ordering of contained items
|
||||
(by name ascending). Our feeling is that the user selected ordering
|
||||
should be retained for the duration of the folder browsing session. If
|
||||
anyone wants this alternative behaviour it should be brought in under
|
||||
the control of a config parameter.
|
||||
|
||||
|
||||
m_currentFolder.addChangeListener(new ChangeListener() {
|
||||
|
||||
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
PageState state = e.getPageState();
|
||||
state.setValue(m_sortType, m_sortType.getDefaultValue());
|
||||
state.setValue(m_sortDirection, m_sortDirection.getDefaultValue());
|
||||
|
||||
|
||||
}});
|
||||
*/
|
||||
setClassAttr("dataTable");
|
||||
|
|
@ -245,6 +246,10 @@ public class FolderBrowser extends Table {
|
|||
m_filterForm = filterForm;
|
||||
}
|
||||
|
||||
protected void setAtoZfilterParameter(StringParameter aToZfilter) {
|
||||
m_aToZfilter = aToZfilter;
|
||||
}
|
||||
|
||||
protected void setFilterParameter(StringParameter filter) {
|
||||
m_filter = filter;
|
||||
}
|
||||
|
|
@ -285,14 +290,20 @@ public class FolderBrowser extends Table {
|
|||
} else {
|
||||
t.getRowSelectionModel().clearSelection(s);
|
||||
s_log.debug(String.format("filter = '%s'", s.getValue(m_filter)));
|
||||
Folder.ItemCollection itemColl = (Folder.ItemCollection) m_itemColl.
|
||||
get(s);
|
||||
Folder.ItemCollection itemColl =
|
||||
(Folder.ItemCollection) m_itemColl.get(s);
|
||||
s_log.debug(String.format("itemColl.size = %d", itemColl.size()));
|
||||
|
||||
m_folderSize = itemColl.size();
|
||||
if (s.getValue(m_filter) != null) {
|
||||
if (s.getValue(m_aToZfilter) != null) {
|
||||
itemColl.addFilter(String.format(
|
||||
"lower(name) like lower('%s%%') or lower(displayName) like lower('%s%%')",
|
||||
s.getValue(m_aToZfilter),
|
||||
s.getValue(m_aToZfilter)));
|
||||
}
|
||||
if (s.getValue(m_filter) != null) {
|
||||
itemColl.addFilter(String.format(
|
||||
"lower(name) like lower('%%%s%%') or lower(displayName) like lower('%%%s%%')",
|
||||
s.getValue(m_filter),
|
||||
s.getValue(m_filter)));
|
||||
}
|
||||
|
|
@ -329,9 +340,15 @@ public class FolderBrowser extends Table {
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (state.getValue(m_filter) != null) {
|
||||
if (state.getValue(m_aToZfilter) != null) {
|
||||
itemColl.addFilter(String.format(
|
||||
"lower(name) like lower('%s%%') or lower(displayName) like lower('%s%%')",
|
||||
state.getValue(m_aToZfilter),
|
||||
state.getValue(m_aToZfilter)));
|
||||
}
|
||||
if (state.getValue(m_filter) != null) {
|
||||
itemColl.addFilter(String.format(
|
||||
"lower(name) like lower('%%%s%%') or lower(displayName) like lower('%%%s%%')",
|
||||
state.getValue(m_filter),
|
||||
state.getValue(m_filter)));
|
||||
}
|
||||
|
|
@ -481,7 +498,8 @@ public class FolderBrowser extends Table {
|
|||
} else {
|
||||
ItemResolver resolver = section.getItemResolver();
|
||||
return new Link(name, resolver.generateItemURL(state, id,
|
||||
name, section, coll.
|
||||
name, section,
|
||||
coll.
|
||||
getVersion()));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,6 +113,7 @@ public class FolderManipulator extends SimpleContainer
|
|||
private ItemView m_itemView;
|
||||
private TargetSelector m_targetSelector;
|
||||
private FilterForm m_filterForm;
|
||||
private StringParameter m_aToZfilter = new StringParameter("aToZfilter");
|
||||
private StringParameter m_filter = new StringParameter("filter");
|
||||
|
||||
public FolderManipulator(FolderSelectionModel folderSel) {
|
||||
|
|
@ -144,6 +145,7 @@ public class FolderManipulator extends SimpleContainer
|
|||
p.setVisibleDefault(m_filterForm, true);
|
||||
p.addComponentStateParam(this, m_sources);
|
||||
p.addComponentStateParam(this, m_action);
|
||||
p.addComponentStateParam(this, m_aToZfilter);
|
||||
p.addComponentStateParam(this, m_filter);
|
||||
}
|
||||
|
||||
|
|
@ -347,7 +349,8 @@ public class FolderManipulator extends SimpleContainer
|
|||
m_targetSelector.setVisible(s, false);
|
||||
m_targetSelector.reset(s);
|
||||
s.setValue(m_action, null);
|
||||
s.setValue(m_sources, null);
|
||||
s.setValue(m_sources, null);
|
||||
s.setValue(m_aToZfilter, null);
|
||||
s.setValue(m_filter, null);
|
||||
}
|
||||
|
||||
|
|
@ -456,6 +459,7 @@ public class FolderManipulator extends SimpleContainer
|
|||
group.setSubject(panel);
|
||||
|
||||
m_browser = new FolderBrowser(m_srcFolderSel);
|
||||
m_browser.setAtoZfilterParameter(m_aToZfilter);
|
||||
m_browser.setFilterParameter(m_filter);
|
||||
m_browser.setFilterForm(m_filterForm);
|
||||
m_paginator = new Paginator((PaginationModelBuilder) m_browser.
|
||||
|
|
@ -503,6 +507,7 @@ public class FolderManipulator extends SimpleContainer
|
|||
m_checkboxGroup.setValue(s, null);
|
||||
m_actionSel.setValue(s, null);
|
||||
m_paginator.reset(s);
|
||||
s.setValue(m_aToZfilter, null);
|
||||
s.setValue(m_filter, null);
|
||||
m_filterForm.getFilterField().setValue(s, null);
|
||||
}
|
||||
|
|
@ -551,6 +556,7 @@ public class FolderManipulator extends SimpleContainer
|
|||
allLink.addActionListener(new ActionListener() {
|
||||
|
||||
public void actionPerformed(ActionEvent event) {
|
||||
event.getPageState().setValue(m_aToZfilter, "");
|
||||
event.getPageState().setValue(m_filter, "");
|
||||
}
|
||||
});
|
||||
|
|
@ -563,7 +569,7 @@ public class FolderManipulator extends SimpleContainer
|
|||
link.addActionListener(new ActionListener() {
|
||||
|
||||
public void actionPerformed(ActionEvent event) {
|
||||
event.getPageState().setValue(m_filter,
|
||||
event.getPageState().setValue(m_aToZfilter,
|
||||
Character.toString(
|
||||
lowerCaseChar));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue