i think that is intended. going back is like cancelling the current
screen. if that was changed thenyou would have to have a valid current
screen before you could go back, which is not something a user would
expect imho.
-igor
On Fri, May 16, 2008 at 7:47 AM, Till Wenzinger <[EMAIL PROTECTED]> wrote:
> Hi,
>
>
>
> In the second step of a Wizard, I am loosing selections of a CheckGroup if I
> am going back to the first step using the Previous Button and return using
> the Next Button. Consider the following code:
>
>
>
> public class CheckBug extends WebPage
>
> {
>
> public CheckBug() {
>
> final Wizard wizard = new CheckBugWizard("wizard", PageWithParameters.
> class);
>
> add(wizard);
>
> wizard.add(wizard.getForm());
>
> }
>
> }
>
>
>
> public class CheckBugWizard extends Wizard
>
> {
>
> private static final long serialVersionUID = 1L;
>
>
>
> private static final String value = "value";
>
>
>
> private final Class exitPage;
>
> private final Collection selection = new
> ArrayList(Arrays.asList(newString[] {
> value }));
>
>
>
> public CheckBugWizard(final String id, final Class exitPage) {
>
> super(id);
>
> this.exitPage = exitPage;
>
>
>
> final WizardModel model = new WizardModel();
>
> model.add(new Step1("step1", "summary1"));
>
> model.add(new Step2("step2", "summary2", this.selection, value));
>
> init(model);
>
> }
>
>
>
> public void onCancel() {
>
> gotoExitPage();
>
> }
>
>
>
> public void onFinish() {
>
> gotoExitPage();
>
> }
>
>
>
> private void gotoExitPage() {
>
> final PageParameters p = new PageParameters();
>
>
>
> if (this.selection.contains(value)) {
>
> p.put("selected", "true");
>
> }
>
> else {
>
> p.put("selected", "false");
>
> }
>
>
>
> setResponsePage(this.exitPage, p);
>
> }
>
> }
>
>
>
> public class Step1 extends WizardStep
>
> {
>
> private static final long serialVersionUID = 1L;
>
>
>
> public Step1(final String title, final String summary) {
>
> super(title, summary);
>
> }
>
> }
>
>
>
> public class Step2 extends WizardStep
>
> {
>
> private static final long serialVersionUID = 1L;
>
>
>
> public Step2(final String title, final String summary, final Collection
> selection, final String value) {
>
> super(title, summary);
>
>
>
> final CheckGroup group = new CheckGroup("group", selection);
>
> add(group);
>
>
>
> final RepeatingView repeater = new RepeatingView("repeater");
>
> group.add(repeater);
>
>
>
> final WebMarkupContainer container =
> newWebMarkupContainer(repeater.newChildId());
>
> repeater.add(container);
>
>
>
> final Check check = new Check("box", new Model(value));
>
> check.setOutputMarkupId(true);
>
> container.add(check);
>
>
>
> final Label label = new Label("label", value);
>
> container.add(label);
>
> }
>
> }
>
>
>
> public class PageWithParameters extends WebPage
>
> {
>
> public PageWithParameters(final PageParameters parameters) {
>
> super(parameters);
>
>
>
> final MultiLineLabel label = new MultiLineLabel("label",
> newAbstractReadOnlyModel() {
>
> private static final long serialVersionUID = 1L;
>
>
>
> public Object getObject() {
>
> PageParameters pageParameters = getPageParameters();
>
>
>
> if (pageParameters == null) {
>
> *return* "null";
>
> }
>
>
>
> *return* pageParameters.toString();
>
> }
>
> });
>
>
>
> add(label);
>
> }
>
> }
>
>
>
> If I replace
>
>
>
> public class Check extends LabeledWebMarkupContainer
>
> {
>
> ...
>
> protected void onComponentTag(final ComponentTag tag)
>
> {
>
> if (group.hasRawInput())
>
> {
>
> final String[] input = group.getInputAsArray();
>
>
>
> if (input != null)
>
> {
>
> for (int i = 0; i < input.length; i++)
>
> {
>
> if (uuid.equals(input[i]))
>
> {
>
> tag.put("checked", "checked");
>
> }
>
> }
>
> }
>
> }
>
> ...
>
>
>
> by
>
>
>
> if (group.hasRawInput()) {
>
> final String input = group.getRawInput();
>
>
>
> if (input != null) {
>
> final StringTokenizer st = new StringTokenizer(input, ";");
>
>
>
> while (st.hasMoreElements()) {
>
> if (value.equals(st.nextToken())) {
>
> tag.put("checked", "checked");
>
> }
>
> }
>
> }
>
> }
>
>
>
> then the check group selection is kept as intended. Am I right to consider
> the selection loss being a bug?
>
>
>
> /Till
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]