2010-10-28 6 views
9

Je suis vraiment aux prises avec le choix entre le widget Arbre GWT, qui fait partie de GWT depuis des lustres; ou le nouveau CellTree, introduit par GWT 2.1.GWT 2.1 Arbre ou CellTree?

L'arbre que je veux présenter à l'utilisateur n'est pas particulièrement grand, mais je suis très préoccupé par la réactivité.

Les données sur les nœuds de l'arborescence seront modifiables. En cliquant sur un noeud, l'utilisateur mettra le noeud en mode édition. L'édition des nœuds les plus simples ne nécessitera qu'un seul TextBox ou TextArea; mais d'autres impliqueront plusieurs widgets, sur lesquels je veux un contrôle de style via CSS. Je suis attiré par l'approche CellTree parce qu'elle semble offrir une grande flexibilité et rapidité; cependant, l'exemple de code pour l'édition CellTree ne traite que des types de données très simples: chaîne, date, entier, etc. Je ne sais pas si CellTree est approprié lorsque vous avez des besoins d'édition de nœuds plus complexes.

Qu'en pensez-vous? CellTree est-il la meilleure approche? CellTree remplace-t-il Tree en général? Quelles heuristiques puis-je appliquer en choisissant entre elles?

Répondre

2

J'utilise un CellTable avec plusieurs cellules d'entrée personnalisées, dont une composée de nombreux widgets. Cela fonctionne très bien!

Il m'a fallu quelques heures pour comprendre comment implémenter une cellule personnalisée qui pourrait faire des opérations complexes - puisqu'une seule instance de la cellule flirtera autour du CellTree, prétendant être de nombreuses instances, vous devez comprendre comment elle est obtenir ses données et quand il est actualisé et rendu. J'ai beaucoup appris de la source de DatePickerCell.

Je ne peux pas parler pour CellTree, mais le CellTable est très flexible, facile à programmer et me permet d'économiser des centaines d'instances de Widget.

+0

Avez-vous utilisé CompositeCell pour la cellule avec plusieurs widgets? – David

+0

J'ai étendu la classe AbstractEditableCell. J'ai commencé à l'utiliser dans 2.1.0.M3, avant qu'ils aient beaucoup de docs, donc il se pourrait que CompositeCell soit ce que vous voulez. Je vois aussi qu'ils ont ajouté "Editor" s, qui ont l'air soigné. –

1

L'utilisation de CellTree est problématique. Parce qu'il n'a pas un bon accès pour voir l'implémentation stockée dans CellTree. Cela cause un problème (par exemple pour moi: D) dans la création de gestionnaires personnalisés pour l'ouverture de nœuds avec des enfants en cliquant sur la cellule parent entière. Bien sûr, vous pouvez créer des cellules personnalisées par AbstractCell, où vous devez écrire un rendu propre.

Je pense que ce widget doit être amélioré et plus d'objets doivent être plus visibles pour les utilisateurs.

Personnalisation CSS est simple. Tout ce que vous avez à faire est d'extender CellTree.resource et d'insérer votre propre CSS basé sur les noms de classes celltree.css.

Questions connexes