All pastes #912255 Raw Edit

Miscellany

public text v1 · immutable
·published 2008-02-21 06:39 UTC
rendered paste body
	public class PollForm extends Form {
		private static final long serialVersionUID = 1L;
		private List<PollAnswer> answers = new ArrayList<PollAnswer>();

		public PollForm(final String id, final IModel model) {
			super(id, model);

			add(new FeedbackPanel("feedback"));

			add(new RequiredTextField("subject"));
			add(new MFXNawEditor("body").setRequired(true));

			final WebMarkupContainer container = new WebMarkupContainer("container");
			container.setOutputMarkupId(true);
			add(container);

			final Poll poll = (Poll) getModelObject();
			answers.add(new PollAnswer(poll));

			container.add(new ListView("answers", new PropertyModel(this, "answers")) {
				private static final long serialVersionUID = 1L;

				@Override
				protected void populateItem(final ListItem arg0) {
					IModel model = arg0.getModel();

					arg0.add(new RequiredTextField("answer", new PropertyModel(model, "answer")));
				}
			});

			add(new AjaxLink("add") {
				private static final long serialVersionUID = 1L;

				@Override
				public void onClick(final AjaxRequestTarget arg0) {
					answers.add(new PollAnswer(poll));
					arg0.addComponent(container);
				}
			});

			add(new AjaxLink("remove") {
				private static final long serialVersionUID = 1L;

				@Override
				public void onClick(final AjaxRequestTarget arg0) {
					answers.remove(answers.size());
					arg0.addComponent(container);
				}
			});

			add(new FormInlineValidator());
		}

		public void setAnswers(final List<PollAnswer> answers) {
			this.answers = answers;
		}

		public List<PollAnswer> getAnswers() {
			return answers;
		}
	}