Ugh.  Gmail was a little deceptive about whether it was really sending
my message.   In any case, the content got better each try, so read
the 3rd one and ignore the other two :-)

On 2/21/07, Mike Kienenberger <[EMAIL PROTECTED]> wrote:
Yes, the problem is that JSFAttr.ROW_STYLECLASS_ATTR =
"org.apache.myfaces.dataTable.ROW_STYLECLASS" instead of
"rowStyleClass"

Thus, jsp saves "rowStyleClass" tag values under
"org.apache.myfaces.dataTable.ROW_STYLECLASS" while facelets stores
them under "rowStyleClass".

http://issues.apache.org/jira/browse/TOMAHAWK-523
http://issues.apache.org/jira/browse/TOMAHAWK-35

Again, if the tag file were calling the concrete getters and setters,
there'd be no problem.  But it's storing this value as a generic
attribute.

Note also that your patch will have to provide backward compatiblity
as per my comment at the end of this issue:

http://issues.apache.org/jira/browse/TOMAHAWK-47

This does show what the workaround is, though.
Use this in your page code:

<t:dataTable ...
org.apache.myfaces.dataTable.ROW_STYLECLASS="#{tableData.selectedRowIndex
== rowIndex ? 'highlightRow' : null}" value=....>

It'd probably be good to get this in the facelets wiki for all of the
fully-qualified (or oddly-named) attributes listed in
org.apache.myfaces.renderkit.JSFAttr.

