new layout based on jquery, icons from 'iconic' set
[ical-aggregator.git] / src / main / java / net / bzzt / ical / aggregator / web / FeedSelection.java
blob4cba0cb22b413031a3ff1d02144f76fb224266b0
1 package net.bzzt.ical.aggregator.web;
3 import java.util.Collection;
4 import java.util.List;
6 import net.bzzt.ical.aggregator.model.Feed;
7 import net.bzzt.ical.aggregator.service.FeedService;
9 import org.apache.wicket.Session;
10 import org.apache.wicket.ajax.AjaxRequestTarget;
11 import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior;
12 import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
13 import org.apache.wicket.markup.html.form.CheckBoxMultipleChoice;
14 import org.apache.wicket.markup.html.form.Form;
15 import org.apache.wicket.markup.html.form.IChoiceRenderer;
16 import org.apache.wicket.markup.html.panel.Panel;
17 import org.apache.wicket.model.IModel;
18 import org.apache.wicket.model.Model;
19 import org.apache.wicket.model.PropertyModel;
20 import org.apache.wicket.spring.injection.annot.SpringBean;
22 public class FeedSelection extends Panel {
24 private final AggregatorLayoutPage parent;
26 public class FeedRenderer implements IChoiceRenderer<Feed> {
28 /**
31 private static final long serialVersionUID = 1L;
33 @Override
34 public Object getDisplayValue(Feed object) {
35 return object.name;
38 @Override
39 public String getIdValue(Feed object, int index) {
40 return String.valueOf(index);
45 public class FeedSelectionForm extends Form<List<Feed>> {
47 /**
50 private static final long serialVersionUID = 1L;
52 @SpringBean
53 private FeedService feedService;
55 public FeedSelectionForm(String id, IModel<List<Feed>> model) {
56 super(id, model);
58 IModel<Collection<Feed>> collectionModel = (IModel) model;
60 CheckBoxMultipleChoice<Feed> checkBoxMultipleChoice = new CheckBoxMultipleChoice<Feed>(
61 "feed", collectionModel, feedService.getFeeds(), new FeedRenderer());
63 checkBoxMultipleChoice
64 .add(new AjaxFormChoiceComponentUpdatingBehavior() {
66 /**
69 private static final long serialVersionUID = 1L;
71 @Override
72 protected void onUpdate(AjaxRequestTarget target) {
73 ((AggregatorSession) getSession())
74 .setSelectedFeeds(getModelObject());
75 parent.refresh(target);
77 });
79 add(checkBoxMultipleChoice);
82 @Override
83 protected void onSubmit() {
84 ((AggregatorSession) getSession())
85 .setSelectedFeeds(getModelObject());
86 setResponsePage(HomePage.class);
91 /**
94 private static final long serialVersionUID = 1L;
96 public FeedSelection(String id, AggregatorLayoutPage aggregatorLayoutPage) {
97 super(id);
98 this.parent = aggregatorLayoutPage;
99 add(new FeedSelectionForm("form", new PropertyModel<List<Feed>>(this,
100 "selectedFeeds")));
103 public List<Feed> getSelectedFeeds() {
104 return ((AggregatorSession) Session.get()).getSelectedFeeds();