Exemple de palette de guichet
L'extension Wicket est livrée avec un composant spécial «Palette», qui rend deux boîtes de sélection et permet à l'utilisateur de déplacer des éléments d'une boîte de sélection à une autre.
Figure: Composant Palette
//Java import org.apache.wicket.extensions.markup.html.form.palette.Palette; final Palettepalette = new Palette ("palette", new ListModel (selected), new CollectionModel (listHosting), renderer, 10, true); //HTML
Signature de la palette
Palette(String id, IModel> model, IModel extends Collection extends T>> choicesModel, IChoiceRenderer
choiceRenderer, int rows, boolean allowOrder)
-
id - Identifiant du composant
-
modèle Modèle - représentant une collection de sélections d'utilisateurs
-
Modèle de choix - représentant une collection de tous les choix disponibles
-
choiceRenderer - Rendu utilisé pour rendre les choix. Cela doit utiliser des ID uniques pour les objets, pas l'index
-
lignes - Nombre de choix à afficher à l'écran sans défilement
-
allowOrder - Autorise l'utilisateur à déplacer des sélections vers le haut et vers le bas
Note
Assez difficile à comprendre, non? Qu'à cela ne tienne, lisez l'exemple suivant de la palette Wicket.
1. Extension de guichet
Pour utiliser «Palette», vous avez besoin du pot «wicket-extensions».
Fichier: pom.xml
org.apache.wicket wicket-extensions 1.4.17
2. Modèle pour palette
Créez une classe de modèle pour représenter les choix dans la zone de sélection.
package com.example.user; import java.io.Serializable; public class Hosting implements Serializable { String id; String name; //getter, setter, constructor and toString() methods }
3. Exemple de palette
Exemple pour mettre le modèle d'hébergement ci-dessus dans le composant Palette, et utiliserChoiceRenderer
pour décider ce qu'il faut afficher. Il devrait être explicite.
package com.example.user; import java.util.ArrayList; import java.util.List; import org.apache.wicket.PageParameters; import org.apache.wicket.extensions.markup.html.form.palette.Palette; import org.apache.wicket.markup.html.form.ChoiceRenderer; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.IChoiceRenderer; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.model.util.CollectionModel; import org.apache.wicket.model.util.ListModel; public class PalettePage extends WebPage { private static final ListlistHosting; static { listHosting = new ArrayList (); listHosting.add(new Hosting("1", "Shared")); listHosting.add(new Hosting("2", "VPS")); listHosting.add(new Hosting("3", "Dedicated")); } private List selected = new ArrayList (); public PalettePage(final PageParameters parameters) { add(new FeedbackPanel("feedback")); Form> form = new Form ("form") { @Override protected void onSubmit() { info("Selected language : " + selected); } }; add(form); //make VPS selected by default //selected.add(new Hosting("2", "VPS")); IChoiceRenderer renderer = new ChoiceRenderer ("name","id"); final Palette palette = new Palette ("palette", new ListModel (selected), new CollectionModel (listHosting), renderer, 10, true); form.add(palette); } }
How to make certain value selected by default.
Dans ce cas, pour que «VPS» soit sélectionné par défaut, ajoutez-le dans la variable «selected»:
selected.add(new Hosting("2", "VPS"));
4. Page HTML
Code source HTML complet.
Wicket palette example
5. Demo
Démarrer et visiter -http://localhost:8080/WicketExamples/
Sélectionnez et déplacez certains éléments, puis cliquez sur le bouton d'affichage.
P.S The sort up and sort down buttons are applied to selected item (right select box) only.
Téléchargez-le -Wicket-Palette-Example.zip (8 Ko)