<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Sorting a list of DocumentModel in a pageProvider in Nuxeo Forum</title>
    <link>https://connect.hyland.com/t5/nuxeo-forum/sorting-a-list-of-documentmodel-in-a-pageprovider/m-p/328594#M15595</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I have created a new pageProvider in java which extends the CoreQueryDocumentPageProvider. My purpose is to find all the documents in the current document and the documents inside them on and on.&lt;/P&gt;
&lt;P&gt;This makes me using a recursive request. So I think I must to do it in java rather than with NXQL.&lt;/P&gt;
&lt;P&gt;I am using this pageprovider in a contentview in Studio. But the problem is that the sorting of the table is not working.&lt;/P&gt;
&lt;P&gt;Here's my page provider :&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;public class ListeDetailDossierPageProvider extends
	CoreQueryDocumentPageProvider {

@Override
public List&amp;lt;DocumentModel&amp;gt; getCurrentPage() {

	if (currentPageDocuments == null) {
		currentPageDocuments = new ArrayList&amp;lt;DocumentModel&amp;gt;();
		if (hasError()) {
			return currentPageDocuments;
		}
		setResultsCount(0);

		try {
			executeQuery();
		} catch (ClientException e) {
			errorMessage = e.getMessage();
		}
	}
	return currentPageDocuments;
}

private void executeQuery() throws ClientException {

	Object[] params = getParameters();
	currentPageDocuments = new ArrayList&amp;lt;DocumentModel&amp;gt;();

	if (params != null &amp;amp;&amp;amp; params.length == 1 &amp;amp;&amp;amp; params[0] != null) {
		currentPageDocuments = getAllChildren(null,
				getCoreSession().getDocument(new IdRef((String) params[0])));
		resultsCount = currentPageDocuments.size();
	}
}

public List&amp;lt;DocumentModel&amp;gt; getAllChildren(List&amp;lt;DocumentModel&amp;gt; list,
		DocumentModel parent) {
	if (list == null) {
		list = new ArrayList&amp;lt;&amp;gt;();
	}

	if (!parent.isFolder()) {
		return list;
	}

	try {
		for (DocumentModel children : getCoreSession().getChildren(parent.getRef())) {
			list.add(children);
			getAllChildren(list, children);
		}
	} catch (ClientException e) {
		return new ArrayList&amp;lt;&amp;gt;();
	}
	return list;
}
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 06 Feb 2015 10:20:29 GMT</pubDate>
    <dc:creator>pmbroca_</dc:creator>
    <dc:date>2015-02-06T10:20:29Z</dc:date>
    <item>
      <title>Sorting a list of DocumentModel in a pageProvider</title>
      <link>https://connect.hyland.com/t5/nuxeo-forum/sorting-a-list-of-documentmodel-in-a-pageprovider/m-p/328594#M15595</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I have created a new pageProvider in java which extends the CoreQueryDocumentPageProvider. My purpose is to find all the documents in the current document and the documents inside them on and on.&lt;/P&gt;
&lt;P&gt;This makes me using a recursive request. So I think I must to do it in java rather than with NXQL.&lt;/P&gt;
&lt;P&gt;I am using this pageprovider in a contentview in Studio. But the problem is that the sorting of the table is not working.&lt;/P&gt;
&lt;P&gt;Here's my page provider :&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;public class ListeDetailDossierPageProvider extends
	CoreQueryDocumentPageProvider {

@Override
public List&amp;lt;DocumentModel&amp;gt; getCurrentPage() {

	if (currentPageDocuments == null) {
		currentPageDocuments = new ArrayList&amp;lt;DocumentModel&amp;gt;();
		if (hasError()) {
			return currentPageDocuments;
		}
		setResultsCount(0);

		try {
			executeQuery();
		} catch (ClientException e) {
			errorMessage = e.getMessage();
		}
	}
	return currentPageDocuments;
}

private void executeQuery() throws ClientException {

	Object[] params = getParameters();
	currentPageDocuments = new ArrayList&amp;lt;DocumentModel&amp;gt;();

	if (params != null &amp;amp;&amp;amp; params.length == 1 &amp;amp;&amp;amp; params[0] != null) {
		currentPageDocuments = getAllChildren(null,
				getCoreSession().getDocument(new IdRef((String) params[0])));
		resultsCount = currentPageDocuments.size();
	}
}

public List&amp;lt;DocumentModel&amp;gt; getAllChildren(List&amp;lt;DocumentModel&amp;gt; list,
		DocumentModel parent) {
	if (list == null) {
		list = new ArrayList&amp;lt;&amp;gt;();
	}

	if (!parent.isFolder()) {
		return list;
	}

	try {
		for (DocumentModel children : getCoreSession().getChildren(parent.getRef())) {
			list.add(children);
			getAllChildren(list, children);
		}
	} catch (ClientException e) {
		return new ArrayList&amp;lt;&amp;gt;();
	}
	return list;
}
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 06 Feb 2015 10:20:29 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/nuxeo-forum/sorting-a-list-of-documentmodel-in-a-pageprovider/m-p/328594#M15595</guid>
      <dc:creator>pmbroca_</dc:creator>
      <dc:date>2015-02-06T10:20:29Z</dc:date>
    </item>
    <item>
      <title>Re: Sorting a list of DocumentModel in a pageProvider</title>
      <link>https://connect.hyland.com/t5/nuxeo-forum/sorting-a-list-of-documentmodel-in-a-pageprovider/m-p/328595#M15596</link>
      <description>&lt;P&gt;Nevermind,
I solved my problem. I replace the &lt;CODE&gt;getCoreSession().getChildren(parent.getRef())&lt;/CODE&gt;
with:&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;String nxql = "SELECT * FROM Document WHERE ecm:parentId = " + "'" + parent.getId() +"'" + " AND ecm:isCheckedInVersion = 0 " + "AND ecm:mixinType != 'HiddenInNavigation' " + "AND ecm:currentLifeCycleState != 'deleted' " + getSortClause(sortInfos); List&amp;lt;DocumentModel&amp;gt; childrenList = getCoreSession() .query(nxql);&lt;/CODE&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Feb 2015 11:32:35 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/nuxeo-forum/sorting-a-list-of-documentmodel-in-a-pageprovider/m-p/328595#M15596</guid>
      <dc:creator>pmbroca_</dc:creator>
      <dc:date>2015-02-06T11:32:35Z</dc:date>
    </item>
  </channel>
</rss>

