I would like to chime in on this as well. I have practically re-written the 
form classes to make them implement our "standard look and feel" all of this 
should have been able to be done via sub-classing but SO MANY private variables 
and functions prevented it, I basically copied and recreated all the form 
classes for our application what w waist, can't wait to try to update this 
stuff with the next version just updating them to have the hooks for automation 
(Flex 2.0.1) has me concerned.

----- Original Message ----
From: Gordon Smith <[EMAIL PROTECTED]>
To: flexcoders@yahoogroups.com
Sent: Friday, March 9, 2007 1:50:14 PM
Subject: RE: [flexcoders] Re: Are other developers hesitant to extend existing 
classes in Flex?









  


    
            



Actually, preventDefault( ) does NOT prevent other listeners 
from executing; this is what stopPropagation( ) and stopImmediatePropag ation() 
do.

 

preventDefault( ) simply sets the flag returned by 
isDefaultPrevented( ) to be true. However, some event-dispatching code in the 
Player or the framework is written like this (and you can do the same thing 
in your apps):

 

    
dispatchEvent( event);

    if 
(!event.isDefaultPr evented() )

        
doSomethingByDefaul t();

 

So calling preventDefault( ) prevents doSomethingByDefaul t() 
from being executed. But doSomethingByDefaul t() is not a 
listener.

 

- Gordon




From: [EMAIL PROTECTED] ups.com 
[mailto:flexcoders@ yahoogroups. com] On Behalf Of Danko 
Kozar
Sent: Friday, March 09, 2007 1:52 AM
To: 
[EMAIL PROTECTED] ups.com
Subject: [flexcoders] Re: Are other 
developers hesitant to extend existing classes in Flex?






Jason, this was an eye-opener!
Till now I didn't realize that an event 
listener can cancel another 
listeners. But the "preventDefault( )" 
method of the Event class does 
exactly that.

This is the way I should 
go with a PagableGrid.

Thanks!

--- In [EMAIL PROTECTED] ups.com, 
"Jason Hawryluk" <[EMAIL PROTECTED]> wrote:
>
> As a follow up to the 
last response, take note of the
> event.preventDefaul t(); in the 
handler for HEADER_RELEASE, and the 
fact that
> I don't do a refresh 
on the ListCollectionView after adding the
> 
> sort to it.
> 

> jason
> 
> 
> 
> 
> 
> -----Message 
d'origine--- --
> De : [EMAIL PROTECTED] ups.com 

[mailto:[EMAIL PROTECTED] ups.com]De 
la
> part de Danko Kozar
> Envoyé : jeudi 8 mars 2007 11:48
> 
À : [EMAIL PROTECTED] ups.com
> 
Objet : [flexcoders] Re: Are other developers hesitant to extend 

existing
> classes in Flex?
> 
> 
> 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 "headerReleaseHandl er" 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,
> 
headerReleaseHandle r,
> false, 
EventPriority. DEFAULT_HANDLER) ;
> 
> ... but I can't cause 
"headerReleaseHandl er" 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 [EMAIL PROTECTED] ups.com, 
"Dana Gutride" <dgutride@>
> 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
> >
>





    
  

    
    




<!--

#ygrp-mlmsg {font-size:13px;font-family:arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family:Georgia;
}
#ygrp-text p{
margin:0 0 1em 0;
}
#ygrp-tpmsgs{
font-family:Arial;
clear:both;
}
#ygrp-vitnav{
padding-top:10px;
font-family:Verdana;
font-size:77%;
margin:0;
}
#ygrp-vitnav a{
padding:0 1px;
}
#ygrp-actbar{
clear:both;
margin:25px 0;
white-space:nowrap;
color:#666;
text-align:right;
}
#ygrp-actbar .left{
float:left;
white-space:nowrap;
}
.bld{font-weight:bold;}
#ygrp-grft{
font-family:Verdana;
font-size:77%;
padding:15px 0;
}
#ygrp-ft{
font-family:verdana;
font-size:77%;
border-top:1px solid #666;
padding:5px 0;
}
#ygrp-mlmsg #logo{
padding-bottom:10px;
}

#ygrp-vital{
background-color:#e0ecee;
margin-bottom:20px;
padding:2px 0 8px 8px;
}
#ygrp-vital #vithd{
font-size:77%;
font-family:Verdana;
font-weight:bold;
color:#333;
text-transform:uppercase;
}
#ygrp-vital ul{
padding:0;
margin:2px 0;
}
#ygrp-vital ul li{
list-style-type:none;
clear:both;
border:1px solid #e0ecee;
}
#ygrp-vital ul li .ct{
font-weight:bold;
color:#ff7900;
float:right;
width:2em;
text-align:right;
padding-right:.5em;
}
#ygrp-vital ul li .cat{
font-weight:bold;
}
#ygrp-vital a {
text-decoration:none;
}

#ygrp-vital a:hover{
text-decoration:underline;
}

#ygrp-sponsor #hd{
color:#999;
font-size:77%;
}
#ygrp-sponsor #ov{
padding:6px 13px;
background-color:#e0ecee;
margin-bottom:20px;
}
#ygrp-sponsor #ov ul{
padding:0 0 0 8px;
margin:0;
}
#ygrp-sponsor #ov li{
list-style-type:square;
padding:6px 0;
font-size:77%;
}
#ygrp-sponsor #ov li a{
text-decoration:none;
font-size:130%;
}
#ygrp-sponsor #nc {
background-color:#eee;
margin-bottom:20px;
padding:0 8px;
}
#ygrp-sponsor .ad{
padding:8px 0;
}
#ygrp-sponsor .ad #hd1{
font-family:Arial;
font-weight:bold;
color:#628c2a;
font-size:100%;
line-height:122%;
}
#ygrp-sponsor .ad a{
text-decoration:none;
}
#ygrp-sponsor .ad a:hover{
text-decoration:underline;
}
#ygrp-sponsor .ad p{
margin:0;
}
o {font-size:0;}
.MsoNormal {
margin:0 0 0 0;
}
#ygrp-text tt{
font-size:120%;
}
blockquote{margin:0 0 0 4px;}
.replbq {margin:4;}
-->









 
____________________________________________________________________________________
Need Mail bonding?
Go to the Yahoo! Mail Q&A for great tips from Yahoo! Answers users.
http://answers.yahoo.com/dir/?link=list&sid=396546091

Reply via email to