On 2/21/07, Jeff Bischoff <[EMAIL PROTECTED]> wrote:
> I have found the difference in behaviour between Facelets and JSP to
> stem from different results in code from the following class:
>
> org.apache.myfaces.component.html.ext.HtmlDataTable
>
> In the method getRowStyleClass(), the following line is called:
>
> ValueBinding vb = getValueBinding(JSFAttr.ROW_STYLECLASS_ATTR);
>
>
> In JSP, this results in a valuebinding with the String that I set (e.g.
> #{tableData.selectedRowIndex == rowIndex ? 'highlightRow' : null}).
>
> In JSP, this valuebinding correctly returns either 'highlightRow' or
> 'null' as the value.
>
> In Facelets, this valuebinding is null.
>
> Okay, why would this valuebinding be null in Facelets? I could have
> understood it failing to properly evaluate the valuebinding due to some
> missing variable like "rowIndex", but to have the entire expression null?
>
> Anybody got any ideas? I'm guessing this has something to do with
> Facelets having a different EL implementation?
>
> Regards,
>
> Jeff Bischoff
> Kenneth L Kurz & Associates, Inc.
>
> Jeff Bischoff wrote:
> > I'll resume looking at this next week.
> >
> > I have some clues from putting debugging output into the source and
> > building locally. I need more time to assess it.
> >
> > So far, I don't see evidence to support your hunch. The tag handler
> > really isn't doing anything special, just a simple:
> >
> > setStringProperty(component, JSFAttr.ROW_STYLECLASS_ATTR, _rowStyleClass);
> >
> > We'll see, I need to look at it more. I think though, my problem may be
> > that "rowIndexVar" doesn't get set in time.
> >
> > Regards,
> >
> > Jeff Bischoff
> > Kenneth L Kurz & Associates, Inc.
> >
> > Jeff Bischoff wrote:
> >> Thanks for the assessment Mike. Fortunately I did just finish
> >> converting the last few pages of my application to facelets, so
> >> hopefully I'll have time to give it a shot next week. I'm going to
> >> spend the next half hour or so looking into this issue, for starters.
> >>
> >> This is not a huge thing, but it's really the only thing that "broke"
> >> when switching to facelets. So I'd really like to knock it off.
> >>
> >> Mike Kienenberger wrote:
> >>  > Jeff,
> >>  >
> >>  > This is really straight-forward stuff.   Two hours should be more than
> >>  > sufficient.
> >>  > I'd guess it'd take about 5 minutes to cut&paste a similar
> >>  > getter/setter pair, then replace the attribute name with the new
> >>  > attribute name.
> >>  >
> >>  > The less-obvious part is going to be going into the renderer and
> >>  > changing the references to the generic attribute (map entry) into a
> >>  > concrete method call.
> >>  >
> >>  > The longest part is going to be testing the changes.
> >>  >
> >>  > On 2/15/07, Jeff Bischoff <[EMAIL PROTECTED]> wrote:
> >>  >> (I've moved this thread to the myfaces-users list, due to it being
> >>  >> identified as a Tomahawk bug)
> >>  >>
> >>  >> Heh, Mike do you ever get tired of answering my questions? ;)
> >>  >>
> >>  >> I looked through MyFaces JIRA, and the closest issue I found was
> >>  >> TOMAHAWK-523. The only difference is that they were trying to use EL
> >>  >> based off the "var" attribute, whereas I am attempting to use the
> >>  >> "rowIndexVar". However, this might be the same issue.
> >>  >>
> >>  >> That issue is marked "patch available", but there are no files
> >> attached.
> >>  >> I see that one of your comments on the thread indicates that the
> >> patch
> >>  >> provided wasn't sufficient... There were also user comments there
> >> about
> >>  >> it affecting non-facelets, or being fixed in the trunk - both
> >> statements
> >>  >> which are definately not true for my issue.
> >>  >>
> >>  >> How involved do you think the fix for this would be? Could it be
> >> coded
> >>  >> in a couple of hours? Should I attempt to write a patch to fix this?
> >>  >>
> >>  >> [1] http://issues.apache.org/jira/browse/TOMAHAWK-523
> >>  >>
> >>  >> Mike Kienenberger wrote:
> >>  >> > I think there are already bug reports open on this for Tomahawk,
> >> but
> >>  >> > you should make sure that this is the case, opening one if
> >> necessary.
> >>  >> >
> >>  >> > My guess it that the jsp tag handler for t:dataTable is not using
> >>  >> > standard pass-through code to initialize the rowStyleClass
> >> attribute
> >>  >> > on the t:dataTable component.
> >>  >> >
> >>  >> > The fix would be to rewrite the component and tag handler so
> >> that the
> >>  >> > tag handler isn't doing anything beyond passing the arguments
> >> through
> >>  >> > unchanged.
> >>  >> >
> >>  >> > On 2/15/07, Jeff Bischoff <[EMAIL PROTECTED]> wrote:
> >>  >> >> Greetings,
> >>  >> >>
> >>  >> >> There is a CSS trick with the Tomahawk extended dataTable that
> >> allows
> >>  >> >> the selected row to be highlighted (or some similar things). It
> >> works
> >>  >> >> great in JSP, and has been passed around on the myfaces mailing
> >>  >> list and
> >>  >> >> wiki for some time. The trick goes something like this:
> >>  >> >>
> >>  >> >> <t:dataTable id="TheDataTable"
> >>  >> >>     ...
> >>  >> >>     rowClasses="oddRow,evenRow"
> >>  >> >>     rowStyleClass="#{dataTableBacking.selectedRowIndex ==
> >> rowIndex ?
> >>  >> >> 'highlightRow' : null}"
> >>  >> >>     rowIndexVar="rowIndex"
> >>  >> >>     .../>
> >>  >> >>
> >>  >> >> Unfortunately, when I recently converted my application from
> >> JSP to
> >>  >> >> Facelets, this trick no longer works. (Fortunately, this is one
> >> of the
> >>  >> >> only things that stopped working!) I have heard from other
> >> users on
> >>  >> the
> >>  >> >> myfaces mailing list who also can't get this to work under
> >> facelets.
> >>  >> >> Apparently, the "rowIndex" variable that t:dataTable creates
> >> can't be
> >>  >> >> resolved in the rowStyleClass expression, even though it works for
> >>  >> >> components who are children of the table.
> >>  >> >>
> >>  >> >> Any idea why this would be different under Facelets? I am
> >> thinking of
> >>  >> >> opening a JIRA issue on myfaces project, since this is their
> >> custom
> >>  >> >> component, but wanted to bounce for ideas here first. Any
> >> suggested
> >>  >> >> workarounds?
> >>  >> >>
> >>  >> >> Regards,
> >>  >> >>
> >>  >> >> Jeff Bischoff
> >>  >> >> Kenneth L Kurz & Associates, Inc.
> >>  >> >>
> >>  >> >>
> >>  >> >>
> >>  >> >>
> >> ---------------------------------------------------------------------
> >>  >> >> 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