http://wicketinaction.com/2008/10/creating-pluggable-applications-with-wicket-and-spring/

-igor

On Mon, Dec 14, 2009 at 3:39 PM, Sumit Raja <[email protected]> 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to