Wicket 10 Ajax DiscountsPanel.java
package wicket.in.action.chapter10.ajaxdiscounts;

import java.util.Iterator;

import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.markup.repeater.RefreshingView;
import org.apache.wicket.markup.repeater.util.ModelIteratorAdapter;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;

import wicket.in.action.common.DataBase;
import wicket.in.action.common.DateFmtLabel;
import wicket.in.action.common.Discount;

public final class DiscountsPanel extends Panel {

  public DiscountsPanel(String id) {

    super(id);
    final FeedbackPanel feedbackPanel = new FeedbackPanel("feedback");
    add(feedbackPanel);
    add(new RefreshingView("discounts") {

      @Override
      protected Iterator getItemModels() {
        return new ModelIteratorAdapter(DataBase.getInstance()
            .listDiscounts().iterator()) {
          @Override
          protected IModel model(Object object) {
            return new CompoundPropertyModel((Discount) object);
          }
        };
      }

      @Override
      protected void populateItem(Item item) {
        item.add(new Label("cheese.name"));
        item.add(new EditablePercentageLabel("discount",
            feedbackPanel));
        item.add(new Label("description"));
        item.add(new DateFmtLabel("until"));
      }
    });
  }
}
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License