2 votes

Comment ordonner les colonnes de la collection dans Apache isis ?

J'utilise apache ISIS depuis près d'un an et c'est une grand cadre. J'essaie d'améliorer la convivialité de l'interface utilisateur générée et je cherche un moyen d'ordonner les colonnes d'une collection telle qu'elle est affichée à l'écran.

Je n'ai pas trouvé de moyen d'ordonner les colonnes à l'aide de @Collection o @CollectionLayout et je n'ai pas pu trouver d'exemple si c'est possible dans la layout.xml fichier.

La convivialité de mon interface utilisateur serait vraiment améliorée si les colonnes les plus pertinentes d'une collection étaient affichées en premier. - sur le côté gauche du tableau - dans la vue du tableau.

(Les entités de mon domaine présentées dans une propriété de collection ont souvent une super-classe définissant des champs communs. L'affichage des attributs d'une seule entité est parfait en utilisant layout.xml et le layout bootstrap, mais je cherche toujours une construction similaire pour les collections affichées sous forme de tableaux dans l'interface utilisateur. Je n'ai trouvé aucune indication dans la documentation ou dans le guide avancé).

Merci de m'indiquer comment je pourrais contrôler l'ordre des colonnes dans un tableau affichant une collection d'entités de domaine et améliorer la convivialité de l'interface utilisateur.

3voto

Dan Haywood Points 507

Il est agréable de savoir que vous appréciez l'utilisation du cadre.

La façon de procéder avec les annotations est d'utiliser @MemberOrder , pas @CollectionLayout .

Toutefois, si vous avez un layout.xml alors cela (devrait) remplacer le fichier @MemberOrder annotation. Dans ce cas, l'ordre des colonnes est le même que l'ordre des propriétés dans l'annotation layout.xml .

Vous pouvez également utiliser la fonction <collection id="xxx" hidden="ALL_TABLES"> (ou alternativement @CollectionLayout(hidden=Where.ALL_TABLES) ) pour masquer les propriétés que vous ne souhaitez pas voir apparaître sous forme de colonnes.

Cela dit, j'ai récemment découvert ce que je pense être un bogue (sur 1.13.0 ) : que le layout.xml semble être ignorée pour l'ordre de collection, même si elle est utilisée pour le formulaire d'objet. Ce n'est pas cohérent et je n'ai pas encore trouvé la solution. Ma solution a été d'ajouter le paramètre @MemberOrder et les annotations ont été réintroduites, ce qui a permis d'améliorer la situation.

Autre mise en garde : si vous avez un mélange complexe d'onglets et d'ensembles de champs normaux, vous constaterez que les propriétés des onglets sont considérées comme étant les premières, même s'il y a une propriété dans un ensemble de champs

F

public class Customer {
    @Getter @Setter private String name;
    public String getNameAsColumn() { return getName(); }
}

t layout.xml :

<property id="name" hidden="ALL_TABLES"/>
<property id="nameAsColumn hidden="OBJECT_FORMS">
    <named>Name</named>
</property>

H

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X