使用拖放接口联系控制与应用的系统的制作方法

文档序号:6415872阅读:189来源:国知局
专利名称:使用拖放接口联系控制与应用的系统的制作方法
技术领域
本发明涉及计算机软件接口方法的领域,具体说涉及改进应用程序的方法。
许多计算机应用程序使用相似的功能操作。例如,大多数应用程序对文件执行操作,因此提供用户打开文件、建立新文件、保存文件和在不同文件名下保存文件的功能。在面向对象的技术广泛应用之前,对应用程序的改进用了很长时间。除非用户可以得到应用程序的源代码,否则该应用程序的用户不能对其改进。但是,即使有了源代码,对应用程序的改进仍需要改变该源代码,接着要反复进行调试、重建,直到改进的应用程序正常工作。没有源代码的用户为应用程序以新版本形式出现的改进必须等待若干年月。此外,由出版商进行的改进在用户的控制之外。应用程序可能最后具有用户不感兴趣的改进,或者完全没有该用户希望的改进。
面向对象的编码的出现使得用户可能编写处理特定问题的对象(例如在打开文件功能的场合,确定用户希望打开的文件的名字)。然而对于大多数情况,即使面向对象的系统也不允许用户对现有程序增加控制。此外,就是面向对象的系统也有编译和重建阶段,大多数用户仍然要为改进等待数月之久。
一些出版商提供可以在安装时修改其它应用程序的应用程序。可以使用具有新功能的新应用程序来更新现有应用程序,它可以通过结合该新功能而改进。使用可以修改现有应用程序的代码的程序实现这一更新。该程序在安装时插入现有应用程序中。例如,一些程序在安装包中具有提示用户是否给微软公司的字处理软件增加菜单选择(和热键)的代码。问题在于,这一更新需要安装,而且它需要新程序有对第一程序如何工作的多方面的知识(其菜单和热键如何建立,以及它如何插入内容的知识)。
对用户来说,能够在一个应用程序发布后对其进行改进而不必重新编译代码,将是十分希望的。
对用户来说,能够通过从一个不同的程序复制这样的改进给应用程序增加改进,将是十分希望的。
鉴于上述,本发明的一个目标是一个系统,用以给在计算机系统中的应用程序增加特征,该计算机系统包括处理单元、响应用户的选择设备和显示屏幕。该系统包括在处理单元中执行的应用程序。该应用程序由一个显示窗口表示,具有一个应用接口。
该系统包括具有控制接口的控制表示。当用户使用选择设备选中该控制表示时,该控制表示能进行操作执行控制。该控制表示可由用户动作移动到应用程序,并当该应用程序接口与控制接口兼容时进一步操作以在该应用程序执行期间执行控制功能。以这种方式,先前对该应用程序不能得到的控制功能成为该应用程序的一部分。
本发明的另一目标是一种方法,用以更新对应用程序的控制,该方法包括在显示屏幕上为该应用程序提供显示窗口和应用程序接口以及提供用于执行该应用程序不能使用的功能的控制表示的步骤。该控制表示具有一个控制接口和在与该应用程序的显示窗口分开的显示屏幕的一部分中的控制图象。用户通过将指示符保持在控制图象上、移动控制图象到应用程序显示窗口内的某区域、在应用程序显示窗口内的该区域释放控制图象,来选取该控制表示。于是允许与控制表示关联的功能。
因此,本发明的一个目的是提供一个系统,它允许用户给应用程序增加改进,无需改变和重新编译代码。
本发明的另一个目的是提供一个系统,它通过从一个应用程序移动某功能的对象表示到另一应用程序中给另一应用程序增加前一应用程序的功能。
从下面详细的描述中、结合考虑附图,熟悉本技术领域的人会清楚本发明的上述特征、目的和优点,附图中相似的参考标号在所有的图中表示相似的部件,其中

