Package | mx.collections |
Interface | public interface ISort |
Implémenteurs | Sort, Sort |
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 4.5 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
ISort
définit l’interface des classes qui fournissent les informations de tri requises pour trier les données d’une vue de collection.
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
compareFunction : Function
Méthode utilisée pour comparer des éléments lors du tri. | ISort | ||
fields : Array
Tableau d’objets ISortField spécifiant les champs à comparer. | ISort | ||
unique : Boolean
Indique si le tri doit être unique. | ISort |
Méthode | Défini par | ||
---|---|---|---|
findItem(items:Array, values:Object, mode:String, returnInsertionIndex:Boolean = false, compareFunction:Function = null):int
Retrouve l’objet spécifié dans le tableau spécifié (ou le point d’insertion s’il est demandé) et renvoie l’index si cet objet est retrouvé, ou -1 dans le cas contraire. | ISort | ||
Renvoie une valeur indiquant si la propriété spécifiée est utilisée dans le contrôle du tri. | ISort | ||
Parcourt le tableau fields et appelle la méthode reverse() sur chacun des objets ISortField dans le tableau. | ISort | ||
Applique le tri actuel au tableau spécifié et non à une copie. | ISort |
compareFunction | propriété |
compareFunction:Function
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 4.5 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Méthode utilisée pour comparer des éléments lors du tri. Si vous spécifiez cette propriété, Flex ignore les propriétés compareFunction
que vous spécifiez dans les objets ISortField
utilisés dans cette classe.
La fonction de comparaison doit présenter la signature suivante :
function [name](a:Object, b:Object, fields:Array = null):int
Cette fonction doit renvoyer les valeurs suivantes : value:
- -1, si
Object a
doit apparaître avantObject b
dans l’ordre de tri. - 0, si
Object a
est égal àObject b
. - 1, si
Object a
doit apparaître aprèsObject b
dans l’ordre de tri.
Pour renvoyer à la fonction de comparaison interne, définissez cette valeur sur null
.
Le tableau fields
spécifie les champs d’objet à comparer. En général, l’algorithme compare les propriétés jusqu’à ce que la fin de la liste des champs soit atteinte ou jusqu’à ce qu’une valeur autre que zéro puisse être renvoyée. Par exemple :
function myCompare(a:Object, b:Object, fields:Array = null):int
{
var result:int = 0;
var i:int = 0;
var propList:Array = fields ? fields : internalPropList;
var len:int = propList.length;
var propName:String;
while (result == 0 && (i < len))
{
propName = propList[i];
result = compareValues(a[propName], b[propName]);
i++;
}
return result;
}
function compareValues(a:Object, b:Object):int
{
if (a == null && b == null)
return 0;
if (a == null)
return 1;
if (b == null)
return -1;
if (a < b)
return -1;
if (a > b)
return 1;
return 0;
}
La valeur par défaut est une fonction de comparaison interne qui réalise une comparaison de chaîne, de nombre ou de date dans l’ordre croissant ou décroissant. Spécifiez votre propre fonction uniquement si vous souhaitez disposer d’un algorithme de comparaison personnalisé. Normalement, cela est nécessaire uniquement lorsqu’un champ calculé est utilisé dans un affichage.
Vous pouvez également spécifier des fonctions de comparaison séparées pour chaque champ de tri, en utilisant la propriété compareFunction
de la classe ISortField
. Il est ainsi possible d’utiliser la comparaison par défaut pour certains champs et une comparaison personnalisée pour d’autres.
Implémentation
public function get compareFunction():Function
public function set compareFunction(value:Function):void
fields | propriété |
fields:Array
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 4.5 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Composant Array
d’objets ISortField
spécifiant les champs à comparer. L’ordre des objets ISortField dans le tableau détermine l’ordre de priorité des champs lors du tri. Le comparateur de tri par défaut vérifie les champs de tri dans l’ordre du tableau, jusqu’à ce qu’il détermine un ordre de tri pour les deux champs comparés.
La valeur par défaut est null.
Implémentation
public function get fields():Array
public function set fields(value:Array):void
Eléments de l’API associés
unique | propriété |
unique:Boolean
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 4.5 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Indique si le tri doit être unique. Les tris uniques échouent si une valeur ou une combinaison de valeurs spécifiée par les champs de la propriété fields engendre un ordre de tri indéterminé ou non unique, par exemple lorsque deux éléments ou plus ont les mêmes valeurs de tri. Une erreur est renvoyée si le tri n’est pas unique. La logique de tri utilise cette valeur de propriété unique
seulement si les champs de tri sont spécifiés de façon explicite. En l’absence de champs de tri spécifiés de façon explicite, aucune erreur n’est renvoyée, même lorsqu’il existe des éléments de valeur identique.
La valeur par défaut est false.
Implémentation
public function get unique():Boolean
public function set unique(value:Boolean):void
findItem | () | méthode |
public function findItem(items:Array, values:Object, mode:String, returnInsertionIndex:Boolean = false, compareFunction:Function = null):int
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 4.5 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Retrouve l’objet spécifié dans le tableau spécifié (ou le point d’insertion s’il est demandé) et renvoie l’index si cet objet est retrouvé, ou -1 dans le cas contraire. Les méthodes findxxx()
de la classe ListCollectionView
utilisent cette méthode pour retrouver l’élément demandé. Bien souvent, il est plus simple d’utiliser ces fonctions plutôt que la méthode findItem()
pour retrouver des données dans les objets ListCollectionView
. Appelez directement la méthode findItem()
lorsque vous écrivez une classe prenant en charge le tri, par exemple une nouvelle implémentation ICollectionView
. Le tableau d’éléments en entrée doit être trié avant l’appel de cette fonction. Dans le cas contraire, cette fonction ne peut pas trouver la valeur spécifiée correctement.
Paramètres
items:Array — Tableau dans lequel la recherche doit être réalisée.
| |||||||
values:Object — Objet contenant les propriétés à rechercher (ou l’objet à rechercher lui-même). L’objet doit se composer de paires nom/valeur, où les noms de champ sont les noms des champs spécifiés par la propriété fields , dans l’ordre dans lequel ils sont utilisés dans cette propriété. Il n’est pas obligatoire de spécifier tous les champs de la propriété fields , mais vous ne pouvez pas ignorer des champs si d’autres champs figurant après dans la séquence sont définis. Par conséquent, si la propriété fields contient trois champs, vous pouvez spécifier les premier et deuxième champs de ce paramètre, mais vous ne pouvez pas spécifier uniquement les premier et troisième champs.
| |||||||
mode:String — Chaîne contenant le type de recherche à réaliser. Valeurs valides :
| |||||||
returnInsertionIndex:Boolean (default = false ) — Si la méthode ne retrouve pas d’élément identifié par le paramètre values et que la valeur de ce paramètre est true , la méthode findItem() renvoie le point d’insertion des valeurs, c’est-à-dire le point où vous devez insérer l’élément, dans l’ordre de tri.
| |||||||
compareFunction:Function (default = null ) — Fonction de comparaison à utiliser pour retrouver l’élément. Si vous ne spécifiez pas ce paramètre ou si vous spécifiez une valeur null , la fonction findItem() utilise la fonction de comparaison déterminée par la propriété compareFunction de l’instance ISort et transmet le tableau de champs déterminé par l’objet de valeurs et les objets SortField actuels. Si vous fournissez une valeur non nulle, la fonction findItem() l’utilise en tant que fonction de comparaison. La signature de la fonction transmise comme compareFunction doit avoir la forme suivante : function myCompareFunction(a:Object, b:Object):int . Notez l’absence de troisième argument contrairement à la fonction de comparaison pour la propriété ISort.compareFunction() .
|
int — int Index de l’élément retrouvé dans le tableau. Si la valeur du paramètre returnInsertionIndex est false et que l’élément est introuvable, la valeur renvoyée est -1. Si la valeur du paramètre returnInsertionIndex est true et que l’élément est introuvable, la valeur renvoyée est l’index du point où les valeurs seraient insérées dans le tableau trié.
|
Valeur émise
Error — S’il existe des erreurs de paramètres, le critère de recherche n’est pas compatible avec le tri ou la fonction de comparaison associée au tri ne peut pas être déterminée.
|
propertyAffectsSort | () | méthode |
public function propertyAffectsSort(property:String):Boolean
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 4.5 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Renvoie une valeur indiquant si la propriété spécifiée est utilisée dans le contrôle du tri. La fonction ne peut pas fournir une réponse définitive si le tri fait appel à un comparateur personnalisé. Dans ce cas, elle renvoie toujours la valeur true
.
Paramètres
property:String — Nom du champ à tester.
|
Boolean — Indique si la valeur de la propriété est susceptible d’influer sur le résultat du tri. Lorsque le tri utilise la fonction compareFunction par défaut, la valeur true est renvoyée si le paramètre property spécifie un champ de tri. Si le tri ou un objet ISortField utilisent un comparateur personnalisé, il est impossible de savoir si la propriété peut influer sur le résultat du tri. La valeur renvoyée est alors true .
|
reverse | () | méthode |
public function reverse():void
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 4.5 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Parcourt le tableau fields
et appelle la méthode reverse()
sur chacun des objets ISortField
dans le tableau. Si le champ était trié dans l’ordre décroissant, il est maintenant classé dans l’ordre croissant et inversement.
Remarque : une interface ICollectionView
n’est pas automatiquement mise à jour lorsque les objets du tableau fields
sont modifiés. Appelez sa méthode refresh()
pour actualiser la vue.
sort | () | méthode |
public function sort(items:Array):void
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 4.5 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Applique le tri actuel au tableau spécifié et non à une copie. Pour empêcher la modification du tableau, créez une copie et utilisez-la dans le paramètre items
.
Les implémentations Flex de l’interface ICollectionView
appellent automatiquement la méthode sort
et font en sorte que le tri soit réalisé sur une copie des données sous-jacentes.
Paramètres
items:Array — Tableau d’éléments à trier.
|
Tue Jun 12 2018, 09:30 AM Z