Hi Marloplax,

Thanks again for all your time on this. I'm going to try to keep this shortish as I know your time is important.

Here's what I have so far:

1. In the main Document class, Create a Model for each application passing each one a separate XML file for the application it represents. The Model separates the XML into Variables/Arrays for its related View.

2. In the Document class, create a "ViewComponents" class for each application, and pass it it's related Model (i.e. for galleryViewComponents pass galleryViewModel).

3. Inside each "ViewComponents" class, instantiate any other views needed for that view (application), for example ImageView, buttonView, ComboBoxView etc, and reference the Model passed to ViewComponents to provide these 'smaller' views inside ViewComponents with data.

4. Set up any listeners for any Views inside the ViewComponents class - inside the ViewComponents class itself, to update when model for ViewComponents changes.

5. A ViewComponents class represents each application, so an application can have multiple viewComponents classes, that each represent a collection of other views that make up the main view?

Is this right?

I guess my main question here is where I instantiate the 'smaller' views of the Main (application) View.

Naturally the Main View (i.e. GalleryView) would contain smaller views that make up that view. But do I instantiate these smaller views (i.e. ImageViews, ComboBoxView etc.) inside the Main View (GalleryView), or create these Views in the document class and then add them to the view as components of the 'GalleryView' (following the composite pattern)?

The bottom line is - Am I right in saying the "ViewComponents" class is the Main class for a Main View (i.e. a Gallery application), and that this class creates/encapsualtes it's own (smaller Views), i.e. scrollView, thumbView etc, for that View?

Tom.