You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by raybristol <ra...@gmail.com> on 2007/09/26 12:14:21 UTC

hi questions about Wizard again, thanks!

Hi, sorry to ask questions again

I have a WizardPage, got 2 questions don't really know how to solve, 

My WizardPage is like

public class AddDeliveryWizardPage extends AbstractExamplePage{
	
	public AddDeliveryWizardPage(){
		
		super();

		WizardModel model = new WizardModel();
                          int numberOfBoxes = 0;
                          List<Box> boxesList = new ArrayList<Box>();

                          //variable 'numberOfBoxes' will be set in this
step
		model.add(new SetNumberOfBoxesWizardStep());
	
                          //set box entity objects according to variable
'numberOfBoxes' set from last step
		model.add(new SetBoxEntityWizardStep(int numberOfBoxes));
		
		Wizard wizard = new Wizard("wizard", model)
		this.add(wizard);
	}

}

question 1: as model step is added at compile time, so I don't know how to
get the value of variable 'numberOfBoxes' after it got set from the 1st
step, in the 2nd step 'numberOfBoxes''s value is default value 0.

question 2: in the 2nd step I probably need user to input multiple box
object's details, for a single model, I can use somthign like setModel(new
CompoundPropertyModel(box)), but what about for multiple objects? is it
something like setModel(new CompoundPropertyModel(boxeslist))  <- boxeslist
is a arraylist of box objects.


Many thanks for your guys help, this is the best forum I can find for wicket
:)

-- 
View this message in context: http://www.nabble.com/hi-questions-about-Wizard-again%2C-thanks%21-tf4521282.html#a12897888
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: hi questions about Wizard again, thanks!

Posted by raybristol <ra...@gmail.com>.
Thansk very much, love this forum! got a reply so prompt!



Andrew Klochkov wrote:
> 
> raybristol wrote:
>> My WizardPage is like
>>
>> public class AddDeliveryWizardPage extends AbstractExamplePage{
>> 	
>> 	public AddDeliveryWizardPage(){
>> 		
>> 		super();
>>
>> 		WizardModel model = new WizardModel();
>>                           int numberOfBoxes = 0;
>>                           List<Box> boxesList = new ArrayList<Box>();
>>
>>                           //variable 'numberOfBoxes' will be set in this
>> step
>> 		model.add(new SetNumberOfBoxesWizardStep());
>> 	
>>                           //set box entity objects according to variable
>> 'numberOfBoxes' set from last step
>> 		model.add(new SetBoxEntityWizardStep(int numberOfBoxes));
>> 		
>> 		Wizard wizard = new Wizard("wizard", model)
>> 		this.add(wizard);
>> 	}
>>
>> }
>>
>> question 1: as model step is added at compile time, so I don't know how
>> to
>> get the value of variable 'numberOfBoxes' after it got set from the 1st
>> step, in the 2nd step 'numberOfBoxes''s value is default value 0.
>>   
> You should make numberOfBoxes variable accessible in both the steps. One 
> way to do it:
> 
> public class AddDeliveryWizardPage extends AbstractExamplePage{
> 	
> 	private int numberOfBoxes;
>         private final List<Box> boxesList = new ArrayList<Box>();
> 
> 	public AddDeliveryWizardPage(){
> 		
> 		super();
> 
> 		IModel boxesAmountModel = new PropertyModel(this, "numberOfBoxes");
> 		WizardModel model = new WizardModel();
> 
> 		//variable 'numberOfBoxes' will be set in this step
> 		model.add(new SetNumberOfBoxesWizardStep(boxesAmountModel) {
> 			public void applyState() {
> 				for (int i = 0; i < numberOfBoxes; i++)
> 					boxesList.add(new Box());
> 			}
> 		});
> 	
> 		//set box entity objects according to variable 'numberOfBoxes' set from
> last step
> 		model.add(new SetBoxEntityWizardStep(boxesAmountModel, boxesList));
> 		
> 		Wizard wizard = new Wizard("wizard", model)
> 		this.add(wizard);
> 	}
> 
> }
> 
>> question 2: in the 2nd step I probably need user to input multiple box
>> object's details, for a single model, I can use somthign like
>> setModel(new
>> CompoundPropertyModel(box)), but what about for multiple objects? is it
>> something like setModel(new CompoundPropertyModel(boxeslist))  <-
>> boxeslist
>> is a arraylist of box objects.
>>   
> Notice that I added a "boxesList" parameter for the second step in the 
> code above. So then in the SexBoxEntityWizardStep you could use some 
> repeater to generate html inputs for every box. For example here is a 
> ListView example:
> 
> add(new ListView("boxes", boxesList) {
>     protected void populateItem(final ListItem item) {
>         item.add(new TextField("name", new 
> PropertyModel(item.getModelObject(), "name"));
>     }
> });
>>
>> Many thanks for your guys help, this is the best forum I can find for
>> wicket
>> :)
>>
>>   
> +1 :)
> 
> 
> -- 
> Andrew Klochkov
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/hi-questions-about-Wizard-again%2C-thanks%21-tf4521282.html#a12899730
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: hi questions about Wizard again, thanks!

