Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

20août/090

Flex AdvancedDataGrid – Utiliser un dataProvider XML (sous forme XMLList)

Dans les exemples sur les Flex AdvancedDataGrid, on utilisait un ArrayCollection car c'est assez pratique et compact pour notre donnée. Mais vous pouvez bien sur peupler votre dataProvider avec de la donnée XML, un retour XML serveur par exemple.

On va utiliser la classe HierarchicalData. En passant notre XML (XMLList en fait) dans le constructeur d'un HierarchicalData, la conversion se fera toute seule, comme si vous lui aviez donné un ArrayCollection.

Voici un exemple de code utilisant un XMLList pour peupler une AdvancedDataGrid:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:Script>
	<![CDATA[
		import mx.collections.HierarchicalData;
		import mx.collections.XMLListCollection;
	]]>
	</mx:Script>
	<mx:XMLList id="dpHierarchyXML" >
		<Region Region="Southwest">
			<Region Region="Arizona">
				<Territory_Rep Territory_Rep="Barbara Jennings"
				Actual="38865" Estimate="40000"/>
				<Territory_Rep Territory_Rep="Dana Binn"
				Actual="29885" Estimate="30000"/>
			</Region>
			<Region Region="Central California">
				<Territory_Rep Territory_Rep="Joe Smith"
				Actual="29134" Estimate="30000"/>
			</Region>
			<Region Region="Nevada">
				<Territory_Rep Territory_Rep="Bethany Pittman"
				Actual="52888" Estimate="45000"/>
			</Region>
			<Region Region="Northern California">
				<Territory_Rep Territory_Rep="Lauren Ipsum"
				Actual="38805" Estimate="40000"/>
				<Territory_Rep Territory_Rep="T.R. Smith"
				Actual="55498" Estimate="40000"/>
			</Region>
			<Region Region="Southern California">
				<Territory_Rep Territory_Rep="Alice Treu"
				Actual="44985" Estimate="45000"/>
				<Territory_Rep Territory_Rep="Jane Grove"
				Actual="44913" Estimate="45000"/>
			</Region>
		</Region>
	</mx:XMLList>
	<mx:AdvancedDataGrid width="100%" height="100%"
		dataProvider="{new HierarchicalData(dpHierarchyXML)}">
		<mx:columns>
			<mx:AdvancedDataGridColumn dataField="@Region"
				headerText="Region"/>
			<mx:AdvancedDataGridColumn dataField="@Territory_Rep"
				headerText="Territory Rep"/>
			<mx:AdvancedDataGridColumn dataField="@Actual"
				headerText="Actual"/>
			<mx:AdvancedDataGridColumn dataField="@Estimate"
				headerText="Estimate"/>
		</mx:columns>
	</mx:AdvancedDataGrid>
</mx:Application>
28avr/0910

Flex Chart – Ajouter des Series depuis une lecture XML e4x

Dans les exemples précédents, on a vu comment créer un Chart Flex en ActionScript et comment ajouter des Series à la volée en AS3. On va maintenant prendre un XML de data en entrée pour créer nos séries de manières dynamique, en fonction de la data.

On va utiliser la syntaxe e4x pour extraire les données uniques de notre data (ici, des noms). A l'issue de cette extraction, on aura un tableau de nom (Array). On va ensuite itérer sur ce tableau de nom pour construire une LineSeries pour chaque nom.

31oct/087

Flex UIComponent – Assigner un dataProvider à un Composant Flex en MXML et AS3

Vous pouvez utiliser n'importe quel type de collection (tant qu'il implémente ICollectionView) avec n'importe quel composant de type liste, ce qui permet d'avoir différentes structures de données. Tous ce que vous avez à faire, est de fixer la propriété dataProvider du composant à la collection.
Par exemple, le code suivant utilise un ArrayCollection pour peupler une liste (mx:List);

import mx.collections.ArrayCollection;
var collection:ArrayCollection = new ArrayCollection(["a", "b", "c", "d"]);
list.dataProvider = collection;

D'un autre côté, si la donnée est au format XML, vous pouvez facilement utiliser une XMLListCollection à la place:

import mx.collections.XMLListCollection;
public var xmlList:XMLList = XMLList("<item>a</item><item>b</item><item>c</item><item>d</item>");
public var collection:XMLListCollection = new XMLListCollection(xmlList);
list.dataProvider = collection;
24sept/0813

Flex ActionScript – Lecture de données XML en ActionScript 3

Une fois que vous avez crée votre objet XML, vous pouvez lire cet objet. Il y a deux manière de base pour lire la donnée: en traversant tout le Document Object Model (DOM) ou en accédant à la data en utilisant la syntaxe E4X. Les deux techniques ne sont pas exclusives, elles peuvent être utilisées de manière conjointe.
Quand on traite le XML par le DOM, il est traité comme une simple structure hiérarchique de données composée de nœuds parent et enfant. Le DOM se concentre plus sur la structure que sur le contenu. Vous pouvez récupérer tout le contenu d'un XML en le traitant de cette manière, mais vous accédez à la data en allant dans chaque nœud à la fois.
La classe XML définit de nombreuses méthodes pour retrouver la structure d'information du DOM, dont voici quelques exemples en guise de tutorial: