Wicket-Komponenten entwickeln
Übersicht
- Komponenten können mit
Behavior-Objekten um Details erweitert werden, z.B. durch Änderungen an Markup-Attributen. - Wicket-Komponenten können abgeleitet werden und um zusätzliches Verhalten erweitert werden.
PanelundBorderermöglichen es, Komponenten aus Markup und anderen Komponenten zusammenzusetzen.- Komponenten können von
WebComponentbzw.WebMarkupContainerabgeleitet werden und insb. programmatisch das Markup bereitstellen oder verändern.
Panel
-
Ein
Panelist eine wiederverwendbare Komponente, die aus anderen Komponenten und eigenem Markup zusammengesetzt wird:public class SomePanel extends Panel { public SomePanel(String id) { super(id); // Eigenes CSS hinzufügen // Achtung: CSS-Klassen mit eindeutigem Prefix benennen // (Vermeidung von Konflikten mit anderen Komponenten) add(CSSPackageResource.getHeaderContribution(SomePanel.class, "SomePanel.css")); add(new Label("someLabel", "Hello world!")); } }
Panel Markup
-
In der zugehörigen Markup-Seite
SomePanel.htmlist nur der<wicket:panel>-Block von Belang:<wicket:panel> <div style="border:1px solid black;"> <div wicket:id="someLabel"/> </div> </wicket:panel>
Border
-
Ein
Borderfunktioniert ähnlich zuPanel, umhüllt jedoch seine Inhalte:public class SomeBorder extends Border { public SomeBorder(String id) { super(id); } }
-
In der zugehörigen Markup-Seite
SomeBorder.htmlist nur der<wicket:border>-Block von Belang, anstelle von<wicket:body/>wird der Inhalt derBorder-Komponente eingesetzt:<wicket:border> <div style="border:10px solid blue;"><wicket:body/></div> </wicket:border>

