And I guess let me add a few other things.

 

1)      With regard to the bug itself, I'm guessing that the issue is
that first item in the collection to be sorted has the null value.  This
is causing an error because we can't determine what kind of comparator
to use by default.  If your first item hadn't been null you wouldn't see
the issue. This means that you should specify the comparator you want to
use, but one could argue that perhaps more information could be added to
the DataGridColumn to provide an option for some of the provided
comparators.  

2)      I can't remember in our code which way null compares to an
actual value, but they will group together.

3)      There will of course be a process for code to get contributed to
the SDK.  We'll have more info on this as we get closer to release, but
in general it will involve having a bug filed in the bugbase, votes
indicating the community's interest in having it fixed along with SDK
management agreeing that the contribution is useful, and then the
committers (SDK engineering) approval of the fix.

 

Matt

 

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Matt Chotin
Sent: Sunday, December 02, 2007 3:57 PM
To: flexcoders@yahoogroups.com
Subject: RE: [flexcoders] Re: If Flex is open source, how do we go about
changing the language?

 

I've moved this bug to https://bugs.adobe.com/jira/browse/SDK-13808
since it is not related to the ActionScript compiler, it's only in the
Flex classes.

 

Matt

 

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of aceoohay
Sent: Saturday, December 01, 2007 9:14 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: If Flex is open source, how do we go about
changing the language?

 

Gordon:

Per your request I have filed a bug report. It can be found here;

https://bugs.adobe.com/jira/browse/ASC-3042

Paul
--- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
, "aceoohay" <[EMAIL PROTECTED]> wrote:
>
> Gordon, et al:
> 
> Here is a simple test that will show the problem;
> 
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"; 
> layout="absolute"
> creationComplete="initApp()">
> <mx:Script>
> <![CDATA[
> import mx.collections.ArrayCollection;
> import mx.controls.Alert;
> [Bindable] public var acData:ArrayCollection = new 
> ArrayCollection;
> private function initApp():void
> {
> acData.addItem
> ({col1:null,col2:null,col3:null,col4:null});
> acData.addItem({col1:1,col2:new Date
> (),col3:true,col4:"A"});
> acData.addItem
> ({col1:null,col2:null,col3:null,col4:null});
> acData.addItem({col1:2,col2:new Date
> (),col3:null,col4:"B"});
> acData.addItem
> ({col1:null,col2:null,col3:null,col4:null});
> acData.addItem({col1:3,col2:new Date
> (),col3:true,col4:"C"});
> acData.addItem
> ({col1:null,col2:null,col3:null,col4:null});
> acData.addItem({col1:4,col2:new Date
> (),col3:null,col4:"D"});
> acData.addItem
> ({col1:null,col2:null,col3:null,col4:null});
> acData.addItem({col1:5,col2:new Date
> (),col3:true,col4:"E"});
> acData.addItem
> ({col1:null,col2:null,col3:null,col4:null});
> acData.addItem({col1:6,col2:new Date
> (),col3:false,col4:"F"});
> acData.addItem
> ({col1:null,col2:null,col3:null,col4:null});
> dgSortTest.dataProvider = acData;
> }
> ]]>
> </mx:Script>
> 
> <mx:DataGrid id="dgSortTest" x="26" y="10">
> <mx:columns>
> <mx:DataGridColumn headerText="Column 1" 
> dataField="col1"/>
> <mx:DataGridColumn headerText="Column 2" 
> dataField="col2"/>
> <mx:DataGridColumn headerText="Column 3" 
> dataField="col3"/>
> <mx:DataGridColumn headerText="Column 4" 
> dataField="col4"/>
> </mx:columns>
> </mx:DataGrid>
> 
> </mx:Application>
> 
> --- In flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> , "Gordon Smith" <gosmith@> wrote:
> >
> > Your use case seem very reasonable to me. In this particular case 
I
> > disagree with my esteemed colleague Alex (who sits across from 
> me)... I
> > think our default sorting routines should handle null values. So 
> please
> > file this as a bug at http://bugs.adobe.com/flex and feel free to
> > mention that I consider it a bug.
> > 
> > However, I agree with Alex that it probably will not get fixed in 
> time
> > for the Flex 3 release, as the bar is currently extremely high for
> > making changes at this point. We've got to stabilize the release 
> and get
> > it out! So you'll need to use a workaround for now.
> > 
> > Gordon Smith
> > Adobe Flex SDK Team
> > 
> > ________________________________
> > 
> > From: flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>  
> [mailto:flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com> ] On
> > Behalf Of aceoohay
> > Sent: Saturday, December 01, 2007 2:38 PM
> > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>

