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 List listHosting;
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)