You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Martin Grigorov <mg...@apache.org> on 2014/06/01 22:44:02 UTC

Re: Dynamic Form Best Architecture

Hi,

Can you give some examples with pseudo data ? It is a bit hard to follow
what is the requirement.
If I follow correctly you have a radio group. Depending on the selected
radio you have to make a call to a web service and render some form
controls dynamically for the web service response, right ?

You can have just one Panel for the dynamic part of the form. Start with an
EmptyPanel and selecting a radio will replace it with another one. To
create the dynamic form controls you will need a set (of Fragment or Panel)
of all possible controls and just add them to a repeater.

Martin Grigorov
Wicket Training and Consulting


On Fri, May 30, 2014 at 11:18 AM, sim999 <si...@gmail.com> wrote:

> Hello,
>
> I'm a new user of Wicket and I would like to have your opinion.
>
> Here is what I'm trying to do :
>
> Step 1 : My application calls a web service to retrieve some data.
>
> Step 2 :
> Based on these data the application must build a big web form, this form
> ask
> the user many questions
> (15-20 for instance, most of the time yes/no questions (without submit
> button), sometimes new inputs may appear etc).
> Each time a response is given a new question appears (conditions of
> appearance can be the previous response and / or data retrieved by the web
> service).
> At the beginning all the questions are invisible.
>
> I have multiple options to architecture this :
>
>  - Initialize all the panels for each question and make them invisible at
> the beginning. Use Ajax on each Radio Button (yes / no), checkbox etc and
> make them appear.
> The problem as see with this solution is that it forces me to add all the
> panels to the form and "the logic of appearance" is fragmented in each
> panel
> which handle the question.
> The other problem is that we need the server (Ajax for each response) even
> though it isn't needed once we retrieved the data from the web service.
> The last problem I see is that how do I manage to hide all the children of
> a
> panel if the user decide to go back and change his response to a previous
> question.
>
> - Same as previous but I add dynamically the panel / question for each
> response. However once again
>  "the logic of appearance" is fragmented in each question and it is
> difficult to maintain.
>
> - Same as previous but all in JavaScript. I will need to convert all the
> data from the web service to JavaScript variables not really the wicket
> Way...
>
> - Maybe I could use Nested Forms but I lack the required distance to be a
> good judge. I don't really know if is really the best response to my
> problem.
>
>  - Finally What about the form Component panel ?
>
> Note : There are in fact many big forms depending on the user profile.
>
> If you could give me your take on this I will be really grateful.
>
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Dynamic-Form-Best-Architecture-tp4666065.html
> Sent from the Users forum 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: Dynamic Form Best Architecture

Posted by Paul BorČ™ <pa...@bors.ws>.
So you want to build a dynamic UI based on same definitions you get from a "web service"?

I've taken a similar approach only I used XML to hold on to the meta data for the UI and Java to process the business logic.

If I were to do it all over I would use Wicket Forms. Why re-invent the wheel? :)
https://github.com/thombergs/wicked-forms

Have a great day,
    Paul Bors

> On Jun 1, 2014, at 4:44 PM, Martin Grigorov <mg...@apache.org> wrote:
> 
> Hi,
> 
> Can you give some examples with pseudo data ? It is a bit hard to follow
> what is the requirement.
> If I follow correctly you have a radio group. Depending on the selected
> radio you have to make a call to a web service and render some form
> controls dynamically for the web service response, right ?
> 
> You can have just one Panel for the dynamic part of the form. Start with an
> EmptyPanel and selecting a radio will replace it with another one. To
> create the dynamic form controls you will need a set (of Fragment or Panel)
> of all possible controls and just add them to a repeater.
> 
> Martin Grigorov
> Wicket Training and Consulting
> 
> 
>> On Fri, May 30, 2014 at 11:18 AM, sim999 <si...@gmail.com> wrote:
>> 
>> Hello,
>> 
>> I'm a new user of Wicket and I would like to have your opinion.
>> 
>> Here is what I'm trying to do :
>> 
>> Step 1 : My application calls a web service to retrieve some data.
>> 
>> Step 2 :
>> Based on these data the application must build a big web form, this form
>> ask
>> the user many questions
>> (15-20 for instance, most of the time yes/no questions (without submit
>> button), sometimes new inputs may appear etc).
>> Each time a response is given a new question appears (conditions of
>> appearance can be the previous response and / or data retrieved by the web
>> service).
>> At the beginning all the questions are invisible.
>> 
>> I have multiple options to architecture this :
>> 
>> - Initialize all the panels for each question and make them invisible at
>> the beginning. Use Ajax on each Radio Button (yes / no), checkbox etc and
>> make them appear.
>> The problem as see with this solution is that it forces me to add all the
>> panels to the form and "the logic of appearance" is fragmented in each
>> panel
>> which handle the question.
>> The other problem is that we need the server (Ajax for each response) even
>> though it isn't needed once we retrieved the data from the web service.
>> The last problem I see is that how do I manage to hide all the children of
>> a
>> panel if the user decide to go back and change his response to a previous
>> question.
>> 
>> - Same as previous but I add dynamically the panel / question for each
>> response. However once again
>> "the logic of appearance" is fragmented in each question and it is
>> difficult to maintain.
>> 
>> - Same as previous but all in JavaScript. I will need to convert all the
>> data from the web service to JavaScript variables not really the wicket
>> Way...
>> 
>> - Maybe I could use Nested Forms but I lack the required distance to be a
>> good judge. I don't really know if is really the best response to my
>> problem.
>> 
>> - Finally What about the form Component panel ?
>> 
>> Note : There are in fact many big forms depending on the user profile.
>> 
>> If you could give me your take on this I will be really grateful.
>> 
>> 
>> --
>> View this message in context:
>> http://apache-wicket.1842946.n4.nabble.com/Dynamic-Form-Best-Architecture-tp4666065.html
>> Sent from the Users forum 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
>> 
>>