CN101421685B - 通用用户界面命令体系结构 - Google Patents

通用用户界面命令体系结构 Download PDF

Info

Publication number
CN101421685B
CN101421685B CN2004800426916A CN200480042691A CN101421685B CN 101421685 B CN101421685 B CN 101421685B CN 2004800426916 A CN2004800426916 A CN 2004800426916A CN 200480042691 A CN200480042691 A CN 200480042691A CN 101421685 B CN101421685 B CN 101421685B
Authority
CN
China
Prior art keywords
order
agent
main frame
model
supplier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2004800426916A
Other languages
English (en)
Other versions
CN101421685A (zh
Inventor
Z·B·奥丁斯-卢卡斯
M·M·米勒
P·A·莫里诺三世
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101421685A publication Critical patent/CN101421685A/zh
Application granted granted Critical
Publication of CN101421685B publication Critical patent/CN101421685B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

一种通用用户界面命令体系结构的某些方面允许应用程序主存命令以供在计算设备上呈现。命令可由与应用程序相同的设计者或作者来编写,或者可由其它方(例如,由第三方开发者)来编写。该通用UI命令体系结构的其它方面描述了可用于允许应用程序主存命令的应用程序编程接口(API)。该通用UI命令体系结构的其它方面描述了应用程序可用于激活注册的命令的激活机制。

Description

通用用户界面命令体系结构
技术领域
本发明涉及计算机和用户界面,尤其涉及通用用户界面命令体系结构。
发明背景
当计算机技术在进步和发展时,计算机呈现给用户的用户界面(UI)也在进步和发展。图形用户界面(GUI)已成为了常见物,从而产生了用户通常易于交互的用户界面。可对用户界面使用允许以不同的方式向用户呈现命令选项的许多不同的呈现模型,诸如菜单、工具条、按钮、链接等等。
当设计这些GUI时遇到的一个问题是可用于GUI的不同呈现模型。通常,命令的提供者必须为要包括该命令的GUI支持的每一不同的呈现模型编写单独的描述和接口。这导致命令提供者一方的额外和重复的工作。在提供者编写命令之后开发新呈现模型的情况下会导致其它问题-因为编写命令的提供者不知道该新的呈现模型,因此他或她通常无法编写支持该新呈现模型的命令。
由此,具有一种实现减少这些问题的命令的方法将是有益的。
发明概述
此处描述了一种通用用户界面命令体系结构。
根据某些方面,描述了一种允许应用程序主存用于在计算设备上呈现的命令的通用体系结构。该体系结构包括命令主机和命令代理程序。命令主机提供可呈现多个用户界面命令的工作空间。命令代理程序标识对命令的多个支持的模式,并且进一步与命令主机协商以确定多个所支持的模式中的哪一个可用于该命令。
根据某些方面,描述了一种可用于允许应用程序主存命令的应用程序编程接口(API)。该API包括例如展示模式枚举的命令代理程序组件。响应于诸如命令主机等请求者调用模式枚举,命令代理程序组件对与组件相关联的特定命令返回由该组件支持的多个不同呈现模型的列表。
根据某些方面,讨论了一种描述注册命令以供应用程序激活的方法的激活机制。该激活机制通过标识包括一个或多个自变量的对象定义来创建命令代理程序。对于作为非文字自变量的一个或多个自变量中的每一个,递归地标识基于该自变量的一个或多个附加对象定义。然后创建命令代理程序作为由所标识的对象定义所定义的对象。
附图简述
全文中使用相同的标号来引用相同的组件和/或特征。
图1示出了其中使用通用用户界面命令体系结构的一个示例计算设备。
图2和3各自更详细地示出了一个示例性通用UI命令体系结构。
图4是示出用于使用通用UI命令体系结构来呈现命令的示例过程的流程图。
图5是示出用于创建命令代理程序的示例组件的框图。
图6示出了用于对象定义的示例数据结构。
图7是示出用于创建命令代理程序的示例过程的流程图。
图8示出了可用于实现此处所描述的技术的一个通用计算机环境。
较佳实施例的详细描述
此处描述了一种通用用户界面命令。根据某些方面,描述了一种允许应用程序主存命令以在计算设备上呈现的通用体系结构。该命令可由与应用程序相同的设计者或作者编写,或者可由其它方(例如,由第三方开发者)编写。另外,描述了一种可用于允许应用程序主存命令的应用程序编程接口(API)。此外,讨论了一种描述可注册命令以供应用程序激活的方法的激活机制。
通用UI命令体系结构
图1示出了其中使用通用用户界面命令体系结构的一个示例计算设备102。计算设备102包括均支持通用UI命令体系结构106的多个(x个)应用程序104。UI命令体系结构106允许应用程序104以通用的方式主存不同的命令,如将在下文中更详细讨论的。命令可由与创作应用程序104相同的一方(或多方)创作,或者可由不同方创作。
计算设备102表示具有呈现用户界面的处理器或控制器的各种不同的设备中的任一种。这些设备的示例包括台式计算机、服务器计算机、笔记本计算机、手持式或便携式计算机、娱乐设备、游戏控制台、个人数字助理(PDA)、蜂窝或移动电话等等。应用程序104表示各种应用程序中的任一种。这些应用程序的示例包括操作系统、休闲程序、实用程序、教育程序、生产程序、财务程序等等。
图2更详细示出了一个示例通用UI命令体系结构106。命令体系结构106包括命令主机130和多个(y个)命令代理程序132。可在命令体系结构106中包括任意数量的命令代理程序132。另外,尽管图2中示出了多个命令代理程序132,但作为替代可在命令体系结构106中仅包括单个命令代理程序。
命令体系结构106被称为UI命令体系结构是因为体系结构106是为用于UI命令而设计的,UI命令是经由UI呈现以供用户选择的命令。命令体系结构106允许创作或编写命令以经由用户界面呈现给用户并由用户选择。命令体系结构106可支持任何类型的命令,诸如访问资源(例如,诸如文件、存储设备、输入设备、输出设备等)的命令、向用户呈现内容的命令(例如,回放音频文件或音频/视频文件、打印出数据的硬拷贝等)、允许用户导航到特定位置(例如,文件、网络位置、控制面板等)的命令等等。
命令主机130是提供可放置命令以供呈现的外壳或工作空间的任何应用程序(诸如,图1的应用程序104)的至少一部分。命令主机可提供单个这样的外壳或工作空间,并且多个不同的命令主机可同时提供不同的外壳或工作空间。这些工作空间的示例包括窗口或显示器的其它部分、可听列表等等。
命令主机130支持用于呈现命令的一种或多种模式,也称为一种或多种呈现模型。这些不同的模式或呈现模型指的是可经由用户界面向用户呈现命令的不同方式。模式或呈现模型的示例包括菜单、菜单列表、上下文菜单、任务栏、按钮、链接(例如,超链接)等等。这些不同的模式或呈现模型通常包括诸如在GUI中可视地显示命令,尽管也可使用其它呈现方式(例如,可听地呈现命令)。
每一命令代理程序132是位于命令主机130和该命令的最终处理程序(称为命令提供者,如下文更详细讨论的)之间的中介。每一命令代理程序132与一特定命令相关联。命令代理程序132枚举该命令所支持的模式,并就对该命令使用哪一模式与命令主机130进行协商。如果命令代理程序132支持一特定模式,则命令代理程序132可创建与该模式相关联的特定命令提供者并将其给予命令主机130。该协商是经由接口134执行的。在某些实施例中,每一命令代理程序132展示一应用程序编程接口(API)。该API可由命令主机130在协商过程中调用。这一API的一个示例在下文中更详细地讨论。
UI命令体系结构106被称为是通用的是因为该协商过程以及单个命令代理程序能为其相关联的命令支持的模式的多样性。可使用同一命令代理程序来允许以各种不同的呈现模型呈现命令,且由此被视为是通用的。
命令主机130在每次命令主机的执行开始时与命令代理程序132协商。可使不同的命令代理程序132对命令主机130可访问,从而允许其相关联的命令由命令主机130通过UI来呈现。使命令代理程序132对命令主机130可访问的一种方式是通过以下更详细讨论的命令代理程序激活机制。命令主机130也可在不同的时刻,诸如只要选择有改变(例如,选择UI中的哪一(些)项)、只要命令上下文有改变(诸如UI类型的改变(例如,从可视UI变为可听UI的改变)、UI格式的改变(例如,对窗口重定大小)、UI内容的改变(例如,从作为操作系统的命令主机执行一不同的应用程序)等等)时与命令代理程序132协商。
作为这一协商的一个示例,假定应用程序可呈现同时具有菜单和按钮模式两者的用户界面。在该示例中,命令主机130可与命令代理程序132协商以确定使用这两种模式(菜单和/或按钮)中的哪一种。假定命令代理程序132与使用打印机生成所选数据的硬拷贝的打印命令相关联。还假定命令代理程序132支持按钮模式以及列表模式。命令主机130可与命令代理程序132协商,并确定主机130和代理程序132两者同时支持的唯一模式是按钮模式(代理程序132不支持菜单模式,而主机130不支持列表模式)。由此,协商将导致选择按钮模式。
应当注意,在某些实施例中,命令主机130可支持比命令代理程序132所支持的更多的模式。另外,命令主机130可具有对可将命令从一种模式转换成另一种模式的程序或其它资源的访问。继续前述示例,命令主机130可具有对将用于按钮模式中的命令的信息转换成可用于菜单模式中的命令的程序的访问。由此,在协商过程中,命令主机130可选择按钮模式,然后将所接收到的关于按钮模式中的打印命令的信息转换成菜单模式。这一过程允许例如命令代理程序132与在命令代理程序132生成之后创建的且命令代理程序132毫不知情的模式一起使用。
还应当注意,命令代理程序132可按不同的顺序来枚举其模式。在某些实施例中,命令代理程序132按照偏好的顺序(例如,命令代理程序132或命令代理程序132的作者偏爱的由命令主机130选择模式的顺序)来枚举其模式。然而,在某些实现中,命令主机130可选择忽略命令代理程序132偏爱的顺序。也可替换地使用其它排序,诸如随机顺序、字母顺序等等。
命令代理程序132也可枚举不同的命令组。这些组是对命令主机130的关于特定命令应彼此靠近的指示。通常,在某些实施例中,不要求命令主机130遵循由这些指示提供的指导,但是通常试图遵循这些指导。
在某些实施例中,命令代理程序132也可以是用于一个或多个命令代理程序的容器。例如,命令代理程序可支持作为菜单项的一种呈现模式,在该呈现模式中,可将命令作为UI中的单个菜单项来呈现。命令代理程序也可支持作为菜单列表的呈现模式,在该呈现模式中,命令代理程序是用于多个其它命令代理程序的容器,这些其它命令代理程序中的每一个以UI中的菜单项列表来显示。
图3更详细示出了一个示例通用UI命令体系结构106。命令主机130如上所述与命令代理程序132协商模式。另外,图3中示出了命令上下文140和命令提供者142。在某些实施例中,命令主机130、命令代理程序132、命令上下文140和命令提供者142的每一个在通信上彼此耦合,从而允许它们彼此通信。在某些实施例中,命令主机130、命令代理程序132、命令上下文140和命令提供者142的每一个都是一个对象,且能够调用其它对象的方法、枚举、属性等。
命令提供者142是特定命令的最终处理程序。命令提供者142控制调用命令时允许的各种动作(例如,响应于对诸如打印命令等命令的用户选择而涉及的动作)。命令提供者142通常包含只要调用特定命令时就执行的指令。命令提供者142是由命令代理程序132在完成了与命令主机130的模式协商之后实例化的对象。不同的命令提供者与命令代理程序132支持的每一模式相关联。由此,当模式协商导致特定模式时,命令代理程序132为该特定模式实例化一对象。所实例化的对象也被传递到命令主机130,从而允许命令主机130与命令提供者142交互。
应当注意,在某些情况下,命令主机130可与命令代理程序132协商多种呈现模型或模式。在这一情况下,命令代理程序132对多个呈现模型或模式中的每一个实例化多个命令提供者142中的一个,并且将每一如此实例化的命令提供者142传递到命令主机130。
在替换实施例中,命令代理程序132可与一个或多个命令提供者142组合。在这些实施例中,无需实例化单独的命令提供者142。相反,在命令主机130与命令代理程序132协商了模式之后,命令主机130可与作为该命令的最终处理程序的命令主机130而非命令提供者142交互。
命令上下文140是由命令主机130提供且可由命令代理程序132访问的上下文信息的列表。命令上下文140中包括的上下文信息可以变化。上下文信息指的是例如描述用户界面的信息、描述命令主机130的信息、描述用户界面中当前正在显示什么和/或如何显示它的信息、关于可用资源的信息等等。上下文信息的具体示例包括当前选中UI中呈现的什么项(如果有)、命令所处的区域的大小(例如,以像素表示)、UI中当前是否正呈现特定项或特征、特定资源是否在计算设备上可用、计算设备耦合到什么其它组件(例如,打印机当前是否耦合到计算设备)等等。不同的命令代理程序132能对不同的上下文信息感兴趣,且某些命令代理程序132可能对任何上下文信息都不感兴趣。当特定的命令代理程序132期望知道特定的上下文信息时,该特定命令代理程序132将与命令上下文140交互以获得该期望的上下文信息。
还应当注意,命令代理程序132支持的呈现模型可以基于命令上下文140而改变。例如,命令代理程序132可在特定组件(诸如打印机、个人音频播放器、扬声器等)耦合到计算设备的情况下支持一种特定的呈现模型,但是在该特定组件没有耦合到该计算设备的情况下不支持该特定呈现模型。作为另一示例,命令代理程序132可支持基于由命令主机130提供的工作空间的大小的不同呈现模型。
通用UI命令体系结构106便于创作命令。实现这一便利的一种方式是通过使用命令代理程序132。可经由同一命令代理程序132来访问命令的所有处理程序,而非要求作者为多个不同的呈现模型将同一命令进行多次不同的注册。另外,可对不同的模式共享公共的功能,诸如要为该命令显示的显示名称或图标,或当用户选中该命令时要采取的调用动作。这一共享例如可通过每一命令提供者142引用包含当与命令提供者142相关联的命令由用户选中时执行的指令集的同一对象来实现。或者,某些公共功能可由命令提供者132变为对命令主机130可用,而非在相关联的命令提供者142中实现或通过其来访问。
图4是示出用于使用通用UI命令体系结构106来呈现命令的示例过程180的流程图。过程180在软件中执行,尽管过程180的替换方面可以在固件、硬件或固件、硬件和/或软件的组合中执行。
最初,命令主机和命令代理程序协商一模式(动作182)。在某些实施例中,这一协商是通过命令代理程序向命令主机标识它所支持的模式,且命令主机将这些模式与命令主机所支持的模式进行比较,然后命令主机选择命令主机和命令代理程序都支持的模式之一来执行的。或者,在其它实施例中,该协商可采用其它形式。例如,命令主机可向命令代理程序标识它所支持的模式,命令代理程序将这些模式与命令代理程序所支持的模型进行比较,然后命令代理程序选择命令主机和命令代理程序都支持的模式之一。作为另一示例,命令主机可审阅它所支持的模式的列表,并对每一这样的模式向命令代理程序查询命令代理程序是否支持该模式—一旦命令主机标识了它所支持的同样也被命令代理程序所支持的模式之一,命令主机就可停止查询命令代理程序。
一旦协商了模式,命令代理程序实例化或创建与协商的模式相关联的命令提供者(动作184)。在某些实现中,命令提供者是通过命令主机调用由命令代理程序展示的GetProvider(获得提供者)方法来实例化的。GetProvider方法将在下文详细讨论。
命令主机然后基于动作184中实例化或创建的命令提供者将命令放置在用户界面中(动作186)。这一命令放置指的是在用户界面中定位命令的图标、名称和/或其它标识符。如上所述,协商模式可能不是命令主机实际用于呈现命令的模式(相反,命令主机可对协商模式使用从命令提供者获得的信息来使用不同的模式呈现命令)。
命令主机然后与命令提供者交互(动作188)。这一交互包括,例如呈现命令的用户界面以及在适当时(例如,在用户调用命令的情况下)调用命令的行为。
示例API实现
以下是实现上述通用UI命令体系结构106的一个示例API。
表I中列出了ProviderCategory(提供者类别)和ContextObjectDescription(上下文对象描述)。ContextObjectDescription用作CommandContext(命令上下文)对象持有且由主机提供的一个单独的上下文数据的名称。ProviderCategory用于确定所描述的上下文数据的易失性。易失性上下文值在改变任何主机上下文值时会离开该命令上下文。非易失性值留在上下文中。
                            表I
Figure G04842691620061016D000071
Figure G04842691620061016D000081
表II中列出了ContextObjects(上下文对象)类。在某些实施例中,在ContextObjects静态类中保存一组预定义的ContextObjectDescriptions。CommandContext也可保持不是该预定义列表的一部分的一组可扩展ContextObjectDescriptions。
                            表II
Figure G04842691620061016D000082
Figure G04842691620061016D000091
表III中列出了CommandContext。CommandContext是将ContextObjectDescriptions映射到对象值的索引器。CommandContext也具有当改变上下文时激发的事件。CommandContext类包括由图3的命令上下文140展示、且由命令主机130和/或命令代理程序132调用的属性、方法和枚举。
                          表III
Figure G04842691620061016D000092
表IV中列出了ModeDescription(模式描述)。ModeDescription是对模式和受管类型命名的串。受管类型在本示例中指的是代理程序经由CommandBroder.GetProvider方法返回命令提供者的要求。
                              表IV
Figure G04842691620061016D000102
表V中列出了StandardModes(标准模式)类。在某些实施例中,“标准”模式的列表可由命令代理程序用于实现。除这些标准模式之外,该组模式是可扩展的以包括其它模式。
                              表V
Figure G04842691620061016D000103
表VI中列出了CommandBroker(命令代理程序)类。CommandBroker类包括由命令代理程序132展示的、且可由图3的命令主机130调用的属性、方法和枚举。
                              表VI
Figure G04842691620061016D000121
表VII中列出了命令提供者接口的一个示例。这是用于图3的示例命令提供者142的接口。所列出的示例是用于支持“任务按钮”模式的命令的接口,即ITaskButtonProvider(任务按钮提供者接口)。ITaskButtonProvider包括可由命令主机访问并使用的两个串(ShortTitle(短标题)和LongTitle(长标题))。ImageSource(图像源)是当与该命令按钮提供者相关联的命令被用户选中时执行的指令集。当选中该命令时,通过命令主机调用ITaskButtonProvider.Invoke()来调用该指令集。
IProviderChanges(提供者改变接口)是命令提供者可实现来向命令主机给出改变通知的接口。ProviderChangeHandler(提供者改变处理程序)是声明从IProviderChanges内激发的ProviderChanged(提供者改变)事件的类型的受管委托。命令主机可使用ProviderChanged事件来告知何时应向命令提供者重新查询某一特定状态。
例如,如果ITaskButtonProvider的“ShortTitle”改变(例如,由于选择改变),则命令提供者可经由ProviderChanged事件通知命令主机其状态已改变。在该示例中,响应于用户通过与UI交互来改变选择,命令主机改变命令上下文内的“选中”状态,这导致命令上下文向命令提供者激发改变通知。作为该上下文改变事件的结果,命令提供者决定它希望改变其ShortTitle,因此它激发命令主机正在监听的ProviderChanged事件。命令主机经由它所具有的ProviderChangeHandler类型的方法接收ProviderChanged事件。作为该事件的结果,命令主机向命令提供者重新查询其ShortText(短文本),LongText(长文本)、IsEnabled(是否启用)等,从而获得给定其新状态时重新表示该命令的足够信息。命令主机使用该新信息来更新与该命令相关联的UI。
                               表VII
Figure G04842691620061016D000122
另外,可任选地包括实现用于编写要在此处所讨论的通用UI命令体系结构中使用的命令的标准逻辑的“助手(helper)”类。助手类在单个类中包括上述各个接口以便于使用此处所讨论的通用UI命令体系结构来创作命令。命令代理程序作者然后可从该助手类进行派生,并可覆盖其功能的任何期望的部分。表VIII列出了一个示例助手类ExplorerCommand(Explorer命令),它可例如用于不同版本的Windows
Figure G04842691620061016D000132
操作系统中的Explorer。
                          表VIII
Figure G04842691620061016D000133
Figure G04842691620061016D000141
命令代理程序激活机制
图2和3的命令代理程序132可用各种常规方式中的任一种来创建。在某些实施例中,使用一种采用激活程序的特定命令代理程序激活机制来创建命令代理程序132,如下所述。这一创建也称为实例化或构造。
图5是示出用于创建命令代理程序的示例组件的框图。图5示出了激活程序202和定义源204。定义源202包括命令代理程序定义204,它定义了如何实现特定的命令代理程序132。激活程序202访问定义源202以检索命令代理程序定义204,然后如定义204中所定义的那样创建命令代理程序132。
定义源202可以是各种不同源中的任一种。例如,定义源202可以是Windows
Figure G04842691620061016D000151
操作系统的注册表、数据库、文件(例如,以XML(可扩展标记语言)文件或某一其它格式)等等。
命令代理程序定义204也可采用各种不同的形式。在某些实施例中,命令代理程序定义204按照其构造函数形参描述了一个或多个对象。这些对象描述(此处也称为关键名)描述了要被实例化或创建以创建命令代理程序132的对象。每一对象描述可具有零个或多个构造函数形参。构造函数形参可以是文字的(例如,串、数字、XML文档、或字节数组)或非文字的(例如,另一对象描述)。在对象描述具有一个或多个非文字形参的情况下,这些非文字形参中的每一个也被递归地实例化或创建,直到实例化或创建了所有的对象。
图6示出了用于对象定义220的一个示例数据结构。一个或多个这样的对象定义共同构成了图5的命令代理程序定义204。由此,命令代理程序的示例数据结构是一个或多个对象定义200数据结构的集合。对象定义200包括程序集字段或部分222、类型字段或部分224、形参字段或部分226、以及文字定义字段或部分228。这些部分222、224、226和228中的每一个储存表示所定义的对象的不同方面的各种数据,如下所述。
程序集部分222指示可从其实例化该命令代理程序的程序集。在某些实现中,程序集部分222指示包含要实例化的命令代理程序的代码的受管程序集(dll)的“强名”(strong name)。强名指的是按照名称、版本、公钥令牌和文化唯一地标识程序集(例如,盘上)的名称。
类型部分224包括由对象定义220定义的对象的标识符。通常该标识符是字母数字串,尽管可替换地使用其它字符或符号作为标识符。不同程序集中的不同对象定义可在其各自的类型部分24中具有相同的标识符。类型部分224中的标识符结合程序集部分222中的程序集允许唯一地标识对象。
包括了形参部分226以标识由对象定义220定义的对象的形参。特定对象可能没有任何形参,在这一情况下,无需包括形参部分226(或者可以包括但为空,或者包括关于没有形参的指示)。如上所述,形参可以是文字或非文字的。对于每一非文字形参,存在定义作为该非文字形参的对象的另一对象定义220。对于每一文字形参,存在文字定义字段228中定义该文字(例如,标识特定串、特定数字、特定XML文档、或特定字节数组)的定义。如果由对象定义220定义的对象没有任何形参,则无需包括文字定义部分226(或者可以包括但为空,或者包括关于没有任何文字的指示)。
图7是示出用于创建命令代理程序的示例过程240的流程图。过程240由图5的激活程序200实现,且通常在软件中执行(尽管过程240的至少一部分可替换地在硬件、固件或硬件、固件和软件的组合中执行)。
最初,标识顶层对象定义(动作242)。然后访问所标识的对象定义(动作244)并标识所标识的对象定义的任何形参(动作246)。然后检查是否有动作246中标识的为非文字的任何形参(动作248)。如果没有这样的形参(例如,没有形参或者所有形参是文字),则过程240完成分析所标识的对象定义(动作250)。然而,如果存在为非文字的至少一个形参,则标识每一非文字形参(动作252)。这些非文字形参中的每一个是另一对象定义。过程240然后返回到动作244以分析所标识的非文字形参中的每一个。由此,过程240继续递归地分析命令代理程序定义中的每一对象定义,直到按照文字定义了所有对象定义(或者没有形参)。在按照文字定义了所有对象定义(或者没有形参)之后,通过对每一对象调用构造函数来实例化由这些对象定义,因而由命令代理程序定义的各个对象(动作254)。
如此定义的每一对象然后可通过向上返回通过定义对象工作来实例化或创建。例如,激活程序200可实例化或创建仅按照文字定义的对象(或没有形参的对象),然后使用这些对象来实例化或创建按照刚才实例化或创建的这些对象定义的对象,依此类推。当实例化了顶层对象定义时,实例化了命令代理程序。
表IX列出了名为“FooBroker”的命令代理程序的命令定义的一个示例。
                             表IX
Figure G04842691620061016D000161
Figure G04842691620061016D000171
如可从表IX的示例中看到的,顶层对象定义(或关键名)\Test用程序集部分、类型部分、形参部分和文字部分(标识为title行)来定义。这些部分中的每一个在表IX的顶层对象定义示例中为单独的一行。程序集部分指示从其实例化该命令代理程序的程序集(FooAssembly)。类型部分指示由该对象定义所定义的对象类型(FooBroker)。形参部分标识用于该对象定义的两个形参(title和bar)。title是在文字定义部分中定义的串,它是\Test对象定义的标题行,为“Hello,World!”bar形参是另一对象,它在下一对象定义中定义。
在对象的实例化期间,图5的激活程序200搜索定义源202以标识位于顶层对象定义\Test下方的另一对象定义,该对象定义也是bar对象的对象定义。该对象定义是\Test\bar关键名。
\Test\bar关键名也用程序集部分、类型部分、形参部分和标题部分(其每一个是表IX中的一行)来定义。程序集部分指示从其例示该命令代理程序的程序集(FooAssembly)。这是与顶层关键名\Test中标识的相同的命令主机。类型部分指示由该对象定义所定义的对象类型(BarObject)。形参部分标识用于该对象定义的两个形参(count和snoo)。count是在文字定义部分中定义的整数,它是\Test\bar对象定义的count行,为十六进制值“38”。snoo形参是另一对象,它在下一对象定义中定义。
在对象的实例化期间,图5的激活程序200搜索定义源202以标识位于\Test\bar对象定义下方的另一对象定义,该对象定义也是snoo对象的对象定义。该对象定义是\Test\bar\snoo关键名。
\Test\bar\snoo关键名也用程序集部分和类型部分来定义。snoo对象的对象定义没有形参,因此对象定义中不包括形参部分或文字定义部分。程序集部分指示从其例示该命令代理程序的程序集(FooAssembly)。这是与顶层关键名\Test和\Test\bar关键名中标识的相同的命令主机。类型部分指示由该对象定义所定义的对象类型(SnooObject)。
表X列出了支持此处所讨论的命令代理程序激活的一个示例API。以上讨论的每一对象定义或关键名是用表X中的IActivationDefinition(激活定义接口)接口来封装的。程序集(Assembly)字段和类型(Type)字段都是IActivationDefinition接口的属性。当存在时,每一形参和文字定义是IDefinitionElement(定义元素接口)。
                              表X
Figure G04842691620061016D000181
示例计算机环境
图8示出了通用计算机环境300,它可用于实现此处所描述的技术。计算机环境300仅为计算环境的一个示例,并非暗示对计算机和网络体系结构的使用范围或功能的局限。也不应将计算机环境300解释为对示例性计算机环境300中示出的任一组件或其组合具有任何依赖或需求。
计算机环境300包括计算机302形式的通用计算设备。计算机302可以是例如图1的计算设备102。计算机302也可以是作为多媒体演示的源的编码器设备。计算机302的组件可包括但不限于,一个或多个处理器或处理单元304、系统存储器306以及将包括处理器304的各类系统组件耦合至系统存储器306的系统总线308。
系统总线308表示若干种总线结构类型的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各类总线体系结构的处理器或局部总线。作为示例,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机302通常包括各种计算机可读介质。这类介质可以是可由计算机302访问的任一可用介质,包括易失性和非易失性介质、可移动和不可移动介质。
系统存储器306包括诸如随机存取存储器(RAM)310等易失性存储器,和/或诸如只读存储器(ROM)312等非易失性存储器形式的计算机可读介质。基本输入/输出系统(BIOS)314包括如在启动时帮助在计算机302内的元件之间传输信息的基本例程,通常储存在ROM 312中。RAM 310通常包含处理单元304立即可访问或者当前正在操作的数据和/或程序模块。
计算机302也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。作为示例,图8示出了对不可移动、非易失性磁介质(未示出)进行读写的硬盘驱动器316,对可移动、非易失性磁盘320(如,“软盘”)进行读写的磁盘驱动器318以及对可移动、非易失性光盘324,如CD-ROM、DVD-ROM或其它光介质进行读写的光盘驱动器322。硬盘驱动器316、磁盘驱动器318和光盘驱动器322的每一个通过一个或多个数据介质接口326连接到系统总线308。或者,硬盘驱动器316、磁盘驱动器318和光盘驱动器322可通过一个或多个接口(未示出)连接到系统总线308。
盘驱动器及其相关联的计算机可读介质为计算机302提供了计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。尽管示例示出了硬盘316、可移动磁盘320和可移动光盘324,然而可以理解,可储存可由计算机访问的数据的其它类型的计算机可读介质,如磁带盒或其它磁存储设备、闪存卡、CD-ROM、数字多功能盘(DVD)或其它光存储、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等,也可用于实现示例性计算系统和环境。
任意数量的程序模块可储存在硬盘316、磁盘320、光盘324、ROM 312和/或RAM 310中,作为示例,包括操作系统326、一个或多个应用程序328、其它程序模块330以及程序数据332。这些操作系统326、一个或多个应用程序328、其它程序模块330和程序数据332(或其某一组合)中的每一个可实现支持分布式文件系统的常驻组件的全部或部分。
用户可以通过诸如键盘334和定点设备336(如,“鼠标”)等输入设备向计算机302输入命令和信息。其它输入设备338(未具体示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、串行端口、扫描仪和/或其类似物。这些和其它输入设备通过耦合至系统总线308的输入/输出接口340连接到处理单元304,但也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。
监视器342或其它类型的显示设备也通过接口,如视频适配器344连接到系统总线308。除监视器342之外,其它输出外围设备可包括诸如扬声器(未示出)和打印机346等组件,它们可通过输入/输出接口340连接到计算机302。
计算机302可以使用到一个或多个远程计算机,如远程计算设备348的逻辑连接在网络化环境中操作。作为示例,远程计算设备348可以是个人计算机、便携式计算机、服务器、路由器、网络计算机、对等设备或其它普通网络节点等等。远程计算设备348被示为可包括此处相对于计算机302所描述的许多或所有元件和特征的便携式计算机。
计算机302和远程计算机348之间的逻辑连接被描述为局域网(LAN)350和一般的广域网(WAN)352。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中实现时,计算机302通过网络接口或适配器354连接至局域网350。当在WAN网络环境中实现时,计算机302通常包括调制解调器356或用于通过广域网352建立通信的其它装置。调制解调器356可以对计算机302是内置或外置的,它可通过输入/输出接口340或其它适当的机制连接至系统总线308。可以理解,示出的网络连接是示例性的,也可以使用在计算机302和348之间建立通信链路的其它装置。
在诸如用计算环境300示出的网络化环境中,相对于计算机302描述的程序模块或其部分可储存在远程存储器存储设备中。作为示例,远程应用程序358驻留在远程计算机348的存储器设备中。为说明起见,应用程序和诸如操作系统等其它可执行程序组件在此处被示出为离散的框,尽管可以认识到,这些程序和组件在不同的时刻驻留在计算设备302的不同存储组件中,并由计算机的数据处理器执行。
各种模块和技术在此可在诸如程序模块等可由一个或多个计算机或其它设备执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定的任务或实现特定的抽象数据类型。通常,程序模块的功能可如各实施例中所需地组合或分布。
这些模块和技术的一种实现可被储存在某一形式的计算机可读介质上或通过其来发送。计算机可读介质可以是可由计算机访问的任何可用介质。作为示例而非局限,计算机可读介质包括“计算机存储介质”和“通信介质”。
“计算机存储介质”包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机访问的任一其它介质。
“通信介质”通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据。通信介质还包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。
尽管以上描述使用了对结构特征和/或方法动作专用的语言,但可以理解,所附权利要求书中定义的本发明不限于所描述的具体特征或动作。相反,公开了这些具体特征和动作作为实现本发明的示例性形式。

Claims (26)

1.一种允许应用程序以通用的方式呈现命令的计算机实现的方法,包括:
命令主机与命令代理程序协商在经由用户界面来呈现一命令时要使用的呈现模型,其中所协商的呈现模型是所述命令主机和所述命令代理程序两者都支持的呈现模型;以及
基于所协商的呈现模型获得与所述命令相关联的命令提供者,
所述命令主机基于所获得的命令提供者将所述命令放置在所述用户界面中;以及
所述命令主机响应于随后由用户调用的所述命令来与所述命令提供者交互;
其中,所述命令代理程序是所述命令主机和所述命令提供者之间的中介,其中所述命令主机用于提供能呈现多个用户界面命令的工作空间,以及所述命令代理程序在通信上耦合到所述命令主机并能够为所述命令标识多个该命令代理程序支持的呈现模型,
所述命令提供者是所述命令的最终处理程序。
2.如权利要求1所述的计算机实现的方法,其特征在于,还包括令上下文信息对所述命令代理程序可用。
3.如权利要求1所述的计算机实现的方法,其特征在于,所述协商包括:
从所述命令代理程序获得所述命令代理程序支持的一个或多个呈现模型的列表;以及
从所述命令代理程序支持的所述一个或多个呈现模型的列表中选择至少一个所述命令主机和所述命令代理程序两者都支持的呈现模型。
4.如权利要求3所述的计算机实现的方法,其特征在于,所述协商包括:
向所述命令代理程序通知所选择的呈现模型。
5.如权利要求4所述的计算机实现的方法,其特征在于,所述向所述命令代理程序通知所选择的呈现模型包括:调用由所述命令代理程序展示的GetProvider方法,并将所选择的呈现模型作为所述GetProvider方法的参数包括在内。
6.如权利要求1所述的计算机实现的方法,其特征在于,还包括:
命令主机与多个其它命令代理程序协商在呈现与所述多个其它命令代理程序相关联的多个其它命令时要使用的呈现模型;以及
基于所协商的呈现模型获得与所述多个其它命令相关联的多个其它命令提供者的标识符。
7.如权利要求1所述的计算机实现的方法,其特征在于,所述命令主机支持所述命令代理程序不支持的一个或多个呈现模型。
8.如权利要求1所述的计算机实现的方法,其特征在于,所述协商包括:
访问由所述命令代理程序展示的模式枚举;以及
响应于访问所述模式枚举,接收所述命令代理程序对所述命令支持的多个不同呈现模型的列表。
9.如权利要求8所述的计算机实现的方法,其特征在于,所述协商还包括:
访问所述命令代理程序的组枚举;以及
响应于访问所述组枚举,接收所述命令代理程序所支持的一个或多个组的列表,其中所述组是对命令主机的关于特定命令应彼此靠近的指示。
10.如权利要求1所述的计算机实现的方法,其特征在于,还包括创建所述命令代理程序,这是通过;
标识包括一个或多个形参的对象定义;
对所述一个或多个形参中的每一非文字形参,基于该形参递归地标识一个或多个其它对象定义;以及
创建由所标识的对象定义所定义的对象作为所述命令代理程序。
11.如权利要求10所述的计算机实现的方法,其特征在于,创建所述命令代理程序还包括标识与所述命令代理程序相关联的顶层对象定义作为所述对象定义。
12.如权利要求10所述的计算机实现的方法,其特征在于,创建由所标识的对象定义所定义的对象包括:实例化由所标识的对象定义所定义的对象。
13.如权利要求10所述的计算机实现的方法,其特征在于,创建所述命令代理程序还包括标识Windows操作系统的注册表中的对象定义。
14.如权利要求10所述的计算机实现的方法,其特征在于,所述对象定义包括储存表示由第一对象定义所定义的对象的标识符的数据的类型字段,以及储存表示一个或多个其它对象定义的数据的形参字段。
15.一种允许应用程序以通用的方式呈现命令的计算机实现的方法,包括:
向命令主机标识命令代理程序所支持的多个呈现模型,所述命令代理程序与一特定命令相关联;
所述命令代理程序与所述命令主机协商要使用所述多个呈现模型中的哪一个来经由用户界面呈现所述命令,其中所协商的呈现模型是所述命令主机和所述命令代理程序两者都支持的呈现模型;
基于所协商的呈现模型为所述命令创建命令提供者;
向所述命令主机通知所述命令提供者;
所述命令主机基于所创建的命令提供者将所述命令放置在所述用户界面中;以及
所述命令主机响应于随后由用户调用的所述命令来与所述命令提供者交互;
其中,所述命令代理程序是所述命令主机和所述命令提供者之间的中介,其中所述命令主机用于提供能够显现多个用户界面命令的工作空间,以及所述命令代理程序在通信上耦合到所述命令主机,
所述命令提供者是所述命令的最终处理程序。
16.如权利要求15所述的计算机实现的方法,其特征在于,创建所述命令提供者包括:实例化所述命令提供者。
17.如权利要求15所述的计算机实现的方法,其特征在于,还包括:
访问命令上下文;以及
至少部分地基于所述命令上下文确定所述多个呈现模型中的哪一个用于由用户界面呈现所述命令。
18.如权利要求15所述的计算机实现的方法,其特征在于,协商要使用所述多个呈现模型中的哪一个来呈现命令包括:从所述命令主机接收所述多个呈现模型之一的标识。
19.如权利要求15所述的计算机实现的方法,其特征在于,还包括:
通过响应于所述命令主机调用模式枚举,向所述命令主机返回所述命令代理程序支持的所述多个呈现模型的列表,来标识所述命令代理程序支持的所述多个呈现模型。
20.如权利要求19所述的计算机实现的方法,其特征在于,所述命令代理程序是通过被实例化来创建的。
21.如权利要求15所述的计算机实现的方法,其特征在于,还包括:
响应于所述命令主机调用组枚举,由所述命令代理程序向所述命令主机返回所述命令代理程序所支持的一个或多个组的列表,其中所述组是对命令主机的关于特定命令应彼此靠近的指示。
22.如权利要求19所述的计算机实现的方法,其特征在于,还包括:
由所述命令代理程序展示一获得提供者属性,所述获得提供者属性具有作为呈现模型的标识符的参数;以及
响应于所述命令主机调用所述获得提供者属性,由所述命令代理程序创建为所标识的呈现模型实现所述特定命令的命令提供者。
23.如权利要求22所述的计算机实现的方法,其特征在于,所述命令代理程序通过实例化所述命令提供者来创建所述命令提供者。
24.一种允许应用程序以通用的方式呈现命令的系统,包括:
用于命令主机与命令代理程序协商在经由用户界面来呈现一命令时要使用的呈现模型的装置,其中所协商的呈现模型是所述命令主机和所述命令代理程序两者都支持的呈现模型;
用于基于所协商的呈现模型获得与所述命令相关联的命令提供者的装置,
用于所述命令主机基于所获得的命令提供者将所述命令放置在所述用户界面中的装置;以及
用于所述命令主机响应于随后由用户调用的所述命令来与所述命令提供者交互的装置;
其中,所述命令代理程序是所述命令主机和所述命令提供者之间的中介,其中所述命令主机用于提供能呈现多个用户界面命令的工作空间,以及所述命令代理程序在通信上耦合到所述命令主机并能够为所述命令标识多个支持的呈现模型,
所述命令提供者是所述命令的最终处理程序。
25.如权利要求24所述的系统,其特征在于,还包括:
用于与多个其它命令代理程序协商在呈现与所述多个其它命令代理程序相关联的多个其它命令时要使用的呈现模型的装置;以及
用于基于所协商的呈现模型获得与所述多个其它命令相关联的多个其它命令提供者的标识符的装置。
26.如权利要求24所述的系统,其特征在于,还包括:
用于令上下文信息对所述命令代理程序可用的装置。
CN2004800426916A 2004-05-03 2004-07-22 通用用户界面命令体系结构 Expired - Fee Related CN101421685B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/838,462 US7636922B2 (en) 2004-05-03 2004-05-03 Generic user interface command architecture
US10/838,462 2004-05-03
PCT/US2004/023643 WO2005111768A2 (en) 2004-05-03 2004-07-22 Generic user interface command architecture

Publications (2)

Publication Number Publication Date
CN101421685A CN101421685A (zh) 2009-04-29
CN101421685B true CN101421685B (zh) 2012-03-14

Family

ID=35188553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800426916A Expired - Fee Related CN101421685B (zh) 2004-05-03 2004-07-22 通用用户界面命令体系结构

Country Status (6)

Country Link
US (2) US7636922B2 (zh)
EP (1) EP1743232B1 (zh)
JP (1) JP2007538314A (zh)
KR (1) KR20070026430A (zh)
CN (1) CN101421685B (zh)
WO (1) WO2005111768A2 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7810105B2 (en) * 2004-12-29 2010-10-05 Motorola, Inc. Method and apparatus for running different types of applications on a wireless mobile device
US7966573B2 (en) * 2006-02-17 2011-06-21 Microsoft Corporation Method and system for improving interaction with a user interface
US8437409B2 (en) * 2006-12-06 2013-05-07 Carnagie Mellon University System and method for capturing, editing, searching, and delivering multi-media content
US20090055757A1 (en) * 2007-08-20 2009-02-26 International Business Machines Corporation Solution for automatically generating software user interface code for multiple run-time environments from a single description document
US7814054B2 (en) * 2008-04-03 2010-10-12 Laurion James E System and method for providing common operators across multiple applications
US8843841B2 (en) * 2009-04-30 2014-09-23 Agilent Technologies, Inc. System and method for interactive instrument operation and automation
US10198414B2 (en) * 2009-09-10 2019-02-05 Usablenet Inc. Methods for optimizing interaction with a form in a website page and systems thereof
US20130067408A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Contextually applicable commands
US9690877B1 (en) * 2011-09-26 2017-06-27 Tal Lavian Systems and methods for electronic communications
US10901698B2 (en) 2018-11-30 2021-01-26 International Business Machines Corporation Command tool development using a description file

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0606718A2 (en) * 1992-12-30 1994-07-20 AT&T Corp. Communications protocol for exchanging interface information between a host and a terminal
EP1343080A2 (en) * 2002-03-07 2003-09-10 Hewlett-Packard Company A user interface generator and method of automatically generating a user interface
US6697088B1 (en) * 1998-04-27 2004-02-24 Jacada, Inc. Graphical presentation system

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL100990A (en) * 1991-02-27 1995-10-31 Digital Equipment Corp Multilingual optimization compiler that uses Gladi in the production of a multi-pass cipher
JPH05324232A (ja) * 1992-05-20 1993-12-07 N T T Data Tsushin Kk 共有オブジェクトの視覚的入出力処理方法
AU681433B2 (en) * 1993-08-03 1997-08-28 Sun Microsystems, Inc. Flexible multi-platform partitioning for computer applications
US5664133A (en) * 1993-12-13 1997-09-02 Microsoft Corporation Context sensitive menu system/menu behavior
US6173289B1 (en) * 1995-07-07 2001-01-09 Novell, Inc. Apparatus and method for performing actions on object-oriented software objects in a directory services system
US5887139A (en) * 1996-08-19 1999-03-23 3Com Corporation Configurable graphical user interface useful in managing devices connected to a network
US6611878B2 (en) * 1996-11-08 2003-08-26 International Business Machines Corporation Method and apparatus for software technology injection for operating systems which assign separate process address spaces
US6012152A (en) * 1996-11-27 2000-01-04 Telefonaktiebolaget Lm Ericsson (Publ) Software fault management system
US6292827B1 (en) * 1997-06-20 2001-09-18 Shore Technologies (1999) Inc. Information transfer systems and method with dynamic distribution of data, control and management of information
US7039876B2 (en) * 1997-10-06 2006-05-02 Canon Kabushiki Kaisha User interface for image acquisition devices
US6028998A (en) * 1998-04-03 2000-02-22 Johnson Service Company Application framework for constructing building automation systems
JP3202968B2 (ja) * 1998-06-30 2001-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 表示制御情報生成方法及びコンピュータ
US6694482B1 (en) * 1998-09-11 2004-02-17 Sbc Technology Resources, Inc. System and methods for an architectural framework for design of an adaptive, personalized, interactive content delivery system
US6628305B1 (en) * 1998-11-09 2003-09-30 International Business Machines Corporation Architecture and definition of an extensible, object-oriented graphical user interface framework for managing and administering heterogenous digital library datastores
CN1300677C (zh) * 2000-06-22 2007-02-14 微软公司 分布式计算服务平台
US6738077B1 (en) * 2000-07-18 2004-05-18 Apple Computer, Inc. Dynamic generation and automated distribution of user interface from database model
US6583798B1 (en) * 2000-07-21 2003-06-24 Microsoft Corporation On-object user interface
US6957390B2 (en) * 2000-11-30 2005-10-18 Mediacom.Net, Llc Method and apparatus for providing dynamic information to a user via a visual display
US6996800B2 (en) * 2000-12-04 2006-02-07 International Business Machines Corporation MVC (model-view-controller) based multi-modal authoring tool and development environment
US20030007485A1 (en) * 2001-05-22 2003-01-09 Motorola, Inc Method and system for operating an edge router
JP2003108373A (ja) * 2001-09-28 2003-04-11 Toshiba Corp 汎用型ソフトウェア開発支援システム、汎用型ソフトウェア開発支援プログラム、およびそのシステムで用いられるソフトウェア部品
US7392483B2 (en) * 2001-09-28 2008-06-24 Ntt Docomo, Inc, Transformation of platform specific graphical user interface widgets migrated between heterogeneous device platforms
US7895522B2 (en) * 2001-09-28 2011-02-22 Ntt Docomo, Inc. Layout of platform specific graphical user interface widgets migrated between heterogeneous device platforms
US7934162B2 (en) * 2001-09-28 2011-04-26 Ntt Docomo, Inc. Running state migration of platform specific graphical user interface widgets between heterogeneous device platforms
US7234111B2 (en) * 2001-09-28 2007-06-19 Ntt Docomo, Inc. Dynamic adaptation of GUI presentations to heterogeneous device platforms
US20030063120A1 (en) * 2001-09-28 2003-04-03 Wong Hoi Lee Candy Scalable graphical user interface architecture
US7283846B2 (en) * 2002-02-07 2007-10-16 Sap Aktiengesellschaft Integrating geographical contextual information into mobile enterprise applications
US6917938B2 (en) * 2002-05-06 2005-07-12 Ideapivot Corporation Collaborative context information management system
JP4411545B2 (ja) * 2002-07-30 2010-02-10 ソニー株式会社 プログラム、情報処理方法および装置
AU2003233573B2 (en) 2002-09-30 2009-09-24 Microsoft Technology Licensing, Llc System and method for making user interface elements known to an application and user
US7266773B2 (en) * 2002-10-24 2007-09-04 Efficient Analytics, Inc. System and method for creating a graphical presentation
US7493592B2 (en) * 2003-10-24 2009-02-17 Microsoft Corporation Programming interface for a computer platform

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0606718A2 (en) * 1992-12-30 1994-07-20 AT&T Corp. Communications protocol for exchanging interface information between a host and a terminal
US6697088B1 (en) * 1998-04-27 2004-02-24 Jacada, Inc. Graphical presentation system
EP1343080A2 (en) * 2002-03-07 2003-09-10 Hewlett-Packard Company A user interface generator and method of automatically generating a user interface

Also Published As

Publication number Publication date
WO2005111768A3 (en) 2009-06-04
EP1743232B1 (en) 2016-10-12
WO2005111768A2 (en) 2005-11-24
KR20070026430A (ko) 2007-03-08
US20100023954A1 (en) 2010-01-28
EP1743232A2 (en) 2007-01-17
CN101421685A (zh) 2009-04-29
US8359606B2 (en) 2013-01-22
US20050246725A1 (en) 2005-11-03
JP2007538314A (ja) 2007-12-27
US7636922B2 (en) 2009-12-22
EP1743232A4 (en) 2009-11-04

Similar Documents

Publication Publication Date Title
CN100504768C (zh) 基于树视图的编辑器中的内联属性编辑系统和方法
US6194992B1 (en) Mobile web
CN101128816B (zh) 用于显示分页内容并与之交互的方法和系统
US20070283273A1 (en) System, Method, and Computer Program Product for Internet Tool
CN101258496B (zh) 用对数据库的查询自动填充
JP4812337B2 (ja) フォームタイプを使用してフォームを生成する方法および装置
CN101180598B (zh) 用于提供过程指南的方法
US8219919B2 (en) Method for automating construction of the flow of data driven applications in an entity model
CN112800370B (zh) 业务单据的处理方法、装置、计算机设备和存储介质
CN101583925A (zh) 管理用户界面的显示
US11481086B2 (en) Accessing media context information using contextual links
US20030146941A1 (en) Systems and methods for creating and managing graphical user interface lists
US20060265344A1 (en) System, Method, and Computer Program Product for Internet Tool
US20060253586A1 (en) System, Method, and Computer Program Product for Internet Tool
US20060117267A1 (en) System and method for property-based focus navigation in a user interface
US20070073697A1 (en) System, Method, and Computer Program Product for Internet Tool
US20020156880A1 (en) Network device managing apparatus, program, information storage medium, and network device managing method
CN102804133B (zh) 一种用于管理系统可扩展性的方法和设备
CN101258487A (zh) 用全异信息系统中的数据批注协作应用中的文档
CN101667120A (zh) 共享用户接口界面系统
CN101421685B (zh) 通用用户界面命令体系结构
TW201044274A (en) Platform extensibility framework
CN101641688B (zh) 可定义应用程序助理
CN101821731A (zh) 通用模型编辑框架
US20080163109A1 (en) User configurable action button

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120314

Termination date: 20210722