Re: DropDownChoice to add new a ListView

2009-12-15 Thread Igor Vaynberg
http://wicketinaction.com/2008/10/creating-pluggable-applications-with-wicket-and-spring/

-igor

On Mon, Dec 14, 2009 at 3:39 PM, Sumit Raja sumitr...@gmail.com wrote:
 Hello,

 Recently started a wicket project and was making excellent progress till ran 
 into a problem with DropDownChoices. I am trying to get a DropDownChoice to 
 add a panel to a form when an option is selected. The DropDownChoice contains 
 a list of URI properties that each map to a different datatype. When a URI is 
 selected in the drop down the correct component (DateField, textField, 
 checkbox etc) needs to be added to the form to edit the property value. I am 
 using fragments to actually render the right component for the datatype (as 
 specified in the Bean editor example).

 My DropDownChoice does the following:

 protected boolean wantOnSelectionChangedNotifications() {
  return true;
 }

 protected void onSelectionChanged(final URI newSelection) {
  remove(dropdownChoice)
  add(new BagValueFormPanel(getComponentFactoryForURI(newSelection))
 }


 The BagValueFormPanel has a supporting model that adds edit components in a 
 ListView along with a + symbol to add more components.

 Unfortunately my list view panel does not get all the list items rendered. 
 When running the BagValueFormPanel unit test, I get the following debug tree:

 INFO  BaseWicketTester - path   form:panel      
 wicketclient.components.form.BagValueFormPanel  [[= null amp;amp;]]
 INFO  BaseWicketTester - path   form:panel:valuesList   
 org.apache.wicket.markup.html.list.ListView     [[= null amp;amp;]]
 INFO  BaseWicketTester - path   form:panel:valuesList:0         
 org.apache.wicket.markup.html.list.ListItem     [= null amp;amp;]
 INFO  BaseWicketTester - path   form:panel:valuesList:0:valueFragment   
 org.apache.wicket.markup.html.panel.Fragment    []
 INFO  BaseWicketTester - path   form:panel:valuesList:0:valueFragment:value   
   wicketclient.panels.search.QueryElementPanel    [= null amp;amp;]
 INFO  BaseWicketTester - path   
 form:panel:valuesList:0:valueFragment:value:condition   
 org.apache.wicket.markup.html.form.DropDownChoice       [=]
 INFO  BaseWicketTester - path   
 form:panel:valuesList:0:valueFragment:value:value       
 org.apache.wicket.markup.html.panel.Fragment    []
 INFO  BaseWicketTester - path   
 form:panel:valuesList:0:valueFragment:value:value:value         
 org.apache.wicket.markup.html.form.TextField    []
 INFO  BaseWicketTester - path   
 form:panel:valuesList:0:valueFragment:value:booleanOp   
 org.apache.wicket.markup.html.form.DropDownChoice       [amp;amp;]

 But when running the test for the dynamic DropDownChoice panel where the 
 selection is made to one of the list choices, I get the following tree 
 (form:panel:filterParameterPanel:valuesList is the matching component):

 INFO  BaseWicketTester - path   form    
 org.apache.wicket.markup.html.form.Form         []
 INFO  BaseWicketTester - path   form:panel      
 wicketclient.panels.search.PropertySelectComponent      []
 INFO  BaseWicketTester - path   form:panel:propertyName         
 org.apache.wicket.markup.html.panel.Fragment    []
 INFO  BaseWicketTester - path   form:panel:propertyName:property        
 org.apache.wicket.markup.html.basic.Label       [Or The Other]
 INFO  BaseWicketTester - path   form:panel:filterParameterPanel         
 wicketclient.components.form.BagValueFormPanel  [[= null amp;amp;]]
 INFO  BaseWicketTester - path   form:panel:filterParameterPanel:valuesList    
   org.apache.wicket.markup.html.list.ListView     [[= null amp;amp;]]
 INFO  BaseWicketTester - path   form:panel:filterParameterPanel:addValue      
   org.apache.wicket.markup.html.form.SubmitLink   []

 Is this kind of dynamic addition of components possible on an 
 onSelectionChanged? If not I probably won't be able to add the panel in 
 earlier and delay the selection of the right Fragment to render the edit 
 control right?

 Cheers

 Sumit



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



DropDownChoice to add new a ListView

2009-12-14 Thread Sumit Raja
Hello,

Recently started a wicket project and was making excellent progress till ran 
into a problem with DropDownChoices. I am trying to get a DropDownChoice to add 
a panel to a form when an option is selected. The DropDownChoice contains a 
list of URI properties that each map to a different datatype. When a URI is 
selected in the drop down the correct component (DateField, textField, checkbox 
etc) needs to be added to the form to edit the property value. I am using 
fragments to actually render the right component for the datatype (as specified 
in the Bean editor example).

My DropDownChoice does the following:

protected boolean wantOnSelectionChangedNotifications() {
  return true;
}

protected void onSelectionChanged(final URI newSelection) {
  remove(dropdownChoice)
  add(new BagValueFormPanel(getComponentFactoryForURI(newSelection))
}


The BagValueFormPanel has a supporting model that adds edit components in a 
ListView along with a + symbol to add more components.

Unfortunately my list view panel does not get all the list items rendered. When 
running the BagValueFormPanel unit test, I get the following debug tree:

INFO  BaseWicketTester - path   form:panel  
wicketclient.components.form.BagValueFormPanel  [[= null amp;amp;]]
INFO  BaseWicketTester - path   form:panel:valuesList   
org.apache.wicket.markup.html.list.ListView [[= null amp;amp;]]
INFO  BaseWicketTester - path   form:panel:valuesList:0 
org.apache.wicket.markup.html.list.ListItem [= null amp;amp;]
INFO  BaseWicketTester - path   form:panel:valuesList:0:valueFragment   
org.apache.wicket.markup.html.panel.Fragment[]
INFO  BaseWicketTester - path   form:panel:valuesList:0:valueFragment:value 
wicketclient.panels.search.QueryElementPanel[= null amp;amp;]
INFO  BaseWicketTester - path   
form:panel:valuesList:0:valueFragment:value:condition   
org.apache.wicket.markup.html.form.DropDownChoice   [=]
INFO  BaseWicketTester - path   
form:panel:valuesList:0:valueFragment:value:value   
org.apache.wicket.markup.html.panel.Fragment[]
INFO  BaseWicketTester - path   
form:panel:valuesList:0:valueFragment:value:value:value 
org.apache.wicket.markup.html.form.TextField[]
INFO  BaseWicketTester - path   
form:panel:valuesList:0:valueFragment:value:booleanOp   
org.apache.wicket.markup.html.form.DropDownChoice   [amp;amp;]

But when running the test for the dynamic DropDownChoice panel where the 
selection is made to one of the list choices, I get the following tree 
(form:panel:filterParameterPanel:valuesList is the matching component):

INFO  BaseWicketTester - path   formorg.apache.wicket.markup.html.form.Form 
[]
INFO  BaseWicketTester - path   form:panel  
wicketclient.panels.search.PropertySelectComponent  []
INFO  BaseWicketTester - path   form:panel:propertyName 
org.apache.wicket.markup.html.panel.Fragment[]
INFO  BaseWicketTester - path   form:panel:propertyName:property
org.apache.wicket.markup.html.basic.Label   [Or The Other]
INFO  BaseWicketTester - path   form:panel:filterParameterPanel 
wicketclient.components.form.BagValueFormPanel  [[= null amp;amp;]]
INFO  BaseWicketTester - path   form:panel:filterParameterPanel:valuesList  
org.apache.wicket.markup.html.list.ListView [[= null amp;amp;]]
INFO  BaseWicketTester - path   form:panel:filterParameterPanel:addValue
org.apache.wicket.markup.html.form.SubmitLink   []

Is this kind of dynamic addition of components possible on an 
onSelectionChanged? If not I probably won't be able to add the panel in earlier 
and delay the selection of the right Fragment to render the edit control right?

Cheers

Sumit