{"id":1505,"date":"2012-10-30T22:27:58","date_gmt":"2012-10-30T21:27:58","guid":{"rendered":"https:\/\/sgaul.de\/?p=1505"},"modified":"2014-03-13T21:34:46","modified_gmt":"2014-03-13T20:34:46","slug":"unabhangige-wicket-elemente-zusammen-ausblenden","status":"publish","type":"post","link":"https:\/\/sgaul.de\/2012\/10\/30\/unabhangige-wicket-elemente-zusammen-ausblenden\/","title":{"rendered":"Unabh\u00e4ngige Wicket-Elemente zusammen ausblenden"},"content":{"rendered":"
Wickets setVisible bzw. setVisibityAllowed<\/a> kann sehr sperrig sein, wenn man mehrere DOM-Elemente ausblenden m\u00f6chte, weil ein einzelnes nicht bef\u00fcllt werden kann. Ist ein beispielsweise ein Autor nicht angegeben, so braucht auch die Beschriftung \u201eAutor\u201c vor diesem Feld nicht erscheinen:<\/p>\n Ist kein Autor f\u00fcr author\u00a0angegeben, so soll auch das vorangegangene <dt> nicht angezeigt werden. Nun lie\u00dfe sich auch die \u00dcberschrift als Component realisieren und die Sichtbarkeit im Java-Code pr\u00fcfen, Wicket bietet von Haus aus aber eine einfachere und sch\u00f6nere L\u00f6sung.<\/p>\n Ein <wicket:enclosure>-Element erstellt einen (im generierten HTML unsichtbaren) Container. Dessen Inhalt ist nur dann sichtbar, wenn die im child-Attribut referenzierte Komponente sichtbar ist. Im Beispiel f\u00fchrt ein Unsichtbarschalten einer <dd>-Komponente folglich dazu, dass auch das <dt>-Element nicht im Quelltext erscheint.<\/p>\n Da im Beispiel nur eine Kompontente innerhalb eines <wicket:enclosure>-Elements liegt, kann das child-Attribut auch weggelassen werden.<\/p>\n In vielen Umgebungen sind die zus\u00e4tzlichen <wicket:enclosure>-Tags st\u00f6rend und unn\u00f6tig. Wicket bringt hierf\u00fcr ein Attribut mit, welches das selbe leistet, sich aber besser integriert.<\/p>\n Wickets Enclosure-Funktionalit\u00e4t<\/a> ist zwar sehr hilfreich, kann jedoch oft nicht eingesetzt werden. Schon die angegebenen Beispiele zeigen das Problem: Ob als Definitionsliste oder Tabelle, beide Ans\u00e4tze erfordern, dass das Elternelement <dl> bzw. <table> nicht erscheint, wenn keine der Kindkomponenten sichtbar ist.<\/p>\n Stattdessen m\u00fcssen in solchen Situationen gr\u00f6\u00dfere Gesch\u00fctze wie ListView<\/a> aufgefahren werden. Eigentlich schade um das Potential.<\/p>\n","protected":false},"excerpt":{"rendered":" Wickets setVisible bzw. setVisibityAllowed kann sehr sperrig sein, wenn man mehrere DOM-Elemente ausblenden m\u00f6chte, weil ein einzelnes nicht bef\u00fcllt werden kann. Ist ein beispielsweise ein Autor nicht angegeben, so braucht auch die Beschriftung \u201eAutor\u201c vor diesem Feld nicht erscheinen: <dl> <!– dt sollte nur sichtbar sein, wenn auch dd sichtbar ist: –> <dt>Autor<\/dt> <dd wicket:id=“author“>Klaus<\/dd>… Unabh\u00e4ngige Wicket-Elemente zusammen ausblenden<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[91],"tags":[6,525],"_links":{"self":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/1505"}],"collection":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/comments?post=1505"}],"version-history":[{"count":29,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/1505\/revisions"}],"predecessor-version":[{"id":2509,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/posts\/1505\/revisions\/2509"}],"wp:attachment":[{"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/media?parent=1505"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/categories?post=1505"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sgaul.de\/wp-json\/wp\/v2\/tags?post=1505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}<dl>\r\n <!-- dt sollte nur sichtbar sein, wenn auch dd sichtbar ist: --><\/strong>\r\n <dt>Autor<\/dt> <\/strong>\r\n <dd wicket:id=\"author\">Klaus<\/dd><\/strong>\r\n <!-- hier analog: -->\r\n <dt>Ver\u00f6ffentlicht am<\/dt>\r\n <dd wicket:id=\"published\">11.11.2012<\/dd>\r\n<\/dl><\/pre>\n
<wicket:enclosure><\/h2>\n
<dl>\r\n <wicket:enclosure child=\"author<\/em>\"><\/strong> \r\n <dt>Autor<\/dt>\r\n <dd wicket:id=\"author<\/em>\">Klaus<\/dd>\r\n <\/wicket:enclosure><\/strong>\r\n <wicket:enclosure child=\"published\">\r\n <dt>Ver\u00f6ffentlicht am<\/dt>\r\n <dd wicket:id=\"published\">11.11.2012<\/dd>\r\n <wicket:enclosure>\r\n<\/dl><\/pre>\n
Enclosure als Attribut<\/h2>\n
<table>\r\n <tr\u00a0wicket:enclosure=\"author<\/em>\"><\/strong>\r\n <td>Autor<\/td>\r\n <td><span wicket:id=\"author<\/em>\">Klaus<\/span><\/td>\r\n <\/tr><\/strong>\r\n <tr\u00a0wicket:enclosure=\"published\">\r\n <td>Ver\u00f6ffentlicht am<\/td>\r\n <td><span wicket:id=\"published\">11.11.2012<\/span><\/td>\r\n <\/tr>\r\n<\/table><\/pre>\n
Beschr\u00e4nkungen<\/h2>\n
<!-- Funktioniert NICHT: -->\r\n<table\u00a0wicket:enclosure=\"author || published<\/em>\"><\/strong>\r\n <tr\u00a0wicket:enclosure=\"author\">\r\n <td>Autor<\/td>\r\n <td><span wicket:id=\"author<\/em>\">Klaus<\/span><\/td>\r\n <\/tr>\r\n <tr\u00a0wicket:enclosure=\"published\">\r\n <td>Ver\u00f6ffentlicht am<\/td>\r\n <td><span wicket:id=\"published<\/em>\">11.11.2012<\/span><\/td>\r\n <\/tr>\r\n<\/table><\/strong><\/pre>\n