Посмотрите на EnclosureContainer
, который реализует именно то, что вы просите, но для одного ребенка. Это должно быть легко распространяться на нескольких детей.
Хитрость заключается в том, чтобы вызывать детский метод onConfigure
в контейнере isVisible()
:
public boolean isVisible()
{
child.configure();
return child.determineVisibility();
}
С Component#onConfigure()
:
* EG to link visiliby of
* two markup containers the following should be done:
*
*
* final WebMarkupContainer source=new WebMarkupContainer("a") {
* protected void onConfigure() {
* setVisible(Math.rand()>0.5f);
* }
* };
*
* WebMarkupContainer linked=new WebMarkupContainer("b") {
* protected void onConfigure() {
* source.configure(); // make sure source is configured
* setVisible(source.isVisible());
* }
* }
Это основано на калитке 1.5