To go along with the updated release of my Scaffolding project yesterday, I've created an example database created with that template and containing a basic use of my model framework:
This demonstrates a few things about the framework:
Setting up the two classes that go with each object type - the object itself (e.g.
model.Department) and the "manager" class that handles fetching objects and collections (e.g.
model.DepartmentManager) and adding the collections to faces-config.xml.
Tying the manager class to the views in a database using views with a common prefix. In this case, they point to the current database, though I recommend storing the data in another DB.
Adding relations between objects. A
Person object is tied to a given
Department by way of the
getDepartment method, while a
Department lists its people via the
Using the collections on an XPage with
xp:viewPanel controls, including showing "columns" that are not in the view - the objects automatically fetch from the document when the column isn't present (which is inefficient but useful sometimes).
Attaching a model object to an XPage using a
xp:dataContext and using a controller class to save it.
I have a few ideas in mind to improve day-to-day use of the model framework (for example, I may set up proper data sources for individual objects so they can tie into the normal save events), so they may change over time, but this is how I develop most apps today.