是否有用于配置一组元素的分区的标准用户界面范例?

时间:2009-12-24 16:12:48

标签: user-interface math set data-partitioning

考虑您有一组对象X(例如,A,B,C,D),您希望将它们划分为覆盖所有X的非空子集。数学上,partition of the set

因此,首先您可以将它们视为完全不同的{{A},{B},{C},{D}}。或者,您可以将它们分为元音和辅音,即{{A},{B,C,D}}。或者,任意地,{{A,D},{B,C}}。

是否有支持此功能的标准用户界面小部件/概念/范例/模式?有两个列表框添加 - >>,全部添加 - >,< - 删除,< - 全部删除以在它们之间切换(即列表生成器)仅适用于2个子集,但不适用于任意k个子集。

3 个答案:

答案 0 :(得分:3)

我不知道具体的UI小部件是否完全符合您的要求,但这里有一些可能有用的UI范例(取决于您在定义子集后需要做什么):

  • 颜色编码列表框(允许用户或程序突出显示具有不同颜色的项目,具体取决于它们属于哪个子集。能够按颜色对项目进行分组并显示图例在此模型中很有用)
  • 树控件(将组显示为树中节点的子节点。通常,这将是只有两个级别的树 - 顶部是分区,下一个是分区中的项目。在此模型中,在分区(节点)之间拖动项目并能够重命名顶级分区的功能非常有用。)
  • 分层网格(类似于树形控件,但显示了其他信息列,用于描述所显示项目的详细信息)
  • 多列可拖动列表(一组可以拖动项目的多列。每列代表分区中的一个子集)。

答案 1 :(得分:1)

用于将项目分组到集合的标准UI是单选按钮列表。可怕的ASCII近似:

A B C
o x o - Item One
o x o - Item Two
o o x - Item Three

这仅适用于少量套装,但可以与大量物品一起使用。大多数人会发现这很容易理解并且快速扫描。这是Tufte所谓的小倍数的一个例子。如果有人需要将大量物品从一组移动到另一组,则可能会很乏味。我敢打赌,可以通过选择按下单选按钮来减少这种情况。如果你这样做,你肯定需要一个撤销功能。

常用的变体是使用选项菜单而不是单选按钮组。

它可以像您想要的那样视觉上复杂 - 大多数UI工具包支持单选按钮状态的自定义图像。这可能是更好地利用小型多重概念,或者它可能会变成愤怒的水果沙拉。

我会犹豫使用移动物品的设计。拖放选择是单调乏味的,你会遇到Fitt定律的问题而不仅仅是几套,你将失去组织列表而不受分组的好处。

答案 2 :(得分:0)

听起来像拖拉机的工作下降。

一旦来源,多个可能的目的地。也许是一个“添加子集”按钮,可以轻松创建新的子集。

同样也可以通过单个列表上的“突出显示”来实现。按住Ctrl键单击选择,单击颜色按钮。