CN1387105A - 产生用户界面的专门*** - Google Patents
产生用户界面的专门*** Download PDFInfo
- Publication number
- CN1387105A CN1387105A CN02141345A CN02141345A CN1387105A CN 1387105 A CN1387105 A CN 1387105A CN 02141345 A CN02141345 A CN 02141345A CN 02141345 A CN02141345 A CN 02141345A CN 1387105 A CN1387105 A CN 1387105A
- Authority
- CN
- China
- Prior art keywords
- user
- user interface
- group
- rule
- intention
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
提供了产生用户界面的专门***。专门***包括一个或多个组件,用于实现用户界面设计者的一个或多个意图。当由专门***接收时,每个意图识别并且启动用于实现接收的意图的相应部分。每个组件可编程地包含一组规则,其中规则从用户界面设计的准则、约定和原理中提取。还为每个接收的意图提供一组参数。来帮助相应的组件选择并执行这组规则中的某个规则。每个规则从与其它规则使用的其它模板不同的模板中,产生用户界面。
Description
相关申请的交叉参考
本申请要求2001年2月27日申请的美国临时申请第60/272006号的优先权,这里明确引入用于参考。技术领域
本发明通常涉及专门***,并且特别涉及一段软件程序,它从应用程序接收用户界面设计者的意图,并且通过做出决定从一组可编程的规则产生用户界面来实现意图,这些可编程规则以在用户界面设计的准则、约定和原理中所体现的用户界面领域的高级知识为基础。发明技术
用户界面是程序或操作***的一部分,其中用户通过它指示计算设备完成一个结果,并且所述设备通过它将信息传递给用户。计算设备的例子是计算机、便携式电子设备如电话和交互电视单元。(此后,术语计算机一般用于称呼所有的计算设备。)
图形用户界面是这样的用户界面,它使用计算机监视器或其它类型的显示器(如电视)作为输出设备,和影响显示器的一个或多个的输入设备,典型地是计算机键盘和定点设备,如鼠标。计算机在屏幕上将信息显示给用户。屏幕可以组成显示器的整个可视区域,或者可以以窗口的形式只组成部分可视区域。用户界面的另一个例子是音频用户界面,其中用户通过麦克风输入设备对计算机讲话,并且计算机通过扬声器输出设备响应。一些用户界面支持多种模式的交互作用(例如图形和音频)。
软件程序员通过编程语言建立用户界面,其中编程语言允许访问计算机的输入和输出设备。然而,这些用户界面不需要从头开始建立。例如,参考图1A,一组用户界面例程可以存储在驻留于操作***中的库(未画出)中,如Microsoft的Windows操作***118(此后被称为“Windows118”。)为了调用库中的用户界面例程,软件程序员将函数调用放置在程序116中的适当位置,其中函数调用会调用在库中包含的相应例程。当运行程序116的计算机进入函数调用时,计算机执行函数调用,并且将函数调用从库中相应的用户界面例程变为服务请求。
每个函数调用包括一组输入参数。当计算机执行函数调用时,输入参数传输到相应的用户界面例程。设计每个例程,以从特定的模板将接口表示给用户,如对话框120,它是从用户请求响应的特殊窗口。输入参数提供可以影响对话框120的表示的信息。每个函数调用与一个例程中的单一模板具有一一对应关系。对于每个函数调用,期望出现特定模板的精确实例。因为Windows118中将任何偏离认为是缺陷,所以不可能会有偏离。
图1B-1E说明了信息框124-130,它们是对话框120的一种类型。从中形成每个消息的模板包括:标题条102,它是消息框顶部的水平空间,包含消息框的名称和关闭按钮104,关闭按钮104通常是一个方形按钮,位于标题条的右角,上面具有一个X标记。消息框的模板还包括屏幕106,除包含消息外还包含一个或多个按钮,允许用户与消息框交互作用。
图1B中的消息框124对用户表示消息“Hello world!”以及OK按钮108。建立图1B的消息框124的函数调用可以是这样的形式:messageBox(“Helloworld!”,OK),这是具有“messageBox”名称和两个输入参数“Hello world!”和“OK”的函数调用。图1C的消息框126与图1B的消息框124类似,只是图1C的消息框126还包括Cancel按钮110。建立图1C的消息框126的函数调用可以具有这样的形式:messageBox(“Hello world!”,OK_CANCEL)。图1D的消息框128像图1B-1C的消息框124,126一样,包括消息“Hello world!”。区别是,图1D的消息框128包括YES按钮114、NO按钮112和Cancel按钮110,但没有OK按钮108。建立消息框128的函数调用可以具有这样的形式:messageBox(“Hello world!”,YES_NO_CANCEL)。
建立图1E消息框130的函数调用的输入参数包括长串文本“Call meIshmael...”和OK按钮108。对应于建立图1E消息框130的用户界面例程,增加了图1E的消息框130的垂直空间,从而容纳了长串文本。建立图1E消息框130的函数调用的形式包括签名,如messageBox(“Call me Ishmael...”,OK)。图1B-1E说明了从程序116进行函数调用messageBox(...),Windows118中的messageBox模板用于建立消息框124-130。可以通过函数调用messageBox(...)的输入参数提供适当的信息,从而对消息框模板做出修改,但是修改的消息框仍然是消息框的一种类型,而Windows118不做出任何偏离。
在通过上面参考图1A-1E所讨论的软件程序使用的编程语言中,可以直接构成用户界面,但更通常地使用特定用户界面开发工具来构成。例如,通常使用被称为形式包(forms package)的工具来构成图形用户界面。形式包典型地将屏幕(也被称为形式)表示给程序员,其中屏幕与用户看到的内容接近。形式包允许程序员将独立的图形用户界面控件(例如按钮、文本输入对话框、列表框)加入到屏幕中,并且在屏幕上安排控件。形式包还允许程序员指示屏幕和它的控件如何对用户的操作反应,如当用户以鼠标点击按钮控件时。典型地,程序员通过将例程编写到计算机编码中,然后将屏幕上的控件与那些例程连接,来明确地确定这些反应。然后,特定的用户事件触发相关的编码例程的执行。
用于程序的图形用户界面可以包括一个或多个屏幕。在以程序员所需的任何屏幕构成用户界面时,形式包允许程序员完全自由。然而,由于这样的自由,会导致产生很多错误的机会。程序员会建立对于用户理解和适当使用太复杂的用户界面。程序员会无意中建立具有错误的接口。错误的例子是不能正确地处理可能输入条件的整个范围。
为了减少出问题的可能性,程序员典型地学习了如何手动地遵从用户界面准则和事实上的约定,这些准则和约定建议用户界面如何出现并运行。例如,图7显示了图形用户界面中的典型屏幕,其中用户被要求来选择四项之一。窗口702包含文本704,指示用户从选项按钮706、708、710和712中做出选择。在这个例子中,显示了选择选项按钮706。在给定的时间,只有选项按钮706、708、710和712中的一个被选择。用户选择一个按钮,然后点击OK按钮714来指示他已经完成。用户还可以点击Cancel按钮716,来指示它不希望做出选择。
作为这个屏幕的工作约定的例子,考虑OK按钮714和Cancel按钮716在选项按钮706、708、710和712下的标准放置。这个约定来源于用户会首先与选项按钮交互,然后是OK按钮或Cancel按钮的事实,并且来源于人们通常从顶部到底部来阅读屏幕的事实。还能接受(并且也在常理之内)将按钮714和716放置在选项按钮的右侧,因为英语(和其它很多语言)被从左向右地阅读。然而不能接受将按钮714、716放置在屏幕顶部,选项按钮708-712上面,因为用户将会在选择选项前按下OK按钮714和Cancel按钮716。
图7显示的屏幕上的控件形成了相似的模式。很多程序员建立遵从图7显示模式的屏幕,即使屏幕的特定目的是不同的。图形用户界面的用户会逐渐变得熟悉这样的模式,由此增加他们用程序的效率。如果屏幕符合他们以前见过的模式,那么他们能够更快地学习新的屏幕。
多数软件编程环境不提供利用这样的用户界面模式的任何方式。如果程序员想要选择在它程序中采用选择屏幕,其中选择屏幕遵从图7显示的那些相同的模式,那么他必须典型地使用形式包,以使用基本图形用户界面控件从头开始建立这样的屏幕。因为程序员通常从头开始确定屏幕的外观和运行,他会不正确地实现用户界面,由此无意中引入错误。甚至当程序员试图遵从相似模式建立屏幕时,这也会发生。
即使对于简单的用户界面模式,对于程序员也难于正确地遵从模式(pattern)。程序员需要使一系列细节正确,才能使用户从模式的使用中获得任何优点。这样细节的例子包括,但不限于,选择一组正确的控件,对这些控件提供约定的或者以其它方式有意义的标记,在屏幕上正确地安排控件,支持所有可获得模式的用户输入(键盘、定点设备、语音识别等),正确地处理所有的条件和错误,允许在各种环境和语言中正确使用接口,并且允许具有各种残障用户正确使用接口(色盲、近视、盲人、操作协调迟缓等)。
而且,用于确定在给定的情况下哪种类型的用户界面适当的准则并不是没有价值的。考虑程序员想要将一系列的选择表示给用户,并且需要用户准确地选择其中的一个选择的情况。假设程序员建立在Microsoft的Windows操作***上使用的图形用户界面。Microsoft公司对于为Windows设计的程序发布了一组用户界面准则(“Microsoft Windows User Experience:Official Guidelinesfor User Interface Developers and Designers”Microsoft Press,1999)。这些准则建议可以在这些情况中采用的至少三种不同类型的控件:
1)选项按钮:“选项按钮,也被称为单选按钮,代表有限的一组相互排除的选择中的单一选择。也就是,用户只可以选择一组选项之一。由此,总是将选项按钮分组,每组两个或多个...将选项按钮限制用于一个小组选项中,典型地为七个或更少,但总是至少两个。如果需要更多个选择,考虑使用不同类型的控件,如单一选择列表框或下拉列表框”(p.164)
2)单一选择列表框:“列表框是对用户显示一组选择列表的控件...列表框最佳用于显示数量和内容可变的大量选择...单一选择列表框用于在列表中选择唯一一项而设计。由此,控件提供了相互排除的操作,与选项按钮组相似,除了列表框可以更有效地处理大量项目。单一选择列表框可以确定得足够高,从而显示至少三个到八个选择...这取决于列表框将用在哪里的设计限制。”(pp.170-4)
3)下拉列表框:“像单一选择列表框一样,提供下拉列表框,用于从列表中只选择唯一一项;差异是列表根据需要显示。...下拉列表框是保留空间和减少混乱的有效方式,它们比单一选择列表框,需要更多的用户努力来浏览并选择项目。”(p.175)
可以预见,应该使用哪种控制的决定留给了程序员。程序员必须估计手头的情况,将它与可获得的准则和约定相比,然后做出适当的选择。不能选择适当的模式将导致使用户混乱的风险。
使程序员的决定复杂化就是,在程序员编写程序时,程序员典型地不知道使用该用户界面的准确条件。程序需要对用户提供一组选择列表,其中根据改变的因素,选项的数量会极大地改变(例如,程序需要显示当前与计算机网络连接的一组人)。程序员通常被迫根据这样因素的理论或估计范围做出决定。编写程序时做出的决定会导致实际中不适当的用户界面。
发明内容
本发明将识别并构成适当用户界面模式的负担转移到一个专门***,它被编程来遵从用户界面设计的准则、约定和原理。程序员以传统方式编写应用程序,但不需要为应用程序建立完整的用户界面。程序员编写代码来反应他对用户界面用途的意图,这些代码调用专门***,并由专门***完成应用程序的用户界面。专门***立即产生适当用户界面,并将这个接口返回给应用程序。应用程序然后调用这个用户界面,它控制用户交互作用。用户界面根据需要与应用程序通讯。当用户界面从用户的交互中接收到一些指示时,用户界面最终将控件返回给应用程序。专门***不是立即产生用户界面,而是产生并存储用户界面,以便稍后在应用程序运行时使用。程序员可以使用专门***,来产生应用程序的整个用户界面,或只是它的一部分。
附图说明
通过结合附图参考后面的具体描述,本发明前面的方面和很多伴随的优点将变得更易于理解,其中:
图1A是方块图,说明了程序中的用户界面函数调用、操作***中的特定用户界面例程,与特定模板中用户界面的相应表示之间的一一对应。
图1B-1E是示意图,说明了消息框的各种表示,它取决于用户界面函数调用的输入参数值。
图2是方块图,说明了计算设备。
图3A是方块图,说明了计算机***,它包括根据本发明的一个实施例产生用户界面的专门***。
图3B是方块图,说明了更具体的接口设计者的意图和专门***的参数,用于根据本发明的一个实施例产生用户界面。
图3C是方块图,更具体地显示了应用程序与专门***之间的交互作用,来根据本发明的一个实施例产生用户界面,其中应用程序将用户界面设计者的一个或多个意图发送给专门***,而专门***从应用程序接收一个或多个意图。
图4是过程图,说明了根据本发明的一个实施例调用专门***的方法。
图5是另一个过程图,说明了这样的方法,根据本发明的一个实施例,专门***通过该方法实现用户界面设计者的意图,来产生的用户界面。
图6是过程图,显示了样本编码模块或专门***的部件内的方法,用于实现用户界面设计者的意图,更特别地,根据本发明的一个实施例,对用户显示可获得的选择。
图7是示意性方块图,说明了用户可获得的选择,使用根据本发明的一个实施例的选项按钮来选择。
图8是示意性方块图,说明了根据本发明的一个实施例,屏幕显示单一选择列表框中用户可获得的选择。
图9A是单一屏幕的示意性方块图,根据本发明的一个实施例,显示了下拉列表框中被选择的选项。
图9B是示意性方块图,说明单一屏幕,根据本发明的一个实施例,显示了下拉列表框中用户可获得的选择。
具体实施方式
图2说明了适当的计算***环境200的例子,其上可以实现本发明。计算***环境200只是适当计算环境的一个例子,并不趋于对本发明的功能和使用范围建议任何限制。计算***环境200不应被解释为对描述和说明的组件中任何一个或其组合有任何依赖性或要求。
本发明与几个一般目的或特定目的的计算***环境和结构来操作。适于与本发明一起使用的已知计算***、环境和/或结构,包括个人计算机、计算机服务器、手持或膝上型设备、多处理器***、基于微处理器的***、机顶盒、可编程的用户电子***、网络PC、微型计算机、巨型计算机、包括任何上述***和设备的分布式计算环境等,但不限于此。
本发明以计算机可执行指令的一般环境描述,如通过计算机执行的程序模块。一般地,程序模块包括例程、程序、对象、部件、数据结构等,它们执行特定的任务和实现特定的抽象数据类型。
本发明还在分布式计算环境中实现,在分布式计算环境中任务通过经由通讯网络连接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地或远程计算机存储介质中,它们包括存储器存储设备。
参考图2,用于实现本发明的***包括采用计算机210形式的通用计算设备。计算机210的部件可以包括:处理单元220、***存储器230、和***总线221,但不限于此,其中***总线221将包括***存储器的各个***部分连接到处理单元220上。***总线221可以是任何几种类型的总线结构,它包括存储器总线或存储器控制器,***总线,和使用几种总线结构任何之一的局部总线。通过例子的方式,这样的总线结构包括:工业标准结构(ISA)总线、微通道结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线、和***部件互连(PCI)总线,也被称为Mezzanine总线,但不限于此。
计算机210典型地包括各种计算机可读取介质。计算机可读取介质可以是由计算机210访问的任何可获得的介质,并且包括易失性的和非易失性的介质,可移除的和不可移除的介质。通过例子的方式,计算机可读取的介质可以包括计算机存储介质和通讯介质,但不限于此。计算机存储介质包括在任何方法和技术中实现的易失性的和非易失性的介质,可移除的和不可移除的介质,用于存储诸如计算机可读取的指令、数据结构、程序模块和其它数据这样的信息。计算机存储介质包括RAM、ROM、EEPROM、闪存、或其它存储器技术,CD-ROM、数字多用途光盘(DVD)、或其它光盘存储器,卡式磁带、磁带、磁盘,或其它磁存储器,或任何其它计算机存储介质,但不限于此。通讯介质典型地实施计算机可读取指令、数据结构、程序模块或调制数据信号中的其它数据,如载波或包括任何信息传递介质的其它传输机制。术语“调制的数据信号”意味着使它的一个或多个特性以这样的方式被设置或改变的信号,即将信号中的信息编码。通过例子的方式,通讯介质包括有线介质,如有线网络或直接有线连接,和无线介质,如声学、红外线RF和其它无线介质,但不限于此。上述的任何组合应该包括在计算机可读取介质的范围内。
***存储器230包括易失性的和/或非易失性的存储形式的计算机存储介质,如只读存储器(ROM)231和随机存取存储器(RAM)232。包含例如在启动时帮助信息在计算机210的元件之间传输的基本例程的基本输入/输出***233(BIOS),典型地存储在ROM231中。RAM232典型地包含数据和/或程序模块,它们被处理单元220立即访问,并且/或者被当前操作。通过例子的方式,图2说明了操作***234、应用程序235、其它程序模块236和程序数据237,但不限于此。
计算机210还会包括其它可移除的/不可移除的,易失性的/非易失性的计算机存储介质。通过例子的方式,图2说明了硬盘驱动器241,它从不可移除的非易失性的磁介质上读取或向其写入;磁盘驱动器251,它从可移除的非易失性的磁盘252上读取或向其写入;和光盘驱动器255,它从可移除的非易失性的光盘256上读取或向其写入,如CD-ROM或其它光介质。可以用在举例的操作环境中的其它可移除的/不可移除的,易失性的/非易失性的计算机存储介质包括:卡式磁带、闪存卡、数字多用途光盘、数字录像带、固态RAM、固态ROM及相似,但不限于此。硬盘驱动器241通过不可移除的存储器接口,如接口240,典型地连接到***总线221上,并且磁盘写入器251和光盘驱动器255通过可移除的存储器接口,如接口250,典型地连接到***总线221上。
上面讨论并且在图2中说明的驱动器和它们相关的计算机存储介质,对于计算机210提供计算机可读取的指令、数据结构、程序模块和其它数据的存储。在图2中,例如硬盘驱动器241被说明为存储操作***244、应用程序245、其它程序模块246和程序数据247。注意,这些部分既可以与操作***234、应用程序235、其它程序模块236和程序数据237相同,也可以不同。操作***244、应用程序245、其它程序模块246和程序数据247在这里被赋予不同的数字,来说明它们至少在这里是不同的副本。用户可以将命令和信息通过输入设备,如键盘262和一般被称为鼠标、跟踪球、和触摸板的定点设备261,输入到计算机210中。其它输入设备(未画出)可以包括麦克风、游戏杆、游戏板、碟型卫星天线、扫描仪等等。这些和其它输入设备通常通过用户输入接口260连接到处理单元220上,其中用户输入接口260连接到***总线上,但也可以通过其它接口或总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器291和其它类型的显示设备也通过接口,如视频接口290,连接到***总线221上。除了监视器,计算机还可以包括其它***输出设备,如扬声器297和打印机296,它们可以通过输入/输出***接口295连接。
计算机210还可以使用到达一个或多个远程计算机,如远程计算机280的逻辑连接,而在网络环境中操作。远程计算机280可以是个人计算机、服务器、路由器、网络PC、对等设备、或其它公共网络结点,并且典型地包括与计算机210相联系的上述很多或所有元件,尽管只有存储器存储设备281已经在图2中说明。图2中描述的逻辑连接包括局域网(LAN)271和广域网(WAN)273,但也可以包括其它网络。这样的网络环境在办公室、企业级计算机网络、企业内部网或因特网中是普通的。
当用在LAN网络环境中时,计算机210通过网络接口或适配器270连接到LAN271上。当用在WAN网络环境中时,计算机210典型地包括调制解调器272或用于在WAN273,如因特网上建立通讯的其它装置。内置的或外置的调制解调器272可以通过输入/输出***接口295,或其它适当的机制连接到***总线221上。在联网环境中,联系计算机210描述的程序模块或其部分,可以存储在远程存储器存储设备中。通过例子的方式,图2说明了驻留在存储器设备281中的远程应用程序285,但不限于此。将会理解,显示的网络连接只用于说明的目的,并且可以使用建立计算机之间的通讯连接的其它装置。
图3A说明了计算机302,适于实现本发明的优选实施例。存储器304的区域包含程序员编写的应用程序306。这个应用程序调用专门***308。专门***308考虑从应用程序306传递给它的信息,可能还检查存储在永久存储设备312或通过网络318连接的另一个计算机320中的外部因素。专门***308产生用户界面310,并且将用户界面310返回给应用程序306。在用户界面310刚建立后,或在产生的用户界面310已经被存储起来的运行时间,应用程序306调用用户界面310而与用户交互作用。用户界面310通过与用户经输出设备314通讯信息,并且通过输入设备316从用户接收输入,来控制这个交互作用。当交互作用完成时,用户界面310将交互作用的任何结果返回给调用程序306。
程序员或用户界面设计者通过将用户界面的目标或他的意图指示给专门***308,开始产生用户界面310的过程图3B更具体地说明了与专门***308的用户界面目标或意图(此后为用户界面目标324或意图324)的通讯。意图324存储在应用程序306中。应用程序306可以具有不完整的用户界面。当意图304被传送到专门***308,来产生用户界面310时,应用程序306不完整的用户界面完成。可以使用实现意图324的很多适当的技术。一种适当的技术包括将意图324存储在应用程序306中,作为函数调用。每个函数调用具有与它相关的一组参数326。各种类型的用户界面目标或意图都是可能的,如询问用户哪类问题,与用户通讯哪类信息,或使用户执行哪类任务。这样的用户界面目标或意图的例子包括:
1)使用户提供单一的文本串。
2)使用户提供单一的数字(例如大于零的整数)。
3)使用户从列表中拾取单一一项。
4)使用户从列表中拾取几项。
5)使用户在列表中将项目安排成优选的顺序。
6)使用户管理项目列表。
7)使用户在给定的结构中组织项目(例如一个分层结构)。
8)使用户在两个容器之间移动或复制项目(例如两个文件夹中的文件)。
9)使用户根据列表中选择的项目应用一个或多个操作。
除了指示用户界面目标或意图324,程序员可以将参数326提供给专门***308,其中这些参数进一步规定了程序员的意图,或者以其他方式辅助专门***308产生有意义的用户界面。根据规定的用户界面目标或意图,专门***308还可以要求程序员提供一些参数326。其它参数可以是可选的。参数326的例子包括:
1)程序员想要提供给用户的问题或指令的文本
2)期望用户从中做出选择的选项(例如文本串的列表)
3)程序员想要允许用户操作的数据
4)问题的缺省响应
5)用户是否需要响应问题或者用户是否可以选择退出该问题的指示。
6)响应与用户的交互作用,程序员期望接收的数据类型(既用于合法性检测,也用于确定最有效的显示类型)
7)程序员想要用在产生的用户界面上的水平和垂直空间量的限制
8)在产生的用户界面中,程序员想要的视觉类型的指示(例如,专门***是否以保守的视觉类型产生用户界面,其中用户界面允许用户关注手头的任务,或者产生具有新颖类型的用户界面,其中新颖类型意味着娱乐)。
在对哪种用户界面是最适当的做出决定的情况下,专门***308还检查它可获得的外部因素。这些外部因素可以包括:
1)程序运行在那种计算机上?例如设备中央处理器的速度可以限制可被用户界面接受来执行的处理量。
2)程序运行在那种操作***上?尽管很多现代操作***提供相似的用户界面,但对于应该如何执行特定类型的交互,每个操作***可以确定它自己的约定。
3)什么类型的输入设备是可获得的?多数个人计算机会至少具有计算机键盘,并且会具有定点设备,如鼠标。其它设备可以具有触摸屏幕,用于语音输入的麦克风和其它输入设备。例如电话会具有数字键盘。
4)什么类型的输出设备是可获得的?多数设备会具有屏幕,在这种情况下,各种屏幕属性会是相关的:它的物理尺寸、它的分辨率(它可以显示的象素数),和它可以显示多少颜色。输出设备的另一个例子是音频扬声器。
5)谁是这些问题将被询问的典型用户?相关的因素可以包括对典型用户年龄、国籍和文化背景、所讲或所阅读的语言、一般计算机经验程度、身体能力,和用户将使用这些产品的物理环境的期望。
6)关于这些问题将被询问的特定个人已知什么?对于以前识别的个人,专门***会对上述一般用户属性包括特定的答案。
7)过去该特定用户对待这个问题或类似问题的经验历史是什么?例如,如果用户以前从没有面对过这个问题,那么会要求用户界面提供更清晰的帮助。另一方面,如果用户以前已经面对过这个问题很多次,并且总是提供相同的响应,那么专门***会提供用户通常的响应作为缺省——或者专门***会产生用户界面,它对用户不显示任何东西,并且立即返回缺省响应。
8)机器上可获得的其它软件是什么?在形成用于提出问题的用户界面的过程中,专门***会确定采用其它的软件应用程序。
9)专门***可以访问的各种数据的当前值是什么?根据它通过机器觉察到的世界的各种事实,专门***会选择用户界面,如一天中的时间。此外,如果机器可以访问其它设备的网络(如因特网),那么专门***能够使用网络的数据,通知它的选择和用户界面的设计。
重要的是,在不同输入条件下,——或者即使在相同的输入条件下(因为外部因素会改变),专门***308对于意图产生的用户界面会基本上不同。也就是,专门***308不会对程序员提供任何保证,即不保证如果以相同的意图或者相同的参数组326调用多次就会产生相同的用户界面。
如果专门***308产生图形用户界面,那么产生的用户界面会包括单一屏幕、一系列的多个屏幕,或者根本不包括任何屏幕。这里,“屏幕”通常指示或者输出设备上的整个可视显示区域,或者较大显示器中包含的窗口,或者窗口的一部分。产生的用户界面可以包括压缩成分页函数(pagefunction)的屏幕,它在2002年2月27日申请的美国申请第_号中描述,标题是“分页函数结构的软件框架”,并且这里作为参考(代理人文档第MSFT-1-18569号)引入。对于包括屏幕的产生的用户界面,屏幕上的控件可以因调用不同而不同,正如控件的属性:它们的标签、位置、尺寸、包含的值等等,也是这样。专门***308还可以产生图形用户界面以外的其它类型的用户界面(例如音频用户界面)。
参考图3C,专门***308作为一组编码模块或组件334-338来实现。对于单一类型的用户界面目标或意图,每个编码模块被设计来产生适当的用户界面。换句话说,每个编码模块可以访问不同类型的模板,来实现用户界面目标或意图。对于调用相关编码模块的应用程序306,程序员通过编写程序代码,来指示它的用户界面目标或意图。为了适当地调用,编码模块可以请求应用程序306提供特定的参数。在调用时,编码模块会允许应用程序306规定另外的可选参数。这些所需的和可选的参数会根据意图不同而不同(并且这里,根据编码模块不同而不同)。编码模块评价所需的和可选的参数,并且检查任何相关的外部因素,来确定哪种类型的用户界面是适当的。
如图3C所示,应用程序306包括编写的编码片断,用于代表程序员的各个意图,如将项目列表排序的意图332,从列表中选择项目的意图330,和其它意图340。在专门***308中,存储在应用程序306中的每个意图可以调用相应的编码模块或部件,如排序组件336、选择组件334,和其它组件338。选择组件334对应于帮助用户从列表330选择项目的意图。对于帮助用户从列表选择项目的意图330,为了正确地调用选择组件334,意图以特定的可编程形式编写,如函数调用Choose(...)324A。函数调用324A的参数可以包括用户从中选择的项目列表326A。相似地,排序组件336对应于将项目列表332排序的意图。将项目列表排序的意图332通过函数调用Order(...)324A,来调用排序组件336。项目列表326B组成函数调用324B的参数。在专门***308中,应用程序306的其它意图340具有相应的组件338。组件338中的适当部件通过适当的函数调用以及应该包括在函数调用中的适当参数组,而被调用。
一旦专门***编码模块已经确定了哪种类型的用户界面是适当的,那么模块产生用户界面310的适当表示,并且将表示返回给应用程序306。用于本发明的各个实施例的适当操作环境包括面向对象的环境。用户界面310可以表示为程序执行过程中动态建立的对象,在程序函数之间传递,使它的组成函数被调用,并且使这些组成函数将结果返回给调用程序。这样的对象将与机器的输入和输出设备交互作用,来执行请求的用户交互作用。本领域的专业人员将认识到,本发明的实施例也可以在非面象对象的环境中实现。
在专门***308产生用户界面310,并将它返回给应用程序306后,调用程序306将立即典型地调用产生的用户界面310。然而,应用程序306还能够将用户界面310的表示存储在存储介质(例如磁盘)上,用于以后由应用程序306(或者,也可以是其它程序)使用。用户界面的表示还可以传输到另一台计算机用于存储,或者通过那台计算机上的程序调用。然而注意,用户界面产生时间与使用的时间之间经过的间隔越长,各个外部因素就越可能从它们被专门***308检查时的值改变,由此潜在地导致用户界面在新的一组外部因素下不适当。
尽管图3A把应用程序306、专门***308和产生的用户界面310描述为在相同的计算机302上驻留,但本领域的专业人员认识到,这些组件可以在通过网络通讯的分离计算机中存在。例如,专门***308可以采取因特网服务器(未画出)上的过程的形式,它返回完整的或部分的HTML(超文本标记语言)页形式的用户界面,适于在万维网浏览器中显示。
图4是专门***308的调用中执行步骤的流程图。在步骤402,应用程序306计算传递给专门***308的一组参数。术语“计算”意味着包括用户界面设计者预先确定的参数,或被应用程序306为某种目的收集、分析、修改的参数。在步骤404,应用程序306通过调用相关的专门***编码模块,并在相关参数中传递,来反映程序员的意图。专门***308产生并返回适当用户界面310的表示。在步骤406,应用程序306调用这个产生的用户界面310。应用程序306不知道产生的用户界面310将采取什么形式。应用程序306只知道它可以期望被通知用户界面什么时候完成处理,和交互作用的结果是什么。处理继续到步骤408,其中应用程序306可以使用与用户交互作用的结果,执行任何必要的操作。
对于专门***308,能够对应用程序306提供选项,使专门***308本身直接调用产生的用户界面310。在这种情况下,专门***308将返回与用户交互作用的结果而不是产生的用户界面310。从应用程序306的角度看,这样的选项有效地将步骤404和406结合到单一步骤中。
图5说明了过程500,其中专门***308已经从应用程序306接收到意图或用户界面目标324。在方块502,专门***308通过适当的机制,如函数调用接收用户界面目标324。与函数调用一起,专门***308在方块504接收与函数调用相联系的一组参数。
下面,在方块506,专门***308在多个编码模块334-338中选择一个编码模块,在多个用户界面目标中该编码模块对应于接收的用户界面目标。过程500下面进行到方块508,其中专门***308从选择的编码模块中的一组规则中选择规则。在选择的编码模块中,该组规则是编程确定的。每个编码模块334-338包括从用户界面设计的准则、约定和原理中提取的不同规则。这些提取的规则的例子在下面参考图6讨论。在选择了规则后,过程500进入方块510。这里,已经选择并且执行了选择的规则,专门***308从与选择的规则相联系的模板中产生用户界面。模块中的每个规则对应于不同的模板。
图6描述了编码模块和组件334的实现中的一组规则,这些规则被设计来处理使用户从选项列表中选择单一一项的一般目标。在这个例子中,专门***308产生图形用户界面,用于在Microsoft的Windows操作***上使用,遵从由Microsoft发布的准则,来确定哪种类型的控制对于任务是最适当的。当调用编码模块时,这种情况下的专门***308需要应用程序306提供选项列表326A。程序员可以可选地提供限制,限制专门***308产生的任何屏幕的尺寸(例如确保屏幕可以放入特定的显示或者预先存在的窗口)。专门***308然后确定哪种类型的用户界面最适于满足程序员的目标。
在步骤602,专门***308计算提供给用户的选项的数目。在步骤604,专门***308确定选项的计数是否是零。如果是零,那么用户将没有选择可作,在这种情况下,处理继续到步骤606,其中专门***308产生用户界面310,它不包含可视屏幕。在后面的调用中,这个用户界面310将立即返回应用程序306,将指示用户没有做出选择的结果传递回来。
如果计数大于零,那么处理继续到步骤608。这里,专门***308确定选择的计数是否刚好为一。如果是,那么处理继续到步骤610,其中专门***产生用户界面310,还是不包含可视的屏幕。在后面的调用中,这个用户界面310将立即返回给应用程序306,传递回结果,指示用户选择了唯一可获得的选择。
如果计数大于一,那么处理继续到步骤612。在这步中,专门***308确定计数是否小于八(即大于或等于二,并且还小于或等于七)。如果是,那么处理继续到步骤614,其中专门***308产生用户界面310。在后面的调用中,这个用户界面310将显示单一屏幕,使用选项按钮显示可获得的选项。这样屏幕的例子在图7中显示。
如果计数大于或等于八,那么处理继续到步骤616。在这步中,专门***308考虑是否对产生的用户界面可获得的垂直空间量有任何限制,并且如果是,那么是否有足够的垂直空间显示其中至少显示三项的单一选择列表框。如果有足够的空间,那么处理继续到步骤618,其中专门***308产生用户界面。在后面的调用中,这个用户界面310将显示单一屏幕,在单一选择列表框中显示可获得的选择。这样的屏幕的例子在图8中显示。
否则(如果列表框没有足够的空间),处理继续到步骤620,其中专门***308产生用户界面310。在后面的调用中,用户界面310显示单一屏幕,在下拉列表框中显示可获得的选择。这样的屏幕的例子显示在图9B中。一旦处理完成,专门***308就返回应用程序306,并且传递回产生的用户界面310。
图7是专门***308产生的图形用户界面屏幕的例子,其中用户被询问来选择四项之一。窗口702包含文本704,指示用户从选项按钮706、708、710和712中做出选择。在这个例子中,显示选项按钮706被选择。在给定的时间,只有选项按钮706、708、710和712之一可以被选择。用户选择按钮之一,然后点击OK按钮714,来指示他已经完成。窗口关闭,并且用户界面将用户的选择返回给应用程序306。如果用户在显示的屏幕状态按下OK按钮714,那么这个第一选项将返回给应用程序306。(这个选项将作为例如整数1返回,指示第一选择,或者对于选择的文本,返回文本串“红”。)如果相反用户点击Cancel按钮716,那么窗口关闭,并且调用程序被通知用户不做出选择。(例如,通过返回在可获得的选择组中不具有任何意义的特殊的零值,如整数-1。)
图8是专门***308产生的图形用户界面屏幕的例子,其中用户被询问选择十项之一。单一窗口802包含文本804,指示用户从包含十项的单一选择列表框806中做出选择(没有显示所有的十项)。列表框806只是高到足以显示八项。用户必须滚动列表框806来看到所有的项目。用户选择列表项目之一,然后点击OK按钮808来指示他已经结束。窗口关闭,并且用户界面将用户的选择返回给应用程序306。如果用户相反点击Cancel按钮810,那么窗口关闭,并且应用程序306被通知用户没有做出选择。
图9A-9B描述了专门***308产生的图形用户界面屏幕的另一个例子,其中用户再次被询问选择十项之一(没有显示所有的十项)。这里程序员对用户界面可以采用的输出显示尺寸建立一些限制。像图8中显示的屏幕一样,图9A中显示的窗口902包含文本904,指示用户做出选择。然而,这里没有足够的垂直空间来使用单一选择列表框806。在这种情况下,专门***308已经选择了更紧凑的选项表示,即下拉列表框906。下拉列表框906初始压缩为单一一行。通过点击下拉箭头908,用户可以扩展它来显示列表框914。这个列表框914显示部分可获得的选择。用户必须滚动列表来看到其余部分。用户选择列表框914中的项目之一,然后再次点击下拉箭头908,来将列表压缩为原始状态。然后用户点击OK按钮910,来指示他已经结束。窗口关闭,用户界面将用户的选择返回给应用程序306。如果用户点击Cancel按钮612,那么窗口902关闭,并且应用程序被通知用户不做出选择。
专门***308是可与程序员建立的程序分离的部分,并且可以分离地更新,或者另外修改。由此,相同机器上的多个程序可以调用专门***308的相同实例。在后面的版本中,随着专门***308被以另外的用户界面知识改进或修改时,专门***308可能会做出不同的决定。对于给出的相同意图或用户界面目标、参数组、和外部因素,不同版本的专门***308会产生不同的用户界面。
在构成复杂用户界面的过程中,专门***308会递归地调用其本身,来构成部分用户界面。例如,能够产生具有多个屏幕的复杂图形用户界面的编码模块,会调用其它编码模块,来产生各自的屏幕。
程序员会满意地利用专门***308中存在的用户界面设计原理的知识。程序员还会通过建立新的编码模块,并且将它们加入专门***308本身中,而具有编写用户界面设计原理的新知识的能力(可能在一些特定的领域)。这使知识对其他程序员也是可获得的。
本发明的优选实施例被说明和描述,应该理解,在所附权利要求书的范围内,其中可以进行各种改变,而不用从本发明的思想和范围中分离出来。
Claims (13)
1.一种***,用于产生用户界面,从而使用户可以与计算机***交互作用,该***包括:
应用程序,具有不完整的用户界面,并且适于存储应用程序的用户界面设计者的多个意图,每个意图包括一组参数并且是从其中包括将问题显示给用户,对用户表示一段信息以及确定用户执行的任务的组中选择的,当一个或多个意图实现时,应用程序的不完整的用户界面完成;和
专门***,具有一个或多个组件,用于实现多个意图,所述专门***接收多个意图之一,并且每个接收的意图识别并启动用于实现接收的意图的相应部分,每个相应的组件可编程地包含从用户界面设计的一组准则、约定和原理中提取的一组规则,提供给每个接收的意图的参数组帮助相应的组件选择并执行该组规则中的某个规则,每个规则从与其它规则使用的其它模板不同的模板中产生一个用户界面。
2.根据权利要求1的***,其中产生的用户界面从图形用户界面、命令行界面和音频用户界面组成的组中选择。
3.根据权利要求1的***,进一步包括外部因素的来源,外部因素的来源包含与应用程序的操作环境的相关的信息以及用户的背景,来帮助相应组件选择并执行该组规则中的规则。
4.根据权利要求3的***,其中每个外部因素是从包含下列内容的组中选出的:运行应用程序的计算机类型,应用程序运行的操作***类型,可获得的输入设备类型,可获得的输出设备类型,用户的背景,其它软件的存在,和***外部的其它事实。
5.根据权利要求1的***,其中参数组中的每个参数是从包含下列内容的组中选出的:文本信息,用户被期望从中做出选择的选项组,用户被允许操作的数据段,对用户提出问题的缺省响应,用户需要响应问题的指示,用户可以从响应问题中退出的指示,响应于与用户的交互作用而期望被接收的数据类型,在产生的用户界面尺寸上的一组限制,和产生的用户界面会采用的视觉类型的指示。
6.一种方法,用于由专门***为与计算机***交互作用的用户产生用户界面:
由专门***接收用户界面目标,用户界面目标是从提给用户的问题,与用户通讯的一段信息,和由用户执行的任务组成的组中选择的;
由专门***接收一组参数,各参数是从表示给用户的信息,由用户执行的任务的信息,限制产生的用户界面的信息组成的组中选择的;并且
通过从编码模块组中选择编码模式,产生用户界面,每个编码模块被设计为从多个模板中产生用户界面,选择编码模块的操作包括在从用户界面设计的准则、约定和原理提取的一组规则中选择规则,通过一组参数辅助选择规则的操作,当执行选择的规则时,从模板中产生用户界面。
7.根据权利要求6的方法,进一步包括由专门***有选择地检查外部因素组,从计算机***的操作环境和用户的背景中选择每个因素,由外部因素组帮助进一步选择规则的操作。
8.根据权利要求6的方法,其中用户界面目标是从包括下列内容的组中选出的:使用户提供单一文本串,使用户提供单一数字,使用户从列表中拾取单一一项,使用户从列表中拾取若干项,使用户在列表中以优选的顺序安排项目,使用户管理项目列表,使用户在规定的结构中组织项目列表,以及使用户对列表中项目的选择应用程序一个或多个操作。
9.根据权利要求6的方法,其中当其它应用程序运行时,在运行时间执行所述方法。
10.根据权利要求6的方法,其中在设计时间执行该方法,使方法产生的用户界面存储在存储介质上。
11.根据权利要求6的方法,其中产生的用户界面包括分页函数。
12.一种用于产生适于做出用户界面的适当指令的***,包括:
a)应用程序,响应用程序户界面设计者的输入,产生至少一个意图,所述至少一个意图包括一组相关的参数;和
b)专门***,用于接收所述至少一个意图,和所述相关的参数组,所述专门***包括多个编码模块,每个所述编码模块包括一组规则,每个所述规则包括一个模板,响应于接收所述至少一个意图和所述相关的参数组,所述专门***:
i)对于所述多个编码模块选择编码模块;
ii)从包括在所述选择的编码模块中的所述规则组中,选择规则;并且
iii)根据与所述选择的规则相关的模板,产生用户界面指令。
13.一种对于计算机上运行的应用程序产生用户界面的方法,其中计算机具有相关的显示器,所述方法包括:
a)响应用程序户界面设计者的输入,所述应用程序产生至少一个意图,所述至少一个意图具有一组相关的参数;
b)将所述至少一个意图和它的相关参数组提供给专门***;
c)响应于接收所述至少一个意图和它的相关参数组,所述专门***:
i)从多个编码模块中选择编码模块;
ii)从选择的编码模块中的一组规则中选择规则;
iii)从与选择的规则相联系的模板中,产生用户界面指令;
d)将所述用户界面指令提供给所述应用程序;并且
e)响应于接收所述用户界面指令,所述应用程序在所述显示器上产生用户界面。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US27200601P | 2001-02-27 | 2001-02-27 | |
US60/272,006 | 2001-02-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1387105A true CN1387105A (zh) | 2002-12-25 |
Family
ID=23037996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02141345A Pending CN1387105A (zh) | 2001-02-27 | 2002-02-27 | 产生用户界面的专门*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US7013297B2 (zh) |
EP (1) | EP1237076A3 (zh) |
JP (1) | JP4718747B2 (zh) |
CN (1) | CN1387105A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1316406C (zh) * | 2003-03-12 | 2007-05-16 | 精工爱普生株式会社 | 布局***和布局方法 |
CN100334552C (zh) * | 2003-05-16 | 2007-08-29 | 北京北方格林电子技术有限责任公司 | 界面设计和任务处理分离的*** |
CN100375018C (zh) * | 2004-10-21 | 2008-03-12 | 国际商业机器公司 | 动态确定对网络主页gui环境中选定项执行的动作的方法 |
CN1760841B (zh) * | 2004-10-15 | 2012-05-23 | 微软公司 | 使用户界面元素可见的***和方法 |
WO2015036889A1 (en) * | 2013-09-10 | 2015-03-19 | Belegin Limited | Method and apparatus for generating a plurality of graphical user interfaces |
CN110785740A (zh) * | 2017-06-16 | 2020-02-11 | 微软技术许可有限责任公司 | 基于规则的用户界面生成 |
CN112638806A (zh) * | 2018-08-28 | 2021-04-09 | 蒂森克虏伯电梯创新与运营有限公司 | 电梯控制和用户界面*** |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6931591B1 (en) * | 1999-10-15 | 2005-08-16 | Saepio Technologies, Inc. | Publishing layout wizard |
US8290809B1 (en) | 2000-02-14 | 2012-10-16 | Ebay Inc. | Determining a community rating for a user using feedback ratings of related users in an electronic environment |
US7428505B1 (en) | 2000-02-29 | 2008-09-23 | Ebay, Inc. | Method and system for harvesting feedback and comments regarding multiple items from users of a network-based transaction facility |
US9614934B2 (en) | 2000-02-29 | 2017-04-04 | Paypal, Inc. | Methods and systems for harvesting comments regarding users on a network-based facility |
US20020078152A1 (en) | 2000-12-19 | 2002-06-20 | Barry Boone | Method and apparatus for providing predefined feedback |
US20040080545A1 (en) * | 2002-10-28 | 2004-04-29 | International Business Machines Corporation | Method for dynamic accessibility of a drop-down selection in a GUI combobox construct |
US7426703B2 (en) | 2003-08-27 | 2008-09-16 | Microsoft Corporation | Hierarchical navigation layers for wizards |
US7925611B1 (en) * | 2003-09-25 | 2011-04-12 | Rockwell Automation Technologies, Inc. | Graphical user interface |
US7752559B1 (en) | 2003-12-05 | 2010-07-06 | The Mathworks, Inc. | Graphical model preparation for embedded deployment |
JP2005196291A (ja) * | 2003-12-26 | 2005-07-21 | Fujitsu Ltd | ユーザインタフェースアプリケーション開発プログラム、および開発装置 |
US7975240B2 (en) * | 2004-01-16 | 2011-07-05 | Microsoft Corporation | Systems and methods for controlling a visible results set |
US20050177814A1 (en) * | 2004-01-26 | 2005-08-11 | Martlage Aaron E. | System for providing a graphical representation of user interface and executable application operation |
US7007245B2 (en) * | 2004-03-12 | 2006-02-28 | Chevron U.S.A. Inc. | Product selection expert system |
US8453065B2 (en) | 2004-06-25 | 2013-05-28 | Apple Inc. | Preview and installation of user interface elements in a display environment |
US8302020B2 (en) | 2004-06-25 | 2012-10-30 | Apple Inc. | Widget authoring and editing environment |
US7490295B2 (en) | 2004-06-25 | 2009-02-10 | Apple Inc. | Layer for accessing user interface elements |
US8566732B2 (en) | 2004-06-25 | 2013-10-22 | Apple Inc. | Synchronization of widgets and dashboards |
US20070055932A1 (en) * | 2005-09-02 | 2007-03-08 | Microsoft Corporation | Application programming interfaces for graphical user interfaces |
US20070079309A1 (en) * | 2005-09-30 | 2007-04-05 | David Schmidt | Task generation using information handling system |
US7954064B2 (en) | 2005-10-27 | 2011-05-31 | Apple Inc. | Multiple dashboards |
US7752556B2 (en) | 2005-10-27 | 2010-07-06 | Apple Inc. | Workflow widgets |
US9104294B2 (en) | 2005-10-27 | 2015-08-11 | Apple Inc. | Linked widgets |
US7743336B2 (en) | 2005-10-27 | 2010-06-22 | Apple Inc. | Widget security |
US8543824B2 (en) | 2005-10-27 | 2013-09-24 | Apple Inc. | Safe distribution and use of content |
US7707514B2 (en) | 2005-11-18 | 2010-04-27 | Apple Inc. | Management of user interface elements in a display environment |
US8806347B2 (en) * | 2005-12-27 | 2014-08-12 | Panasonic Corporation | Systems and methods for providing distributed user interfaces to configure client devices |
US20070288279A1 (en) * | 2006-06-07 | 2007-12-13 | Microsoft Corporation | Entering And Using Time Ranges |
US8869027B2 (en) | 2006-08-04 | 2014-10-21 | Apple Inc. | Management and generation of dashboards |
JP4881102B2 (ja) * | 2006-08-15 | 2012-02-22 | 富士通株式会社 | 選択系gui部品の表示方法及び表示制御装置 |
US8146006B2 (en) * | 2006-12-01 | 2012-03-27 | International Business Machines Corporation | Method and apparatus for obtaining user interface information from executable program code |
US20080168367A1 (en) * | 2007-01-07 | 2008-07-10 | Chaudhri Imran A | Dashboards, Widgets and Devices |
US7962443B2 (en) * | 2007-02-08 | 2011-06-14 | Interactive Documents, Llc | Method and system for replacing data in a structured design template |
CN100504771C (zh) * | 2007-06-08 | 2009-06-24 | 腾讯科技(深圳)有限公司 | 一种生成应用程序界面的方法及*** |
US8954871B2 (en) | 2007-07-18 | 2015-02-10 | Apple Inc. | User-centric widgets and dashboards |
US8667415B2 (en) | 2007-08-06 | 2014-03-04 | Apple Inc. | Web widgets |
CN101884026A (zh) * | 2007-12-17 | 2010-11-10 | 诺基亚公司 | 附件配置和管理 |
US20090271742A1 (en) * | 2008-04-29 | 2009-10-29 | Rui Zhang | User interface navigation design system |
US20100125541A1 (en) * | 2008-11-14 | 2010-05-20 | Andreas Werner Wendel | Popup window for error correction |
US20100251118A1 (en) * | 2009-03-26 | 2010-09-30 | Peterson Michael L | Help utility with expanded content display |
JP2011253374A (ja) * | 2010-06-02 | 2011-12-15 | Sony Corp | 情報処理装置、および情報処理方法、並びにプログラム |
US8370767B2 (en) * | 2010-06-22 | 2013-02-05 | Microsoft Corporation | List authoring surface |
US9009592B2 (en) | 2010-06-22 | 2015-04-14 | Microsoft Technology Licensing, Llc | Population of lists and tasks from captured voice and audio content |
US20130067365A1 (en) * | 2011-09-13 | 2013-03-14 | Microsoft Corporation | Role based user interface for limited display devices |
US10192176B2 (en) | 2011-10-11 | 2019-01-29 | Microsoft Technology Licensing, Llc | Motivation of task completion and personalization of tasks and lists |
JP5853828B2 (ja) * | 2012-03-30 | 2016-02-09 | 富士通株式会社 | ワークフロー作成方法、プログラム |
US9858052B2 (en) * | 2013-03-21 | 2018-01-02 | Razer (Asia-Pacific) Pte. Ltd. | Decentralized operating system |
US10394533B2 (en) | 2013-09-30 | 2019-08-27 | The Mathworks, Inc. | Reusable component in a modeling environment |
JP6032250B2 (ja) * | 2014-07-31 | 2016-11-24 | キヤノンマーケティングジャパン株式会社 | プログラム生成装置、情報処理装置、制御方法、およびプログラム |
US10380656B2 (en) | 2015-02-27 | 2019-08-13 | Ebay Inc. | Dynamic predefined product reviews |
US9952837B1 (en) * | 2015-04-01 | 2018-04-24 | The Mathworks, Inc. | Reusable component in a modeling environment |
US10503341B2 (en) * | 2015-07-09 | 2019-12-10 | International Business Machines Corporation | Usability analysis for user interface based systems |
US10521502B2 (en) * | 2016-08-10 | 2019-12-31 | International Business Machines Corporation | Generating a user interface template by combining relevant components of the different user interface templates based on the action request by the user and the user context |
CN107846321B (zh) * | 2016-09-19 | 2022-03-11 | 阿里巴巴集团控股有限公司 | 一种接口的监控方法、装置及电子设备 |
CN110546582B (zh) | 2017-04-13 | 2022-07-26 | 三菱电机株式会社 | 显示画面生成装置、工厂自动化***、及显示画面生成方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5903454A (en) | 1991-12-23 | 1999-05-11 | Hoffberg; Linda Irene | Human-factored interface corporating adaptive pattern recognition based controller apparatus |
US5644686A (en) | 1994-04-29 | 1997-07-01 | International Business Machines Corporation | Expert system and method employing hierarchical knowledge base, and interactive multimedia/hypermedia applications |
US6434578B1 (en) | 1996-06-26 | 2002-08-13 | Microsoft Corporation | Generating instruction sequences using independently executable pane renderers |
US6021403A (en) * | 1996-07-19 | 2000-02-01 | Microsoft Corporation | Intelligent user assistance facility |
US5877759A (en) * | 1997-03-26 | 1999-03-02 | Netscape Communications Corporation | Interface for user/agent interaction |
US8121891B2 (en) * | 1998-11-12 | 2012-02-21 | Accenture Global Services Gmbh | Personalized product report |
US6029158A (en) * | 1998-12-22 | 2000-02-22 | Ac Properties B.V. | System, method and article of manufacture for a simulation enabled feedback system |
-
2002
- 2002-02-26 US US10/083,022 patent/US7013297B2/en not_active Expired - Fee Related
- 2002-02-27 CN CN02141345A patent/CN1387105A/zh active Pending
- 2002-02-27 JP JP2002051972A patent/JP4718747B2/ja not_active Expired - Fee Related
- 2002-02-27 EP EP02004515A patent/EP1237076A3/en not_active Ceased
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1316406C (zh) * | 2003-03-12 | 2007-05-16 | 精工爱普生株式会社 | 布局***和布局方法 |
CN100334552C (zh) * | 2003-05-16 | 2007-08-29 | 北京北方格林电子技术有限责任公司 | 界面设计和任务处理分离的*** |
CN1760841B (zh) * | 2004-10-15 | 2012-05-23 | 微软公司 | 使用户界面元素可见的***和方法 |
CN100375018C (zh) * | 2004-10-21 | 2008-03-12 | 国际商业机器公司 | 动态确定对网络主页gui环境中选定项执行的动作的方法 |
WO2015036889A1 (en) * | 2013-09-10 | 2015-03-19 | Belegin Limited | Method and apparatus for generating a plurality of graphical user interfaces |
CN110785740A (zh) * | 2017-06-16 | 2020-02-11 | 微软技术许可有限责任公司 | 基于规则的用户界面生成 |
US11809217B2 (en) | 2017-06-16 | 2023-11-07 | Microsoft Technology Licensing, Llc | Rules based user interface generation |
CN110785740B (zh) * | 2017-06-16 | 2024-06-11 | 微软技术许可有限责任公司 | 基于规则的用户界面生成 |
CN112638806A (zh) * | 2018-08-28 | 2021-04-09 | 蒂森克虏伯电梯创新与运营有限公司 | 电梯控制和用户界面*** |
Also Published As
Publication number | Publication date |
---|---|
US20020118225A1 (en) | 2002-08-29 |
EP1237076A3 (en) | 2006-10-11 |
US7013297B2 (en) | 2006-03-14 |
JP4718747B2 (ja) | 2011-07-06 |
JP2003015874A (ja) | 2003-01-17 |
EP1237076A2 (en) | 2002-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1387105A (zh) | 产生用户界面的专门*** | |
CN1255709C (zh) | 提供自适应用户输入过滤的配置和定制的方法及设备 | |
CN1301482C (zh) | 便于模式识别的***和方法 | |
CN1152346C (zh) | 图像检测操作者输入装置 | |
CN1530817A (zh) | 有效内容的向导:任务和结构内容的执行 | |
CN101164054B (zh) | 自动提示列表和手写输入 | |
CN1141635C (zh) | 多字节字符语言的触摸屏键盘输入方法和计算机*** | |
CN1696937B (zh) | 智能自动填充 | |
CN1855009A (zh) | 可搜索控制模板功能的基于任务的界面 | |
CN1702621A (zh) | 采用表的语言的本地化 | |
CN100530085C (zh) | 实现虚拟语音一键通功能的方法和装置 | |
CN1828526A (zh) | 商务过程中的自动用户界面更新 | |
GB2546359A (en) | Interactive electronic assistant | |
CN1749960A (zh) | 具有改进的醒目性的活动内容向导执行 | |
CN101421776B (zh) | 用于生成内容的自动图像捕捉 | |
CN1855040A (zh) | 带有可重用得分和建议的可重据用数的资源创作 | |
CN1550980A (zh) | 对象层次结构内对象创建的***和方法 | |
CN1647023A (zh) | 语音控制的数据输入 | |
CN1607491A (zh) | 使用操纵杆输入中文的***和方法 | |
CN1811771A (zh) | 利用文档的物理表现的自适应文档管理*** | |
CN1524218A (zh) | 用于遗留软件与屏幕朗读器程序之间的互操作的方法和装置 | |
CN1969272A (zh) | 自动生成内容的导入 | |
CN1856796A (zh) | 框式和行式输入屏面 | |
CN1838148A (zh) | 电子设备和记录介质 | |
CN100345105C (zh) | 办公应用程序中用于提供内容相关帮助信息的方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20021225 |