On Wed, Apr 29, 2015 at 3:20 PM, Sven Meier <[email protected]> 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 <[email protected]>
>> 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 <[email protected]> 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 <[email protected]> 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 <
>>>>>>> [email protected]>
>>>>>>> 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 <[email protected]>
>>>>>>>> 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
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>

Reply via email to