I was able to work around the missing openItems by listening to the
itemOpen and itemClose events and store the array on my own.
        public function listenToOpenings(event:AdvancedDataGridEvent) : void {
            openItems.push(event.item);
        }
        public function listenToClosings(event:AdvancedDataGridEvent) : void {
                openItems = openItems.filter(function
filterOpenList(currentElement:*, index:int,arr:Array) : Boolean {
                  return currentElement != event.item;
            }) as Array;
        }

I'm still curious what the logic behind removing it was. Is there a
new/different way to track open nodes now?

...paul

On 10/1/07, Paul Dale <[EMAIL PROTECTED]> wrote:
> I made some progress on my 'filtering hierarchical data' issue.
>
> Using a 'GroupingCollection' and calling 'refresh' on it whenever the
> text in the search box changed I was able to get a properly function
> serarch. However, in the new Beta 2 the 'openItems' property of the
> AdvancedDataGrid is gone.
>
> Can anyone 'in the know' comment on why it was removed? How should one
> keep a tree open after a 'refresh'?
>
> My test code below for anyone who is interested ...
>
> Paul
>
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
>     layout="absolute"
>     applicationComplete="init()">
>     <mx:Script>
>         <![CDATA[
>         import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
>         import mx.collections.GroupingField;
>         import mx.collections.Grouping;
>         import mx.collections.ArrayCollection ;
>         import mx.collections.GroupingCollection;
>
>
>                 public function init() : void {
>                         flatData.filterFunction = myFilter;
>                 }
>                 public function myFilter(item:Object) : Boolean {
>                         var pattern:String = '.*' + search.text + '.*';
>
>                         if (item.hasOwnProperty('Territory')) {
>                                  if (item.Territory.match(pattern)) {
>                                         return true;
>                                 } else {
>                                         return false;
>                                 }
>                         }
>                         return true;
>                 }
>
>                 public function updateFilter() : void {
>                         groupedData.refresh();
>                 }
>
>         [Bindable] private var flatData:ArrayCollection = new
>         ArrayCollection(
>         [
>
>         { Territory:"Nevada", Territory_Rep:"Barbara Jennings",
> Estimate:40000 , Actual:38865 },
>         { Territory:"Nevada", Territory_Rep:"Dana Binn" ,
> Estimate:30000 , Actual:29885 },
>         { Territory:"Nevada", Territory_Rep:"Joe Schmoe" ,
> Estimate:30000 , Actual:29134 },
>         { Territory:"Northern California" , Territory_Rep:"Lauren
> Ipsum" , Estimate:40000 , Actual:38805 },
>         { Territory:"Northern California" , Territory_Rep:" T.R.
> Smith" , Estimate:40000 , Actual:55498 },
>         { Territory:"Southern California" , Territory_Rep:"Jane Grove"
> , Estimate:45000 , Actual:44913 },
>         { Territory:"Southern California" , Territory_Rep:"Alice Treu"
> , Estimate:45000 , Actual:44985 },
>         { Territory:"Nevada" , Territory_Rep:"Bethany Pittman" ,
> Estimate:45000 , Actual:52888 } ,
>
>         ]);
>
>         ]]>
>     </mx:Script>
>     <mx:HBox>
>             <mx:Label text="Territory" />
>                     <mx:TextInput id="search" text="" 
> change="updateFilter()"/>
>     </mx:HBox>
>
>     <mx:AdvancedDataGrid id="adg"
> creationComplete="groupedData.refresh()" x=" 29.5" y="26" width="555"
> height="377">
>         <mx:dataProvider>
>             <mx:GroupingCollection id="groupedData" source="{flatData}" >
>
>                 <mx:Grouping>
>                     <mx:GroupingField name="Territory" >
>                         <mx:summaries>
>                             <mx:SummaryRow summaryPlacement="group">
>                                 <mx:fields>
>                                     <mx:SummaryField
> dataField="Estimate" operation="SUM" label="Budget"/>
>                                     <mx:SummaryField
> dataField="Actual" operation="SUM" />
>                                 </mx:fields>
>                             </mx:SummaryRow>
>                         </mx:summaries>
>                     </mx:GroupingField>
>                 </mx:Grouping>
>             </mx:GroupingCollection>
>         </mx:dataProvider>
>         <mx:columns>
>             <mx:AdvancedDataGridColumn width="200" headerText =
> "Territory Rep" dataField="Territory_Rep"/>
>             <mx:AdvancedDataGridColumn headerText="Budget" 
> dataField="Budget"/>
>             <mx:AdvancedDataGridColumn headerText = "Actual"
> dataField="Actual"/>
>         </mx:columns>
>     </mx:AdvancedDataGrid>
>
> </mx:Application>
>

Reply via email to