Done.

kind regards

Tobias

> Am 02.06.2015 um 08:49 schrieb Martin Grigorov <mgrigo...@apache.org>:
> 
> Hi,
> 
> Please create a proper Pull Request so it is easier to see the changed code
> and to comment on it.
> 
> 
> On Tue, Jun 2, 2015 at 7:03 AM, Tobias Soloschenko <
> tobiassolosche...@googlemail.com> wrote:
> 
>> Thanks for the great hints! I am going to apply your changes, soon!
>> 
>> kind regards
>> 
>> Tobias
>> 
>>> Am 01.06.2015 um 23:55 schrieb Sven Meier <s...@meiers.net>:
>>> 
>>> Hi Tobias,
>>> 
>>>> public  OutputField(String id, IModel<String> model)
>>> 
>>> something else than String could be possibly too, couldn't it?
>> 
>> There was a reason why to use String but I will try to change it to T
>> again.
>> 
>>> 
>>>> public String getFormId()
>>> 
>>> I'd prefer #getForm() instead, similar to AjaxButton.
>>> 
>> 
>> Yep I will change this to not use Strings only.
>> 
>>>> public List<String> getForIds()
>>> 
>>> I'd prefer components instead of ids here too (similar to
>> IFormValidator):
>>> 
>>>   public FormComponent<?>[] getDependentFormComponents()
>>> 
>> 
>> I like the syntax to be similar to other components - I will change this.
>> 
>>>> private class OutputDefaultAjaxBehavior extends
>> AbstractDefaultAjaxBehavior
>>> 
>>> I don't see a need for this default behavior - devs will probably have
>> to recalculate the value on the server anyway.
>> 
>> The Idea behind this behavior is that you get the value just in time when
>> it changes on client side and because it is calculated there the final
>> value has to be send to the server.
>> 
>>> 
>>>> form1.add(new AttributeAppender("onInput", String.format(...)));
>>> 
>>> Couldn't that be handled by OutputField automatically? Preferably with
>> event registration instead of an inline event handler?
>>> 
>> 
>> No because the value calculation can be rather complex and there is no
>> option to handle it in a generic way, but I will change it to event
>> registration.
>> 
>>>   public void renderHead(IHeaderResponse response)
>>>   {
>>>       super.renderHead(response);
>>> 
>>> 
>> response.render(OnDomReadyHeaderItem.forScript(String.format("$('#%s').on('input',
>> function() { %s });", getForm().getMarkupId(), getInputScript()));
>>>   }
>> 
>> Good point - jquery is already loaded because of the ajax behavior.
>> 
> 
> You should not use jQuery and/or $ in Java code. Only Wicket.xyz APIs.
> Otherwise IJavaScriptLibrarySettings#setWicketAjaxReference() would have no
> purpose.
> 
> 
>> 
>>> 
>>> My 2 cents
>>> Sven
>>> 
>>> 
>>>> On 01.06.2015 22:35, Tobias Soloschenko wrote:
>>>> Hi everyone,
>>>> 
>>>> I would like to introduce a new API to make responsive forms available
>> with the HTML5 tag "output".
>>>> 
>>>> Information and examples can be found here:
>>>> 
>>>> 
>> https://github.com/klopfdreh/wicket-components-playground/wiki/14.-HTML5-OutputField-API
>>>> 
>>>> Benefits of the OutputField
>>>> 
>>>> * Easy client side calculations based on input fields and an
>> AttributeAppender - so the calculation can be changed on server side:
>>>> 
>>>> // number1 and number2 are input fields
>>>> form.add(new AttributeAppender("onInput",
>> String.format("%s.value=parseFloat(%s.value)+ parseFloat(%s.value)",
>> outputField.getMarkupId(), number1.getMarkupId(), number2.getMarkupId())));
>>>> 
>>>> * Automated push of the value to the server side. There the value can
>> be retrieved by get the model of the output field:
>>>> 
>>>> form.add(new AjaxButton("submit") {
>>>> 
>>>>   private static final long serialVersionUID = 1L;
>>>> 
>>>>   @Override
>>>>   protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
>>>>       target.add(label.setDefaultModelObject("The current output
>> value: " + outputField.getDefaultModelObject()));
>>>>   }
>>>> }.setDefaultFormProcessing(false));
>>>> 
>>>> I would be very pleased for any feedback! :-)
>>>> 
>>>> kind regards
>>>> 
>>>> Tobias
>>> 
>> 

Reply via email to