> > Subject: [flexcoders] Re: If Flex is open source, how do we go 
about
> > changing the language?
> > 
> > 
> > 
> > Gordon:
> > 
> > This thread was not intended as a technical thread, which is why 
I 
> > didn't include the details about the problem. I documented the 
> > problem in the following post;
> > 
> > http://tech.groups.yahoo.com/group/flexcoders/message/95131
> > <http://tech.groups.yahoo.com/group/flexcoders/message/95131> 
> > 
> > The only responses I got seemed to indicate that the behavior was 
> by 
> > design, as opposed to a bug.
> > 
> > Yes, it does throw a runtime error.
> > 
> > I just signed up over at the Adobe bugs site.
> > 
> > Paul
> > 
> > --- In flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>  <mailto:flexcoders%
> 40yahoogroups.com>
> > , "Gordon Smith" <gosmith@> wrote:
> > >
> > > > it gets confused when there are nulls in date, numeric, or 
> boolean
> > > fields
> > > 
> > > > this is by design
> > > 
> > > I doubt that we designed this code to intentionally get 
> > confused. : ) It
> > > sounds like we're simply not properly handling null field 
values 
> > when
> > > sorting.
> > > 
> > > What do you mean by "get confused"? Does it throw an RTE? Do 
the 
> > nulls
> > > cause incorrect sorting of the non-null values? Do the nulls 
not 
> > sort
> > > together? How kind of sorting behavior do you think should 
occur 
> > when
> > > there are null values? Should they sort before or after other 
> > values?
> > > Please file the bug at htp://bugs.adobe.com/flex.
> > <htp://bugs.adobe.com/flex.> 
> > > 
> > > BTW, the Flex SDK is not yet open-source, but it will be soon.
> > > 
> > > Gordon Smith
> > > Adobe Flex SDK Team
> > > 
> > > ________________________________
> > > 
> > > From: flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>  <mailto:flexcoders%
> 40yahoogroups.com>
> > 
> > [mailto:flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>  <mailto:flexcoders%
> 40yahoogroups.com>
> > ] On
> > > Behalf Of aceoohay
> > > Sent: Friday, November 30, 2007 9:33 PM
> > > To: flexcoders@yahoogroups.com
<mailto:flexcoders%40yahoogroups.com>  <mailto:flexcoders%
> 40yahoogroups.com> 
> > > Subject: [flexcoders] If Flex is open source, how do we go about
> > > changing the language?
> > > 
> > > 
> > > 
> > > I just ran across what I consider a significant deficiency in 
> Flex. 
> > > To correct this problem would require an addition of two 
> attributes 
> > > to the mx:DataGridColumn class.
> > > 
> > > I could make a change to my version of the language, or perhaps 
I 
> > > could create an inherited class. However, I feel strongly that 
> the 
> > > problem is so fundamental that it should be changed in the 
> > language. 
> > > How do I go about making this happen?
> > > 
> > > The problem is this;
> > > 
> > > It appears that when sorting a DataGrid by clicking a column 
that 
> > > Flex currently does its best to determine the data type and 
sorts 
> > > based on that data type. The problem is that it gets confused 
> when 
> > > there are nulls in date, numeric, or boolean fields. When it 
gets 
> > > confused it ralph's on its shoes (blows up). Based on my 
> research, 
> > > including reading a bit of the file sortField.as, this is by 
> design.
> > > 
> > > There is a way around it but it requires instantiating a 
compare 
> > > function for each column that might get a null, and might be 
one 
> of 
> > > non string data types. The workaround is to create a function, 
> and 
> > > use the "sortCompareFunction" attribute to call a that 
function. 
> > > There is even a kludgier workaround to make the function 
generic 
> by 
> > > using the "headerRelease" attribute of the DataGrid to update a 
> > > public variable with the column number.
> > > 
> > > Since it seems as though this is an ubiquitous problem, it 
should 
> > be 
> > > solved in the language itself. The best approach that I came up 
> > with 
> > > is to have two new attributes for the mx:DataGridColumn;
> > > 
> > > sortDataType - Basically specify the type of data contained in 
> the 
> > > column that would be honored by the sort routine irrespective 
of 
> > the 
> > > values contained in the column. Values would be any valid data 
> type.
> > > 
> > > sortNullCollatingSequence - This would define whether nulls get 
> > > sorted to the top or bottom of the list. Values would be low - 
> > which 
> > > would indicate that nulls would sort lower than the lowest 
normal 
> > > value, and high - which would indicate that nulls would sort 
> higher 
> > > than the highest normal value.
> > > 
> > > This is one possible solution, there may be better ones but in 
my 
> > > opinion the current method should be improved. I would like to 
> see 
> > it 
> > > implemented quickly as I believe it is a serious problem.
> > > 
> > > How do I go about getting this taken seriously, and not 
assigned 
> > > an "enhancement request number" and never looked at again?
> > > 
> > > Paul
> > >
> >
>

 

Reply via email to