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