I use similar approach and wondering.
... how to make sure that one year later another developer will realize that
there is a helper for her convinience?


svenmeier wrote:
> 
> Hi,
> 
> thinking more about this 'issue' I realized that in these simple cases 
> one can just use a simple helper method:
> 
> onclick(target) {
>   AjaxHelper.addComponent(componentToReRenderOnAjaxRequest);
> }
> 
> It was already discussed how components could automagically be added for 
> re-rendering on each AjaxRequest.
> Such a feature would make a lot of calls to 
> AjaxRequestTarget#addComponent() obsolete.
> 
> Regards
> 
> Sven
> 
> Vladimir K wrote:
>> Although it is possible I wouldn't recommend authoring certainly
>> different UI
>> basing on the asynchronisity of the request. For instance I experience
>> inconvinience when mistakely opening Outlook Web Access in Firefox
>> instead
>> of MS IE and seeing a bit different non-ajaxy UI.
>>
>> All the handlers of fallback components in my code perform the same logic
>> for ajax and non-ajax requests. The only difference is that I have to
>> tell
>> Wicket what components are invalidated due to changes in data model. I
>> find
>> it to be a good design style. That sort of information is just a garbage
>> for
>> the current Wicket rendering algorithm but thing could be different in
>> the
>> future if you decided to optimize the re-rendering process.
>>
>> From the other hand I would prefer to just call RequestTarget.isAjax() to
>> distinguish what interface I should present to the user in case when it
>> is
>> reasonable different. Checking whether the object is null is much
>> dangerous
>> and non-self-descriptive. IMHO it is no-no design practice.
>>
>> Since the number of fallback components is pretty small it is not
>> difficult
>> to derive from them some project-local components and wrap event handling
>> in
>> a manner I proposed to guard from NPE. But intention was to improve the
>> Wicket API not only for that particular case.
>>
>>
>> igor.vaynberg wrote:
>>   
>>> On Sat, Oct 24, 2009 at 7:18 AM, Sven Meier <s...@meiers.net> wrote:
>>>
>>>     
>>>> I don't think he meant a *complete* no-op request target, just the
>>>> method
>>>> addComponent() would be a no-op. The fake request target will rerender
>>>> the
>>>> complete page as any other standard request would do.
>>>>       
>>> this is not possible. all public contracts of the request target have
>>> to be properly implemented. eg if a component was added it should be
>>> returned by getcomponents(), also any registered listeners have to be
>>> notified, etc.
>>>
>>> i really dont understand the point of this change. if you have a fake
>>> ajaxrequesttarget then the code for a fallback is essentially a noop,
>>> so your app is broken in fallback.
>>>
>>> most of the code i have written that utilizes the fallback
>>> functionality looks like this:
>>>
>>> onclick(target) {
>>>   if (target==null) {
>>>     setresponsepage(new editpage(...));
>>>   } else {
>>>     setupInp+laceEditPanel();
>>>   }
>>> }
>>>
>>> the workflows are divergent.
>>>
>>> -igor
>>>
>>>     
>>>> BTW why don't we get rid of all those AjaxFallback... components and
>>>> just
>>>> let *all* Ajax... components support use of a standard HTML request as
>>>> fallback?
>>>>
>>>> Regards
>>>>
>>>> Sven
>>>>
>>>> Martin Grigorov wrote:
>>>>       
>>>>> I think he meant wasting CPU cycles for constructing your components
>>>>> which will be added to no-op ajaxrequesttarget
>>>>>
>>>>> then you'll have to make check like "if (target instanceOf
>>>>> NullAjaxRequestTarget) {return;}" which is not better than before
>>>>>
>>>>> El sáb, 24-10-2009 a las 12:18 +0200, Andreas Petersson escribió:
>>>>>
>>>>>         
>>>>>> I think it absolutely makes sense (for a future release of wicket).
>>>>>> having a NullObject instance of AjaxRequestTarget would not waste a
>>>>>> lot
>>>>>> of cpu cycles at all, at least not how i use it. the only thing i do
>>>>>> with
>>>>>> the object is call .addComponent() and then refering a
>>>>>> already-initialized
>>>>>> variable.
>>>>>>
>>>>>> how likely is it that the object is in fact null? its <5% of users
>>>>>> who
>>>>>> have javascript disabled. so this would affect only a small amount of
>>>>>> requests.
>>>>>>
>>>>>> from a jvm perspective calling methods with empty bodys very often is
>>>>>> not
>>>>>> something expensive. they will get inlined by the hotspot compiler
>>>>>> and
>>>>>> be
>>>>>> effectively free. (i am not 100% sure if this also applys to
>>>>>> polymorphism
>>>>>> chains.)
>>>>>>
>>>>>> from a "clean-code" prespective it is often considered a code smell
>>>>>> to
>>>>>> have a lot of null checks.
>>>>>> in your example providing a FakeDatabaseConnection that throws an
>>>>>> UnsrupportedOperationException("you have no database!") is better
>>>>>> than
>>>>>> seeing a null pointer exception.
>>>>>>
>>>>>>
>>>>>>           
>>>>>>> Sounds weird.
>>>>>>>
>>>>>>> Why should my component burn cpu cycles to feed a fake ajax target
>>>>>>> which
>>>>>>> does nothing at all?
>>>>>>>
>>>>>>> I would prefer some null checks in that case.
>>>>>>>
>>>>>>> Would you also provide a FakeDatabaseConnection in case you
>>>>>>> application
>>>>>>> does not support databases? :-)
>>>>>>>
>>>>>>>
>>>>>>> Am 24.10.2009 um 07:42 schrieb Vladimir Kovalyuk:
>>>>>>>
>>>>>>>
>>>>>>>             
>>>>>>>> I believe all those null-checks of request target can be omited in
>>>>>>>> user
>>>>>>>> code
>>>>>>>> if fallback components would provide fake implementation of
>>>>>>>> AjaxRequestTarget instead of passing null.
>>>>>>>>
>>>>>>>> Does it make sense?
>>>>>>>>
>>>>>>>>               
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>>>>           
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>>>
>>>>>
>>>>>         
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>>
>>>>
>>>>       
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>
>>>
>>>
>>>     
>>
>>   
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Proposal%3A-Fake-implementation-of-AjaxRequestTarget-instead-of-null-tp26036327p26046394.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to