it doesnt really look like you need a callback, you can simply
represent the link as a webmarkupcontainer that adds an onclick
javascript. more efficient and does the same thing.

-igor

On Wed, Aug 26, 2009 at 10:11 PM, Ian MacLarty<[email protected]> wrote:
> It depends on the error.  Most of the time the onclick behaviour
> simply returns some javascript that highlights the invalid field.
> Sometimes it changes the current tab, because the invalid field is on
> a different tab.  The code looks like this:
>
>        add(new AjaxEventBehavior("onclick") {
>           �...@override
>            protected void onEvent(AjaxRequestTarget target) {
>                target.appendJavascript(onClickJS);
>                if (msg instanceof PfpFeedbackMessage) {
>                    PfpFeedbackMessage pfpMsg = (PfpFeedbackMessage)msg;
>                    if (pfpMsg.getExtraClickBehavior() != null) {
>                        pfpMsg.getExtraClickBehavior().onClick(target);
>                    }
>                }
>            }
>        });
>
> The getExtraClickBehaviour method can return any extra behaviour to do
> when the message is clicked (e.g. change the current tab).
>
> On Thu, Aug 27, 2009 at 3:01 PM, Igor Vaynberg<[email protected]> wrote:
>> what do these links do?
>>
>> -igor
>>
>> On Wed, Aug 26, 2009 at 9:51 PM, Ian MacLarty<[email protected]> wrote:
>>> Hi Igor,
>>>
>>> The commit log is simply:
>>>
>>> Issue: WICKET-2384.
>>>
>>>
>>> From http://issues.apache.org/jira/browse/WICKET-2384:
>>>
>>> Problem is that we keep reference to FeedbackMessage in component
>>> inside MessageListView item. The feedback message references previous
>>> page - that causes the problem, because the previous page is
>>> serialized together with current (and the page before, etc).
>>>
>>> Simply removing components from MessageListView should fix the problem.
>>>
>>> class MessageListView
>>> {
>>>  ...
>>> �...@override
>>>  protected void onDetach()
>>>  {
>>>    removeAll();
>>>    super.onDetach();
>>>  }
>>>
>>> }
>>>
>>>
>>> By the way if you have any suggestions on how I could work around my
>>> problem without having to go back to 1.3.6 I'd love to hear them.
>>>
>>> Cheers,
>>> Ian.
>>>
>>> On Thu, Aug 27, 2009 at 2:43 PM, Igor Vaynberg<[email protected]> 
>>> wrote:
>>>> before you file a bug report, what was the commit log for that svn
>>>> change you found?
>>>>
>>>> -igor
>>>>
>>>> On Wed, Aug 26, 2009 at 9:42 PM, Ian MacLarty<[email protected]> 
>>>> wrote:
>>>>> On Thu, Aug 27, 2009 at 2:09 PM, Ian MacLarty<[email protected]> 
>>>>> wrote:
>>>>>> On Thu, Aug 27, 2009 at 1:41 PM, Ian MacLarty<[email protected]> 
>>>>>> wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I recently upgraded to Wicket 1.4 and am now having a problem with a
>>>>>>> feedback panel.
>>>>>>>
>>>>>>> I have a custom feedback panel that uses custom message components (by
>>>>>>> overriding FeedbackPanel#newMessageDisplayComponent).  The custom
>>>>>>> messages have an AjaxEventBehavior on the "onclick" event.  This
>>>>>>> highlights the reporting component when the feedback message is
>>>>>>> clicked.  This all worked okay in 1.3.6, but after upgrading to 1.4
>>>>>>> Wicket throws a RuntimeException when the feedback message is clicked.
>>>>>>>  The exception is "component
>>>>>>> mainForm:feedback:feedbackul:messages:0:message not found on page
>>>>>>> axa.pfp.MainTabs".  If I look in the generated html this component
>>>>>>> definitely seems to be there.  Does anyone know what might have
>>>>>>> changed with version 1.4 to break this?
>>>>>>>
>>>>>>
>>>>>> I suspect it is the change made in revision 796389:
>>>>>>
>>>>>> Index: 
>>>>>> wicket/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
>>>>>> ===================================================================
>>>>>> --- 
>>>>>> wicket/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
>>>>>>  (revision
>>>>>> 796388)
>>>>>> +++ 
>>>>>> wicket/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
>>>>>>  (revision
>>>>>> 796389)
>>>>>> @@ -94,6 +94,13 @@
>>>>>>                        listItem.add(levelModifier);
>>>>>>                        listItem.add(label);
>>>>>>                }
>>>>>> +
>>>>>> +               @Override
>>>>>> +               protected void onDetach()
>>>>>> +               {
>>>>>> +                       removeAll();
>>>>>> +                       super.onDetach();
>>>>>> +               }
>>>>>>        }
>>>>>>
>>>>>>        private static final long serialVersionUID = 1L;
>>>>>>
>>>>>> The removeAll is removing all the child elements of the feedback
>>>>>> message list, which explains why it is not finding the component.
>>>>>>
>>>>>
>>>>> Sure enough, if I comment out the removeAll() I don't get the problem.
>>>>>  I guess I will file a bug report...
>>>>>
>>>>> Ian.
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to