On 22.01.2010, at 03:18, [email protected] wrote:

> http://old.nabble.com/dynamically-adding-components-to-a-ListView-td26626657.html
> 
> In this post you said "You found it". Could you please post how did you do it?
> 
> Zinovii

in addPanel()

replaced 

panels.add(panel);

with

panels.getModelObject().add(panel);





On 04.12.2009, at 00:17, zkn wrote:

> found it.
> 
> On 03.12.2009, at 16:19, zkn wrote:
> 
>> Hi,
>> 
>> I'm trying to dynamically add components to an existing ListView but I can't 
>> figure out how to do that. Here is my case:
>> 
>> MyPanelContainer  class with markup
>> 
>> <wicket:panel>
>>      <wicket:container wicket:id="panels">
>>              <wicket:container wicket:id="panel" />
>>      </wicket:container>
>>      <a href="#" wicket:id="addPanel">add panel</a>
>> </wicket:panel>
>> 
>> and here is how I create the container in the constructor of my page
>> 
>> ..
>> MyPanelContainer container = new MyPanelContainer("panels_list_1");
>> List<MyPanel> panels = new ArrayList<MyPanel>();
>> 
>> for (int j = 0; j < 5; j++) {
>>      MyPanel panel = new MyPanel("panel");
>>      
>>      .....
>>      
>>      panels.add(panel);
>> .
>> 
>> 
>> container.add(new ListView<MyPanel>("panels", panels) {
>>      protected void populateItem(ListItem<MyPanel> item) {
>>              item.add( item.getModelObject());
>>      }
>> });
>> add(Container);
>> ..
>> 
>> This works fine and I can see all  MyPanel inside the container.
>> 
>> Now I'm trying to add another MyPanel inside the container on user click. 
>> Here is the constructor of MyPanelContainer
>> 
>> public MyPanelContainer(String id) {
>>              super(id);
>>              ....
>>              add(new Link("addPanel") {
>>                              @Override
>>                              public void onClick() {
>>                                      addPanel();
>>                              }
>>                              
>>                      });
>> .
>> 
>> ..
>> public void addPanel() {
>>              
>>              ListView< MyPanel > panels = (ListView< MyPanel >) 
>> get("panels");
>>              
>>              MyPanel panel = new MyPanel("panel");
>>              ...
>>              panels.add(panel);
>>      }
>> 
>> Basically addPanel() does the same thing as in page constructor to add 
>> panels to the list but nothing shows up.
>> 
>> Thanks in advance for your help
>> 
>> Ozkan
>> 
> 

Reply via email to