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, "Gordon Smith" <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED] On
> Behalf Of aceoohay
> Sent: Saturday, December 01, 2007 2:38 PM
> To: flexcoders@yahoogroups.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>
> , "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@yahoogroups.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> 
> > 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