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
This commit is contained in:
David Caruana
2006-01-09 12:14:58 +00:00
parent dc2078a44e
commit f238d5b2d1
2 changed files with 42 additions and 1 deletions

View File

@@ -40,6 +40,7 @@ import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSet;
import org.alfresco.service.cmr.search.SearchService; import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.RegexQNamePattern; import org.alfresco.service.namespace.RegexQNamePattern;
import org.alfresco.util.ISO9075; import org.alfresco.util.ISO9075;
@@ -65,11 +66,12 @@ public class AdminNodeBrowseBean
queryLanguages.add(new SelectItem("noderef")); queryLanguages.add(new SelectItem("noderef"));
queryLanguages.add(new SelectItem(SearchService.LANGUAGE_XPATH)); queryLanguages.add(new SelectItem(SearchService.LANGUAGE_XPATH));
queryLanguages.add(new SelectItem(SearchService.LANGUAGE_LUCENE)); queryLanguages.add(new SelectItem(SearchService.LANGUAGE_LUCENE));
queryLanguages.add(new SelectItem("selectnodes"));
} }
// query and results // query and results
private String query = null; private String query = null;
private SearchResults searchResults = new SearchResults(null); private SearchResults searchResults = new SearchResults((List<NodeRef>)null);
// stores and node // stores and node
private DataModel stores = null; private DataModel stores = null;
@@ -86,6 +88,7 @@ public class AdminNodeBrowseBean
private NodeService nodeService; private NodeService nodeService;
private DictionaryService dictionaryService; private DictionaryService dictionaryService;
private SearchService searchService; private SearchService searchService;
private NamespaceService namespaceService;
/** /**
* @param nodeService node service * @param nodeService node service
@@ -111,6 +114,13 @@ public class AdminNodeBrowseBean
this.dictionaryService = dictionaryService; this.dictionaryService = dictionaryService;
} }
/**
* @param namespaceService namespace service
*/
public void setNamespaceService(NamespaceService namespaceService)
{
this.namespaceService = namespaceService;
}
/** /**
* Gets the list of repository stores * Gets the list of repository stores
@@ -475,6 +485,12 @@ public class AdminNodeBrowseBean
setNodeRef(nodeRef); setNodeRef(nodeRef);
return "node"; return "node";
} }
else if (queryLanguage.equals("selectnodes"))
{
List<NodeRef> nodes = searchService.selectNodes(getNodeRef(), query, null, namespaceService, false);
searchResults = new SearchResults(nodes);
return "search";
}
// perform search // perform search
searchResults = new SearchResults(searchService.query(getNodeRef().getStoreRef(), queryLanguage, query)); 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<NodeRef> resultSet)
{
rows = new ListDataModel();
if (resultSet != null)
{
List<ChildAssociationRef> assocRefs = new ArrayList<ChildAssociationRef>(resultSet.size());
for (NodeRef nodeRef : resultSet)
{
ChildAssociationRef childAssocRef = nodeService.getPrimaryParent(nodeRef);
assocRefs.add(childAssocRef);
}
rows.setWrappedData(assocRefs);
length = resultSet.size();
}
}
/** /**
* Gets the row count * Gets the row count
* *

View File

@@ -879,6 +879,10 @@
<property-name>searchService</property-name> <property-name>searchService</property-name>
<value>#{SearchService}</value> <value>#{SearchService}</value>
</managed-property> </managed-property>
<managed-property>
<property-name>namespaceService</property-name>
<value>#{NamespaceService}</value>
</managed-property>
</managed-bean> </managed-bean>
<!-- Forums managed beans --> <!-- Forums managed beans -->