I'd be happy to put together some images later.
Before I do that I will explain the use case that is behind my design.
I have different contact types
Companies, which have different types
People, who can be individuals, employees, suppliers
I have a number of subordinate BOs to Contact, addresses, contact methods (tel no, email addresses, web links), Companies might have direct employees, Companies might have subsidiaries and parents and these parents/subsidiaries have lists of employees.
Initially I had a simple layout of two horizontal content panels and showed a form on top and a query in the lower panel. This was inflexible as each subordinate BO had different display requirements, e.g. Addresses should probably also show with contact methods, so the lower content panel would have to show at a minimum two further content panels, while Companies would show a company parent hierarchy, employees for the Company in context and then contact details for the employee that is in context. That requires 3 content panels in the subordinate panel.
These requirements can't be met with the simple two horizontal panels.
As a side note, the details in the subordinate panel need to remain relevant so if you select a Company, then select the company hierarchy details then change the selected contact to a person then you need to not show a company hierarchy chain but revert to Contact Cards (Addresses and Contact Methods)
To the question of menus being called, this is a bit of a red herring as I only have menus associated with the Home VP. None of the other VPs ever get used as VP they are just a means of holding all of the related Layouts together. The Home VP acts as a frame into which the layouts are inserted like a slide.
Home VP
| menu
|- Show Contacts
|- Show Contracts
| one Content Panel
ContactVP
| ContactHome - (Layout with two horizontal content panels ContactForm ContactSubordinate)
| ContactCards (Layout with two vertical content panels, Addresses and Contact Methods)
| ContactCompanyHierarchy (Layout with three vertical content panels CoHierarchy, InContextEmployees, InContextContactMethods)
Selecting Contact from the HomeVP menu injects the ContactHome Layout from ContactsVP into the Home VP Content Panel
The ContactParent layout has two parts FormPanel and DetailsPanel
The FormPanel displays the form for the contact, the form has buttons at the bottom. The buttons have processes to set LIRU.LastContactPanel to a value and then injects the relevant subordinate Contacts layout into the ContactSubordinate content panel)
The last used Detailspanel is stored as a string in LIRU and the Details panel initial value is driven by a process EXEC STRING 'DISPLAY LAYOUT '+LIRU.LastContactPanelViewed (the actual process is more complicated and includes a chain to make sure if the Contact is a person it selects an alternative default layout if the initial layout was a company related one). This means that the user will return to the last Contacts details view when they last used the screen, so if they look at ContactCards then close the screen and then return to it, then it shows ContactCards when the relaunch it.
This requires a series of different refreshes at different levels.
The ContactDetails panel has a refresh to check if Contact type (Person v Company) changes and that the ContactDetails panel is relevant to the Contact Type
The individual detail panels require refreshes on the sub panels, for example addresses for a company are in a different format to addresses for an employee which are different for individual not company related Contacts.
I've since developed the concept further to instead of placing the Contacts into a HomeVP content panel I now launch it as a different tab within the HomeVP, this allows the user to switch between Contacts and Contracts without losing their place.
To the question of what DISPLAY LAYOUT is doing and is it consuming menus from the source VP, I can't answer, but it doesn't make any difference for my purposes as there are no menus and headers on the ContactVP as everything is maintained on the top layer HomeVP, the ContactVP is only a binder to hold all of the Contact related layouts.
There are a number of steps that I am having to do that could be handled more elegantly with some modifications in AIM, for example the subordinate content panels could inherit their BO context from the parent layout, or from another another query eg CompanyHierarchy selected Company affects the InContextEmployees which affects the InContextContactMethods in the layout showing
Companies-> Employees-> ContactMethods
At the moment the filters are applied from left to right, so you can change the Company selected and drive the output to Employees and have the first record select and then drive the ContactMethods filter. This is fine until you
Select a company with employees and the first employee has some contact method but if you then
Select a second company with no employees there is no record to in the employees section with which to force the output to the contact methods and overwrite the previously selected contact method
I am currently achieving this by refreshing all the queries to the right when it's leftmost neighbour is updated it feels very convoluted and I am diverging from the original question now