Improve ResultProvider API
--------------------------

                 Key: NXP-2847
                 URL: http://jira.nuxeo.org/browse/NXP-2847
             Project: Nuxeo Enterprise Platform
          Issue Type: User story
            Reporter: Thierry Delprat
            Assignee: Thierry Delprat
            Priority: Major
             Fix For: 5.2 M4



The Dev Story :
=========

As a developer from a SI that uses Nuxeo.

My Goal :
------------
I want to manipulate lists of DocumentModels inside Nuxeo framework.
I want to be able to define this list :
 - by making a search query (QueryModel + QMFarm)
 - writting a dedicated factory class (Farm)

Use cases include :
 - display / select / paginate in datagrids in JSF
 - display / select / paginate in datagrids in WebEngine
 - java code direct access to a named list
 - Rest access for GWT / Flex

Nice to have
 - a cache/invalidation system
 (at least for Seam/JSF environment)
 - possibility to persist a list 
 - manage selection
 - tree binding 

My requirements :
-----------------------

I don't want to write a class to hande parameters handling and invalidation 
code.

The caching system must be transparent.


What we have right know in NXP :
===================

QueryModels :
------------------
Execute parametric queries.
Make a query persistent (persist parameters in a DM).

DocumentListManager :
-------------------------------
Define named DocumentModelList with Add/Delete/Remove operation.
Assign named lists to a Seam scope.
Make list (resulting list of DocRef) persistent in a SQL (via Directory).

JSF UI to browse and do CRUD operation on them (ClipBoard).

ResultProviders :
---------------------
Provides 
 - API for a paginated list of DocumentModel
 - Factory (Farm) model (Custom or QueryModel based)
 - CacheSystem based on Seam

Design notes :
========

WebEngine :
----------------
Must be easy fetch a PageDocumentList.
Must provide an easy REST API (like listing a Virtual Folder).

GWT :
--------
We can probably find a killer datagrid to make a binding demo.

Flex (low priority):
-------
We should look at granite/tide to see if we can use it for integration.

Seam / JSF :
----------------
Each PagedDocumentProvider must be associated by config to a JSF scope 
(Stateless, Event, Page, Conversation ....).
Provide tag to iterate over a named PagedDocumentProvider :
 - handle cache lookup
 - provide "clever" rendered evaluation (depending on JSF lifecycle state)

Make a doc / tutorial !




-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.nuxeo.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
ECM-tickets mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm-tickets

Reply via email to