Private methods and variables drive me nuts..

For example, I'd like to make a simple DataGrid change: make headers 
clickable without refreshing the grid (just toggle a sort icon).
(I need this behaviour because I'd like to have a paging DataGrid 
which only propagates the sort column/direction info to a record-
feching routine on a server)

So, I try to remove a "collection.refresh();" line from 
the "sortByColumn()" function, but I can't - because it's private.

Then, I try to make a new function called "sortByColumn2" (that's a 
copy of the first one, but without "refresh" stuff) and alter 
the "headerReleaseHandler" which calls it, but I can't - cause it's 
private.

And finally, I am trying to add the following code to the 
constructor (yes, the constructor is public, huh.. :-)) 
to "neutralize" the event listener:

removeEventListener(DataGridEvent.HEADER_RELEASE,
headerReleaseHandler,
false, EventPriority.DEFAULT_HANDLER);

... but I can't cause "headerReleaseHandler" is private and can't be 
seen from a subclass!

And then, I give up.. :-)

My conclussion is that Flex framework classes are not extensible 
enough and I really can't see a reason.
Copying the whole DataGrid class and it's renderer, style, etc. 
classes isn't a solution, we all agree. If not other reason - it's 
not the OOP way.

So, I'm tempted to go to a "C:\Program Files\Adobe\Flex Builder 2
\Flex SDK 2\frameworks\source\mx\" folder and make a global search 
and replace on all files in this folder. You guess... 
replace "private" with "protected"... :-)




--- In flexcoders@yahoogroups.com, "Dana Gutride" <[EMAIL PROTECTED]> 
wrote:
>
> Recently on this list, somebody said that the Flex framework team 
has been
> surprised at the resistance many developers have to subclassing 
and they'd
> like to understand it better.  I'd like to put my 2 cents into this
> discussion because maybe we can come up with some good answers.
> 
> I think the ability to extend the existing framework is fabulous, 
but I find
> that I am hesitant to subclass or extend the existing classes.  
Recently, I
> spent several days trying to override the placeSortArrow function 
on the
> datagrid.  I ended up ditching my code because there were so many 
private
> variables used by the existing placeSortArrow() function that I 
would need
> to rewrite most of the datagrid.as file.
> 
> I've bought books and searched online for answers, but I haven't 
found
> anything satisfactory yet.  Maybe if there were more resources 
(even if we
> had to pay for them), we would find more developers extending the 
flex
> framework.
> 
> Dana
>


Reply via email to