层次视觉设计 [英] Hierarchy Visual Design

查看:140
本文介绍了层次视觉设计的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个类别的层次结构,其中一个类别可以有一个父级(可以有多个级别的子级)。

I have a hierarchy of categories, where a category can have a single parent (and you can have multiple levels of children.)

我正在调查方法将这些信息显示给用户,似乎基本的香草树布局是最直观的方式。但是我想知道是否有人可以提出其他方法。

I'm investigating ways to display this information to the user and it seems like a basic vanilla tree layout is the most intuitive way to go. But I'm wondering if anyone can suggest other approaches.

要求将是

1)向用户展示列表的父/子关系
2)允许用户轻松移动项目(无论是通过拖放还是其他方法)
3)假设您具有多个父级的层次结构数据,那怎么会改变你的选择?

1) clearly demonstrate to the user the list's parent / child relationships 2) allow the user to easily move items around (whether by drag and drop or some other method) 3) Assuming you had hierarchal data that had multiple parents, how would that change your choice?

感谢大家! - 凯文

推荐答案

您的基本树控件在显示层次关系方面取得了巨大的成功。对新手来说相对容易学习,现在是层次结构的实际标准。它非常适合编辑关系,特别是拖放。当层次深度随着物体任意变化而变化时,也许是唯一可行的选择(即,对于树上的任何物体,可以有孩子,孙子,伟大的孩子等等到无数的世代。 )。

Your basic tree control has been a great success for showing hierarchical relations. It’s relatively easy to learn for novices and is now the de facto standard for hierarchies. It is very suitable for editing relations, especially with drag and drop. It is perhaps the only viable choice when the hierarchical depth varies arbitrarily by object (i.e., for any object on the tree, there can be children, grandchildren, great-grand-children, and so on to an indefinite number of "generations.").

树的主要替代方法是具有主 - 细节窗格的窗口。在此设计中,一个窗格包含父对象,另一个窗格包含子对象。选择父对象将填充其子窗格。您可以根据需要使用大小窗格和大型窗格,但是当层次结构中存在少量固定数量的层次时,主节点细节通常会最为有效。用户通过拖放和剪切/复制&编辑父子关系。在窗口之内或之间粘贴子对象,类似于使用树控件。

The primary alternative to tree is a window with master-detail panes. In this design, one pane contains parent objects and another contains child objects. Selecting a parent object populates the child pane with its children. You can have grand-child panes and great-grand-child panes as necessary, but master-details generally work best when there is a small fixed number of layers to the hierarchy. Users edit the parent-child relations by drag-and-drop and cut/copy & paste of child objects either within or between windows, similar to using a tree control.

以下情况下,主数据通常比树更好:

Master-details are usually better than trees for the following cases:


  • 您需要为每个对象显示多个属性或属性。例如,对于给定的Project对象,您不仅要列出每个团队成员的员工编号,还要列出其各自的名称,角色,标题,部门和照片。使用主要细节,每个窗格可以作为表格或表单布局,允许您显示关于每个对象的很多。树控件经常使用低效率和混乱的属性对话框来实现这一点。

  • You need to show multiple properties or attributes with each object. For example, for a given Project object, you want to list not only the Employee Number for each Team Member, but also their respective Names, Roles, Titles, Divisions, and photographs. With a master-detail, each pane can be laid out as a table or form allowing you to show a lot about each object. Tree controls often resort to inefficient and confusing Properties dialogs to accomplish this.

您需要细分孩子。例如,对于给定的Project对象,您希望将其团队成员与其项目阶段分开。使用主 - 详细信息,您可以为单个父窗格提供两个或多个子窗格,其中一个窗格列出小组成员,一个列出了阶段。保持不相关的子对象与树控件分开是尴尬的。

You need to subdivide children. For example, for a given Project object, you want to keep its Team Members separate from its Project Stages. With a master-detail, you can have two or more child panes for a single parent pane, with one pane listing the Team Members and one listing the Stages. It’s awkward to keep unrelated child objects separate with a tree control.

您有多对多的关系,每个孩子可能有多个父母以及每个父母都有多个孩子。例如,每个项目都有多个员工(作为团队成员),但每个员工可以在多个项目上工作。您可以在父窗格中的项目窗口和子窗格中的团队成员,父窗格中的员工和子窗格中的项目分配)中包含项目窗口,也可以具有两个窗口。当有多对多的关系时,树形控件可能会混淆用户,因为用户不会指望同一个孩子属于多于一个父母。

You have many-to-many relations, where each child may have multiple parents as well as each parent having multiple children. For example say each Project has multiple Employees (as Team Members) but each Employee may work on multiple Projects. You can have a window with Projects in the parent pane and Team Members in the child pane, or Employees in the parent pane and Project Assignments in the child pane, or you can have both windows. Tree controls may confuse users when there are many-to-many relations because users don’t expect the same child to be under more than one parent.

这篇关于层次视觉设计的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