用于分层数据集的面包屑列表补充 背景
许多计算领域都涉及分层组织的数据集以及用于显示和导航这些数据集的技术。这样的分层组织的数据项(也被称为节点)集合可以组织成一个或多个项在最顶层,这些项被称为根节点。每一节点可包含任何数量的从属项(称为子节点),子节点可进而包含任何数量的从属项,等等。节点还可以不包含子节点,从而担当叶节点。该组织结构允许包含分层结构,其中除根节点之外的每一节点都包含在一个更高层节点(称为父节点)内。
分层数据组织可用于若干上下文中。作为一个示例,以符合可扩展标记语言(XML)模式的格式存储的数据是分层地组织的,使得XML数据集至多包含一个根节点,并且除该根节点之外的每一数据项都正好包含在一个更高层XML数据项内。在该示例中,包容表示嵌套,这产生完全嵌套的严格分层的数据集。
分层数据集通常通过树视图图形用户控件来显示,在树视图中各个节点可以打开或关闭以(分别)示出或隐藏其中包含的子节点。示例性树视图在图1A-1B中示出,它们各自呈现同一分层数据集处于两个不同视图状态的树视图。图1A描绘包含被标记为节点A的根节点12的分层数据集10,该根节点单独构成该分层结构的最顶层并且直接或间接包含所有其他节点。例如,节点A 12直接包含节点B 14、节点C 16、节点F 22、以及节点K 32,这些节点一起构成该分层结构的第二层。节点C 16进一步包含节点D 18和节点E 20,而节点F 22进一步包含节点G 24、节点H 26、以及节点J 30,并且其中节点H 26进一步包含节点I 28。
树视图用户控件可被用来显示包括数百万节点的非常大的分层数据集,但显示所有节点对用户导航而言将会很麻烦。树视图因此允许每一节点以打开或关闭状态显示,其中处于打开状态(由符号“-”表示)的节点示出所有子节点,而处于关闭状态的节点(由符号“+”表示)以隐藏其子节点的方式示出。用户可以切换树视图中的节点的打开或关闭状态(例如,通过用诸如鼠标等定点设备点击该节点左边的符号“+”或“-”)。图1B中描绘的树视图示出与图1A的树视图相同的数据集,但节点C 16、节点H26、节点J 30、以及节点K 32以关闭状态示出(从而隐藏节点C 16中包含的节点D和E以及节点H 26中包含的节点I)。图1B的树视图示出的分层数据集10仍然包含节点D、E、以及I,但这些子节点在树视图10的当前状态中被隐藏,并且可以通过打开相应父节点来再次显示。
数据集的该分层组织允许根据遍历来到达各节点的相应路径来描述这些节点。例如,在图1A中,节点H 26可以作为节点F 22的子节点来描述,节点F 22又是节点A 12的子节点。按逆序,可以通过在节点A 12处开始、导航(在节点A 12的各子节点间)到节点F 22、并导航(在节点F 22的各子节点间)到节点H 26来遍历图1A示出的分层数据集10以到达节点H26。该顺序形成节点A:节点F:节点H的分层路径,该路径可用来描述节点H 26在分层数据集10内的组织。
在用户导航分层数据集时,该顺序还可作为面包屑列表来呈现,例如作为用户导航来到达当前节点的分层的一系列节点。图1C示出图1A的分层数据集中的每一节点的面包屑列表。在图1C的该示例性面包屑列表40中,在选择分层数据集的每一节点42时,该节点与包含表示从该分层数据集的根节点到所选节点的路径内的每一位置的面包屑46的面包屑列表44相关联。在图1C的该示例性面包屑列表44中,面包屑46以从根节点到所选节点的次序来显示。所显示的面包屑列表44因此向用户显示通过分层数据集到达所选节点所采取的路径。此外,在某些实现中,可以激活(例如,通过使用诸如鼠标等定点设备点击面包屑)面包屑列表44的面包屑46来行进到激活的面包屑所表示的节点(例如,通过使显示同一数据集的树视图跳转到激活的面包屑所表示的节点)。
概述
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述地一些概念。本概述并不旨在标识出所要求保护的主题的关键因素或必要特征,也不旨在用于限定所要求保护的主题的范围。
本发明讨论分层数据集的表示。在上文描述的各类型的面包屑(breadcrumb)列表可以提供关于节点在分层数据集中的位置的某些帮助信息,并可方便导航这些分层结构。然而,在较大分层数据集(具有许多节点的数据集)内导航可能必需许多导航步骤,如下钻(drill down)分层数据集的许多层来到达所需节点,而这对用户而言是麻烦的。在面包屑列表的上下文中可以提供附加导航帮助,以导航到分层数据集的其他所需部分。可以补充面包屑列表以包括指向分层结构内的、在从根节点到所选节点的路径内部或外部的优选位置的一个或多个补充性面包屑。优选位置的一些示例包括:分层数据集中的先前访问的位置;分层数据集中的用户频繁访问的位置;以及分层数据集中用户在导航所选节点时通常优选来访问的位置。通过在面包屑列表内包括这些优选位置作为“补充性”面包屑(例如在列表的结尾处),用户界面可方便用户导航该分层数据集。
为实现上述和相关目的,以下描述和附图阐述了各个说明性方面和实现。这些方面和实现仅指示可使用一个或多个方面的各种方式中的一些。结合附图阅读以下详细描述,则本发明的其它方面、优点、以及新颖特征将变得显而易见。
附图描述
图1A-1B是示例性分层数据集的示例性树视图用户界面组件的图示。
图1C是图1A和1B所示的示例性分层数据集中的各节点的面包屑列表的表。
图2是描绘示例性方法的流程图。
图3A是示出表示图1A所示的示例性分层数据集的示例性导航历史的面包屑路径的示例性集合的表。
图3B是示出表示图1A所示的示例性分层数据集的示例性导航历史的面包屑路径的另一示例性集合的表。
图3C是示出图1A所示的示例性分层数据集中的各节点的面包屑路径的示例性集合的表。
图3D是示出图1A所示的示例性分层数据集中的各节点的面包屑路径的另一示例性集合的表。
图3E是示出图1A所示的示例性分层数据集中的各节点的面包屑路径的又一示例性集合的表。
图4A是示例性范围化(scoped)分层数据集的示例性树视图用户界面组件的图示。
图4B是图4A所示的示例性范围化分层数据集中的各节点的面包屑列表的表。
图4C是示出表示图4A所示的示例性范围化分层数据集的示例性导航历史的面包屑路径的另一示例性集合的表。
图4D是示出图4A所示的示例性范围化分层数据集中的各节点的面包屑路径的示例性集合的表。
图5A是具有此处所描述的视觉方面的面包屑列表的图示。
图5B是具有此处所描述的视觉方面的另一面包屑列表的图示。
图5C是具有此处所描述的视觉方面的又一面包屑列表的图示。
图5D是具有此处所描述的视觉方面的又一面包屑列表的图示。
图6是示出示例性系统的组件图。
图7是包括此处公开的面包屑列表的示例性集成开发环境的图示。
图8是包括被配置成执行此处公开的方法的处理器可执行指令的示例性计算机可读介质的图示。
详细描述
现在参考附图来描述所要求保护的主题,所有附图中使用相同的附图标记来指代相同的元素。在以下描述中,为解释起见,阐明了众多具体细节以提供对所要求保护的主题的全面理解。然而,很明显,所要求保护的主题可以在没有这些具体细节的情况下实施。在其它情况下,以框图形式示出了公知的结构和设备以便于描述所要求保护的主题。
本发明涉及用于表示分层数据集的技术,并且具体地涉及用于导航分层数据集的面包屑列表。树视图控件可以与非常大的分层数据集相关联,但其中包含的大量信息对树视图控件而言是很麻烦的。具体地,导航大型分层数据集很耗时,因为用户必须管理树视图中的许多节点的打开和关闭以到达低层节点。尽管显示直到根节点的父节点列表的面包屑列表可对某些导航模式有所帮助,但这样的面包屑列表不能显著地方便其他导航模式。作为一个示例,如果用户需要重复访问几个节点,尤其是在这些节点位于分层数据集的不同部分中并且要通过始自根节点的相当不同的路径来到达的情况下,导航可涉及重复地通过相同的节点序列向下导航来到达每一这样的节点。作为另一示例,如果用户需要频繁访问特定节点或者如果用户需要访问虽处于分层结构中许多层深处但被该分层结构的用户频繁访问的节点,则上述面包屑列表不能显著加速这样的导航。
一替换面包屑列表用户界面组件可以将该面包屑列表的各个部分作为各相关信息组来呈现。在预测上述导航模式时,所选节点的面包屑列表可以用反向通往根节点的面包屑来生成,并且其随后可以用表示分层数据集内的优选位置的至少一个补充性面包屑来补充。作为一个示例,该补充性面包屑可以表示用户在导航分层数据集时先前所访问的位置(并且具体地,从属于所选节点的位置)。作为另一示例,该补充性面包屑可以表示用户在分层数据集内导航时频繁访问的位置。作为第三示例,该补充性面包屑可以表示分层数据集的其他用户(尤其是在导航所选节点时)所频繁访问的位置。通过将至少一个补充性面包屑添加到面包屑列表(例如,通过将其追加到该面包屑列表),分层数据集的图形用户界面可以通过提供到优选位置的快捷方式来方便用户导航该分层数据集。
图2呈现示出涉及将补充性面包屑用于与分层数据集相关的面包屑列表的示例性方法的流程图。该附图示出方便在分层数据集内进行导航的方法50。方法50在52处开始,并涉及生成表示分层数据集中从根节点到所选节点的路径的面包屑列表54。方法50还涉及向该面包屑列表添加表示分层数据集中的优选位置的至少一个补充性面包屑56。方法50还涉及显示面包屑列表58。通过生成这一类型的面包屑列表,添加一个或多个补充性面包屑,并向用户显示该面包屑列表,方法500方便用户导航分层数据集;并且达到了这一结果之后,该方法在60结束。
图3A-3E示出具有表示各优选位置的补充性面包屑的面包屑列表的一些实施例。图1A所示的分层数据集用作图3A、3B、和3E以及其中所示的概念的基础。图3C示出图1A的分层数据集的稍微修改的版本,并且该经修改的版本用作图3D和其中提出的概念的基础。因此,参考图1A和3C对完全理解图3A-3B和3D-3E和其中所示的概念而言是有帮助的。同样,在这些示例性面包屑列表中,补充性面包屑以与构成从根节点到所选节点路径的面包屑(白色)相比不同的色彩(灰色)示出,并且该补充性面包屑被追加到构成该路经的面包屑。然而,补充性面包屑的视觉样式方面的许多变型是可能的,并且若干这样的变型在图3A-3E的讨论之后更详细地讨论。
图3A呈现根据示例性导航历史的、图1A的示例性分层数据集各个节点的示例性面包屑的表,其中用户以特定次序(例如,首先节点A,随后节点C,然后节点E,再回到节点C等)访问该分层数据集的各节点。虽然图3A所示的示例性导航历史表征(feature)对分层数据集的单步导航,但可以理解,用户可以按任何次序访问分层数据集的各节点。对于该示例性导航历史70中的每一导航,向用户呈现与所选节点相关的面包屑列表。根据此处描述的一种或多种技术,面包屑列表包括表示从根节点(在这一情况下是节点A)到所选节点(例如,72、74、76)的路径的面包屑,以及表示优选位置的一个或多个补充性面包屑。在图3A的示例性面包屑列表中,补充性面包屑表示分层数据集中的先前访问的节点。在前三次导航中,用户访问(例如,选择)连贯构成该面包屑路径的节点(分别是72、74、和76)。在第四次导航中,用户向上导航到父节点C 78,使得先前访问的子节点E不再被包括在从根节点A到所选节点C 78的面包屑路径中。在此处描述的技术的该实施例中,因为用户先前对节点E的访问,所以该节点是分层结构内的优选位置并且因此被表示成该面包屑路径中的补充性面包屑80。类似地,第五次导航从分层数据集中包含节点C的部分行进到包含节点F的不同部分,因此,该导航的面包屑列表包括表示从根节点A到所选节点F的路径的面包屑以及表示先前访问的位置的补充性面包屑,如节点C 82和节点E 84。
可以理解,图3A的面包屑列表包括表示包含先前访问的节点的优选位置的补充性面包屑。用于生成补充性面包屑的这一技术可以被包括在许多实现中,这些实现中的每一个可具有各种优点。作为一个示例并且如图3A所示,在先前访问的位置被包括在从根节点到所选节点的路径中的情况下,不添加该位置来作为补充性面包屑。例如,在第十次导航中,将先前访问的节点C 86从补充性面包屑中省略(尽管在第九次导航中它被包括来作为补充性面包屑),因为节点C已经作为构成从根节点A到所选节点C 86的路径的面包屑88而存在。作为另一示例,可以对补充性面包屑的数量进行绝对封顶(例如,不超过3个补充性面包屑)或相对于面包屑列表的大小来封顶(例如,不超过面包屑列表中的8个面包屑)。本领域普通技术人员可以设计可根据此处描述的技术操作的其他变型。
图3B示出根据与图3A的示例性导航历史相同的导航历史的、图1A的示例性分层数据集的各节点的示例性面包屑列表的另一个表。该实现通过表征对用于补充性面包屑的优选位置的选择的附加限制而与图3A示出的实现不同。如图3A一样,优选位置是先前访问的并且不是该面包屑路径的一部分的节点;并且另外,该位置在分层数据集中从属于所选节点(例如,在树视图内更向下)。例如,在第三次导航中,包括节点E来作为表示优选位置的补充性面包屑92,因为它从属于当前节点C 90。然而,在到节点F的第五次导航中,不包括先前访问的节点C或先前访问的节点E来作为补充性面包屑,因为节点C和节点E都不从属于节点F 94。该示例性选择技术在将补充性面包屑集合限于所选节点更相关的那些补充性面包屑,并且通过隐藏表示分层数据集的其他部分(可能不相关)的那些补充性面包屑时是有利的。
在可由图3B所表示的另一变型中,分层数据集的各节点包括从属节点访问历史存储器。随着用户导航分层数据集,节点可以将用户访问的从属节点(例如,子节点、孙子节点等)记录在从属节点访问历史存储器中。从属节点访问存储器还可包括对从属节点的访问的其他细节(例如,访问的新近性、访问的频率、从属节点被选择的时间量、等等)。在用户稍候选择一节点时,可以访问该所选节点的从属节点访问存储器以确定用户已经访问的该所选节点的从属节点,并且可以对该先前访问的从属节点生成补充性面包屑并将其插入到面包屑列表中。此外,这样的补充性面包屑可以用各种方式来排序,并可以基于所记录的关于从属节点访问的附加信息。例如,根据从属节点访问存储器生成的补充性面包屑可以根据子节点的分层(例如,所有子节点优先,其次是所有孙子节点,等等)、访问的新近性或频率、从属节点被选择的时间量等来排序。本领域普通技术人员可以设计可根据此处描述的技术操作的其他变型。例如,在图3B中,节点F 94包括初始为空的从属节点访问存储器。在用户访问节点H和I(它们是节点F 94的从属节点)时,节点F 94可以在其从属节点访问存储器中记录对这些从属节点的访问。在稍候选择节点F 94时(例如,在第九次访问中),可以利用节点F 94的从属节点访问存储器来对这些先前访问的从属节点生成补充性面包屑。
图3C示出图1A的分层数据集,但具有将两个节点(节点E 96和节点J 98)标识为被分层数据集10的用户频繁访问的附加特征。例如,在包括媒体集合的分层数据集中,节点E 96和节点J 98可以表示该媒体集合的用户最频繁播放的媒体项(例如媒体集合中的当前点击)。这些标识符还被认为是分层数据集中的优选位置。因此,图3D示出示例性分层数据集中的各节点的示例性面包屑列表的另一个表70,并且其中包括了各优选位置(例如,该分层数据集的用户最频繁访问的节点)来作为补充性面包屑。因此,添加节点E和J来作为每一次导航的面包屑列表的补充性面包屑(分别是100和102),除非这两节点中的一个已经被包括在面包屑列表中(例如,节点E未作为补充性面包屑被包括在第三次导航中,因为节点E已经处于该面包屑列表中了)。该实现的细节还可以与图3B所示的实现的细节相组合,使得只有在频繁访问的节点从属于所选节点时才包括该引用位置来作为补充性面包屑。
图3E示出根据与图3A的示例性导航历史相同的导航历史的、图1A的示例性分层数据集的各节点的示例性面包屑列表的又一个表。该实现因基于用户在遍历分层数据集期间访问每一节点的频率来选择用于补充性面包屑的优选位置而不同。在该实施例中,系统跟踪对分层数据集的每一节点的访问的次数,并显示未被包括在表示从根节点到所选节点的路径的面包屑列表中的先前节点的补充性面包屑。例如,在对节点E 106的第一次访问之后,节点E被显示为表示被访问过一次的位置的补充性面包屑110。类似地,在对节点C的前两次访问104、108之后,节点C被显示为表示被访问过两次的位置的补充性面包屑112。此外,补充性面包屑可以根据访问频率来排序。访问频率可以显示在每一补充性面包屑中(例如,第五次导航包括引用节点C并且指示该节点被用户访问过两次的补充性面包屑),或可简单地用来选择和/或排序补充性面包屑的集合。还应注意,在先前访问的节点是该面包屑列表的一部分的情况下,该节点未被显示为补充性面包屑。例如,在第六次导航中未包括节点F来作为补充性面包屑,因为节点F被包括在表示从根节点(节点A)到所选节点(节点H)的路径的面包屑列表中。
与补充性面包屑所表示的优选位置相关的附加实施例集合涉及范围化分层数据集的概念。具体地,导航具有许多层的分层数据集很耗时,因为用户必须管理树视图中的许多节点的打开和关闭以到达低层节点。类似地,低层控件的面包屑列表可能增长得很长(例如,在使用美国联邦法律语料库作为分层数据集时,引用具体专利法规可用诸如总共7个面包屑的“美国法典:第35章:第103节:(b)段:子段(3):子子段(A):子子子段(iii)”的面包屑列表来表示)。在常规面包屑列表中显示多层深度可能会用过多信息淹没用户,从而减少每一用户界面组件的导航实用性。这一缺陷在诸如智能蜂窝电话和超移动PC(UMPC)等具有小型显示器的、以缩小的LCD屏幕为特征以用于增强便携性的设备上恶化。
一替换面包屑列表用户界面组件可以将该面包屑列表的各个部分作为各相关信息组来呈现。分层结构中在概念上链接的各层可以聚集成一个面包屑来呈现,并且随着用户在该分层结构中导航得更深,该聚集可以增加。例如,以上引用的美国专利法部分可以更方便地描述为总共3个面包屑的、包括“美国法典,第35章:第103节,(b)段,子段(3);子子段(A),子子子段(iii)”的面包属列表,与该同一法规的7个面包屑的没有范围化的面包屑列表相比该面包屑列表被精简。这些特定范围化的面包屑更通常被引述为表示“美国法典第35章”的第一面包屑、表示“第103(b)(3)节”的第二面包屑、以及表示“A(iii)”的第三面包屑。该经精简的面包屑列表依赖于聚集类似类型的信息来显示较少数量的面包屑。
根据某种概念性准则来链接分层数据集的各个层被称为“范围化”。例如,以此方式,分层数据集的特定部分中的几个层可被表示为共享一个范围,使得在分层结构中的这些层之内或之下的导航在引用该范围内的多个层的节点的面包屑列表中产生聚集面包屑。在面包屑列表的上下文中,范围化允许将多个面包屑/节点聚集成单个面包屑或一个原子单元,以更高效地方便数据导航和/或管理。
范围化分层数据集的概念在图4A中示出,图4A描绘包含与图1A的非范围化分层数据集10相同的节点组织的示例性范围化分层数据集120,但其中该先前分层结构的某些节点已被分组成范围。在此示出了两个范围:包括第二层节点B 124和C 126和节点C 126内的第三层节点D 128和E 130的一个范围;以及包括第二层节点F 132和第三层节点G 134、H 136和J 140的一个范围。为说明起见的用散列点和阴影来描绘这些范围,但可以理解,分层范围是概念性关系;尽管描绘范围化分层结构的用户界面可以包括一个或多个不同的视觉样式,但视觉演示不是本发明的技术的必需元素。从图4A中可以注意到,特定节点的各子节点不必是相同范围的。例如,节点A 122包含各子节点:节点124和C 126(同一范围的)、节点F 132(另一范围的)、以及节点K 142(未范围化)。还可以注意到,与一范围相关联的节点可以包含与另一范围相关联或不与范围相关联的子节点。例如,与节点F 132、G 134、以及J 140属于同一范围的节点H 136包含未范围化的节点I 138。最后,可以注意到,每一范围包含具有父节点/子节点分层关系的至少一对节点(例如,节点E 130到节点C 126)是有利的,以准许将这些节点聚集在一个范围化面包屑中。
图4B示出具有图4A所示的范围化分层数据集120的各节点的范围化面包屑的面包屑列表。在图4B的该示例性面包屑列表150中,在选择分层数据集的每一节点时,该节点与包含表示从该分层数据集的根节点到所选节点的路径内的每一位置的面包屑152的面包屑列表154相关联。此外,在该表150中呈现的面包屑列表154有利地结合了分层数据集120中节点的分层范围化。因为节点C、D和E共享一个分层范围,所以聚集引用这些节点的面包屑来产生范围化面包屑156。因此,节点D的面包屑列表表征包括节点C和D的范围化面包屑156并且节点E的面包屑列表表征包括节点D和E的范围化面包屑158。如在图4A的讨论中所述,具有一范围的节点可包含一不同范围或没有范围的子节点。例如,在图4A的示例性分层数据集120中,节点I 138是与节点F 132共享一个范围的节点H 136的未范围化的子节点;因此,在与该分层数据集相关联的面包屑列表150中,节点F和H被聚集到一个范围化面包屑160中,而节点I作为未范围化面包屑162呈现在该面包屑列表中。图4B中描绘的范围化面包屑列表150与图1C中描绘的未范围化面包屑列表的比较示出范围化面包屑列表对未范围化面包屑列表相对缩短。
在范围化分层数据集的上下文中,根据面包屑所表示的节点范围,包括补充性面包屑可进一步方便用户导航该分层数据集。图4C示出根据与图3B对图1A的示例性未范围化分层数据集进行导航的历史相同的示例性导航历史的、图4A的示例性范围化分层数据集的各节点的示例性面包屑列表的另一个表150。图4C中描绘的实现显示包括优选位置的补充性面包屑的面包屑列表,这些优选位置包括先前已访问的且不是从各节点到所选节点的面包屑路径的一部分并且与所选节点共享一个分层范围的节点。例如,在第四次导航中,包括节点E来作为表示优选位置的补充性面包屑166,因为它从属于所选节点C 164。然而,在到节点F的第五次导航中,不包括先前访问的节点C或先前访问的节点E来作为补充性面包屑,因为节点C和节点E都不从属于所选节点F 168。此外,共享一个分层范围的类似类型的面包屑被聚集成一个范围化面包屑。例如,在第八次导航中,节点F和H(从根节点A到所选节点H的路径内的每一节点)共享一个分层范围,并且因此被聚集成一个范围化面包屑172。然而,因为节点I面包屑174是补充性面包屑,所以它没有与表示节点F和H的面包屑172聚集在一起。然而,因为节点I面包屑174是补充性面包屑,所以它没有与表示节点F和H的面包屑172聚集在一起。一个这样的实施例可被配置成将补充性面包屑与同一分层范围的其他补充性面包屑聚集在一起,但不与构成从根节点到所选节点的路径的面包屑聚集在一起(无论是否共享一个分层范围)。例如,虽然在图4A中节点H和I未被示为共享一个范围,但出于说明的目的,在第九次导航中,作为该导航中的补充性面包屑的节点H和I被聚集成范围化面包屑176,如同它们共享一个分层范围一样。
图4D示出图4A的示例性范围化分层数据集的各节点152的示例性面包屑列表154的另一个表150,其中只有在各优选位置(例如,分层数据集的用户最频繁访问的节点)共享所选节点152的分层范围时才包括这些优选位置来作为补充性面包屑。如图3C所示,节点E和J被认为是图4A的示例性分层数据集120中的被频繁访问的位置。此外,节点E还共享与节点B、C、和D相同的分层范围;并且节点J共享与节点F、G、和H相同的分层范围。因此,在图4D的导航历史中,在所选节点152是节点B、C、或D时(如在第二、第四、和第十次导航中),将节点E添加到面包屑列表来作为补充性面包屑178。类似地,在所选节点152是节点F、G、或H时(如在第五、第六、第八、和第九次导航中),将节点J添加到面包屑列表来作为补充性面包屑180。以此方式,面包屑列表154可以方便用户导航到分层范围中该分层数据集的用户之间有优选兴趣的各个部分。
如此处所述的,将面包屑列表显示给用户。显示面包屑列表可以用多种方式来执行,并可以在展示某些优点的多个方面进行变化。图5A-5D示出面包屑列表的显示的几个这样的可变方面。作为一个示例,如图5A所示,呈现具有使用不同视觉样式显示的补充性面包屑194的面包屑列表190,该不同视觉样式与表示从根节点到所选节点的路径的面包屑192相比尤其不同。在图5A中,使用阴影样式来显示补充性面包屑194,以将它与面包屑列表190中的其他面包屑192进行区分。补充性面包屑的不同视觉样式可包括不同大小、形状、字体、字体样式、颜色等、或其任何组合。显示可以变化的另一方面涉及将补充性面包屑添加到面包屑列表。在先前示例中(图3A-3B、图3D-3E、以及图4B-4D),补充性面包屑被追加到面包屑列表。然而,还可以用其他方式来添加补充性面包屑,如加到面包屑列表前、与面包屑列表的其他面包屑交错、等等。图5B中示出的示例性面包屑列表190将补充性面包屑194描绘成通过将补充性面包屑194显示在其他面包屑下方来将其添加到该面包屑列表。图5C示出补充性面包屑的显示的第三方面,其中以精简的补充性面包屑指示符196来显示优选位置(例如,频繁访问的位置)的补充性面包屑,该指示符可被用来激活补充性面包屑但省略了补充性面包屑的细节。例如,精简的补充性面包屑指示符可表示频繁访问的位置(例如,从属于所选节点的、该分层数据集的用户经常希望访问的节点),并且该精简的补充性面包屑指示符可用来指示所表示的节点的标识和可用性,同时减少在面包屑列表中的占用空间。图5D示出补充性面包屑的显示的第四方面,涉及在面包屑列表190中显示被配置成切换显示至少一个补充性面包屑194的补充性面包屑指示符198。因此,面包屑列表190可包括表示从根节点到所选节点的路径的面包屑192,并且还可包括表示优选位置的一个或多个补充性面包屑194,但补充性面包屑194最初在显示面包屑列表190时可以隐藏,而包括补充性面包屑指示符196来指示包括补充性面包屑194。用户激活补充性面包屑指示符198(例如使用诸如鼠标等定点设备点击补充性面包屑指示符)可以在显示和隐藏补充性面包屑194之间切换。本领域普通技术人员可以想出和变化可根据此处呈现的技术操作的、面包屑列表的显示的许多这样的方面。
在面包屑列表中包括一个或多个补充性面包屑的技术还可被实现为系统,如用于方便在分层数据集内进行导航的系统。这一特性的一种系统可包括被配置成表示分层数据集的存储器;被配置成生成表示从该分层数据集中的根节点到所选节点的路径的面包屑列表并被配置成向该面包屑列表添加表示该分层数据集中的优选位置的至少一个补充性面包屑的面包屑组件;以及被配置成显示该面包屑列表的显示器组件。这样的系统所生成的面包屑列表可通过提供对所选节点的父节点和该分层数据集内的其他优选位置(例如,先前访问的位置和/或频繁访问的位置)的导航性访问来方便用户导航分层数据集。例如,用于选择上述用作补充性面包屑的优选位置的替换实施例可由面包屑组件来实现。
实现这些概念的系统可被组装成许多变型。作为一个示例,面包屑列表可包括被配置成根据这些技术来生成面包屑列表的硬件,如现场可编程门阵列(FPGA)。另选地或另外地,面包屑组件可包括被编码成在诸如台式处理器等通用硬件上执行并被配置成生成具有表示各优选位置的一个或多个补充性面包屑的面包屑列表的软件指令。类似地,显示器组件可包括视觉显示器装置,如(例如)LCD监视器、CRT监视器、投影仪、或打印机。该显示器组件还可包括用于在面包屑组件与视觉显示器装置之间进行通信的接口,诸如例如显示适配器、视频存储器缓冲区、软件驱动程序、和/或视觉编程接口。同样,该显示器组件可被配置成结合以上讨论的各特定实施例中的任何一个或几个。作为一个示例,显示器组件可被配置成显示补充性面包屑指示符,该指示符被配置成切换显示补充性面包屑。作为另一示例,该显示器组件可被配置成使用不同视觉样式来显示补充性面包屑,诸如例如将不同类型的补充性面包屑与其他类型并与构成到根节点的路径的面包屑进行区分的不同颜色和/或阴影。本领域普通技术人员可以设计可被配置成根据此处描述的技术操作的许多这样的系统。
根据此处描述的概念实现的系统的其他实施例可包括附加组件。在一个这样的实施例中,该系统可包括被配置成接受与面包屑列表相关的用户输入的输入组件,如键盘或鼠标。作为一个示例,输入组件可被配置成接受表示对激活面包屑的用户输入,并且显示器组件被配置成在用户界面组件(例如,被配置成显示激活的面包屑内的节点的查看器)中的激活面包屑内呈现节点。本领域的普通技术人员可以在被配置成根据此处描述的技术操作的系统的上下文中设计许多这样的输入组件。
图6示出用于生成表征补充性面包屑的面包屑列表的示例性系统,其中系统200结合此处描述的若干方面。在该示例性附图中,系统200包括可操作地与包含分层数据集的数据表示206的存储器204相耦合的面包屑组件202。系统200还包括被配置成显示包括由面包屑组件202针对分层数据集206(在图6中显示为该分层数据集的树视图)中的所选节点所生成的补充性面包屑的面包屑列表212的显示器组件208。系统200还包括可被配置成接受与面包屑列表212相关的用户输入的两个输入设备,键盘214和鼠标216。这些组件一起构成用于为分层数据集206生成并显示具有一个或多个补充性面包屑的面包屑列表212的系统200,并且允许用户与分层数据集206进行交互(例如,方便导航分层数据集206的各节点)。在该示例性系统200中,存储器204包含具有节点B、C、D、和E的一个分层范围以及节点F、G、H、和J的另一个分层范围的范围化分层数据集206的数据表示。在该示例性系统中,显示器组件208示出其中选择了节点H的树视图210和表示从根节点A到所选节点H的路径的面包屑列表212(以及反映节点F和H所共享的分层范围的范围化面包屑)。面包屑列表212还将与所选节点H共享分层结构的节点J表示成补充性面包屑。包括该补充性面包屑是因为先前访问过该补充性面包屑所表示的位置(节点J),或因为该补充性面包屑表示该示例性范围化分层数据集206中的频繁访问的节点。
在面包屑列表中包括补充性面包屑的技术还可用于集成开发环境中。通常在这样的环境中创建图形用户界面(GUI)应用程序,其提供用于设计具有诸如按钮、文本框、以及列表框等各种图形控件的丰富用户界面以及用于编写通过构成该图形用户界面的这些控件来与用户进行交互的软件的复杂工具集。这样的应用程序的一个共同特征是将图形用户界面应用程序(“表单”)表示成分层数据集,其中根节点表示包含各图形控件的表单,这些图形控件可包括其他控件(例如,包含一组按钮的面板)和大量可配置属性。然而,近年来,用户控件的分类在完善性和复杂性上有所发展。现代集成开发环境向编程者提供用于构建图形用户界面应用程序的诸如按钮和列表框等许多简单工具以及诸如媒体播放器、图形聊天组件、复杂数据库交互组件、以及甚至预包装神经网络等日益增长种类的更复杂组件。
随着开发出可构成图形用户界面应用程序的各种各样且复杂的组件,向编程者描述这些控件的分类和细节的信息的分层数据集的大小也在增长。编程者在设计应用程序时可能难以导航该膨胀的分层数据集。甚至使用面包屑列表也不能方便导航,因为控件和属性可能位于分层数据集的若干层深处,从而需要麻烦的面包屑列表来描述对象(例如,面包屑列表“应用程序表单:控件:媒体播放器:媒体控制面板:进度条:滚动条”——六个嵌套节点深,并且因此六个未范围化的面包屑——可描述媒体播放器应用程序中的进度条)。分层范围可应用于图形用户界面组件的分层数据集并且所选节点可以通过生成并显示范围化面包屑列表来描述(例如,“应用程序表单,控件:媒体播放器,媒体控制面板:进度条,滚动条”只具有三个范围化面包屑)。还可以通过在表示用户界面的元素的范围化分层数据集的节点的面包屑列表中包括补充性面包屑来方便导航。
因此,此处呈现的技术可以具体化成在集成开发环境中方便在表示至少一个用户界面组件的范围化分层数据集中进行导航的方法。该方法包括生成表示从范围化分层数据集中的根节点到所选节点的路径的面包屑列表,将向该面包屑列表添加表示该范围化分层数据集中的优选位置的至少一个补充性面包屑,并且在集成开发环境中显示该面包屑列表。
在该分层数据集中,可以应用对该分层数据集(例如,表示构成图形用户界面应用程序的组件和属性的数据集)中的某一些概念上相关的对象集合相关联地进行分组的分层范围。作为一个示例,分层范围可应用于相关联地分组“控件模板”的各元素,例如构成控件的各元素(例如,媒体播放器组件可通过控件模板指定“停止”按钮、“播放”按钮、进度条等来定义)。作为另一示例,分层范围可应用于对构成“控件样式”的各个属性进行逻辑上的分组,例如定义要应用于一个或多个图形组件的视觉样式的属性集合(例如,应用于图形用户界面的字体、字体样式、背景色、以及边界色)。作为第三示例,分层范围可应用于对“根场景”的各元素,例如表示图形用户界面应用程序及其属性(例如,其默认样式)的根节点进行逻辑上的分组。通过将这些分层范围应用于定义正在开发的图形用户界面应用程序的结构的分层数据集,集成开发环境可经由范围化面包屑列表方便编程者导航该应用程序的这些元素。
图7示出表征将补充性面包屑添加到所生成的范围化面包屑列表以用于导航定义图形用户界面应用程序的复杂元素的示例性集成开发环境220。示例性集成开发环境220在其用于创建媒体播放器应用程序期间示出。该应用程序的各元素被示为在树视图222中显示的分层节点,并且各分层范围被示为用于对概念上相关节点进行分组。例如,分层数据集的根节点表示表单,例如包括图形用户界面应用程序并包含该应用程序内的所有图形用户界面控件的类。该根节点包含几个控件,如objPlayer(对象播放器)224和lstAllTracks(列出所有音轨)230,其每一个都使用在概念上将每一控件与其中嵌入的子控件中的一些相耦合的“控件模板”范围来设计。例如,“objPlayer”224(媒体播放器组件的一个实例)与媒体播放器组件所包含的两个子控件:用于显示当前播放的音轨的列表框控件226和包含一些媒体播放控件(后退、停止、播放、快进、以及弹出)的面板228共享一个分层范围。类似地,“lstAllTracks”230(列表框控件的一个实例)与其组成组件中的一些(如字幕串232、列表滚动条234、以及列表框控件的边界236)共享一个分层范围。如先前示例一样,该示例性附图中的分层范围由代表性阴影来表示(条形阴影用于表示媒体播放器控件224、226、228的分层范围,且点画阴影用于表示列表框控件230、234、236、238的分层范围)。
通过在表示图形用户界面应用程序的各元素的分层数据集222中包括这些分层范围,图7所示的示例性集成开发环境220可构造方便导航的范围化面包屑列表。在该示例性环境中,开发者正在编辑图形用户界面应用程序的两个部分:表单(称为frmMyMediaPlayer(我的媒体播放器表单))和包含当前音轨的列表的列表框控件的边界(边界部分具有名称bdrListbox(列表框边界)并且列表框控件具有名称lstAllTracks)。表单编辑器240在编辑器窗口240的底部显示第一面包屑列表242,包括表示该表单的面包屑244(例如,该分层数据集的根节点)。该面包屑列表还包括两个补充性面包屑:表示strTitle(标题串)的第一补充性面包屑246(其构成该表单的标题)和表示lstAllTracks:strCaption(字幕串)的第二补充性面包屑248(其构成“所有音轨”列表框控件的字幕)。包括这些补充性面包屑246、248来作为对优选位置的引用,这些优选位置可包括控件集合中先前访问或编辑的属性、控件集合中频繁访问或编辑的属性、这些控件的常用编辑的特征、等等。列表框控件的边界的属性也在边界属性编辑器250中进行编辑,并且用于边界样式属性的第二面包屑列表250在该编辑器窗口的底部显示。除构成从根节点(例如表单)到所选节点(例如,边界属性对象)的路径的面包屑254、256之外,该第二面包屑列表252还包括表示列表框控件的字幕的补充性面包屑258,该补充性面包屑258可被标识为优选位置,如分层范围(例如列表框控件)内的先前访问的位置、列表框控件的常用编辑的属性、等等。从该图示中显而易见的是,将补充性面包屑添加到面包屑列表中方便了导航复杂分层结构来到达在逻辑上与当前所选节点相关联地优选位置。
此处讨论的技术还可具体化成包括被配置成生成此处讨论的面包屑列表的处理器可执行指令的计算机可读介质。可以用这些方式设计的一种示例性计算机可读介质在图8中示出,其中实现260包括其上编码有计算机可读数据264的计算机可读介质262(例如,CD-R、DVD-R、或硬盘驱动器盘片)。该计算机可读数据264又包括被配置成根据此次阐述的原理来操作的一组处理器可执行指令266。在一个这样的实施例中,处理器可执行指令266可被配置成通过生成面包屑列表、添加至少一个补充性面包屑、并显示该面包屑列表来执行一种方便在分层数据集内进行导航的方法,如在图2的流程图中所示的方法。在另一这样的实施例中,处理器可执行指令266可被配置成实现一种用于方便在分层数据集内进行导航的系统,如图6的组件图中所示的系统。在又一这样的实施例中,处理器可执行指令266可被配置成实现一种在诸如图7所示的集成开发环境等集成开发环境中方便在表示至少一个用户界面组件的分层数据集内导航的方法268。本领域普通技术人员可以设计可被配置成根据此处描述的技术操作的许多这样的计算机可读介质。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
如在本申请中所使用的,术语“组件”、“模块”、“系统”、“接口”等一般旨在表示计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是,但不限于是,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,运行在控制器上的应用程序和控制器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程中,并且组件可以位于一个计算机内和/或分布在两个或更多的计算机之间。
此外,所要求保护的主题可以使用产生控制计算机以实现所公开的主题的软件、固件、硬件或其任意组合的标准编程和/或工程技术而被实现为方法、装置或制品。在此使用的术语“制品”旨在涵盖可以从任何计算机可读设备、载体或介质访问的计算机程序。例如,计算机可读介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,紧致盘(CD)、数字多功能盘(DVD)……)、智能卡、以及闪存设备(例如,卡、棒、钥匙驱动器……)。另外可以明白,可以使用载波来承载计算机可读电子数据,例如那些用于发送和接收电子邮件或用于访问如因特网或局域网(LAN)等网络的数据。当然,本领域的技术人员将会认识到,在不背离所要求保护的主题的范围或精神的前提下可以对这一配置进行许多修改。
此外,在此使用词语“示例性”意指用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定被解释为比其他方面或设计优选或有利。相反,使用词语“示例性”旨在以具体的方式呈现各个概念。如本申请中所使用的,术语“或”意指包括性“或”而非互斥性“或”。即,除非另有指定或从上下文可以清楚,否则“X使用A或B”意指任何自然的包括性排列。即,如果X使用A;X使用B;或X使用A和B两者,则在任何以上情况下,都满足“X使用A或B”。另外,本申请中和所附权利要求书中所使用的冠词“一”和“一个”一般可被解释为是指“一个或多个”,除非另有指定或从上下文可以清楚指的是单数形式。
同样,虽然参考一个或多个实现示出并描述了本发明,但本领域技术人员基于对本说明书和附图的阅读和理解可以想到各种等效替换和修改。本发明包括所有这些修改和替换并且只由所附权利要求书来限定。特别地,对于由上述组件(例如,元素、资源等)执行的各种功能,除非另外指明,否则用于描述这些组件的术语旨在对应于执行所描述的执行此处在本发明的示例性实现中所示的功能的组件的指定功能(例如,功能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。另外,尽管可相对于若干实现中的仅一个实现来公开本发明的一个特定特征,但是这一特征可以如对任何给定或特定应用所需且有利地与其它实现的一个或多个其它特征相组合。此外,就在说明书或权利要求书中使用术语“包含”、“具有”、“含有”和“带有”及其变体而言,这些术语旨在以与术语“包括”相似的方式为包含性的。