1 package net
.bzzt
.ical
.aggregator
.web
;
3 import java
.util
.Collection
;
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
> {
31 private static final long serialVersionUID
= 1L;
34 public Object
getDisplayValue(Feed object
) {
39 public String
getIdValue(Feed object
, int index
) {
40 return String
.valueOf(index
);
45 public class FeedSelectionForm
extends Form
<List
<Feed
>> {
50 private static final long serialVersionUID
= 1L;
53 private FeedService feedService
;
55 public FeedSelectionForm(String id
, IModel
<List
<Feed
>> 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() {
69 private static final long serialVersionUID
= 1L;
72 protected void onUpdate(AjaxRequestTarget target
) {
73 ((AggregatorSession
) getSession())
74 .setSelectedFeeds(getModelObject());
75 parent
.refresh(target
);
79 add(checkBoxMultipleChoice
);
83 protected void onSubmit() {
84 ((AggregatorSession
) getSession())
85 .setSelectedFeeds(getModelObject());
86 setResponsePage(HomePage
.class);
94 private static final long serialVersionUID
= 1L;
96 public FeedSelection(String id
, AggregatorLayoutPage aggregatorLayoutPage
) {
98 this.parent
= aggregatorLayoutPage
;
99 add(new FeedSelectionForm("form", new PropertyModel
<List
<Feed
>>(this,
103 public List
<Feed
> getSelectedFeeds() {
104 return ((AggregatorSession
) Session
.get()).getSelectedFeeds();