08-26-2013 06:50 AM
package org.myproject.mycontraints;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.dictionary.constraint.ListOfValuesConstraint;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.search.ResultSet;
import org.alfresco.service.cmr.search.ResultSetRow;
import org.alfresco.service.cmr.search.SearchService;
public class LoadingMyCombo extends ListOfValuesConstraint {
private static NodeService nodeService;
private static SearchService searchService;
@Override
public void initialize() {
}
@Override
public List<String> getAllowedValues() {
List<String> allowedValues = getSearchResult();
super.setAllowedValues(allowedValues);
return allowedValues;
}
private List<String> getSearchResult()
{
List<String> allowedValues = new ArrayList<String>();
String query ="PATH:\"/app:company_home/cm:DOCUMENTS\"";
ResultSet resultSet = searchService.query(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, SearchService.LANGUAGE_SOLR_FTS_ALFRESCO, query);
for (ResultSetRow row : resultSet)
allowedValues.add((String)nodeService.getProperty(row.getNodeRef(), ContentModel.PROP_NAME));
Collections.sort(allowedValues);
if (allowedValues.size() == 0)
allowedValues.add("");
return allowedValues;
}
@SuppressWarnings("unchecked")
@Override
public void setAllowedValues(List allowedValues) {
}
@Override
public void evaluateCollection(Collection<Object> collection) {
}
public void setNodeService(NodeService nodeService) {
LoadingMyCombo.nodeService = nodeService;
}
public void setSearchService(SearchService searchService) {
LoadingMyCombo.searchService = searchService;
}
}
<constraint name="prfx:load-my-combo" type="org.myproject.mycontraints.LoadingMyCombo" >
<parameter name="allowedValues">
<list>
</list>
</parameter>
<parameter name="caseSensitive"><value>true</value></parameter>
</constraint>
<bean id="mytests.myconstraints.ConstraintInitializer" class="org.myproject.mycontraints.LoadingMyCombo">
<property name="nodeService">
<ref bean="nodeService"/>
</property>
<property name="searchService">
<ref bean="searchService"/>
</property>
</bean>
12-10-2014 06:41 AM
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.