Mam element blokowy, kontener, który powinien być ukryty, gdy jego elementy Wicket (guziki) są ukryte. Innymi słowy, jeśli widoczny jest przycisk podrzędny dla dziecka, pojemnik powinien być widoczny.Kontener wicket, który jest ukryty, gdy wszystkie jego składniki podrzędne są ukryte.
Wcześniej jeden z przycisków był zawsze widoczny, jeśli były jakieś przyciski, więc użyłem tego przycisku do kontrolowania widoczności <wicket:enclosure>
, obsługując to wszystko po stronie HTML.
Teraz specyfikacje uległy zmianie, dzięki czemu przyciski mogą być ukryte/widoczne niezależnie, więc prosta obudowa nie będzie działać (myślę).
mam go pracy z czymś takim:
HTML:
<wicket:container wicket:id="downloadButtons">
<wicket:message key="download.foo.bar"/>:
<input type="button" wicket:id="excelDownloadButton" wicket:message="value:download.excel"/>
<input type="button" wicket:id="textDownloadButton" wicket:message="value:download.text"/>
<!-- etc ... -->
</wicket:container>
Java:
WebMarkupContainer container = new WebMarkupContainer("downloadButtons");
// ... add buttons to container ...
boolean showContainer = false;
Iterator<? extends Component> it = container.iterator();
while (it.hasNext()) {
if (it.next().isVisible()) {
showContainer = true;
break;
}
}
addOrReplace(container.setVisible(showContainer));
Ale strona Java jest teraz trochę rozwlekły i brzydki, a ja myślenie prawdopodobnie jest czystszy sposób, aby zrobić to samo. Jest tu? Czy w jakiś sposób "automatycznie" można ukryć kontener (ze wszystkimi dodatkowymi znacznikami), gdy żaden z jego komponentów podrzędnych nie jest widoczny?
(Furtka 1.4, jeśli ma to znaczenie).
Nice; To podejście było dla mnie nowością, a teraz, gdy zaimplementowałem je w naszym kodzie, jest całkiem eleganckie. (Oryginalna strona jest znacznie uproszczona, a to promuje ponowne użycie). – Jonik