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 >>> >>