You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Martin Marinschek <ma...@gmail.com> on 2005/07/05 11:09:50 UTC
Re: jsValueChangeListener + DataTable: onchange tag value is not correct
I don't have too much time, so if you want to give it a try, I would
be very thankful ;)
regards,
Martin
On 7/5/05, Paul Klaer <pk...@infeurope.lu> wrote:
> Ah :-) I hope you had good days at java one... Thanks for your fast answer.
>
> Yes, I think you're right, than we need a hole marker for this feature.
> I think this is a good approach.
>
> What do you think when you have time to extend the source code? If you
> don't have much time maybe I could do try to implement this first and
> send the code to you...
>
> Regards
>
> Martin Marinschek wrote:
> > Yes, I have seen it - sorry to not write back, I have been to the Java
> > One Conference in between.
> >
> > I believe the thing with the marker is necessary - imagine you would
> > want to add a custom javascript function to the component
> > additionally, this would need to be in there always.
> >
> > regards,
> >
> > Martin
> >
> > On 7/4/05, Paul Klaer <pk...@infeurope.lu> wrote:
> >
> >>Hi Martin,
> >>
> >>sorry, I didn't answered very fast but did you noticed my mail in the
> >>meantime on the users list?
> >>
> >>Regards
> >>Paul
> >>
> >>Paul Klaer wrote:
> >>
> >>>I think the marker would be appropriate for this needs under this
> >>>conditions.
> >>>
> >>>But, first time I saw the code I was asking me: Why do you need on each
> >>>component the call for the JS method of all components?
> >>>
> >>>If a user changes a value for the component textbox then you always
> >>>change the hidden parameter (or something else) for this component, but
> >>>not for all other components...
> >>>
> >>>Wouldn't be enough to have only one call for the js method
> >>>"orgApacheMyfacesJsListenerSetExpressionProperty...."?
> >>>
> >>>Best Regards
> >>>
> >>>Paul
> >>>
> >>>Martin Marinschek wrote:
> >>>
> >>>
> >>>>Yes,
> >>>>
> >>>>you are absolutely right, that is a problem.
> >>>>
> >>>>Sorry, I didn't have a need so far to fix that, and no time available
> >>>>to do so right now, but I might have time to discuss it with you and
> >>>>to try to find a solution.
> >>>>
> >>>>One thing I was thinking about originally was to have this javascript
> >>>>call surrounded by a marker and at the beginning of the encode end,
> >>>>remove everything that is surrounded by this marker.
> >>>>
> >>>>Would you think this approach is appropriate?
> >>>>
> >>>>regards,
> >>>>
> >>>>Martin
> >>
> >>
>
>
Re: jsValueChangeListener + DataTable: onchange tag value is not
correct
Posted by Paul Klaer <pk...@infeurope.lu>.
Hi Martin,
Sorry for my late answer, I had not a lot of time... But here is my
solution.
You need to change only the method "callMethod" in the
JsValueChangeListenerRenderer Class. I added there an additional if clause.
Please check if the code runs well on your test environment... I used
the js name as marker and I check and clear the script entries on each
new row in a table or new parent component id....
Regards,
Paul Klaer
private void callMethod(UIComponent uiComponent, String propName, String
value)
{
Object oldValue = uiComponent.getAttributes().get(propName);
if(oldValue != null)
{
String oldValueStr = oldValue.toString().trim();
//check if method call has already been added...
if(oldValueStr.indexOf(value)!=-1)
return;
//check if multiple change listeners belong to parent
component
//and if the previous rendered information has to be cleared
if
(oldValueStr.indexOf("orgApacheMyfacesJsListenerSetExpressionProperty(")
> 0
&&
oldValueStr.indexOf(uiComponent.getClientId(getFacesContext())) < 0) {
oldValueStr = oldValueStr.substring(0,
oldValueStr.indexOf("orgApacheMyfacesJsListenerSetExpressionProperty("));
}
if(oldValueStr.length()>0 && !oldValueStr.endsWith(";"))
oldValueStr +=";";
value = oldValueStr + value;
}
uiComponent.getAttributes().put(propName, value);
}
Martin Marinschek wrote:
> I don't have too much time, so if you want to give it a try, I would
> be very thankful ;)
>
> regards,
>
> Martin
>
>
> On 7/5/05, Paul Klaer <pk...@infeurope.lu> wrote:
>
>>Ah :-) I hope you had good days at java one... Thanks for your fast answer.
>>
>>Yes, I think you're right, than we need a hole marker for this feature.
>>I think this is a good approach.
>>
>>What do you think when you have time to extend the source code? If you
>>don't have much time maybe I could do try to implement this first and
>>send the code to you...
>>
>>Regards
>>
>>Martin Marinschek wrote:
>>
>>>Yes, I have seen it - sorry to not write back, I have been to the Java
>>>One Conference in between.
>>>
>>>I believe the thing with the marker is necessary - imagine you would
>>>want to add a custom javascript function to the component
>>>additionally, this would need to be in there always.
>>>
>>>regards,
>>>
>>>Martin
>>>
>>>On 7/4/05, Paul Klaer <pk...@infeurope.lu> wrote:
>>>
>>>
>>>>Hi Martin,
>>>>
>>>>sorry, I didn't answered very fast but did you noticed my mail in the
>>>>meantime on the users list?
>>>>
>>>>Regards
>>>>Paul
>>>>
>>>>Paul Klaer wrote:
>>>>
>>>>
>>>>>I think the marker would be appropriate for this needs under this
>>>>>conditions.
>>>>>
>>>>>But, first time I saw the code I was asking me: Why do you need on each
>>>>>component the call for the JS method of all components?
>>>>>
>>>>>If a user changes a value for the component textbox then you always
>>>>>change the hidden parameter (or something else) for this component, but
>>>>>not for all other components...
>>>>>
>>>>>Wouldn't be enough to have only one call for the js method
>>>>>"orgApacheMyfacesJsListenerSetExpressionProperty...."?
>>>>>
>>>>>Best Regards
>>>>>
>>>>>Paul
>>>>>
>>>>>Martin Marinschek wrote:
>>>>>
>>>>>
>>>>>
>>>>>>Yes,
>>>>>>
>>>>>>you are absolutely right, that is a problem.
>>>>>>
>>>>>>Sorry, I didn't have a need so far to fix that, and no time available
>>>>>>to do so right now, but I might have time to discuss it with you and
>>>>>>to try to find a solution.
>>>>>>
>>>>>>One thing I was thinking about originally was to have this javascript
>>>>>>call surrounded by a marker and at the beginning of the encode end,
>>>>>>remove everything that is surrounded by this marker.
>>>>>>
>>>>>>Would you think this approach is appropriate?
>>>>>>
>>>>>>regards,
>>>>>>
>>>>>>Martin
>>>>
>>>>
>>