Posted by Andrew Klochkov <a....@webalta-team.com>.
raybristol wrote:
> My WizardPage is like
>
> public class AddDeliveryWizardPage extends AbstractExamplePage{
> 	
> 	public AddDeliveryWizardPage(){
> 		
> 		super();
>
> 		WizardModel model = new WizardModel();
>                           int numberOfBoxes = 0;
>                           List<Box> boxesList = new ArrayList<Box>();
>
>                           //variable 'numberOfBoxes' will be set in this
> step
> 		model.add(new SetNumberOfBoxesWizardStep());
> 	
>                           //set box entity objects according to variable
> 'numberOfBoxes' set from last step
> 		model.add(new SetBoxEntityWizardStep(int numberOfBoxes));
> 		
> 		Wizard wizard = new Wizard("wizard", model)
> 		this.add(wizard);
> 	}
>
> }
>
> question 1: as model step is added at compile time, so I don't know how to
> get the value of variable 'numberOfBoxes' after it got set from the 1st
> step, in the 2nd step 'numberOfBoxes''s value is default value 0.
>   
You should make numberOfBoxes variable accessible in both the steps. One 
way to do it:

public class AddDeliveryWizardPage extends AbstractExamplePage{
	
	private int numberOfBoxes;
        private final List<Box> boxesList = new ArrayList<Box>();

	public AddDeliveryWizardPage(){
		
		super();

		IModel boxesAmountModel = new PropertyModel(this, "numberOfBoxes");
		WizardModel model = new WizardModel();

		//variable 'numberOfBoxes' will be set in this step
		model.add(new SetNumberOfBoxesWizardStep(boxesAmountModel) {
			public void applyState() {
				for (int i = 0; i < numberOfBoxes; i++)
					boxesList.add(new Box());
			}
		});
	
		//set box entity objects according to variable 'numberOfBoxes' set from last step
		model.add(new SetBoxEntityWizardStep(boxesAmountModel, boxesList));
		
		Wizard wizard = new Wizard("wizard", model)
		this.add(wizard);
	}

}

> question 2: in the 2nd step I probably need user to input multiple box
> object's details, for a single model, I can use somthign like setModel(new
> CompoundPropertyModel(box)), but what about for multiple objects? is it
> something like setModel(new CompoundPropertyModel(boxeslist))  <- boxeslist
> is a arraylist of box objects.
>   
Notice that I added a "boxesList" parameter for the second step in the 
code above. So then in the SexBoxEntityWizardStep you could use some 
repeater to generate html inputs for every box. For example here is a 
ListView example:

add(new ListView("boxes", boxesList) {
    protected void populateItem(final ListItem item) {
        item.add(new TextField("name", new 
PropertyModel(item.getModelObject(), "name"));
    }
});
>
> Many thanks for your guys help, this is the best forum I can find for wicket
> :)
>
>   
+1 :)


-- 
Andrew Klochkov


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org