图1是本发明在其中找到特别应用的计算机系统的方框图。
图2是具有两个应用程序的显示窗口的显示屏幕。
图3是图2中的显示屏幕的放大视图,它是在根据本发明从一个程序移动控制图符到另一个程序后绘制的。
图4是根据本发明的一个优选方法的流程图。
图5是为实现图4流程图的伪代码。
图6是为实现图4流程图中检验共享接口的另一方法的伪代码。
图7A和7B是在完成同样任务的不同应用程序中不同类的Java清单。
下面的说明参考附图,附图中相似的元件通篇由相似的号码表示。虽然说明了当前优选的系统,但是本技术领域中具有普通技能的人理解,在不离开本发明的范围下,其它的实施例也是可能的。
面向对象的技术的改进导致计算机系统中图形用户接口的激增。图形用户接口不需学习复杂的指令和命令集,使计算机更容易使用。代替指令和命令集的是画面或对象和选择和指点设备。轻松地观看图象和选择表达要执行的一种功能的对象,减少掌握应用程序的时间。
虽然由于面向对象的技术的改进产生出大量图形用户接口,但是面向功能的软件并未完全消失。许多正在开发的软件既包括面向对象的也包括面向功能的软件元件。虽然后面的说明集中在面向对象的系统,但是本技术领域中具有普通技能的人理解,使用面向功能的元件来实现本发明的目的仍在本发明的范围之内。
图1是在本发明的一个优选实施例中的计算机系统10的方框图。图1中的计算机系统包括操作系统20,应用程序级30,用户接口40,拖控制器44,Java解释程序50,和I/O管理程序60。计算机系统10可以是使用任何处理器的计算机系统。在一个优选实施例中,计算机系统10使用具有足够处理能力和速度的处理器(未示出)操作,以便每分钟绘制和重绘数百个图象。存储器(未示出)必需足够以应付图象数据通常占据的大量存储器。
操作系统20管理基本服务,诸如存储器、时钟、初始化和电源管理。在本实施例中的操作系统包括对图形用户接口的访问。该操作系统优选包括多任务特征,诸如实时先占多重处理。一个例子是OS-9000操作系统。
应用程序级30包括所有已经安装在计算机上运行的计算机应用程序。这些应用程序包括记事本31、计算器32、时钟33、Web浏览器34、电话35和字处理程序36。所有应用程序优选以同样的面向对象的编程语言编写来保证其可移植性。应用程序作为在面向对象的环境中的对象编程。为应用程序的对象优选包括定义由该应用程序执行的方法或功能的接口。在一个优选的实施例中,所有应用程序用Java编程语言编写。有关Java编程语言的更多信息可以通过参考Arnold和Gostling所著“Java编程语言”而获得,该书在1996年由Addison-Wesley出版。
I/O管理程序60提供在输入/输出设备和系统其它部件之间的接口。在图1的计算机系统10中,I/O管理程序60与键盘62、串行线64、触摸屏66、显示屏幕68和选择设备70接口。选择设备70理解为包括任何能够控制屏幕上的一个指示符并选择和调用屏幕对象的设备,诸如鼠标、带有按钮的滚动球、触摸板和任何其它适宜的设备。
用户接口40引起对象的图符或图形图象显示在显示屏幕上,并当用户使用指示符选择屏幕上的该对象时调用与该对象关联的功能。用于对象的图形图象可以包括按钮、滚动条、下拉式菜单、单选按钮和其它公知的对象。在一个优选实施例中,用户接口40调用与以Java定义的类关联的功能。
对象可以作为在应用程序中的控制表示46显示和被包含以提供用户容易地调用由该应用程序执行的功能的方法。用户接口40允许用户选择控制表示46以执行与其关联的功能。每一控制表示46包括一个控制接口,它定义由应用程序执行的方法或功能。在一个优选实施例中,每一控制表示46实现检验该控制表示被放入的应用程序的功能或接口匹配它自己的控制接口的程度的处理。下面将进一步参考图4说明,控制表示46通过保证其被放入的应用程序执行由该控制表示46执行的所有方法而检验其功能。
在一个优选实施例中,用户接口40包括一个拖控制器44,用于执行一个对象从屏幕上的一个位置到另一位置的移动。拖控制器44作为为处理在对象移动中使用的信息的中心位置操作。优选拖控制器44存储关于用户为移动而选择的对象的信息。拖控制器44还决定目标对象,诸如一个控制表示46要移动进去的应用程序,是否可以接收控制表示46。
Java解释程序50将类和应用程序转换成要由处理器执行的本地代码。在另一可选的实施例中,可以采用使用或不使用解释程序的编程语言。
图2和3表示图1的计算机系统10如何允许用户在应用程序之间拖放控制的例子。图2表示两个应用程序的两个显示窗口100和150。第一显示窗口100是为一个游戏应用程序,第二显示窗口150属于一个调试应用程序。第一显示窗口100包括控制板120,它是一个包括标以NEW110、HINT112和SKIP114的控制表示的对象。
看来好象显示窗口100的游戏应用程序发运时无QUIT功能。不用改变源代码然后重新编译,用户可以通过本发明增加QUIT功能,通过从具有QUIT功能的一个应用程序中选择它,如果QUIT功能的控制接口与游戏应用程序的控制接口一样的话。用户通过使用指示符102在第二显示窗口150中选择QUIT130的控制表示、沿一个路径诸如140移动该控制表示、并将其放入第一显示窗口100的控制板120中,增加该功能。图3表示在该控制板120中的该新控制表示160。然后允许该QUIT功能,使得当按压该控制表示时游戏应用程序停止。
QUIT功能被允许,是因为QUIT控制表示和该应用程序具有同样的接口,它意味着每一个可以执行一定的事务处理。例如,如果用户希望从一个应用程序向另一个应用程序传输拼写检查功能,则拼写检查控制将必须能够请求一个文件和如何返回新(改变了的)文件。接收拼写检查控制的应用程序不需要知道该拼写检查程序如何工作。该应用程序具有一个接口,它看待该控制作为一个用之可以交换文件的对象。
在晚一些时候,可能为一个新应用程序使用同样的接口书写另一控制表示。例如,新应用程序可以包括为翻译英语文件为法语的翻译到法语控制。它可以以在图2和3中表示的方式被拖放入现有的应用程序中并恰当执行。图2和3所示处理的一个优点是可以增加法语翻译功能而不必经历另一程序的安装过程和无需修改和重新编译该应用程序的源代码。
可能现有应用程序不与该控制表示的控制接口共享接口(例如翻译到法语控制)。在这种场合,程序将不知道如何执行一定的功能诸如如何交换文件。在这一场合,仍然可以在程序中拖放控制;然而,该控制表示将感知缺少兼容性而禁止自己,因为它不能与现有应用程序通信。
图4表示在图2和3中说明的进程的流程图。在步骤s1,用户开始从第一应用程序拖动一个控制到第二应用程序。该拖动一开始,该对象就使用拖控制器44(示于图1)登记自己。当该控制移动时,拖控制器44与在屏幕上的其它对象通信,以确定当前位置是否是有效的释放位置。用户在可以接收它的新控制板120(示于图2)上释放该控制表示。在步骤s2,拖控制器44发送该控制给控制板120。在步骤s3,第二应用程序产生该控制的一个实例。在产生这一实例时,第二应用程序把该控制对象复制并开始与其接口。在步骤s4,控制板120从该控制接收配置信息,以便使其可以保存在该应用程序的配置中。在步骤s5,控制板把该控制放入其内并在需要时调整它自己重新布局,以保证所有控制适当地看见和显示。在步骤s6,该控制然后询问应用程序以确定它是否有用于该控制的所有必需的方法。在决策框d6,如果该接口共享,则在步骤s7使该控制允许。在决策框d6,如果该控制不共享,则在步骤s8该控制使自己被禁止。
在图4的步骤s6,控制经过它将需要的每一接口,或方法(或处理,功能,消息等),并试图找到在应用程序中定义的同样的方法。该控制不需要获得每一种方法的实现,仅需要其定义。
图4中的流程图可以使用相似于图5所示的伪代码实现。图5指示执行的步骤和执行这些步骤的对象。
可以使用对步骤s6另一可选的实现方案来确定应用程序和控制是否共享足够的功能。例如,在步骤s6的处理可以通过使用标准接口,诸如CUT/COPY/PASTE接口而简化。如果控制表示46确定该标准接口的某功能(例如CUT功能)是共享的,则标准接口的该功能被认为是共享的。可以使用Java关键字implements来确定功能是否共享。Implements的使用例由图6的伪代码表示。图6中的伪代码可以用于图4流程图中的步骤s6。
控制可以获得确定它是否与来自应用程序类的应用程序共享足够功能需要的信息。很像接口定义在一个类内存在什么方法一样,该类也定义什么方法存在。然而该类也定义方法的说明。例如,图7A是为称为“CurrencyUpdateInterface”的类的Java清单。
如果一个控制需要在应用程序中的那些方法,则它可为此测试执行第一行if(application implements CurrencyUpdateInterface)…假定存在由XYZ公司出售的图7B中定义的商业包。图7A和7B的比较表示两个CurrencyUpdateInterface做同样的事情。但是,因为接口不同,所以该控制在应用程序中不允许自己。可以使用下述语句使XYZ的产品在图7A所示程序中工作第二行if((application implements CurrencyUpdateInterface)*or*(application instanceof XYZCurrencyUpdater))...
通过给作为本发明的程序实现的程序XYZ增加第二行,将支持两个接口。
熟悉本技术领域的人理解,不离开本发明的范围,可以有另外的实施例。另外,可以对上述实施例进行大范围的改变和修改。因此,上述叙述仅为说明而不是限制本发明,而下面的权利要求,包括所有等价物,定义本发明。
权利要求
1.给应用程序增加功能部件的系统,包括计算机系统,它包括处理单元,响应用户的选择设备和显示屏幕;在处理单元中执行并由在显示屏幕上的一个显示窗口表示的应用程序,该应用程序具有应用程序接口;以及具有控制接口的控制表示,当用户使用选择设备选择所述控制表示时该控制表示进行操作而执行控制功能,所述控制表示可由用户移动到所述应用程序,和当该应用程序接口与该控制接口兼容时进行操作,在该应用程序执行期间执行控制功能,从而允许先前对该应用程序不可获得的控制功能。
2.权利要求1所述系统,另外包括由第二显示窗口表示的第二应用程序,所述控制表示是第二应用程序的一部分,使得该控制表示从第二应用程序移动到第一应用程序。
3.权利要求1所述系统,另外包括由第二显示窗口表示的第二应用程序,所述控制表示位于第二显示窗口内;以及控制表示包括接口控制程序,用于维护一组接口定义和为在允许第一应用程序中的控制表示前检验该组中第一应用程序接口。
4.权利要求3所述系统,其中,所述控制表示通过检验第一应用程序的应用程序接口为该控制表示所知而允许操作该功能。
5.给一个应用程序增加控制的方法,该应用程序具有在显示屏幕上的显示窗口和为执行在该应用程序中不可获得的功能的控制表示,该控制表示在与该应用程序的显示窗口分开的显示屏幕的一部分内,所述方法包括步骤由用户动作移动该控制表示到在显示窗口内的一个选择区域;以及允许与该控制表示关联的功能。
6.权利要求5所述方法,其中,该控制表示包括一个控制接口,该应用程序包括一个应用程序接口,该方法另外包括步骤检验控制表示的控制接口是否相似于应用程序的应用程序接口;以及当控制表示的控制接口相似于应用程序的应用程序接口时允许该控制表示。
7.权利要求6所述方法,另外包括步骤在控制表示中维护一组替代接口;当控制表示的控制接口与应用程序接口不同时在由控制表示支持的该组替代接口中搜索应用程序接口;以及在该控制表示中指定一个替代控制接口用于操作在第一应用程序中的控制表示。
8.权利要求7所述方法,另外包括步骤定义一个新接口;以及把该新接口增加到由第一应用程序支持的该替代接口组中。
全文摘要
通过拖动控制到一个应用程序并把该控制放入其内而更新或改进该应用程序的系统。所述控制检验新应用程序接口是否和该控制接口相同。可以把公知的应用程序接口增加到控制中以支持使用多重接口。
文档编号G06F9/445GK1276889SQ98810427
公开日2000年12月13日 申请日期1998年10月1日 优先权日1997年10月21日
发明者B·G·莫恩, B·班克勒 申请人:艾利森公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1