本申请是一个实用程序的专利申请,其根据35 United States Code§119(e),要求于2004年2月18号所提交的号码为60/545,412的美国临时专利申请的权益,本申请还与2003年6月16号所提交的号码为10/463,318发明名称为“Method and System for Manipulating Page Control Content”、2003年6月16号提交的号码为10/463,779发明名称为“Method and System for Customizing andPersonalizing Page Control Content”、2003年6月30号提交的号码为10/463,835发明名称为“Method and System for Providing Page Control Content”的共同未决美国专利申请相关。
详细说明
现在,将在下文中参照附图更充分地对本发明进行描述,所述附图组成了本文的一部分,并通过示例给出了实施本发明的具体的示例性的具体实施例。然而,本发明可以以多种不同形式被具体化,而不应被认为限于在此所提出的具体实施例;相反地,提供这些具体实施例是为了彻底全面地进行公开,并充分地向本领域技术人员表达本发明的范围。此外,本发明可以被具体化为方法或装置。因此,本发明可以采用全为硬件、全为软件或软件以及硬件的组合的具体实施例的形式。因此,不要以限制性的感觉来理解下列详细说明。
说明性的操作环境
参照图1,实现本发明的一个示例性的系统包括一个计算装置,诸如计算装置100。计算装置100,可以被配置为一个根据开放移动联盟(OMA)原则提供客户设置(client provisioning)的客户机、服务器、移动装置、或任一其他计算装置。在一种非常基础的配置中,计算装置100通常包括至少一个处理单元102以及系统存储器104。根据计算装置的准确结构以及类型,系统存储器104可以是易失性的(诸如RAM)、非易失性的(诸如ROM,闪速存储器,等等)、或两者的某种组合。系统存储器104通常包括一个操作系统105,一个或多个应用程序106,还可以包括程序数据107。在一个实施例中,应用程序106包括一个工具窗格应用程序120,用于实现本发明的所述功能。在图1中,用虚线108内的那些组成部件举例说明了该基本配置。
计算装置100还可以有其他特征或功能。例如,计算装置100还可以包括其他数据存储器(可移动和/或不可移动的),例如象磁盘、光盘、或磁带这类的数据存储器。在图1中,用可移动存储器109和不可移动存储器110举例说明了这种辅助存储器。计算机存储介质,可以包括以任一方法或技术所实施的用于诸如计算机可读指令、数据结构、程序模块或其他数据的信息存储的易失和非易失、可移动和不可移动的介质。系统存储器104、可移动存储器109以及不可移动存储器110,是计算机存储介质的全部例子。计算机存储介质包括,而是不局限于,RAM、ROM、EEPROM、闪速存储器或其他存储技术、CDROM、数字视频光盘(DVD)或其他光存储器、磁带盒、磁带、磁盘存储器或其他磁存储器、或任一其他可用于存储想要的信息并可以被计算装置100访问的介质。任一这样的计算机存储介质,都可以是装置100的一部分。计算装置100还可以具有输入装置112,诸如键盘、鼠标、笔、声音输入装置、接触式输入设备、等等。还可以包括诸如显示器、扬声器、打印机等这样的输出装置114。
计算装置100还包括通信连接116,其允许所述装置与其他计算装置118进行通信,诸如在网络上。通信连接116是通信介质的一个例子。通信介质,通常可以通过计算机可读指令、数据结构、程序模块、或其他在诸如载波或其他传送机构中的已调数据信号中的数据而被具体化,并包括任一信息传送介质。所述术语“已调数据信号”,指的是具有一个或多个特征的信号,其中按照在所述信号中编码信息的方式来设置或改变其特征。举例来说,而不是限制,通信介质包括诸如有线网络或直接用线的连接(direct-wired connection)这样的有线介质,以及诸如声波(acoustic)、RF(射频)、红外及其他无线介质这样的无线介质。如在此使用的术语计算机可读介质,包括存储介质以及通信介质两种。
说明性的工具窗格具体实施例
一种根据本发明的工具窗格,通常用来提供用于更改包括所述工具窗格的标记文件(例如,web部件页面web部件)的组成部件的函数。在一个实施例中,用于调整所述web部件的函数,以包括在工具窗格内的工具部件的形式被提供。所述工具部件可以用来在所述页面上设置属性,执行命令,跟随向导,及在其他方面操作web部件。工具部件可以随着工具窗格在各种可用模式间的移动而被改变。下面,参照图2更加详细地描述工具窗格、工具部件、web部件页面、以及web部件的关系。在另外的具体实施例中,工具部件可由用户或管理人进行定制,以便可以添加先前没有包括在工具窗格内的其他功能,可以选择其他的工具部件,以及可以限制或调整已有工具部件。
图2根据本发明示出了一个示例性的简图,用于关于web部件以及web部件页面的工具窗格的前后关系;两个网页包括:一个第一网页210,用于一个不包括工具窗格的模板(form)212;以及一个包括工具窗格的第二网页220。
如所示,网页210的体系包括模板212,其还包括其他的组成部件。所述组成部件可以包括一个或多个web部件区214以及一个或多个web部件222。模板212对应于一个web部件页面创建模板,其提供了在web部件页面的总体布局的样板之间的选择。
所述体系被换成了包括工具窗格236的网页220。网页210的体系还包括一个模板222,不过插入了一个表格224,其包括带有两个单元格(TD)228、234的一行(TR)226,以便模板222的内容通过表格224而被包起来。如包括一个或多个web部件区230以及一个或多个web部件232的组成部件所示出的那样,模板222的内容,被插入左侧单元格228中。如工具窗格236以及一个或多个工具部件238所示出的那样,工具窗格的内容被插入到右侧单元格234中。尽管在当前的具体实施例中包括了一个工具窗格,但在另外的具体实施例中,可以在网页中包括一个以上的工具窗格。可以按照用户或开发者的选择,为了包括其他工具窗格而包括其他的单元格。此外,在一个实施例中,自动地利用与驻留在托管网页(server hosting web page)220的服务器中的所述工具窗格相关的代码生成表格224,以包住表格222的所述内容。另外,可以已经有了一个用于网页220的表格224(例如先前在网页220内所示出的工具窗格)。当表格224已经存在时,表格224可以被重新用来例示当前工具窗格而不是用来生成一个新表。
尽管如在图2的例子中的左侧所提供的那样示出了工具窗格236,但网页的创始人可以指定工具窗格将要出现的位置。此外,可以包括这样的功能,以按照网页创始人的意愿改变所述工具窗格的宽度或其他外观属性。在另一个实施例中,代码包括在托管网页220的所述服务器中,其允许终端用户也能调整工具窗格的宽度或其他外观属性而不把调整能力限制在网页创始人身上。
图3根据本发明示出了一个示例性的网页,其包括一个图库模式的工具窗格。为了清楚和理解起见,各网页所共有的网页300的组成部件(例如下拉菜单标题,等等),没有用参考标号标记。就本发明而论,网页300包括web部件区302、304、306、以及工具窗格320。Web部件区302、304、306还可以包括许多web部件(例如308)。在此例子中,工具窗格320还包括相应于处于图库模式的所述工具窗格的工具部件322、328、以及330。
在所示出的例子中,web部件区302、304、306分别对应于一个标题(header)、一个列(column)1、以及一个列(column)2。然而,如滚动条312以及314所指示的那样,可以在网页300中包括许多web部件区,而不管其在屏幕上是否可见。此外,可以以任一格式(例如,列、块、行、等)和任意顺序在网页300上布置web部件区302、304、306。
插入web部件区302、304、306中的web部件(例如308),还可以按任意顺序和任意格式来布置。工具窗格320,提供了用户界面,用于把所述web部件插入web部件区中。当工具窗格320处于图库模式时,可以向用户提供大量的工具部件(例如,322),用来更改包括在网页300内的所述web部件。
一个可以包括在处于图库模式的工具窗格中的示例性的工具部件,是浏览(browse)、搜索(search)、以及输入(import)工具部件,诸如工具窗格320中的工具部件322。为在网页300内包括不同的web部件,工具部件322允许用户浏览或搜索不同的web部件的程序库(例如324),并接着把那些web部件输入到所述页面中。工具部件322的内容,可以根据用户是否已经选择了浏览、搜索、或输入一个想要的web部件(例如308)而改变。
另一可以包括在处于图库模式的工具窗格中的示例性的工具部件,是web部件清单(web part list)工具部件,诸如工具窗格320中的工具部件330。工具部件330列出了web部件(例如308),其包括在网页300的所述web部件区(例如302)中。每个清单(例如,332),都可以包括一个与所列出的web部件有关的图标或其他标识符。
仍然是另一可以包括在处于图库模式的工具窗格中的示例性的工具部件,是一个添加工具部件,诸如工具窗格320中的工具部件328。工具部件328,允许用户把利用工具部件320从程序库中所选出的web部件添加到一个已选web部件区(例如302)中。工具部件328还可以用来把一个包括在另一web部件区(例如304)内的web部件移动到已选web部件区(例如,302)。
在一个实施例中,在工具窗格320中所示出的工具部件,取决于具体web部件的开发者所选的工具部件。例如,所述开发者可以通过不选择与所述web部件相关的任一具体工具部件,而选择一个工具部件的缺省集合。
在图3中所示出的图库模式,在相关的申请中得到了更加详细的描述,该申请于2003年6月30号提交,号码为10/463,825,发明名称为“Method andSystem for Providing Page Control Content”,并且其被全部包括于此。
图4示出了一个根据本发明的处于属性模式的示例性的工具窗格。工具窗格400包括工具部件402以及410,其是在所述属性模式时可以利用工具窗格400调整的属性的范例。
工具部件402被指给具体web部件的内容(content)(例如events),并进一步包括段404、406、以及408,用于提供与所选web部件的内容相关的具体功能。例如,在段404中,向用户提供一个所述web部件的内容类型(type ofcontent)的选择。所述内容类型可以包括html内容,文字处理软件内容,或其他类型的内容。
在另一个实施例中,段404、406、以及408被分成独立的工具部件,而不是被归入单个工具部件402中。如果工具窗格400被定制了,则由于所述工具部件已被分开,这些属性调整中的每一个都可以被删除或更改。下面,根据图5-7对工具窗格的定制进行更加详细的讨论。
如滚动条412所指示的,工具窗格400并不局限于示出的和描述的工具部件。还可以包括其他更改所述web部件的其他方面的工具部件。此外,对所述web部件的属性的调整,可以被分成一个以上的工具窗格。例如,所述属性模式可以包括用于调整已选web部件的设置的工具窗格,而另一工具窗格用于调整已选web部件的布局。
在图4中所示出的图库模式,在相关的申请中得到了更加详细的描述,该申请于2003年6月16号提交,号码为10/463,318,发明名称为“Method andSystem for Manipulating Page Control Content”,并且其被全部包括于此。
图5示出了一个根据本发明的示例性的部分定制的工具窗格。工具窗格500类似于图4所示出的工具窗格400,并包括类似于图4中所示出的工具部件402的工具部件502。然而,工具窗格500还包括定制的工具部件510,用于在插入相关的事件(event)web部件内的年历(year calendar),并且甚至允许用户选择哪一年。
随着所述事件web部件的开发者对定制的工具部件510的创作以及把其存于所述服务器上,在工具窗格500中生成定制的工具部件510。因此,当例示了与所述事件web部件有关的工具窗格时,与由所述开发者做出的定制的工具部件510的关联将被看到,并且定制的工具部件510被插入工具窗格500中。
应该意识到,开发者可以用各种类型的代码(例如,XML,HTML,等等)编写用于包括在工具窗格500内的定制的工具部件510。
如滚动条512所指示的,工具窗格500并不局限于示出的和描述的工具部件。还可以包括其他更改所述web部件的其他方面的工具部件。
图6示出了一个根据本发明的示例性的定制的工具窗格。定制的工具窗格600包括定制的工具部件602以及610,而不包括任何标准或缺省的工具部件。
在此例子中,定制的工具窗格被指给了用于含有XML的web部件的XML工具。定制的工具部件602,被用来搜索XML,并进一步包括段604、606、以及608,用于提供与所述搜索相关的具体功能。例如,在段604中,向所述用户提供了一个输入用于搜索的标识名的区域。也许,所述web部件会对其视域进行调整,以包含根据所述搜索而发现的第一标签,从而根据在定制工具窗格600内输入的选择,动态地更新所述web部件。
在该例子中还提供了定制的工具部件610,其允许了在与所述XML有关的注解中的改变(例如,添加注解612,以及从窗口614中删除注解)。在一个实施例中,工具部件610与和工具窗格602相同的web部件有关。在另一个实施例中,工具部件610除了与与工具部件602相关的web部件相关外,还与一个不同web部件有关。
随着所述事件web部件的开发者对定制的工具部件602以及610的创作并把它们存于所述服务器上,生成定制的工具窗格600。然后所述开发者选择只使这些工具部件与所创作的web部件相关。因此,当为了所创作的web部件例示了所述工具窗格时,在定制的工具窗格600内所例示的是定制的工具部件602以及610。
应该意识到,可以用各种类型的代码(例如,XML,HTML,等等)编写以及解析用于包括在定制的工具窗格600内的定制的工具部件。
如滚动条616所指示的,定制的工具窗格600并不局限于示出的和描述的工具部件。还可以包括其他更改所述web部件的其他方面的工具部件。
在其他的具体实施例中,定制的工具窗格600,还可根据定制的工具窗格600自己的函数以及外观方面,由相关的web部件作者进行定制。例如,所述相关的web部件作者可以改变工具窗格的名称,以致其在定制的工具窗格600的底部出现。所述作者还可以根据其偏好选择删去定制的工具窗格600上的关闭(close)按钮或展开(expansion)按钮。提供定制的工具窗格600,以便作者不仅可以定制定制的工具窗格600的内容,还可以定制整个外观以及用户体验(user experience)。
在相关的申请中对定制进行了更加详细的描述,该申请于2003年6月16号提交,号码为10/463,779,发明名称为“Method and System for Customizing andPersonalizing Page Control Content”,并且其被全部包括于此。
图7示出了一个根据本发明用于例示以及使用工具窗格的处理逻辑流程图。处理700起始于方块702,其中用于所述工具窗格的代码包括在用于更改以及显示web部件页面的代码内。在方块704继续进行处理。
在方块704,所述工具窗格被例示于所述web部件页面内。在一个实施例中,所述工具窗格被直接包括在所述web部件页面的代码内,而不是作为象先前的设计(参见图2)那样的独立代码而被包括。如上所述,工具窗格的位置以及尺寸,可以按照用户的选择而被调整或改变。在一个实施例中,为了例示所述工具窗格,设置一个字段值,以便发送给托管(hosting)所述web部件页面的服务器。所述字段值通知服务器,将要在所述web部件页面中例示一个工具窗格。所述字段值还通知所述服务器所述具体工具窗格的模式,并且根据所述模式(例如,假设在属性模式),提供一个在所述web部件页面上的web部件的唯一的ID,以进一步识别所述工具窗格,以进行例示。然后,所述服务器寻找要与该工具窗格一起显示的所述工具部件,并且在所例示的工具窗格内包括该工具部件。在另一个实施例中,为了其设置的属性和值,对所述web部件页面内的一个或多个web部件求值,并且依照其当前设置在所例示的工具窗格内显示所述属性和值。例如,web部件可以具有一个相关的高度属性。如果是这样的话,当例示时,所述高度属性被包含在工具窗格内。当例示了所述工具窗格时,在方块706继续处理。
在方块706,在所述工具窗格内提供用于用户选择的模式的工具部件。例如,所述用户可以已经选择了改变与所选择的web部件有关的属性。然后,所述工具窗格提供与所述属性模式有关的工具部件,其允许用户改变所选择的属性。做为选择,用户可以已经选择了把一个web部件添加到所述web部件页面的一个web部件区。如果所述用户已经选择了添加一个web部件,那么用于图库模式的所述工具部件被插入到所述工具窗格内。一旦提供了用于所选模式的工具部件,就在判定方块708继续处理。
在判定方块708,在例示所述工具窗格的同时,判定用户是否已经决定了改变模式。例如,所述工具窗格可以处于所述属性模式,并且用户选择了改变成所述图库模式或定制的模式。当用户选择改变所述模式时,处理回到方块706,其中提供了用于重新选择的模式的工具部件。做为选择,如果所述用户此时没有选择在模式方面的改变,则处理转到判定方块710。
在判定方块710,用户可以在所述工具窗格内选择一种改变。例如,在所述工具窗格处于属性模式时,用户可以在所述工具窗格内改变一个属性。在另一例子中,通过在所述工具窗格内进行选择,用户可以已经选择了把一个web部件添加到所述工具部件区。在一个实施例中,当在所述工具窗格内改变成web部件的一种属性时,包括该改变的web部件属性的所述清单,被重新提交给托管所述web部件页面的服务器。代码驻留在所述服务器上,接着确定什么已经改变了。当没有进行改变时,处理前进到判定方块714。然而,当一个或多个改变发生在影响所述web部件页面的工具窗格内时,处理就转到方块712。
在方块712,所述web部件页面被动态地更新,以反映用户在所述工具窗格内选择的改变。例如,如果用户在工具窗格内选择了添加一个web部件到一个web部件区,则所述web部件就会随着用户所需的更进一步的交互而出现在所述web部件区中。用户不必刷新屏幕,在页面之间进行改变,或影响其他处理的改变,因为所述改变在web部件页面内被动态地反映了。在一个实施例中,用户选择一个“Apply”按钮或“OK”按钮来确认所选的更改。由于工具部件提供的函数动态地影响了所述web部件页面,所以使用户能够在其正在进行时看到所述改变。在一个实施例中,托管所述web部件页面的服务器,根据收到的包括所述改变的属性清单,进行所述改变。一旦用户在所述工具窗格内所影响的改变,被动态地反映在所述web部件页面内,则在判定方块714继续处理。
在判定方块714,判定改变是否在所述web部件页面内被影响了,这应该反映在所述工具窗格内。例如,用户可以把一个新的web部件拖放到web部件页面内的一个web部件区中,并且所述工具窗格内的某一工具部件应该反映该种改变。当没有进行改变时,处理前进到判定方块718。然而,当一个或多个改变发生在影响所述工具窗格的web部件页面内时,处理就转到方块716。
在方块716,所述工具窗格被动态地更新,以反映在所述web部件页面内进行的改变。例如,在所述工具窗格的一种或多种模式中,所述工具窗格可以包括一个相应于web部件清单的工具部件(例如,图3中的工具部件330)。当一个新的web部件被拖放到所述web部件页面内时,包括在所述工具窗格内的web部件的清单就被动态地更新。一旦由于所述web部件页面内的改变,而动态地更新了所述工具窗格,就在判定方块718继续处理。
在判定方块718,判定所述工具窗格是否已经关闭。通过关闭所述工具窗格,或关闭所述web部件页面本身,所述工具窗格可以通过用户的动作而关闭。做为选择,所述web部件页面可能会失败,或其他处理错误可能会导致所述工具窗格关闭。如果所述工具窗格没有被用户或其他处理动作关闭,则处理回到判定方块708,处理700在此继续进行。否则,如果所述工具窗格被关闭了,则处理继续进行到方块720,处理700在此结束。
其他处理交互,可以相对于所述web部件页面和所述工具窗格之前、之后、以及在整个处理700中发生,而不脱离本发明的精神和范围。
以上说明、例子、以及数据,提供了一个对制造以及使用本发明的构成的完整的说明。由于可以在不脱离本发明的精神和范围的情况下,做出本发明的许多具体实施例,所以本发明属于在下面所附加的权利要求。