Insertion d'un enum dans une liste prédéfinie

Bonjour,

Je rencontre un problème avec l’ajout d’un enum dans une liste.

Je souhaite ajouter un nouveau couple clé/valeur en première position via la méthode suivante :
maListeEnum.putItem(code, value, enabled, order);

Cependant, la valorisation de ‘order’ n’a aucun effet sur la position de la valeur ajouté, qui se retrouve systématiquement en bas de la liste.

Pouve-vous me confirmer le fonctionnement de cette méthode ?

Voici ce que fait mon code :

	ObjectField field = this.getField("SIO_Pilote_Fonctionnel");
	ObjectFieldList maListeEnum = field.getList();		    	
	maListeEnum.putItem(code, value, enabled, order);
	field.setList(maListeEnum);

Les infos de ma version de Simplicité :
Version=4.0.P24c
BuiltOn=2020-01-28 12:57 (revision d2084642c3166ab49e23363c8669273703b48dcb)
Encoding=UTF-8
EndpointIP=10.24.217.169
EndpointURL=https://frparvm82450142:11443
TimeZone=Europe/Paris
SystemDate=2020-02-20 18:13:17

Cordialement
Jean-Baptiste

putItem fait un simple replace du code si existant ou un append.
La notion d’ordre est juste liée à la définition du code de liste et ne sert que pour des tris de colonne dans les tableaux croisés par exemple.

Il faut donc inserer vos éléments au bon endroit dans la liste ordonnée globale : getAllItems (ou getItems pour une liste contextuelle d’un state model par exemple).

Pour faire un prepend sur une liste existante :

EnumItem item = new EnumItem(code, value, enabled, order);
maListeEnum.getAllItems().add(0, item);

ps: dans le cas d’une liste simple les accesseurs getAllItems() et getItems() sont les mêmes, ils diffèrent dans certaines listes (liste liée ou diagramme d’état contextuel) où on a besoin de 2 accesseurs (“all” pour afficher les libellés dans une liste de n’importe quel état, et liste limitée dans le cas d’un formulaire dans un état donné).

Parfait, merci François