From f238d5b2d12015a6d5d311f3621804d6100d5635 Mon Sep 17 00:00:00 2001 From: David Caruana Date: Mon, 9 Jan 2006 12:14:58 +0000 Subject: [PATCH] Allow selectNodes kind of searches in Node Browser. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2082 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../web/bean/AdminNodeBrowseBean.java | 39 ++++++++++++++++++- source/web/WEB-INF/faces-config.xml | 4 ++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/source/java/org/alfresco/web/bean/AdminNodeBrowseBean.java b/source/java/org/alfresco/web/bean/AdminNodeBrowseBean.java index bb37ad3b58..29c4de2ac8 100644 --- a/source/java/org/alfresco/web/bean/AdminNodeBrowseBean.java +++ b/source/java/org/alfresco/web/bean/AdminNodeBrowseBean.java @@ -40,6 +40,7 @@ import org.alfresco.service.cmr.repository.Path; import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.SearchService; +import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.RegexQNamePattern; import org.alfresco.util.ISO9075; @@ -65,11 +66,12 @@ public class AdminNodeBrowseBean queryLanguages.add(new SelectItem("noderef")); queryLanguages.add(new SelectItem(SearchService.LANGUAGE_XPATH)); queryLanguages.add(new SelectItem(SearchService.LANGUAGE_LUCENE)); + queryLanguages.add(new SelectItem("selectnodes")); } // query and results private String query = null; - private SearchResults searchResults = new SearchResults(null); + private SearchResults searchResults = new SearchResults((List)null); // stores and node private DataModel stores = null; @@ -86,6 +88,7 @@ public class AdminNodeBrowseBean private NodeService nodeService; private DictionaryService dictionaryService; private SearchService searchService; + private NamespaceService namespaceService; /** * @param nodeService node service @@ -111,6 +114,13 @@ public class AdminNodeBrowseBean this.dictionaryService = dictionaryService; } + /** + * @param namespaceService namespace service + */ + public void setNamespaceService(NamespaceService namespaceService) + { + this.namespaceService = namespaceService; + } /** * Gets the list of repository stores @@ -475,6 +485,12 @@ public class AdminNodeBrowseBean setNodeRef(nodeRef); return "node"; } + else if (queryLanguage.equals("selectnodes")) + { + List nodes = searchService.selectNodes(getNodeRef(), query, null, namespaceService, false); + searchResults = new SearchResults(nodes); + return "search"; + } // perform search searchResults = new SearchResults(searchService.query(getNodeRef().getStoreRef(), queryLanguage, query)); @@ -717,6 +733,27 @@ public class AdminNodeBrowseBean } } + /** + * Construct + * + * @param resultSet query result set + */ + public SearchResults(List resultSet) + { + rows = new ListDataModel(); + if (resultSet != null) + { + List assocRefs = new ArrayList(resultSet.size()); + for (NodeRef nodeRef : resultSet) + { + ChildAssociationRef childAssocRef = nodeService.getPrimaryParent(nodeRef); + assocRefs.add(childAssocRef); + } + rows.setWrappedData(assocRefs); + length = resultSet.size(); + } + } + /** * Gets the row count * diff --git a/source/web/WEB-INF/faces-config.xml b/source/web/WEB-INF/faces-config.xml index cd1fce0be4..10a8b2668e 100644 --- a/source/web/WEB-INF/faces-config.xml +++ b/source/web/WEB-INF/faces-config.xml @@ -879,6 +879,10 @@ searchService #{SearchService} + + namespaceService + #{NamespaceService} +