Modele de trieur | Montauk Hook & Slice

Modele de trieur

var Osorno = New SAP. UI. Model. Sorter («companyName», NULL, grouper); Nous allons d`abord jeter un oeil à la MySortFilterProxyModel classe pour voir comment le modèle de proxy personnalisé est implémenté, puis nous allons jeter un oeil à la Window classe pour voir comment le modèle est utilisé. Enfin, nous allons jeter un coup d`œil à la fonction main (). Il y avait un commentaire sur ce post qui a été très intéressant et décrit une situation où vous voulez trier, et le groupe, basé sur des propriétés différentes. C`est aussi possible. Pour obtenir le tri sur une propriété et un regroupement basé sur un autre, vous devez vous rappeler que vous pouvez passer un seul objet trieur ou un tableau d`entre eux, dans la liaison. Nous implémentons deux emplacements privés, textFilterChanged () et dateFilterChanged (), pour répondre à l`utilisateur qui modifie le modèle de filtre, la sensibilité de la casse ou l`une des dates. En outre, nous implémentons une fonction de commodité publique setSourceModel () pour configurer la relation modèle/vue. Comme mentionné ci-dessus, nous créons le modèle source dans la fonction main (), en appelant la fonction Window:: setSourceModel () pour que l`application l`utilise: l`exemple de modèle de tri/filtre personnalisé se compose de deux classes: nous voulons être en mesure de filtrer nos données en spécifiant un période de temps donnée. Pour cette raison, nous implémentons les fonctions setFilterMinimumDate () et setFilterMaximumDate () personnalisées, ainsi que les fonctions filterMinimumDate () et filterMaximumDate () correspondantes. Nous réimplémentons la fonction filterAcceptsRow () de QSortFilterProxyModel pour accepter uniquement les lignes avec des dates valides, et QSortFilterProxyModel:: lessThan () pour pouvoir trier les expéditeurs par leurs adresses de messagerie.

Enfin, nous mettons en œuvre une fonction de commodité dateInRange () que nous utiliserons pour déterminer si une date est valide. Le constructeur MySortFilterProxyModel est trivial, en transmettant le paramètre parent au constructeur de la classe de base: maintenant, nous voulons toujours ajouter un trieur personnalisé à la configuration de liaison. Dans notre cas, nous créons un nouveau trieur qui trie les articles par leur propriété «Nom»: dans ce cas, vous pouvez avoir deux trieuses: une pour le beerType, avec une fonction de mérou, et une autre pour le beerName. Comme ceci: la classe MySortFilterProxyModel hérite de la classe QSortFilterProxyModel. Voici notre trieur sur mesure. Nous en créons un comme d`habitude, en précisant le fait que nous voulons que la propriété “value” soit la base de notre tri. Le`null`est spécifié dans la position ascendante/descendante (par défaut est ascendant), puis nous spécifions notre fonction de mérou. Rappelez-vous, le mérou vient de frapper un tour sur le trieur. D`autre part, il est intéressant de noter que de nombreuses implémentations par défaut de QSortFilterProxyModel de fonctions sont écrites afin qu`ils appellent les fonctions équivalentes dans le modèle source pertinent. Ce mécanisme de proxy simple peut avoir besoin d`être substitué pour les modèles source avec un comportement plus complexe.

Dans cet exemple, nous dérivons de la classe QSortFilterProxyModel pour vous assurer que notre filtre peut reconnaître une plage de dates valide et contrôler le comportement de tri. Voici donc l`exemple, décrit pas à pas. Il est également disponible comme un GIST sur GitHub: trieur personnalisé et le mérou dans SAPUI5 et exposés dans un contexte d`exécution à l`aide de la bl.ocks.org Facility: http://bl.ocks.org/qmacro/7702371 puisque QAbstractProxyModel et ses sous-classes sont dérivées de QAbstractItemModel, la plupart des mêmes conseils sur le sous-classement des modèles normaux s`applique également aux modèles de procuration.