You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Martin Grigorov <mg...@apache.org> on 2015/05/04 17:27:58 UTC
Re: OnAction behaviors
+1s: me, Emond, Dan Haywood
-1s: Andrew Geary, Sven
IMO there is not enough willingness to implement this feature in core.
I'll close the ticket.
Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov
On Wed, Apr 29, 2015 at 3:40 PM, Martin Grigorov <mg...@apache.org>
wrote:
>
> On Wed, Apr 29, 2015 at 3:20 PM, Sven Meier <sv...@meiers.net> wrote:
>
>> If I understand you correctly, you're proposing the following:
>>
>> Button {
>> publiv void onSubmit() {
>> send(this, Broadcast.EXACT, new SubmitPayload());
>> }
>>
>> public static class SubmitPayload {
>> }
>> }
>>
>> Correct?
>> IMHO this would be easier then:
>>
>> Button {
>> publiv void onSubmit() {
>> for (ClickListener listener : getBehaviors(ClickListener.class)) {
>> listener.onSubmit();
>> }
>> }
>>
>> public static interface ClickListener {
>> public void onSubmit();
>> }
>> }
>>
>
> Agreed! This is better!
>
>
>>
>> But I don't like either of these solution. I agree with Andrew that this
>> does not belong into core, people can build this on top of wicket.
>>
>
> This is also what I said in my first comment in the ticket.
> But later I've started seeing sense it in. That's why I've asked for more
> opinions here.
>
>
>
>>
>> Perhaps you have something different in mind?
>>
>> Regards
>> Sven
>>
>>
>>
>> On 28.04.2015 22:30, Martin Grigorov wrote:
>>
>>> Hi Sven,
>>>
>>> Maybe I didn't understand your idea with the interfaces.
>>> wicket-core components should instantiate the payload and broadcast it.
>>> How something implemented by the application will be instantiated by
>>> Wicket?
>>>
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>>
>>> On Tue, Apr 28, 2015 at 2:56 PM, Martin Grigorov <mg...@apache.org>
>>> wrote:
>>>
>>> Hi Sven,
>>>>
>>>> The only problem I see with the interfaces approach is that it won't be
>>>> easy to extend them with extra functionality in a minor release if this
>>>> is
>>>> ever needed.
>>>>
>>>> Martin Grigorov
>>>> Wicket Training and Consulting
>>>> https://twitter.com/mtgrigorov
>>>>
>>>> On Tue, Apr 28, 2015 at 12:47 PM, Sven Meier <sv...@meiers.net> wrote:
>>>>
>>>> Hi Martin,
>>>>>
>>>>> why not just define interfaces in Components, and allow behaviors to
>>>>> implement these?
>>>>> Not that I'm convinced of the usefulness of this feature :P.
>>>>>
>>>>> Regards
>>>>> Sven
>>>>>
>>>>>
>>>>>
>>>>> On 28.04.2015 11:23, Martin Grigorov wrote:
>>>>>
>>>>> Hi Sven,
>>>>>>
>>>>>> I imagine them as inner static classes in AbstractLink, Button and
>>>>>> Form
>>>>>> classes.
>>>>>> AjaxRequestTarget will be an optional property for the event payload.
>>>>>> I.e.
>>>>>> AjaxButton will set it, Button will leave it null.
>>>>>>
>>>>>> Martin Grigorov
>>>>>> Wicket Training and Consulting
>>>>>> https://twitter.com/mtgrigorov
>>>>>>
>>>>>> On Tue, Apr 28, 2015 at 12:11 PM, Sven Meier <sv...@meiers.net> wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>>> how (where) will these events (=payloads?) be defined?
>>>>>>>
>>>>>>> Sven
>>>>>>>
>>>>>>>
>>>>>>> On 28.04.2015 08:29, Martin Grigorov wrote:
>>>>>>>
>>>>>>> Hi Dan,
>>>>>>>
>>>>>>>> On Mon, Apr 27, 2015 at 4:21 PM, Dan Haywood <
>>>>>>>> dan@haywood-associates.co.uk>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Sounds a bit similar to Apache Isis' support for domain events
>>>>>>>> (albeit
>>>>>>>>
>>>>>>>> at a
>>>>>>>>> higher level of abstraction).
>>>>>>>>>
>>>>>>>>> we've found that feature very useful, so I would imagine there
>>>>>>>>> would
>>>>>>>>> be
>>>>>>>>> benefits from implementing this lower more general support in
>>>>>>>>> Wicket.
>>>>>>>>>
>>>>>>>>> Thanks for sharing your experience!
>>>>>>>>>
>>>>>>>>> You could also perhaps submit events for the validation
>>>>>>>> (allowing
>>>>>>>>
>>>>>>>> subscribers to veto changes).
>>>>>>>>>
>>>>>>>>> IMO there is no need to do this for validation.
>>>>>>>>>
>>>>>>>>> Currently when an IValidator is added to a FormComponent it is
>>>>>>>> automatically wrapped in a Behavior [1].
>>>>>>>> So Wicket will use the typesafer IValidator#validate(IValidatable)
>>>>>>>> instead
>>>>>>>> of Behavior#onEvent(IEvent)
>>>>>>>>
>>>>>>>>
>>>>>>>> 1.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> https://github.com/apache/wicket/blob/master/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java#L515
>>>>>>>>
>>>>>>>>
>>>>>>>> Cheers
>>>>>>>>
>>>>>>>> Dan
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 27 April 2015 at 13:13, Martin Grigorov <mg...@apache.org>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> https://issues.apache.org/jira/browse/WICKET-5884 suggest an
>>>>>>>>>> interesting
>>>>>>>>>> feature:
>>>>>>>>>>
>>>>>>>>>> All links/buttons/forms to broadcast Wicket events to their
>>>>>>>>>> Behaviors
>>>>>>>>>>
>>>>>>>>>> about
>>>>>>>>>>
>>>>>>>>> the event.
>>>>>>>>>
>>>>>>>>>> I.e. a Link/Button will tell all its Behaviors that it has been
>>>>>>>>>> clicked,
>>>>>>>>>>
>>>>>>>>>> a
>>>>>>>>>>
>>>>>>>>> Form will tell that it has been submitted.
>>>>>>>>>
>>>>>>>>>> The broadcast would be with type EXACT so only the current
>>>>>>>>>> component
>>>>>>>>>> and
>>>>>>>>>> its behaviors will be notified via #onEvent().
>>>>>>>>>> This way the application developer can reuse functionality that
>>>>>>>>>> should
>>>>>>>>>> be
>>>>>>>>>> executed for several links/submitters.
>>>>>>>>>>
>>>>>>>>>> While I see how this could be useful for some applications I also
>>>>>>>>>> see
>>>>>>>>>>
>>>>>>>>>> that
>>>>>>>>>>
>>>>>>>>> it will add to the processing time for all applications no matter
>>>>>>>>>
>>>>>>>>>> whether
>>>>>>>>>> they use the feature or not.
>>>>>>>>>>
>>>>>>>>>> Also I guess some user will ask for OnBeforeButtonSubmitEvent +
>>>>>>>>>> OnAfterButtonSubmitEvent (same for Link and Form) so the extra
>>>>>>>>>> processing
>>>>>>>>>> time be doubled.
>>>>>>>>>>
>>>>>>>>>> What do you think about the feature?
>>>>>>>>>>
>>>>>>>>>> Martin Grigorov
>>>>>>>>>> Wicket Training and Consulting
>>>>>>>>>> https://twitter.com/mtgrigorov
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>
>