web-dev-qa-db-fra.com

Existe-t-il une interface utilisateur alternative pour la structure arborescente?

Existe-t-il une meilleure fonctionnalité d'interface utilisateur pour la structure arborescente afin de réduire les nœuds à plusieurs niveaux.

92
Basheer

Je ne connais pas toutes les différentes façons d'afficher visuellement une liste hiérarchique de "nœuds", mais voici les quatre principaux auxquels je peux penser:

Piles

Hierarchy: Stacks

Colonnes

Hierarchy: Columns

Tableaux

Hierarchy: Arrays

Réseaux

Hierarchy: Networks

128
robmclarty

Une alternative qui est parfois utilisée est une vue Miller Columns .

QColumnView image taken from Qt Documentation

L'idée est que les sous-noeuds de l'élément sélectionné dans la colonne a sont affichés dans la colonne a + 1 à côté de lui. Un avantage, en particulier avec les arbres qui contiennent différents types de nœuds à différents niveaux, est que chaque colonne n'en contient qu'un seul. C'est facile à comprendre. Un inconvénient est que vous ne pouvez pas afficher et comparer plusieurs branches en même temps. Un autre est que les brances parentales disparaissent rapidement de la vue dans les arbres plus profonds, et que les éléments qui forment les ancêtres peuvent être à différents endroits dans les listes.

Un exemple de ce modèle utilisé est les boîtes de dialogue de fichiers de style Apple style comme celles-ci: adjacent columns of descending file directories

18
André

Pour certains types de hiérarchies (comme le texte imbriqué), un contrôle que j'appelle un "NestView" peut convenir:

enter image description here

Cela a en fait évolué à partir d'un certain nombre de réponses données à une question sur les programmeurs.

https://softwareengineering.stackexchange.com/q/87077/271

10
pgfearo

Une alternative - qui peut ne pas convenir à votre application est le treemap . C'est un moyen utile d'afficher des données lorsque la taille relative des nœuds est importante.

Treemap image from Wikipedia

(exemple d'arborescence wikipedia - dans ce cas montrant les changements dans les temps d'attente pour les patients)

Cet article sur Squarified Treemaps [pdf] est comment j'ai appris la technique. C'est assez accessible.

3
mdkess

Il existe également un excellent plugin jQuery pour réaliser des menus détaillés de type iOS: http://filamentgroup.com/lab/jquery_iPod_style_and_flyout_menus/

2
umutm

Je préférerais utiliser smth comme le menu coulissant de l'iPhone pour la structure arborescente. Smth comme celui-ci http://codecanyon.net/item/jquery-infinite-sliding-menu-plugin/full_screen_preview/164115

1
MechanisM

J'ai utilisé un Tag Cloud comme moyen d'organiser tout le contenu de mon ordinateur depuis longtemps. J'ai trouvé que c'était un moyen efficace d'organiser rapidement les données. Le seul inconvénient est que vous devez vous assurer que votre contenu est balisé.

J'utilise un programme pour Mac OS X appelé Leap et il a changé la façon dont je stocke et accède aux fichiers sur mon ordinateur.

1
Dave Hyman

Une solution minimaliste est un "fil d'Ariane", comme la plupart des gestionnaires de fichiers modernes l'ont fait aujourd'hui. Cet exemple provient de Wikipedia .

1
Jeppe S.