Exemple de palette de guichet

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

wicket palette

//Java
import org.apache.wicket.extensions.markup.html.form.palette.Palette;

final Palette palette = new Palette("palette",
    new ListModel(selected),
    new CollectionModel(listHosting),
    renderer, 10, true);


//HTML

Signature de la palette

Palette(String id,
    IModel> model,
    IModel> choicesModel,
    IChoiceRenderer choiceRenderer,
    int rows, boolean allowOrder)
  1. id - Identifiant du composant

  2. modèle Modèle - représentant une collection de sélections d'utilisateurs

  3. Modèle de choix - représentant une collection de tous les choix disponibles

  4. choiceRenderer - Rendu utilisé pour rendre les choix. Cela doit utiliser des ID uniques pour les objets, pas l'index

  5. lignes - Nombre de choix à afficher à l'écran sans défilement

  6. 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

Sélectionnez et déplacez certains éléments, puis cliquez sur le bouton d'affichage.

wicket palette

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)