本申请是2003年3月24日提交的题为“System and Method for UserModification of MetaData in a Shell Browser(用于在外壳浏览器中对元数据进行用户修改的系统和方法)”的共同待批的美国专利申请第10/395,533号,以及2003年3月24日提交的题为“Extensible Object Previewer in a Shell Browser(外壳浏览器中的可扩展对象预览器)”的美国专利申请第10/395,560号的部分延续,这两个申请的说明书都通过引用结合于此。
发明详述
本发明涉及用于通过从浏览器向用户提供一个或多个选中文件的预览来提供外壳浏览器中改进的用户体验的系统和方法。以下描述本发明的一个示例性操作环境。
一般参考附图并最初特别地参考图1,在各图中相同的参考标号标识相同的组件,示出了一个示例性操作环境并一般将其指定为操作环境100。计算系统环境100仅为合适的计算环境的一个示例,并非对本发明的使用范围或功能提出任何局限。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有任何依赖或需求。
此处所描述的特征可以在诸如程序模块等由计算机执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等等。而且,如本领域的技术人员理解的,本发明的各特征可以用各种计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器或可编程消费者电子设备、小型机、大型机等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实践。在分布式计算环境中的,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
参考图1,示例性系统100包括计算机110形式的通用计算设备,包括处理单元120、系统存储器130以及将包括系统存储器130的各类系统组件耦合至处理单元120的系统总线121。如有所需,此处描述的任何元件可被实现为独立元件(例如,单个处理单元),或者被实现为配合工作的多个元件(例如,多个处理单元)。
计算机110通常包括各种计算机可读介质。作为示例而非局限,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质的示例包括但不限于,随机存取存储器(RAM);只读存储器(ROM);电可擦除可编程只读存储器(EEPROM);闪存或其它存储器技术;CD-ROM、数字多功能盘(DVD)或其它光盘或全息盘存储;磁盒、磁带、磁盘存储或其它磁存储设备;或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。系统存储器130包括以易失性和/或非易失性存储器形式的计算机存储介质,如ROM 131和RAM 132。基本输入/输出系统133(BIOS)包括(如在启动时)帮助在计算机110内的元件之间传输信息的基本例程,通常储存在ROM 131中。RAM 132通常包含处理单元120立即可访问和/或当前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作示例,图1示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器141,对可移动、非易失性磁盘152进行读写的磁盘驱动器151,以及对可移动、非易失性光盘156,如CD ROM或其它光介质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器14 1通常通过不可移动存储器接口,如接口140连接到系统总线121。磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口,如接口150连接到系统总线121。
上文讨论并在图1示出的驱动器及其关联的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。通常,储存在RAM中的操作系统、应用程序等是从硬盘驱动器141中读取的对应的系统、程序或数据的部分,这些部分取决于所需功能而在大小和范围上有所变化。这里对操作系统144、应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少它们是不同的副本。用户可以通过输入设备,如键盘162;定位设备161,通常指鼠标、跟踪球或触摸垫;无线输入接受组件163;或诸如遥控器等无线源向计算机110输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线121的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口、IEEE1394端口、或通用串行总线(USB)、或红外(IR)总线。
监视器191也通过接口,如视频接口190连接至系统总线121。显示设备191可以是显示计算机110的输出的任何设备,不限于监视器、LCD屏幕、薄膜晶体管(TFT)屏幕、平板显示器、常规电视机或屏幕投影仪。除显示设备191之外,计算机也可包括其它外围输出设备,如扬声器197和打印机196,它们通过输出外围接口195连接。
计算机110可以使用到一个或多个远程计算机,如远程计算机180的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机,并通常包括许多或所有相对于计算机110所描述的元件,尽管在图1中仅示出了存储器存储设备181。图1描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络,诸如到城域网(MAN)、内联网或因特网的连接。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或用于通过WAN 173,如因特网建立通信的其它装置。调制解调器172可以是内置或外置的,它通过网络接口170或其它适当的机制连接至系统总线121。调制解调器172可以是电缆调制解调器、DSL调制解调器或其它宽带设备。在网络化环境中,相对于计算机110所描述的程序模块或其部分可储存在远程存储器存储设备中。作为示例而非局限,图1示出远程应用程序185驻留在存储器设备181上。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它手段。计算机110可能有其他内部组件,但未示出。例如,诸如电视调谐器未和网络接口卡的各种扩展卡可以加入到计算机110中。
当计算机110被开启或复位时,储存在ROM 131中的BIOS 133命令处理单元120将操作系统或其必需部分从硬盘驱动器141加载到RAM 132中。一旦被设计为操作系统144的操作系统的复制部分被加载到RAM 132中,处理单元120即执行操作系统代码,并使得与操作系统134的用户界面相关联的可视元素在显示设备191上显示。通常,当用户打开应用程序145时,从硬盘驱动器141中读取程序代码和相关数据,并且必需的部分被复制到RAM 132中,此处复制的部分由参考标号135来表示。
如上所述,此处描述的特征可在计算机可使用指令的一般上下文中描述。计算机可使用指令包括可由一个或多个计算机或其它设备使用的函数、过程、方案、例程、代码段和模块。计算机可使用指令形成了允许计算机根据输入源来作出反应的接口。指令与其它代码段协作以响应于结合所接收的数据的来源接收到的数据启动各种任务。
转向图2A,面板200表示外壳浏览器的图形用户界面的屏幕大小显示区。面板200包含预览面板区202和视图区204。预览面板202可包括预览控件206、用户界面(UI)或编辑控件208、以及任务控件210。通常,预览控件206向用户提供正被预览的项(例如,选中的文件)的图像或其它视觉显示。预览控件206还可向用户呈现诸如重复器按钮等允许用户通过点击鼠标按键将焦点从一个项移至下一项的控件。对应于一个或多个项的元数据和/或对应于项容件的元数据可显示在面板200内的各种位置中。例如,编辑控件和元数据可共同位于编辑控件区208内,使得编辑控件区不仅包括所预览的项的关键属性的显示,还向用户呈现了对元数据作出编辑的选项。任务控件210包含与名称空间和/或选择相关的任务。此处描述的各种元素可共享显示区域,诸如出现在公共用户界面面板中,或者替换地,它们可具有其自己的单独的区域,诸如不同的面板。
可选特征可被包括在面板200中,并且这些特征可被移除。例如,预览控件206和任务控件210可被移除。此外,可任选地添加图2A中未示出的其它特征,诸如包括重复器按钮或使用户能打开/关闭预览窗格的显示/隐藏按钮的工具栏。这些和其它可选特征可协助用户容易地在外壳浏览器中定位特定的项。
视图区204提供了列表视图,如诸如文件系统文件或文件夹等一个或多个项212的项枚举或项列表。项和外壳项可以是文件、文件夹和/或其它这样的容件,并且可包括可在列表视图中表示的其它非文件对象。非文件对象的示例可包括但不限于,设备、联系人、收藏夹和电子邮件消息。术语“外壳浏览器”和“文件系统浏览器”此处互换地使用来指允许用户导航包括文件和其它非文件项的一个或多个名称空间的浏览器。
对面板200可能有许多可能的设计和布局。例如,预览面板202在图2A中被示为在视图区204的上方。然而,诸如将预览面板202和视图区204并排放置等其他布局也是可能的。编辑控件208的位置也可独立于所显示的元数据的位置,且独立于任何其它控件的位置。对列表视图区204中所描绘的项也有多种可能的查看类型,诸如细节、幻灯片演示、电影胶片、缩略图、贴图、图标等。
图2B类似于图2A,不同之处在于视图区204被以细节模式显示项212的视图区214替代。对于以细节模式显示的外壳项,项212可在视图区214的左侧按列对齐,且一个或多个列标题216形成了包含与位于同一行中的对应项有关的元数据218的一组列的顶行。用户可通过在面板200内的任何地方实例化一个或多个编辑控件208来将元数据值改为另一值。例如,编辑控件可在预览面板202和/或视图区214内提供。例如,最初不对用户可见的编辑控件可在视图区214内提供。这一控件可例如在用户悬停在元数据218上然后点击它来进入编辑模式时实例化。
接着参考图3,提供了外壳浏览器中的欢迎面板300的示意图。欢迎面板有时候被称为“空选择”面板,因为它表示名称空间/页面或容件而非选择。如果用户尚未作出选择,则预览面板302可显示与文件夹或外壳库有关的元数据304和关键任务。如有所需,任务可被分成首要任务306和其它相关任务308。欢迎面板300还包括视图区310,其中可查看多个文件或其它项312。欢迎窗格元数据304可包括诸如容件(例如,MyPictures)的属性等信息,在这一情况下元数据显示可以是静态的。或者,欢迎窗格元数据304可包括诸如对容件内的每一项的元数据的采样等信息,在这一情况下,元数据显示可以频繁改变。例如,通过每隔30秒从一个项轮转到下一项,元数据显示可限于一次一个项的属性。
图4是外壳浏览器中的选中面板400的示意图。与欢迎面板形成对比,选中面板表示用户的选择。如果用户选择一个容件或文件夹,则选中面板不必与用于该容件或文件夹的欢迎面板相同。在图4中,选中面板400包括预览面板402,预览面板402包含预览控件404、元数据显示406和任务显示408。与欢迎面板300(图3中)类似,选中面板400也包括视图区410,其中可查看多个文件或其它项412。然而,在图4中,用户选中了文件之一。因此,预览控件404显示选中文件的预览图像,元数据显示406示出选中文件的属性,而任务显示408提供用于对选中文件操作的相关任务的菜单。
图5是图4的选中面板的示意性表示,但是它还包括允许用户修改外壳浏览器中的元数据的上下文菜单500。图5中的上下文菜单500向用户呈现了用于改变选中元数据的若干选项。菜单500中所示的通用文本当然仅是可向用户呈现以便编辑所显示的元数据的选项类型的一个示例。上下文菜单可以在包括欢迎窗格的任何面板中提供,以改善用户体验。如本领域的技术人员可以理解的,可支持任何数量和种类的上下文菜单。允许用户修改外壳浏览器内所显示的元数据的一种手段是提供诸如可编辑元数据上下文菜单500等上下文菜单。用户可例如通过点击预览面板中对应的文本或对象来唤出该上下文菜单。
除上下文菜单之外的手段可用于允许用户修改外壳浏览器内所显示的元数据。另一这样的手段是使用户点击元数据来进入编辑模式。与之相反,用户可通过悬停在预览面板中的相关文本或对象上来进入编辑模式。可使用输入和/或编辑数据的任何已知方式。
图6是示出允许用户修改外壳浏览器内的欢迎面板中显示的元数据的方法600的流程图。方法600包括在602处显示欢迎面板和与欢迎面板相关联的元数据。然后,在604处,该方法提供了供用户修改所显示的元数据的控件。当用户在606处操纵该控件来修改所显示的元数据时,该方法然后在608处将经修改的元数据与该欢迎面板相关联,以使经修改的元数据在下次显示欢迎面板时被显示。
图7是示出允许用户修改外壳浏览器内的选中面板中所显示的元数据的方法700的流程图。在702处,方法700首先显示多个项,诸如欢迎面板中的项或选中容件中的项。当用户在704处选择这些项中的一个或多个时,该方法在706处显示与所选择的项相关联的元数据。在708处,该方法提供供用户修改所显示的元数据的控件。当用户在710处操纵该控件以修改所显示的元数据时,该方法然后在712处将经修改元数据与所选择的项相关联,以使经修改的元数据在下次显示所选择的项时可被显示。
在用户在704处选择多个项的情况下,所显示的元数据可包括所选择的项的感相交的属性、属性的并集、或可能与所选择的项有关的新属性。例如,数据可被聚集以提供总文件大小、总播放时间、总项数、平均文件大小、平均播放时间等。或者,所显示的元数据可包括来自每一选中的项的元数据的旋转样本(例如,每隔30秒从一个选中项的元数据轮转到下一选中项的元数据)。从对所有项的选择得到的元数据的显示可能与从空选择得到的元数据的显示相同。
图8是包含与外壳浏览器中显示的项相关联的用户可修改元数据的数据结构800的框图。数据结构800包括指示项名称的标题字段802。在非文件项的情况下,标题字段802可包含用于按字母表顺序排列列表视图中的项的任何属性的名称。数据结构800包括包含与所显示的项相关联的一个或多个属性的用户可编辑属性字段804,其中用户可编辑属性与所显示的项一起显示在外壳浏览器中。数据结构800可选地包括只读属性字段806,该字段包含与所显示的项相关联的任何只读属性并且应被显示在外壳浏览器中。给定外壳浏览器中的元数据显示的大小约束,可限制字段804和806中的属性的数目。因此,数据结构800可选地包括所有属性字段808,它包含到包含与所显示的项相关联的所有属性或元数据的位置(例如,属性页面)的链接或指针。当然,所有属性字段808在字段804和806包含与所显示的项相关联的所有属性的情况下可能不是必需的。数据结构800被储存在一个或多个计算机可读介质上,诸如储存在文件系统或外壳中,以提供外壳浏览器内丰富的存储视图,且由此提供改进的用户体验。
此处描述的特征可允许多种情形。作为第一个示例,学生能够使用预览面板来管理其项目。当她获得作为她正在工作的项目的一部分的新文档时,她可选择其文档库中的那些文档并使用编辑控件将文档作者名以及项目名称键入到关键字域中。现在,新文档将在其收藏夹视图中显示:“Documents Grouped by Keyword andListed by Author”(按照关键字分组并按照作者列出的文档)。第二个示例涉及雇员查找即将到来的广告计划的材料。当他使用外壳浏览器浏览其雇主的库存照片集合时,他选择几张图片,并从预览面板中添加新关键字“Summer 2003 Campaign”(2003年夏天计划)。在更新了多个选择的元数据之后,该雇员然后按照关键字制作数据透视表,并且可查看被分组在一起的所有“Summer 2003 Campaign”文件。
图9是类似于图4的选中面板400但带有扩展控件的选中面板的示意图。选中面板900包括预览面板902,后者包含具有扩展控件914的预览控件904、元数据显示916和任务显示908。选中面板900还包括视图区910,其中可查看多个文件或其它项912。用户已经选择了文件912之一,因此预览控件904显示选中文件的预览图像,元数据显示906示出选中文件的属性,而任务显示908提供用于对选中文件操作的相关任务的菜单。
扩展控件914表示更高的功能级别。例如,诸如图4所示的那些的默认预览面板或预览控件可仪显示选中项的预览图像。如果项是文字处理文档或幻灯片演示,则默认预览图像可以是文档或幻灯片组的第一页。然而,通过扩展预览图像的功能使之更具有交互性,用户可相当容易地操纵扩展控件914来翻阅文档或幻灯片演示。这种增强的功能级别改进了用户的体验,因为它允许用户在不打开所预览的项的情况下更全面地对其进行浏览,这对单独基于第一页可能无法容易地标识的文件尤其有用。
扩展控件914可作为外壳浏览器中的替换预览器的一部分供用户使用。术语“预览器”可指预览控件、包括预览控件的预览面板或与预览的选择、生成和/或显示有关的软件。外壳浏览器可向用户提供对多种项类型提供标准功能级别的默认预览器以及对特定项类型提供不同功能级别的一个或多个替换预览器以增进用户体验。向独立软件厂商(ISV)和其它第三方开发者开放替换预览器的开发通过以容易可识别的方式示出文件的相关方面对文件浏览体验增加了价值。可开发用于包括但不限于图像文件、视频文件、联系人、游戏、扫描仪、摄影机、文档文件、电子表格文件、幻灯片演示文件、绘图文件以及写字板墨水文件等众多文件类型和非文件项类型的自定义预览器。
第三方被允许通过提供可在内部查看文件类型并提供用户可理解的有意义的图像的代码来描述和阐述其文件类型。例如,Apple可实现QuickTimeTM预览控件,它可在用户在外壳浏览器中选择QuickTimeTM文件时被显示。该预览控件可提供操作系统外壳中默认预览器之外的替换或扩展的功能级别,包括诸如显示QuickTimeTM电影的全部或一部分(例如,前五秒钟)和/或为用户提供按钮和控件以便启动QuickTimeTM播放器等功能。用于音乐文件的替换预览器可提供类似的扩展功能。如本领域的技术人员可以理解的,替换预览器中的扩展功能的可能性是无限的。
图10是类似于图4但还包括允许用户修改外壳浏览器中的元数据的上下文菜单1014的选中面板的示意图。选中面板1000包括预览面板1002,后者包含预览控件1004、元数据显示1016和任务控件1008。选中面板1000还包括视图区1010,其中可查看多个文件或其它项1012。如有需要,可省略元数据控件1006和任务控件1008。
图10中的上下文菜单1014向用户呈现了若干选项,包括为选中项选择默认预览器或替换预览器中的任一个的选择。菜单1014中所示的通用文本当然仅是可呈现给用户来选择预览器的选项类型的一个示例。上下文菜单可在包括欢迎窗格的任何面板中提供,以改进用户体验。如本领域的技术人员可以理解的,本发明可支持任何数量和种类的上下文菜单。允许用户对外壳浏览器内的预览器进行选择的一种手段是提供诸如上下文菜单1014等上下文菜单。用户可例如通过在预览面板中点击相应的文本或对象来唤出该上下文菜单。
可提供除上下文菜单之外的手段来为所显示的项从外壳浏览器内的多个可用预览器中选择一预览器。一种这样的手段是使用户在预览控件上点击以进入一选择模式。类似地,用户可被提示通过在预览面板内右击来选择预览器。与之相反,用户可通过悬停在预览面板中的相关文本或相关对象上来进入选择模式。众多替换手段是可用的,且落入本发明的范围之内。
图11A是示出用于允许用户选择支持多个项类型的外壳浏览器中的预览器的方法1100的流程图。方法1100在1102处提供外壳浏览器中的多个预览器。这多个预览器可包括用于多个项类型的默认预览器以及用于特定项类型的一个或多个替换预览器。这些替换预览器可包括由第三方开发的已安装的应用程序。在1104处,方法1100向用户呈现对特定项类型的两个或多个预览器的选择。选择预览器的提示可由外壳浏览器发起(例如,在显示新项类型时)和/或由用户发起(例如,通过在对象上点击以显示上下文菜单)。在1106处从用户接收指示为特定项类型选择了预览器之一的输入之后,方法1100然后在1108处使选中的预览器与该特定项类型相关联。选中的预览器将仍被使用直到用户选择了一个不同的预览器。然而,如果选中的预览器是已安装的应用程序,则卸载该应用程序,在需要时可终止对选中预览器的使用。
图11B是示出用于自动选择支持多个项类型的外壳浏览器中的预览器的方法1110的流程图。方法1110在1112处提供外壳浏览器中的多个预览器。这多个预览器可包括用于多个项类型的默认预览器以及用于特定项类型的一个或多个替换预览器。这些替换预览器可包括由第三方开发的已安装的应用程序。
在1114处,系统(而不是用户)自动且透明地从用于特定项类型的两个或多个可用预览器中选择一默认预览器。系统可响应于诸如新项类型的显示或替换预览器的存在等事件而选择预览器。系统被配置成基于逻辑规则来选择默认预览器。在异常情况下,系统可在816处决定忽略这些规则并选择在适用规则下不会被选择的预览器。例如,如果规则是选择新的可用预览器而不用当前默认预览器,则已安装的应用程序一般可具有将默认预览器改成现在从已安装的应用程序可得到的预览器的授权。然而,例如外壳浏览器可保留忽略由新安装的应用程序所提出的改变的权力。例如,当新安装的应用程序不能被认证为所述项类型的正确所有者时,忽略可能是恰当的。
在任何情况中,方法1110然后在1118处将选中的预览器与该特定项类型相关联。选中的预览器将仍被使用直到一个不同的预览器被选中。然而,如果选中的预览器是已安装的应用程序,则卸载该应用程序,在需要时将终止对选中预览器的使用。
接着参考图12,一流程图示出用于允许在支持多个项类型的外壳浏览器中使用第三方预览器的方法1200。方法1200包括在1202处提供具有用于多个项类型的默认预览器的外壳浏览器。方法1200还包括在1204处提供对用于多个项类型的至少其中之一的替换预览器的第三方开发的可扩展性机制。替换预览器可在1206处在外壳浏览器中注册。在已安装应用程序的情况中,注册基本上可在安装时进行。例如,如果应用程序是由OEM安装的,则替换预览器可在用户获得计算机之前注册。或者,用户可本地或远程地安装应用程序。
存在用于以上在1204处引用的可扩展性机制的众多可能的方法。一种这样的方法涉及展示一组应用程序编程接口(API),使得独立软件厂商(ISV)和其它第三方开发员可开发替换预览器。使用API方法,存在允许ISV将其预览控件与该ISV所拥有的项类型相关联的注册机制。当该类型的项或文件在外壳浏览器中被选中时,ISV的预览控件经由该注册机制和可扩展性API被实例化。API向预览控件提供数据:表示视图中选中项的数据以及表示视图中项的父容件的数据。预览控件在此数据上操作,并经由API提供在外壳浏览器中呈现的用户界面。用户可使用键击和鼠标事件来提供输入,输入由外壳浏览器传递给预览控件,后者可在这些用户输入事件上操作。
本领域的技术人员可以理解,在可扩展性机制的上下文中众多方法均是可能的。除API方法以外,可经由用户配置、指向HTML的指针或加入flash动画来实现类似的功能。而且,可扩展性模型可要求仅拥有选中项类型的一个应用程序可提供仅一个替换预览器。换言之,可用预览器的数目被限于一个默认预览器和一个替换预览器以避免多次注册的扩展预览器彼此竞争的较差的用户体验。然而,另一模型可以是允许可处理选中项类型的任何应用程序提供一个附加预览器。一替换模型可允许任何运行的代码为任何项类型以提供一个附加预览器。也期望在某些情况下允许替换或移除默认预览器。
图13是存储在一个或多个计算机可读介质上且包含表示外壳浏览器中的多个预览器的信息的数据结构1300的框图。数据结构1300包括包含表示支持多个项类型的默认预览器的信息的默认预览器字段1302。替换预览器字段1304包含指示用于第一项类型的替换预览器的信息。另一替换预览器字段1306可包含指示用于第一项类型的第二替换预览器的信息,或者它可包含指示用于第二项类型的替换预览器的信息。本领域的技术人员可以理解,在某些情况中,可能只有一个替换预览器字段,而在其它情况中,可以有两个或多个替换预览器字段。选中的预览器字段1308包含指明当特定项类型的项被显示在外壳浏览器中时是调用默认预览器还是替换预览器的信息。在字段1306包含指示用于第二项类型的替换预览器的信息的情况中,选中预览器字段1310可包含指出当第二项类型的一个或多个项被显示在外壳浏览器中时是调用默认预览器还是替换预览器的信息。字段1302、1304和/或1306中所包含的信息可包括被配置成当用户选择该类型的对象时运行的预览器代码。
图14A-B描绘可结合上述和在此所述的特征使用的预览过程的示例流程图。在步骤1401处,作为该过程的初始步骤,可在系统上安装一个或多个预览器。预览器可以是作为底层操作系统软件的一部分出厂的软件。预览器也可以是在出厂后加载到计算机系统上的附加软件。例如,底层操作系统可展示允许将来对预览器的开发和/或添加的一组应用程序接口(API)。
在步骤1402,可进行检查以确定是否要为一个或多个预览器创建新的关联。关联可以是控制要被使用的预览器的时间和类型的任何准则和/或请求。可创建关联来定义要对给定用户身份使用的预览器类型(或者特定用户是否希望完全禁止预览器),和/或要对某种基于系统条件的预定义条件(例如,可用资源、存储器、当前正在运行的应用程序、已生成或要生成的预览数量、可用电源、日时、其它应用程序的状态等等)以及文件类型(例如,用户可能喜欢对家庭视频使用一种类型的预览器,而对压缩的歌曲使用不同的预览器)使用的预览器,使得系统使用的默认预览器可以是用户定义的。用户可指示某些文件类型只具有基本/非交互式预览,或者如果-预览经历了预定数量的失败、崩溃或挂起,则系统可以自动地禁止该预览。应用程序可与一个或多个预览器相关联,使得从该应用程序打开的预览器或者由该应用程序创建的文件的预览始终可使用相同的预览器来预览。这些关联本质上可以是分层的,使得多个预览按偏好的次序排列。请求新关联的步骤1402可在启动时、安装应用程序后、执行预定的应用程序后和/或用户请求时发生。
如果接收到创建新关联的请求,则在步骤1403创建该关联。创建关联的动作可通过向用户查询当要使用某些预览器时要满足的特定准则来完成,或者通过自动地从应用程序和/或系统本身检索这样的准则信息来完成。当创建时,实际的关联可以采用存储在计算机系统的存储器中的、将预览器与上述任一标识的准则相关联的数据的形式。
在步骤1404,进行检查以确定是否需要打开预览器。有许多事件可以触发预览器的打开。例如,当用户打开系统上的外壳浏览器并且开始细察文件和/或文件夹时,浏览器可启动预览器来显示一个或多个选中文件(或当没有选中任何文件时的默认文件)的预览。或者,预览器可在任何其它应用程序请求时被触发。预览器也可通过创建由多个应用程序共享的公用文件对话框来触发。公用文件对话框预览在下面进一步讨论。
如果要打开一个预览器,则系统可在步骤1405接收要被预览的一个或多个选择。这可涉及接收要被预览的文件(或多个文件)的标识。这样的选择可由用户作出,诸如通过移动鼠标指针到一个列出的文件并按下鼠标左键或者点击并拖曳围绕多个文件清单的选择框来选择一个或多个文件。或者,可自动作出选择。例如,某些应用程序可默认为预定的文件,并且可自动地选择该文件用于在初次打开时预览。诸如MICROSOFT WORDTM等文字处理程序可默认为包括文本编辑特征的预览器。系统可自动选择用于预览的文件,作为进行搜索的结果。用户可输入诸如关键字等搜索准则,并且系统或应用程序可自动选择搜索结果之一用于预览。例如,用户可在系统搜索工具中键入“peanut”(花生)作为关键字,并且得出的包括“peanut”的文件清单可连同第一个列出的文件的预览一起显示。
一旦选择了要预览的文件,系统随后在步骤1406选择并生成合适的预览。选择合适的预览可基于已经创建的一个或多个关联(例如,用户已经选择了一个特定的预览器来预览某种类型的所有文件,或者用于预览某些文件),并且还可基于可用(或可消费)的系统资源。或者,可请求用户例如通过从所呈现的适合用于要预览的选择的预定预览器的列表中进行选择来标识对当前预览应使用哪一预览器。
在某些情况下,可能希望在正在启动更丰富的交互式预览的同时生成可被查看的初始基本预览。例如,如果文本文档的丰富预览需要好几秒钟来加载和生成,则可在这期间向用户呈现可以更快生成的更基本的预览。该更基本的预览可具有部分或没有丰富预览所提供的交互功能,并且可以至少让用户开始预览选择。
选择预览可包括可以使用的预先存储的预览器序列。例如,一个特定的应用程序或视图可具有可用预览器的分层序列,诸如完全的丰富预览器、减缩特征的预览器、基本缩略图预览(不需要是交互式的)以及与当前在MICROSOFTWINDOWSTM操作系统中使用的桌面图标相似的基本图标。当要打开预览器时,系统可从一个预览器,诸如完全的丰富预览器开始,然后沿预览器序列“后退”以找到最合适的预览器。例如,完全的丰富预览可能对具有预览器的特定视图是默认的该预览器提供让用户能够通过预览修改文档的翻页、缩放和文本编辑能力,并且如果没有足够的系统资源(例如由于存储器限制、其它应用程序、其它预览器等)来适当地提供预览,则系统可检查列表中的下一个预览器(例如具有较少特征的预览器)。下一个预览器可能具有略微减少特征,例如,它只提供在文档中导航(例如翻页和缩放)的能力,而没有编辑能力。这一预览器需要较少的系统资源来运行,并且在资源不可用时是较佳的。如果仍没有足够的资源来提供给这第二个预览器,则系统可以检查下一个预览器(例如,具有很少或没有交互性的基本缩略图视图),依此类推,直到在给定可用资源的情况下找到合适的预览器。
在生成预览时,该预览可作为独立于请求该预览的应用程序的不同进程来启动。例如,如果在系统外壳浏览器中提供预览器,则该预览器可作为独立于该外壳浏览器的进程来执行。将预览作为独立的进程,外壳浏览器可能就不会发现它自己处在一个必须等待来自预览应用程序的响应的位置,从而避免在预览器遭遇困难时的崩溃或挂起。这样的困难可以由各种来源引起。选中文件可能有被破坏的数据,使得预览应用程序不能处理它;预览应用程序本身可能有错误或缺陷从而不能平滑地操作;文件被加了错误的标签或错误地标识从而选择了错误的预览应用程序(例如,文件可能指示它是音频文件,而实际上是文本文件);或者系统资源可能遭遇诸如坏存储器扇区等问题。让预览器作为不同的进程提供了一定程度的崩溃/挂起抵抗力。如果预览器遭遇错误、崩溃或挂起,则问题将只限于预览面板本身,而外壳浏览器将继续起作用。在某些情况中,系统可跟踪特定预览应用程序遭遇困难、崩溃和/或挂起的次数,并且如果超过预定数量(例如3次),则系统可采取减少使用该特定预览器的频率的步骤。例如,系统可降低该预览器的优先级,或者创建要求不同预览器的关联。
在步骤1407,可进行检查以确定用户是否已经与任何已显示的预览交互过。交互可以采用已知的计算机交互的任何形式。例如,交互可以是在预览面板内的鼠标点击。交互可以是在预览面板中选择一个或多个图形界面元素,诸如翻页按钮光标箭头等等。交互可以采用键盘键的形式,诸如在文本文档的预览内移动光标的光标移动键。
如果发生交互,则在步骤1408将发生适当的处理。处理交互可采用对用户输入的任何响应的形式。例如,响应于用户在预览面板内点击鼠标或其它指针,处理可开始编辑过程。编辑过程可允许用户直接从预览面板查看和/或编辑被预览的文件,而不需要用户离开具有预览面板的视图。
在步骤1409,进行检查以确定是否已经调整预览面板的大小。例如,可通过用户输入命令和/或通过点击和拖曳预览面板的边界或调整大小工具来调整面板的大小。如果调整了面板的大小,则在步骤1410显示新的经调整大小的面板。如果需要的话,经调整大小的面板可被配置成自动地保持在原始面板中存在的相同的屏幕高宽比。可诸如通过关联将某些文件类型配置成始终具有相同的屏幕高宽比(例如视频始终为4∶3)。如果伴随预览显示属性或元数据,则也可调整属性和/或元数据显示区的大小以对应于新的预览面板大小。例如,属性或元数据显示区可被配置成始终具有与预览面板相同的高度或宽度。相反,可响应于调整属性/元数据显示区的大小来调整预览器的大小。如果需要的话,新的大小可存储在系统中,作为与特定的文件类型、当前视图、应用程序和/或用户相关联,并且在下次需要预览时使用的新的默认大小。
在步骤1411,可进行检查以查看预览面板的新大小是否已经过了预览的一个或多个预定阈值。如上面提到的,预览器可具有一个或多个准则供它们使用。一个这样的准则涉及可用于预览器的显示区的总量。例如,可为不同大小的预览提供不同级别的交互性和/或功能。使用诸如MICROSOFT WORDTM等文字处理程序作为例子,较大的预览可提供更详细的功能,诸如文档中的导航/翻页和缩放、改变字体大小或者使用预览中的光标编辑文本,而如果显示太小以至于不能合理使用光标来编辑文本,则MICROSOFT WORDTM文档的较小预览仍可包括导航和缩放功能,但省略了光标文本编辑。预览器可具有一个或多个与其相关联的阈值大小,它(们)可在关联期间创建,存储在计算机系统的存储器中,并且在满足或过了阈值时能标识一个替换预览器来使用。例如,预览器可能需要最低256像素的宽度来实现某些功能,而只有在512像素时才能包括其它功能。
如果新的大小过了诸如最小或最大阈值等阈值,则可在步骤1412选择并生成替换预览。替换预览的生成可与在步骤1406中预览的生成相同。因此例如,如果预览面板的大小已经减少到超过某个最小大小,则可使用提供那些交互特征中仍可在较小大小下使用的较小子集的替换预览器。或者,如果预览面板已经放大到超过某个最大大小,则可使用提供可在较大大小时使用的更多特征的替换预览器,诸如具有更多用户界面控件或允许在预览内详细编辑的预览器。
在步骤1413,进行检查以确定是否要编辑显示的属性或者元数据。这样的数据可通过例如,在显示的一条元数据上点击鼠标或指针,并且使用文本输入项或菜单用户界面输入一个值来编辑。在步骤1414,采取合适的步骤来编辑特定的属性。实际的步骤可取决于正在编辑的数据的类型。日期域可带出日历用户界面元素,从而允许用户查看并选择日期(和/或时间)值用于输入。其它类型的数据可通过文本输入框输入,并且可从诸如下拉菜单等菜单选择其它类型。
在步骤1415,进行检查以确定系统是否在等待丰富预览器的加载。如上面提到的,在系统上正在初始化丰富预览的同时,可提供更基本或普通的预览。如果系统正在等待丰富预览器,则在步骤1416,进行检查以确定丰富预览器是否已准备好。如果已准备好,则系统在步骤1417用丰富预览代替现在的预览。步骤1417也可包括对用户的查询以确定丰富预览器是否仍是所需的。尽管这个步骤显示两个预览器,但也可使用两个以上预览器。例如,系统可在等待缩略图预览的同时显示图标,并且随后在等待丰富预览的同时显示缩略图。
在步骤1418,进行检查以确定是否要关闭预览器,并且如果是,则在步骤1419关闭预览器。随后,该过程返回到步骤1402重新开始。当然,图14a-b所示的过程仅仅是示出安排多个步骤的方法的一个例子,并且任何步骤可以按实现(或移除)在此所述的任何特征所需地重新排序、重复、移除或修改。
图15是结合了本发明的一个或多个方面的另一个外壳浏览器界面1500(或外壳浏览器)的例子。浏览器1500可以作为操作系统的一部分来提供,用于查看一个或多个目录、网络、驱动器、文件夹等的内容,并且可以是通用的或非应用程序专用的。在浏览器1500中,列出了多个项1501,连同文件名、文件类型和为各个项列出的其它数据。如在本例中所示,多个不同类型的文件(例如,文本文件、图像文件、音频文件和/或诸如文字处理应用程序等现有应用程序的自定义数据文件)都可在外壳浏览器中显示。项1501被示为按日期组织(例如,今天和昨天的文件),但可使用任何分类或组织(例如,文件大小、文件名、项目名称、文件类型、艺术家、专辑、创建日期、编辑日期等等)。用户可选择清单之一,诸如清单1501a(示为以第一种模式在视觉上区分,该模式可以是红色),并且外壳浏览器1500可显示对应于所选择的项1501a的交互式预览面板1502。
例如,当项1501a是包含文本数据的文件,诸如MICROSOFT WORDTM文件,或者其它文字处理程序文件时,交互式预览面板1502可显示出现在选中项1501a中的一页或多页文本。交互式预览1502可允许用户直接在预览面板中编辑和/或操纵显示的文本。例如,可允许用户在交互式预览1502内点击鼠标指针来使光标出现在面板内,并且用户可操纵光标或输入键盘输入来添加、删除和/或修改显示的文本。其它类型的控件,诸如翻页控件、字体/格式控件、滚动控件、文件管理控件、输入/输出控件等等也可出现在预览面板1502中。
不同类型的数据文件可具有不同类型的交互式预览。例如,用于音频文件的交互式预览可能包括控制所选音频文件在计算机系统的一个或多个扬声器(诸如扬声器197)上的播放的音频预览的控件。.wav文件或.mp3文件的预览可包括这样的音频命令。可以有用于播放、暂停或提示音频文件的播放的控件。诸如图片的预览等某些预览可包括缩放/扫视控件,用于允许操纵显示的图像。视频预览可具有用于播放、暂停或提示视频在计算机的显示器上和音频在扬声器上的播放的控件。
交互式预览1502也连同图15中所示的具有标签1503a与相应值1503b的多个属性1503(包括元数据)一起显示。任何类型的文件属性可与标签一起显示。示例属性可包括文件大小、文件夹位置、文件名、项目名、编辑/创建日期、应用类型等等。出现的各种标签和属性1503可按照选择的文件的类型来定制,使得可针对不同类型的文件根据适合所选文件类型的内容出现不同的属性集。例如,所选择的包含歌曲的音频文件可具有专辑名、艺术家、歌曲名和发行日期等属性,而所选择的电子表格文件可用不同的属性,诸如组名、项目名、项目领导和项目起始日期来替换这些属性。要显示哪些属性的决定可自动配置,或者可给用户以选择(和/或取消选择)对特定文件类型要出现在属性区中的属性的选项。属性可按类型来区分优先顺序(例如“专辑名”属性类型对于歌曲文件比图像文件更重要)以方便该显示。
对于显示的信息的其它变化也是有可能的。例如,某些标签(诸如文件名和文件类型)可被认为是可选的,或者可从显示中完全省略。来自图15的一个示例是文件名和文件类型,这已经在屏幕的其它地方显示了,并且如果由预览器再次在属性区域中显示则是多余的。能用于这样的不显示的标签的空间可用于显示另外的属性信息。没有值的属性默认可被省略,或可被标志为即使为空也要出现。作为另一种变化方案,可为某些属性提供不同数量的空间来容纳更长的属性。
这些属性可在属性显示区中编辑。例如,用户可简单地点击或悬停在显示的属性值上,并且开始输入/编辑数据的过程。用于输入/编辑数据的界面可取决于所涉及的特定属性或类型。诸如日期等某些属性可具有日历显示和/或下拉菜单来选择值。例如,用户简单地将鼠标指针移动到日期域上,并且可以出现日历显示以帮助用户通过从日历中选择来输入日期。可显示可能选项的下拉菜单或列表来简化输入。例如,通过在月份域上点击鼠标指针,系统可显示月份列表,用户可从中选择以填充该域。可在预览显示中显示带有光标的简单文本框,以允许用户从预览显示中直接键入和/或编辑属性值,而不需要用于该数据的单独的对话框。文本框可以是填空框,用户可以使用光标或键盘来键入。可使用任何其它形式的数据输入。为帮助用户标识可编辑的属性,这些属性可在显示中以某种方式在视觉上加以区别或强调。例如,可使用不同的颜色(例如黄色)、字体(例如加粗字母或全大写字体)、外观和/或符号来指示用户可编辑的值和不可编辑的值。也可使用加亮来区别或强调某些域。例如,可编辑域可具有在其中和/或围绕它们的某种颜色(例如淡黄色),这与在打印文档上使用黄色轮廓色时产生的效果相似。
某些文件类型可具有比适合于给定预览显示更多的属性。在某些实施例中,可以有诸如ALL(全部)按钮1504等可允许用户查看给定文件的全部属性,或者至少查看另外的属性的选项。
如在上面步骤1409中提到的,可给用户以调整浏览器1500中预览和/或使用的属性显示的大小的选项。例如,可在预览面板1502中使用调整大小工具1505,并且通过选择和移动该工具,用户可以使浏览器1500自动调整由预览器和/或属性区占用的显示区。
图16示出了一个示例用户界面,其中用户已经调整交互式预览1502的大小以具有较大的大小,结果得到较大的交互式预览1601。新的预览1601可被配置成具有与旧的预览1502相同的屏幕高宽比,或者作为调整大小过程的一部分可允许用户修改屏幕高宽比。有了较大的预览1601,浏览器1500也可增加分配给属性显示的空间,使得属性和预览在尺寸上是相对应的。例如,属性区域1602可被配置成具有与经调整尺寸的预览相同的高度,并且可自动重新排列显示的数据以适应该新的大小。可在该较大的区域中显示另外的属性。
如上面提到的,预览大小的改变在某些情况中可引起所提供的预览类型的改变,使得不同大小的预览面板导致不同类型的交互式预览。因此预览1601可在交互性的等级和/或提供的功能类型方面不同于预览1502。作为一个例子,如果预览在宽度上小于256像素,则某些图形编辑功能可能没有意义。如果用户调整用于显示属性的区域的大小,则可以发生相同类型的调整大小。例如,用户可在属性区1602的边界上点击和拖曳鼠标指针并调整该区域的大小,并且使预览区1601改变大小以符合新属性区1602的尺寸。
图17示出一个例子,其中预览已经被调整大小成较小的预览1701。较小的预览面板1701可在给定其较小尺寸的情况下具有一组减少的特征。属性区1702也可按照预览面板1701来减小,并且可重新安排和/或移除所显示的属性或元数据,以适应可用空间的减少。某些预览可展现Microsoft WINDOWSTM操作系统中存在的图标行为,使得右键点击、左键点击、拖曳等可具有相同的效果。例如,将一个图标拖放到另一个上可使第一个文件被附加到第二个文件上。
除了调整预览面板和/或属性显示区的大小之外,可自动或者按用户请求重新排列这些元素。例如,用户可能希望移动(例如,通过选择首选项、通过点击和拖曳预览、或者某个其它用户输入)预览1801以具有不同的取向和外观。在预览某些类型的文件时,不同的取向可能更好。例如,以“横向”格式拍摄的照片或者视频图像的预览更适合于宽比高大的取向(例如“横向”),而其它类型的文件(例如文本文档或“纵向”图像)更适合于高比宽大的取向。两种格式之间的选择也可以例如基于文件类型来自动完成。例如,作为步骤1406中的预览选择或步骤1403中的关联的一部分,系统可自动检查文件类型、属性和/或元数据以确定哪个预览取向最适合于要预览的选择。
为方便重新安排以及上面提到的预览面板的崩溃/挂起抵抗力,预览面板和属性/元数据区域可作为独立的软件模块来实现。每个模块可作为在系统的处理单元120上的不同进程执行。或者,预览和属性/元数据面板不必作为系统中不同软件或软件模块来实现,而是可以作为公用模块来实现。集成的等级可以是基于所希望的扩展性等级层次、软件存储器覆盖范围(footprint)和其它因素的设计选择。
如前面提到的,预览面板可结合到计算机系统的公用文件对话框中。公用文件对话框可以是要由计算机系统上执行的各种应用程序共享的、计算机系统提供的用户界面元素和/或程序。例如,操作系统可能提供可由希望在系统上创建文件的任何应用程序使用的公用的“打开文件(Open File)”或“保存文件(Save File)”对话框。在这样的公用文件对话框中包括预览器允许多个不同类型的应用程序得到具有预览的好处,并且允许应用程序有效地提供原来不支持的文件的丰富的交互式预览,而不需要应用程序开发者开发它们自己的预览器。在公用文件对话框中加入预览器还提供了跨多个应用程序的一致的界面,其中用户偏好和关联可在各应用程序中一致地使用。而且,在公用文件对话框中提供预览器可允许应用程序有效地为形形色色的文件类型-甚至应用程序在原来不支持的文件类型提供丰富的交互式预览。例如,电子表格应用程序可能已经安装了它自己的丰富交互式预览器来处理数据密集型电子表格的预览。可能没有编辑该电子表格应用程序的数据文件的能力的独立的文字处理应用程序仍可使用公用文件对话框来提供这样的预览。图19示出作为“打开文件”公用对话框的一部分的预览器的例子。这些公用文件对话框连同它们的预览一起可扩展地通过某些API被提供给其它应用程序。
在某些情况中,用户可能希望一次性选择多个文件,或者同时让多个文件被有效选择。在这些情况中,预览器可如上所述地操作,从而为每个选中文件提供独立的预览。或者,系统可改变其行为。例如,如果在步骤1405,系统确定多个文件被选中,则生成预览的步骤1406可涉及确定哪个选中文件将被预览和哪些文件将不被预览的过程。这一确定可基于诸如上述关联和首选项等各种准则(例如,第一个选择、最后一个选择、最新的选择、最大的选择、最简单的预览、用户预览器首选项等等)来做出。
系统也可采取同时生成对应于多个选择的预览的步骤。如在图20中所示,可对多个预览面板2001给予堆叠的外观以示出正在预览多个选择。主预览2001a可出现在最上面,并且可具有所有与其它预览相同的上述丰富交互性。用于其它选择的其它预览2001b、2001c和200d可堆叠地出现在主预览2001a之下,并且可具有水平偏移X和垂直偏移Y。偏移可以是一个常数,以提供均匀的外观。或者,每个后续预览的偏移可随着更多的预览被放入背景中而变小。可以有被堆叠的预览的预定最大数量,超过该数可使用不同的外观。例如,如果预览的预定最大数量设定为6(可以由系统或用户来设定),并且如果选中超过6个文件,则堆叠的预览可具有不同的外观,如图21所示。在该图中,前6个预览以外的预览2101a、2101b和2101c被示为以较小的偏移堆叠。这些另外的预览可被呈现为简单的空白预览、具有预定的模式、和/或具有一定程度的透明或不透明以向用户指示有更多的选中文件未被预览。
也可使用替换的多预览的显示。例如,可使用预览的旋转3维传送带(carousel),诸如图22所示的。有六个面的传送带2201可在它不同的面2202a、2202b、2203c(显示在背面)、2202d(显示在背面)、2203e(显示在背面)和2202f上显示六个独立的预览。可提供用户界面元素2203来允许在传送带上手动导航,诸如旋转或缩放,或者传送带可被自动地旋转(或者根本不旋转)。其它方法包括在散开式(fanned-out)显示中显示多个预览、并排地显示多个预览(如果需要则调整大小)、在堆栈的3维等比例视图中显示预览(类似一叠纸)和在自动或手动导航的情况下顺序地显示预览。
多个选中文件(例如通过在多个文件上点击鼠标光标、按住SHIFT或CTRL键并点击、或者点击和围绕多个文件拖曳一个选择区域来选择的)的预览也可以根据选择的文件的类型而变化,并且可对选中文件的不同组合使用不同的预览序列。例如,当选择多个图像文件时,系统(例如经由操作系统、硬件、应用程序等)可使用堆叠式呈现,而当选择多个视频文件时使用顺序的视频预览。系统也可在选择多个文件时缩回或简化所提供的预览,以便节省资源。
上述各种功能可被实现为单一的集成代码段,或者作为子例程或模块的集合。例如,可以有处理多个文件的预览的迭代程序模块、负责在预览中提供的用户界面命令的命令模块、生成预览本身的预览模块、处理预览显示的属性/元数据部分的属性模块等等。
如上面提到的,这些预览功能可在用户要在系统上显示文件或其它数据的清单的任何时候提供。当通过使用一个或多个准则来生成特定的清单时,诸如当显示是用户请求的关键字搜索的结果时,预览器可使用搜索准则来组装预览。例如,应用程序可能希望将在搜索中使用的关键字通知给预览器,使得预览器可以确定要使用哪个预览,或者当要使用多个预览时如何排序预览。这可以是可扩展的特征,其中为预览器提供搜索准则。
如上面提到的,可作出多个选择,并且所显示的预览图像可作为结果而改变。这些多个选择也可引起属性和/或元数据的显示的改变。例如,图23示出一个示例视图,其中已经选择了两个文件2301和2302。可用独特的方式或独特的外观来区别和/或强调所选择的文件,诸如具有不同的颜色、字体、形状、纹理、样式、大小、背景色、图案等等。这些选中文件的属性和元数据可显示对两个文件相同的属性(诸如每个文件的项目名)2303、2304,并且可具有相应的外观,使得用户可以容易地将属性与其相应的文件相匹配。例如,属性可以是彩色编码的,以标识它们所属的选中文件。为文件2301显示的图案可强调和/或区别该文件,诸如按照颜色(例如红色)、加亮(例如围绕文本的不同颜色,如纸质文档上的显著部分)、字体(例如,加粗、下划线、全部大写、Times New Roman等等)、大小(例如较大的文本)等等。可显示文件2301的属性的属性2303可具有用于该文件的相同的强调和/或区别,以将属性与其各自的文件相关。
多个选中文件的许多属性和/或元数据可被聚集并且将它们作为合集或总和来一起呈现。例如,如果一个显示的属性是文件大小(例如,使用多少千字节(kb)或兆字节(Mb)),并且选中了多个文件,则文件大小属性可显示聚集的文件大小值,它是所选中文件的文件大小的合计(例如4.3Mb)。作为另一个例子,如果一个显示的属性具有关键字,则多个选中文件的关键字可被聚集在一起并且作为单个关键字属性呈现。某些聚集可导致较大的属性显示,并且可使用上述相同的外观强调/区别,以将聚集的属性与它们各自的文件相关。或者,可进一步将这些属性与选中文件区别开来(例如,不同的颜色、字体、加亮、外观、大小等)以指示该属性是所有选中文件的聚集。图24示出一个例子,其中聚集的属性值2401用通过阴影表示的不同外观显示,这分别与在选中文件2301、2302上的图案不同。阴影可表示例如红颜色,而文件2301和2302上的图案可以是绿色和黄色。
聚集值的强调和/或区别在某些情况下可以用指示这些值的来源的方式来完成。例如,图25示出图24所示的视图的放大的属性/元数据显示。诸如关键字等某些聚集的属性可导致从多个选择聚集的多个属性值的清单2501。这些聚集的属性可被给予指示哪些值来自哪个选中文件的不同外观。在图25的例子中,值2502和2503是以一种阴影的形式显示的,以指示这些特定值(例如关键字)对于两个选中文件2301和2302是共同的。该阴影可以反映上述区别和/或强调的任何类型(例如红颜色)。用第一种模式显示值2504和2505以指示它们与共享此相同模式的一个选中文件2301相关联(例如,文件及其值都是蓝色),而值2506具有不同的模式以指示它与共享此相同模式的另一选中文件2302相关联(例如这个文件及其值是绿色的)。可使用分割的线2507来描绘对于所有选择文件共同的值,以区别其它值。当然,不同的外观可在选择多个文件时被给予不同的意义。标签2508也可在视觉上区别和/或强调以指示它是聚集的属性。例如,标签2508也可以是红色的。
强调和/或区别也可以从用户对聚集值中的某些值的选择开始。例如,用户可选择聚集列表中的值之一,并且使随后的显示出现,该显示指示哪些文件共享所选择的值。指示可按共同的外观形式出现,其中所选择的值及其相应的文件以共同的方式显示。例如,通过在值2506上点击,系统可自动改变该属性值的字体为黑体字体,并且可对文件清单2302进行相同的改变以标识其属性被选中的文件。
尽管上面的讨论着眼于与外壳浏览器中的预览一起显示的属性和元数据,但这些特征也可用在其它上下文中。涉及多个属性和/或元数据的显示的任何情况可从在此描述的特征中得益。
尽管有些种类的属性更易于聚集,因为它们具有数字(例如文件大小只是各个尺寸的合计),但其它类型的属性可能更难聚集。例如,某些属性具有文本文字作为值(例如关键字)。而且,某些个别的属性和/或元数据本身可具有多个值,称为多值属性。例如,给定文件的“关键字”属性可具有零个、一个、二个、三个或任何数量的不同关键字作为值(例如,一个文件可列出“花生”、“食物”和“糖果”作为与该文件相关的关键字)。这多个值也可按对于每个文件有意义的方式来排序,使得第一个列出的值可以更重要(例如,主要涉及花生的文章可将“花生”列出作为第一个关键字,因为它最重要,并且可按重要性的降序排列在第二位和第三位列出“食物”和“糖果”)。当各自具有多个关键字的多个文件被选中时,聚集这些属性的过程不象只是加数字那样简单。当发生这种情况时,系统可显示值的清单,其中的值是基于它们对于各个选中文件出现的顺序以某种形式的排列顺序排列的。可采取步骤来帮助确保当所得的聚集值的列表对应于这些值在对于各个选中文件出现时的相对重要性。例如,五篇报纸文章可具有标识在这些文章中讨论的城市的关键字,并且按下列顺序排列:
文件1:奥斯汀,芝加哥,波士顿,底特律
文件2:芝加哥,底特律,波士顿
文件3:芝加哥,波士顿
文件4:底特律,芝加哥
文件5:波士顿,奥斯汀
在本例中,芝加哥在“第一位置”给出两次(例如,文件2和3讨论芝加哥非常多),而在“第二位置”给出两次(例如,文件1和4没有集中于芝加哥,但它们提到它)。所得到的这些属性的聚集可移除冗余,并且可以用表示“芝加哥”(以及其它值)对于文件的相对重要性的顺序来显示这些属性,并且还考虑特定值全部出现在文件的属性中的次数:“芝加哥,波士顿,底特律,奥斯汀”。因此在本例中,多个选中文件总体上涉及芝加哥最多,接着是波士顿,再后是底特律,最后是奥斯汀。
图26A-B示出用于确定显示对多值属性聚集值的顺序的示例过程,并且可在每当需要这一聚集显示时和/或每当多值属性被改变时运行该过程。该过程是单-可转移投票(Single Transferable Vote)算法的经修改的形式。在此过程中,当特定值首先列在文件的属性中时,它被视为第一位置的一张“选票”。如果该值列在第二位,则它是第二位置的选票,依次类推。该过程产生非冗余的顺序,它既基于每个特定值出现在选中文件中的次数,也基于由每个选中文件放置该值的相对重要性。
在步骤2601,全局整数常数C或者被自动地建立(例如计算机系统可检测系统资源的可用性并调整该常数以避免使系统受到阻碍),或者被手动建立(例如,可给予用户取决于他们在多值属性的聚集时想要的详细程度来设置C为他们所希望的高或低值的选项)。这个常数表示执行该过程的位置或排序的数量,例如C可以是十(10)。较高的常数C将允许在排序时有较大的粒度,但将需要较大的处理能力和更长的时间。这个值可根据用户偏好、系统设置、可用资源、系统负载等来动态建立。
在步骤2602,对选中文件中存在的每个值开始循环。在步骤2603,对投票中的前C个位置执行嵌套循环。在步骤2604,对于每个位置,系统对于该位置接收到的当前值的投票数进行计数。这两个循环的导致系统对于每个值确定它在前C个位置的每一位置上接收到多少“投票”。然后,在步骤2605,开始另一个循环以处理C个位置的每一个,从最高位置(第一位置)开始并继续前进到第C个位置。
在步骤2606,进行检查以确定对于正在考虑的位置,是否有任何单一值接收到最多的投票。在步骤2607,如果一个值接收到该位置的最多投票,则该值被判给该位置,并且从投票制表过程中的其余计算中移去该值。因此在上例中,芝加哥接受到第一位置的最多投票(两张投票)。
如果在步骤2606,没有单一值具有该位置的最多投票,那么对于当前位置有一个平分(2个或多个值具有该位置的相同数量的投票,或者全部值在该位置有零张投票),并且该过程移到步骤2608,其中进行检查以确定正在检查的当前位置是否是要检查的最后一个位置(第C个位置)。如果否,则该过程移动到步骤2609。在步骤2609,系统向前一个位置“取数”(peek),以标识当前平分的值在下一个位置接收到的投票数。在步骤2610,如果平分值之一对下一个位置具有最多投票,则在步骤2611将当前位置给该值,并且将其它平分值持有的当前位置的投票移动或转移给下一个位置。换言之,在步骤2611的“输者”将它们在当前位置的投票加到它们在下一位置的总数上,使得对于在当前考虑的位置中接收到的投票但未判得该位置的每个值,它在计算下一轮的获胜者时,在当前一轮的投票被转入并加到它在下一轮的投票。
如果在步骤2610,没有一个平分值具有下一个位置的最多投票,则在步骤2613,所有平分值对于当前位置按字母顺序排序(并且接下来的若干位置也是如此,直到所有平分值都被给予一个位置为止),并且该过程返回到步骤2605。同样,如果在步骤2608,该过程在发生平分时恰巧正在检查最后一个位置(位置C),则该过程也移动到步骤2613以按字母顺序对平分值排序,并且继续到步骤2605。
从步骤2605,如果最后一个位置(第C个位置)已经被处理,则该过程移动到步骤2614,其中剩余的未排序值的所有剩余投票都作为第C个位置的投票来对待,并且按照哪一个在第C个位置具有最多投票连同使用字母顺序打破的平分来对剩余值排序。
图26A-B所示的算法可在存储器中保持一张合计表,该表将各种投票计数和值制表。该表是有利的,因为系统可以随着过程的运行逐渐将表加载到操作RAM中,从RAM中删除不再需要的部分,并因此减少运行该过程所需要的运行时存储器的总量。
在某些情况中,各种多属性值可经历一个归一化过程。归一化过程可删除文件的多属性字段中值的冗余出现。例如,文件可具有关键字(狗,猫,狗),并且归一化过程可保持这些值的第一次出现,并且移除同一值的后续出现(例如,得到“狗,猫”)。未归一化的数据可存储在系统的存储器中,并且归一化的版本可覆盖该数据,或者归一化数据可简单地独立存储在存储器中。在某些情况中,归一化可在用户修改多值属性时发生。
在某些情况中,用户可能希望通过与聚集的显示的交互来编辑多值属性。当发生这种情况时,系统可响应于对聚集的多值属性显示所做的改变来修改每个文件的多值属性。例如,在聚集的显示的末尾添加一个新的属性可简单地使该新的属性被附加到每个文件的多值属性上。如果在聚集的多值属性显示的开始处插入一个新属性,或者任何其它的插入,则可发生相同的事情。某些改变,诸如在聚集的属性显示内重新排序属性,可引起对每个文件的多值属性的相应的重新排序。
多值属性还可具有独特的方法来编辑数据。例如,用于这样的属性的域可出现在列表中,与图27中所示的相似。域2701可以是活动的文本编辑框,用户可在其中打字以输入数据,并且该域可具有多个值2702,这些值可在该域中由诸如分号等字符来描述。值2702可展现原子行为,或者标记(token)行为,使得整个值可作为单个选择来选择。因而,在某些情况中,当在域2701中放置插入点来编辑数据时,原子值2702可作为单个单元来工作,这与多个字符相反(例如“NYC”,与“N”“Y”“C”相反),并且甚至可能禁止将插入点放入原子值内,使得在原子值内放置插入点的尝试(例如通过在其中点击鼠标)会导致插入点被放置在原子值之前或之后。按下箭头键以在原子值周围导航也会在单次按键中从该值的一侧移动另一侧。而且,当选择区是有可能的时候,这样的区域可能被禁止只选择原子值的一部分,使得选择该值的预定部分(例如一半)时导致整个值被选中。悬停在原子值上可使该值进入指示它是原子值的悬停状态。例如,悬停状态可包括框或加亮,或者围绕整个原子值的其它视觉区别或强调。对于原子值,也可通过拖放操作来重新排列这些值。
标记行为不限于一次性简单地选择整个词。该词可由替换的用户界面元素来代替。例如,时间可由时钟的图像来代替;日期可由日历图像来代替。原子值可展现图标行为,使得点击(或右键点击)它们会引起其它等级的交互性,诸如带出命令菜单、选项列表、其它弹出框等等。可以将值拖到其它文件和/或属性上,并且这些值可加到其它文件和/或属性上。
在域列表的末尾,可以有提示串2703,它提醒用户该域包含什么数据。在有些情况中,提示串2703只在域2701处在编辑状态中时,诸如当给予它键盘焦点用于输入数据时才出现,并且提示串2703不作为多值域中的实际值来对待(例如,不是作为域内的值保存到存储器,而是作为用户界面的一部分生成的)。
可使用前述的任何类型在视觉上区别和/或强调提示串2703(例如,它在围绕字母的区域中具有某种颜色的加亮),并且可展现某些类型的默认行为。例如,只要域2701处在编辑状态中并且插入点在值串的末尾,提示串2703可自动地出现。一旦用户开始打字以在插入点处插入新值(例如,通过开始在文本框中打字),并且加上新的字符,则提示串2703可自动消失。如果用户完成或放弃输入新值,则提示串会自动重新出现。
在编辑状态,域也可显示下拉菜单2704,它为用户提供添加到多值域2701的可能值的列表,并且用户可以从菜单中选择一个输入。下拉菜单2704可包括自动建议功能,这可以按照图28中所示的过程来实现。首先,该过程可在步骤2801中开始,收集已经用于给定属性和/或由给定用户使用全部值。在步骤2802,菜单2704可以省略已经存在于选中文件的多值属性中的值,因为用户不大可能想要添加重复。在步骤2803,该列表可按普及性、按字母顺序或按任何其它希望的方法来分类。然后在步骤2804,可用在自动建议功能显示该菜单。如果列出值中的某一些已经对部分但非全部选中文件存在,则这些值可被给予不同的外观(例如,加亮、着色、图案,字体等,如上所述)来指示该事实。在任何选中文件中未使用的值也可被给予不同的外观来指示该事实。
域也可具有自动完成特征,如图29所示。通过自动完成特征,当用户开始键入新值来添加到多值属性(诸如在图29例子中通过键入“D”)时,系统可自动试图用预期值完成该输入。自动完成特征可使用图30中所示的过程来完成。在步骤3001,预期值可通过首先取用于给定属性的所有值来选择,并且在步骤3002,过滤掉已经应用于选中文件的值。进一步的过滤可在步骤3003进行,以标识以已经由用户输入的字母开始的值,并且选择以用户已经键入的字母开始的第一个值(按字母顺序)。在步骤3004,剩余的可能项可按普及性、按字母顺序或按任何其它希望的方法来分类,并且在步骤3004,显示剩余列表。列表中第一个输入项可默认被选中,并且可被加亮且剩余的字符可在用户输入数据之后自动放在域内,如果需要可加亮。
上述自动建议和自动完成特征也可包括其它类型的过滤步骤。例如,过滤器可选择由用户选择和/或输入的最新近的值;或者基于所创建的属性清单的上下文来过滤可能值。例如,如果选中文件被选择用于项目视图的一部分的显示(例如,显示与给定项目相关的文件),则系统可自动确定某些可能值有更多(或更少)可能在该项目中使用,并且可相应地过滤该列表。
当用户正在域中输入数据时,可进行检查以验证该输入。例如,某些域可被预定为只具有可能值的指定的范围或者列表(例如星期几),并且如果用户试图在多属性域中输入无效输入,则系统可简单地拒绝该输入,向用户提供指示该输入项为无效的消息。
本发明的替换实施例和实现在本领域的技术人员仔细阅读了本说明书包括附图之后将变得显而易见。例如,在所述过程中的各步骤可按所愿来重新排列、修改和/或删除,以实现在此所述功能的经选择的子集。另外,在上文中,对在“本发明”的一个或多个“方面”或“实施例”中存在的某些特征进行参考只说明可有利地单独或与结合其它概念使用的各种概念,并且不应当认为隐含着只在此公开了一个发明概念或者在所附权利要求书中要求全部所述特征的意思。相反,所附的每一项权利要求代表它自己的不同发明,并且不应当视为具有超过它们所述的任何限制。