You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2017/10/17 19:26:00 UTC

[jira] [Commented] (WICKET-6348) New FormComponentUpdatingBehavior to replace wantOnSelectionChangedNotifications()

    [ https://issues.apache.org/jira/browse/WICKET-6348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16208196#comment-16208196 ] 

ASF subversion and git services commented on WICKET-6348:
---------------------------------------------------------

Commit 7e1a89433ecbdbcc5a27435b665edf8bee4c6456 in wicket's branch refs/heads/WICKET-6105-java.time from [~svenmeier]
[ https://git-wip-us.apache.org/repos/asf?p=wicket.git;h=7e1a894 ]

WICKET-6348 minor addition: update raw input when component is not contained in form
this wasn't done in 7.x either, but for consistency the raw input should be updated, so it is available when a validation fails


> New FormComponentUpdatingBehavior to replace wantOnSelectionChangedNotifications()
> ----------------------------------------------------------------------------------
>
>                 Key: WICKET-6348
>                 URL: https://issues.apache.org/jira/browse/WICKET-6348
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket
>    Affects Versions: 8.0.0-M4
>            Reporter: Sven Meier
>            Assignee: Sven Meier
>            Priority: Minor
>             Fix For: 8.0.0-M6
>
>
> Several form components support notification via normal HTTP request when their value changes in the browser:
> - CheckBox
> - DropDownChoice
> - RadioChoice
> - CheckGroup/Check
> - RadioGroup/Radio
> I propose to move support for this feature into a new behavior "FormComponentUpdatingBehavior".
> This has the following advantages:
> - having to override #wantOnSelectionChangedNotifications() for #onSelectionChanged() to be triggered wasn't very intuitive
> - we minimize the API of these components (the two methods above and #onRequest())
> - we can simplify these components by removing from them this non-core concern (a legacy from the pre-Ajax era)
> - to use the feature users can add a behavior instead, to have a notification triggered on *that* behavior (similar to AjaxFormChoiceComponentUpdatingBehavior)
> - can be used for text components too
> I reused IFormSubmitter to submit the form (for SubmitLink too) so we can simplify Form now:
> - no need for the hidden field "_hf_0", used to transport the actual listener url - the form's action is changed instead
> - no need for #dispatchEvent(), used to schedule another request handler that triggers the component
> - #getJsForInterfaceUrl() is greatly simplified (renamed to #getJsForListenerUrl() now) 
> Migration effort is manageable:
> {code}
> new CheckBox("id", model) {
> 	protected boolean wantOnSelectionChangedNotifications() {
> 		return true;
>         }
> 	protected void onSelectionChanged(Boolean newSelection) {
> 		// do something, page will be rerendered;
> 	}
> };
> {code}
> ... becomes:
> {code}
> new CheckBox("id", model)
> .add(new FormComponentUpdatingBehavior() {
> 	protected void onSelectionChanged() {
> 		// do something, page will be rerendered;
> 	}
> });
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)