Previous: TextView Up: Les View Next: Construire une interface
SelectionInListView
Pour créer une SelectionInListView on utilise l'un des messages suivant :
- on: aModel aspect: aspectMsg change: changeMsg list: listMsg menu: menuMsg initialSelection: initialSelectionMsg
- on: aModel printItem: printFlag oneItem: oneFlag aspect: aspectMsg change: changeMsg list: listMsg menu: menuMsg initialSelection: initialSelectionMsg
- on: aModel printItem: printFlag oneItem: oneFlag aspect: aspectMsg change: changeMsg list: listMsg menu: menuMsg initialSelection: initialSelectionMsg useIndex: indexFlag
Le principe est le même que pour une TextView, les *Msg sont des symboles qui représentent des messages qui seront traités par le modèle.
- listMsg est le symbol utilisé dans la méthode perform: aSymbol pour obtenir la liste à afficher.
- printFlag indique s'il est nécessaire ou non d'envoyer le message printString aux éléments de la liste pour les faire s'afficher.
- changeMsg est le symbol utilisé dans la méthode perform: aSymbol with: argument pour mettre à jour le texte affiché. L'argument passé est l'objet sélectionné (ou son index) s'il y en a un, sinon nil (ou l'index 0).
- initialSelection permet de savoir une fois que la liste a été construite par listMsg quel doit être la seléction initiale.
- indexFlag indique si les références aux objets sélectionnés se font directement (par l'objet lui-même) ou via un index.
Une autre classe permet de faire des sélections multiples : SelectionSetInListView. Les méthodes de création sont identiques que précédemment. Pour sélectionner plusieurs éléments on <clic+shift>, pour désélectionner, on <clic+control>.