Where do you use a CompoundPropertyModel?
For your problem you have several solutions.
Here is 2 of them :
1) - With the CompoundPropertyModel
class MyModel {
private String text;
public MyModel(String text) {
this.text = text;
}
public String getText(){
return text;
}
public void setText(String text) {
this.text = text;
}
}
class MyPanel extends Panel{
public MyPanel(String id, MyModel myModelObject){
super(id, new CompoundPropertyModel(myModelObject));
add(new TextField("text")); // the TextField id must be the name of your
object property
(...)
}
}
MyModel myModelObject = new MyModel("hello");
add(new MyPanel("textPanel", myModelObject);
2) - With the PropertyModel
class MyModel {
private String text;
public MyModel(String text) {
this.text = text;
}
public String getText(){
return text;
}
public void setText(String text) {
this.text = text;
}
}
class MyPanel extends Panel{
public MyPanel(String id, MyModel myModelObject){
super(id);
add(new TextField("panelField", new PropertyModel(myModelObject,"text")));
(...)
}
}
MyModel myModelObject = new MyModel("hello");
add(new MyPanel("textPanel", myModelObject);
Enjoy :-)
Greg
Pieter Cogghe a écrit :
> Thanks for the responses,
>
> I ran into trouble when using a panel. Somehow I can't get my model
> property associated with the textfield in the panel.
>
> class MyModel {
> (...)
> public String getText(){
> return text;
> }
> (...)
> }
>
> My panel (simplified)
>
> class MyPanel extends Panel{
>
> public MyPanel(String id, IModel fieldModel){
> super(id);
> add(new TextField("panelField", fieldModel));
> (...)
> }
> }
>
> then I add the panel to the form (which has the MyModel as a
> CompoundPropertyModel):
>
> add(new MyPanel("textPanel", new PropertyModel(this.getModelObject(), "text"))
>
> So the textfield within the panel should be associated with the "text"
> property of the compoundProperty model (MyModel.getText). Somehow I
> feel I get something seriously wrong here.
>
> Thanks,
>
> Pieter
>
>
>
> 2007/6/13, Jean-Baptiste Quenot <[EMAIL PROTECTED]>:
>
>> * Pieter Cogghe:
>>
>>> Hi,
>>>
>>> (I'm new to Wicket and relatively new to Java so beware of stupid
>>> questions and bad code)
>>> I've got a form with a text input. I want it rendered like this:
>>>
>>> <form (...)>
>>> (...)
>>> <p>
>>> <label for="input_name">Name</label>
>>> <input type="text" id="input_name" name="name" />
>>> </p>
>>> (...)
>>> </form>
>>>
>>> I want to write my own component, so I only have to write this
>>> template html-code:
>>>
>>> <form wicket:id="input">
>>> (...)
>>> <p>
>>> <input type="text" wicket:id="name" />
>>> </p>
>>> (...)
>>> </form>
>>>
>>> The java code to add this to a page (TextFieldWithIdLabel of the
>>> custom component)
>>>
>>> add(new TextFieldWithIdLabel("name").setLabel(new Model("Name")));
>>>
>>>
>>> I'm not sure how to this, I started by extending TextField and
>>> overwriting onTagComponent like this:
>>>
>>> protected void onComponentTag(ComponentTag tag){
>>> setOutputMarkupId(true);
>>> super.onComponentTag(tag)
>>> }
>>>
>>> This works fine for the input-id, however I'm not sure how I can add
>>> the label tag in front of it. Maybe I should write a custom panel?
>>>
>> A Panel would be nice, or otherwise there's a dirty hack to
>> directly write tags into the response.
>> --
>> Jean-Baptiste Quenot
>> aka John Banana Qwerty
>> http://caraldi.com/jbq/
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by DB2 Express
>> Download DB2 Express C - the FREE version of DB2 express and take
>> control of your XML. No limits. Just data. Click to get it now.
>> http://sourceforge.net/powerbar/db2/
>> _______________________________________________
>> Wicket-user mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/wicket-user
>>
>>
>
>
>
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user