Hi,

I'm looking into extending <af:table>, and had a question about the use of "final" on several protected methods- notably the "renderRegularHeaders" method in DesktopTableRenderer. All I need to do is stick javascript onmouseover/onmouseout events (a feature the Tomahawk table has in the form of "rowOnMouseover/rowOnMouseout") on the TR element, which gets written there, but because the method is marked "final," I'm stuck overriding a method way higher up the stack (haven't figured out exactly how high yet) and copying a bunch of code verbatim.

I ran into a similar issue adding the defaultSortOrder feature I submitted a JIRA issue about earlier; some "final" method of ColumnGroupRenderer necessitated my extending XhtmlRenderer directly with lots of copied code, rather than extending ColumnGroupRenderer and overriding a method or two. (by the way, will provide working defaultSortOrder code when I get a sec)

My question--and this is an honest question, I'm a relatively new and self-taught Java developer--is what does marking these methods "final" buy you? If they're marked "protected," it seems like they're designed to be overriden. A lot of the features I'd like to add--little Javascript here and there, maybe inline CSS on child table elements, etc--is piddly stuff that would be great to be able to implement with polymorphism.

Thanks in advance,
Rogers

Reply via email to