[go: up one dir, main page]

CN1573691B - 自动生成并跟踪撤消信息的方法和系统 - Google Patents

自动生成并跟踪撤消信息的方法和系统 Download PDF

Info

Publication number
CN1573691B
CN1573691B CN200410061898XA CN200410061898A CN1573691B CN 1573691 B CN1573691 B CN 1573691B CN 200410061898X A CN200410061898X A CN 200410061898XA CN 200410061898 A CN200410061898 A CN 200410061898A CN 1573691 B CN1573691 B CN 1573691B
Authority
CN
China
Prior art keywords
user interface
interface object
changes
change
cancel
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
CN200410061898XA
Other languages
English (en)
Other versions
CN1573691A (zh
Inventor
S·P·伯克
B·K·佩平
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 CN1573691A publication Critical patent/CN1573691A/zh
Application granted granted Critical
Publication of CN1573691B publication Critical patent/CN1573691B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Retry When Errors Occur (AREA)
  • Processing Or Creating Images (AREA)

Abstract

自动生成并跟踪撤消信息以使用户界面对象的开发者无需负责生成并跟踪撤消信息的方法、系统和计算机程序产品。处理对可视化用户界面设计器内的对象的改变的改变通知。保持表示在改变之前的对象的初始状态的数据和表示在改变之后的对象的随后状态的数据。从所保持的数据,准备用于撤消对对象的改变的撤消单元。撤消单元可包括对对象作出的多个改变的处理。每一撤消单元可标识用于撤消和重复包括在撤消单元内的行动的相应例程。可以储存撤消单元直到接收撤消/重复通知,然后使用撤消单元来撤消/重复由撤消单元表示的改变。

Description

自动生成并跟踪撤消信息的方法和系统
技术领域
本发明涉及撤消基础结构,尤其涉及自动生成并跟踪撤消信息以使用户界面对象的开发者无需负责生成并跟踪撤消信息的方法、系统和计算机程序产品。
背景技术
撤消是一种人们熟悉的众多应用程序的特征。例如,电子表格和文字处理器通常允许撤消数据进入,如添加新数据、删除现有数据、剪切和复制操作以及数据格式化。重复是撤消的对应操作,在许多情况下在概念上等于撤消撤消操作。在一些实现中,重复允许重复最后一项操作。在本应用中,撤消用作包含撤消和重复操作的一般术语。
可视化用户界面设计器是允许开发者可视化地表示用户界面并从可视化表示自动生成至少一些相应的源代码的软件。在可视化用户界面设计器中实现撤消会遇到一些独特的障碍。例如,由于可能在可视化用户界面设计器中使用了许多不同类型的对象,因此实现撤消一般是每一对象的开发者的责任。许多撤消实现以类似的方式操作,使用“撤消单元”来表示可撤消工作的单个单元。一旦被创建,撤消单元被添加到栈,并且用户允许走查该栈来撤消由相应的撤消单元表示的行动。
撤消单元经常被设计为来回切换。即,调用撤消两次将返回至第一次调用之前的初始状态。由于撤消的复杂性,一般需要从基本向上写应用来支持撤消。例如,考虑如通过表I所示的伪代码来设置控制的文本(Text)属性。
表I
textProp.SetValue(control,“Hello”);
为使这一行动为可撤消的,将该行动封装进对象中,如由表II所示的伪代码说明的一个对象。
表II
Class TextPropUndoAction{string_newValue;Control_control;public TextPropUndoAction(Control control,string newValue){_control=control;_newValue=newValue;}public void DoAction(){string oldValue=(string)textProp.GetValue(control);textProp.SetValue(control,_newValue);_newValue=oldValue;}}
通常,开发者然后使用这一个类,如表III的伪代码所示。
表III
TextPropUndoAction a=new TextPropUndoAction(control,newValue);a.DoAction();undoStack.Push(a);
当表II和III所示的实现起作用时,开发者可以很容易地进行中断。注意,TextPropUndoAction是脆弱的-如果该对象要正确地撤消行动,控制的状态必须是一致的。例如,如果在其它地方有单个代码片断直接改变了控制文本属性(即,不是如表III所示,而是仅如表I所示),则TextPropUndoAction会中断。也许当缺乏经验的程序员未考虑特定的变化会如何影响撤消时,这在实践中时常发生。为进一步复杂化这一问题,如果由于某些原因撤消行动失败,为每一类实现正确的失败语义是一项令人害怕的任务。传统的撤消实现也无法提供对如表II所示的未实现撤消的第三方对象的撤消支持。
因此,渴望有能够自动生成并跟踪撤消信息以使用户界面对象的开发者无需负责生成和跟踪撤消信息的方法、系统和计算机程序产品。
发明内容
本发明涉及自动生成并跟踪撤消信息以使用户界面对象的开发者无需负责生成并跟踪撤消信息的方法、系统和计算机程序产品。依照本发明的示例实现,要处理对可视化用户界面设计器内的用户界面对象的一个或多个改变的一个或多个改变通知。例如,改变通知可包括正在添加或已添加通知、正在移除或已移除通知、正在改变或已改变通知、重命名通知等等。同时保持了表示一个或多个改变之前的用户界面对象的初始状态的数据和表示一个或多个改变之后的用户界面对象的随后状态的数据。从所保持的数据,能够准备用于撤消对用户界面对象的一个或多个改变的撤消单元。相反,对于常规的撤消实现,开发者手动地创建撤消单元,并且必须记住要创建并储存用于对可能向对象作出的所有改变的撤消单元。
撤消单元可包括对用户界面对象作出的多个改变的处理。每一撤消单元可标识用于撤消并重复撤消单元内包括的行动的相应的例程。撤消单元可以储存在例如栈中,直到接收到撤消或重复通知,然后用来撤消或重复由撤消单元所表示的改变。在使用过之后,将撤消单元删除,如通过将其从栈中移除。删除的撤消单元可以被储存为重复单元,并且删除的重复单元可以被储存为撤消单元。
下文将详细描述本发明的另外的特征和优点,并且阅读以下描述,可以部分清楚这些特征和优点,或者可以通过对本发明的实践学到。本发明的特征和优点可以通过所附权利要求书中特别指出的仪器和组合来实现并获取。阅读以下描述以及所附权利要求书,可以完全明白本发明的这些和其它特点,或者可以通过如后文所述的对本发明的实践来学到。
附图说明
为以能获取本发明的上述和其它优点和特征的方式来描述,参考附图中说明的具体实施例来更详细地描述上文所简要描述的本发明。应当理解,这些附图仅描述了本发明的典型实施例,因此并非对其范围的局限,通过使用附图来描述并解释本发明另外的特征和细节,附图中:
图1说明了本发明的示例实施例;
图2A-2B说明了对示例用户界面对象的改变的示例处理以及相应的撤消单元;
图3A-3B说明了对对话框用户界面对象的示例处理以及相应的撤消单元;
图4A-4C示出了依照本发明用于生成并跟踪撤消信息的方法的示例行动和步骤;以及
图5说明了为本发明提供合适操作环境的示例系统。
具体实施方式
本发明延及用于自动生成并跟踪撤消信息以使用户界面对象的开发者无需负责生成并跟踪撤消信息的方法、系统和相应的计算机程序产品。本发明的实施例可包括一个或多个专用计算机和/或一个或多个通用计算机,包括各种计算机硬件,如下文所详细讨论的。
图1说明了本发明的示例性实施例。不同于以往需要开发者对开发者的对象生成并跟踪撤消信息的撤消实现,撤消引擎140构造出用于出现在可视化用户界面设计器的设计表面110中的状态变化的撤消单元。因此,使用设计表面110的开发者无需负责生成并跟踪撤消信息。
撤消引擎140使用运行在设计表面110内的对象的以下特征。首先,关注的对象可以由设计器串行化器保持为某一格式。换言之,由于设计表面110的设计器加载器将对象读写到盘,设计器加载器能够将对象保持为某一格式。其次,当属性改变时,设计表面110内的对象引发属性改变通知。(如,见下文的设计器主机的讨论)。第三,可以使用处理来构造跨越多个较小行动的撤消单元及其相关的属性改变通知。使用这些特征,撤消引擎140能够自动构造它所需要的任意撤消单元。
撤消引擎140听从改变通知124来创建撤消单元,对于图1所示的示例实现,由改变通知服务生成改变通知,在对设计表面110内的对象作出改变时通知撤消引擎140。撤消单元本身,如撤消单元150,包括由串行化引擎130生成的串行化的对象状态。串行化引擎130是用于在向组件作出改变之前和之后保存属性和对象值的整体串行化服务的一部分。设计器主机用来跟踪处理。(例如,由于设计器表面110内的对象在被开发时不是必须的活动对象,设计器主机包围对象来接收并处理针对对象的用户输入。)由此,不需要代码来与撤消引擎交互,并且因此,创建对控制的文本属性的可撤消改变的开发者代码可以用表IV所示的伪代码说明,与表I所示的伪代码相同。
表IV
textProp.SetValue(control,“Hello”);
撤消引擎140处理所有别的事物。
也可以执行更复杂的交互。例如,考虑一种将控制居中的算法。在计算X和Y定位来放置该控制之后,布局算法能够在单个撤消行动中组合两个属性设置,如表V所示的伪代码所说明的。
表IV
using(DesignerTransaction t=host.CreateTransaction(“Center Control”)){PropertyDescriptorCollection props;props=TypeDescriptor.GetProperties(control);props[“X”].SetValue(control,newX);props[“Y”].SetValue(control,newY);t.Commit();}
整个居中过程进行如下。当在设计器表面110内选择用于居中控制的选项之后,开始处理通知122启动处理,并接收指示对象的状态将要改变的正在改变通知124。作为对处理122的相应,撤消引擎140创建撤消单元150,并且作为对正在改变通知124的响应,使用串行化引擎130来串行化(132)对象的未改变状态。撤消引擎140在撤消单元150内储存串行化的对象状态(例如,撤消单元152和154中的oldX和oldY)。一旦算法完成,已改变通知124指示对象的状态已改变,并且结束处理通知122指示处理的结束。作为对已改变通知124的响应,撤消引擎140使用串行化引擎130来串行化(132)对象的已改变状态,并在撤消单元150内储存已串行化的对象状态(例如,撤消单元152和154中的X和Y)。作为对结束处理通知122的响应,撤消引擎在撤消栈160上储存撤消单元150。
撤消引擎140将撤消单元150当作撤消和重复状态之间的来回切换。选择撤消将对象恢复到选择居中算法之前的位置,并从撤消栈160中删除撤消单元。由于撤消单元150包含了重复居中操作的足够信息,可以将撤消单元放置在重复栈中。选择“重复”会再次执行居中操作,并从重复栈中删除撤消单元(现在为重复单元,因为它位于重复栈中)。
串行化引擎130能够执行两种类型的串行化。对于添加和移除操作,串行化引擎130创建所期望的新组件。然而,对于属性改变,串行化引擎130仅串行化表示该改变所必需的改变。通过尽可能地避免创建新组件,消除了完整组件创建的额外开销,来提高撤消引擎的性能。
以下表V和VI中示出了用于撤消引擎140的示例实现的各种类和方法的伪代码描述。表V所示的UndoEngine类是抽象类,因此能够与撤消存储实现,如撤消栈、串行引擎实现以及用户接口,如可视化用户界面设计器配对。
表V
namespace System.ComponentModel.Design{public abstract class UndoEngine{public UndoEngine(IServiceProvider p);protected abstract void AddUndoUnit(UndoUnit unit);protected virtual UndoUnit CreateUndoUnit(string name,bool primary);protected virtual void DiscardUndoUnit(UndoUnit unit);public void Dispose();protected virtual void Dispose(bool disposing);protected object GetRequiredService(Type serviceType);protected object GetService(Type serviceType);protected class UndoUnit{}}}
UndoEngine类的示例方法和属性在表VI所示的伪代码中说明。
表VI
UndoEngine构造函数public UndoEngine(IServiceProvider provider);行为    创建新UndoEndine参数    System.IServiceProvider provider父服务提供者。UndoEngine需要来自这个提供者的若干服务有用。AddUndoUnit方法
protected abstract void AddUndoUnit(UndoUnit unit)行为    被调用来向撤消栈添加给定的单元参数    System.ComponentModel.Design.UndoEngine.UndoUnit unit要添加的撤消单元。该单元之前通过调用CreateUndoUnit创建。CreateUndoUnit方法protected virtual UndoUnit CreateUndoUnit(string name,bool primary);行为    创建新撤消单元。缺省实现仅返回UndoUnit的一个新实例。参数    System.String name要创建的单元的名称。这是展现给用户的名称。System.Boolean primary当创建一系列嵌套单元的第一个时,primary为真。对任意嵌套单元它为假。UndoEngine缺省对这一参数不作出任何处理,但是可能需要一些撤消(如那些涉及COMIO1eParentUndoUnit设计模式的撤消)的实现来确定主单元及其子单元之间的差异。DiscardUndoUnit方法protected vietual void DiscardUndoUnit(UndoUnit unit);行为    当要解除撤消单元时被调用。在调用这一方法之前关闭撤消单元然后撤消。参数    System.ComponentModel.Design.UndoEngine.UndoUnit unit要解除的单元。Dispose方法public void Dispose();protected virtual void Dispose(bool disposing);行为    布置该对象
    参数    System.Boolean disposing如果布置该对象则为真,如果最终化该对象则为假。GetRequiredService方法protected object GetRequiedService(Type serviceType);行为    返回所请求的服务。如果该服务不可用,该方法抛出NotSupportedException来描述缺少服务。参数    System.Type serviceType要检取的服务的类型。GetService方法protected object GetService(Type serviceType);行为    返回所请求的服务。如果该服务不可用,该方法返回空。参数    System.Type serviceType要检取的服务的类型。
表VII中所说明的UndoUnit类是封装可撤消行动的UndoEngine内的嵌套类。缺省的UndoUnit实现听从改变通知,并对每一改变建立事件列表。它使用上述串行化引擎130和串行化服务保存了这些事件。UndoUnit通过若干个公用虚拟方法从UndoEngine直接接收对改变的事件通知。通过展现这些方法,开发者能够从UndoUnit衍生并执行他们所需要的任一另外的逻辑。如期望,开发者能够完全绕过UndoUnit的实现。
表VII
namespace System.ComponentModel.Design{public abstract class UndoEngine{protected class UndoUnit{public UndoUnit(UndoEngine engine,string name);public string Name{get;}public virtual bool IsEmpty{get;}protected UndoEngine UndoEngine{get;}public virtual void Close();public virtual void ComponentAdded(ComponentEventArgse);public virtual void ComponentAdding(ComponentEventArgse);public virtual void ComponentChanged(ComponentChangedEventArgs e);public virtual void ComponentChanging(
                    ComponentChangingEventArgs e);public virtual voidComponentRemoved(ComponentEventArgs e);public virtual voidComponentRemoving(ComponentEventArgs e);public virtual void ComponentRename(ComponentRenameEventArgs e);protected object GetService(Type serviceType);public void Undo();protected virutal void UndoCore();}}}
用于UndoUnit的示例方法和属性在表VIII所示的伪代码中说明。
表VIII
UndoUnit构造函数public UndoUnit(UndoEngine engine,string name);行为     创建新UndoUnit对象参数     System.ComponentModel.Design.UndoEngine engine拥有这一撤消单元的撤消引擎。
            System.String name该单元的名称。Name属性public string Name{get;}行为    该撤消单元的名称IsEmpty属性public boolean IsEmpty{get;}行为    如果该撤消单元不包含任何事件则返回真。撤消引擎可以解除空单元。UndoEngine属性protected UndoEngine UndoEngine{get;}行为    返回传入构造函数的撤消引擎。Close方法public virtual void Close();行为    由撤消引擎调用来关闭该单元。当关闭单元,不会再有事件进入其各种事件方法。这里UndoUnit其本身可采取行动来确保当前打开的任何事件都被关闭。ComponentAdded方法public virtual void ComponentAdded(ComponentEventArgs e);行为    当相关的事件从IComponentChangeService引发时,该方法由UndoEngine调用。ComponentAdding方法public virtual void ComponentAdding(ComponentEventArgs e);
    行为     当关联的事件从IComponentChangeService引发时,该方法由UndoEngine调用。ComponentChanged方法public virtual void ComponentChanged(ComponentChangedEventArgs e);行为     当关联的事件从IComponentChangeService引发时,该方法由UndoEngine调用。ComponentChanging方法public virtual void ComponentChanging(ComponentChangingEventArgs e);行为     当关联的事件从IComponentChangeService引发时,该方法由UndoEngine调用。ComponentRemoved方法public virtual void ComponentRemoved(ComponentEventArgs e);行为     当关联的事件从IComponentChangeService引发时,该方法由UndoEngine调用。ComponentRemoving方法public virtual void ComponentRemoving(ComponentEventArgs e);行为     当关联的事件从IComponentChangeService引发时,该方法由UndoEngine调用。ComponentRename方法public virtual void ComponentRename(ComponentRenameEventArgs e);行为     当关联的事件从IComponentChangeService引发时,该方法由UndoEngine调用。GetService方法protected object GetService(Type serviceType);
    行为     返回给定服务的实例,或者如果无法分解服务则返回空。Undo方法public void Undo();行为     该方法是用于执行撤消行动的公用API。撤消行动在撤消和重复状态之间来回切换其自身,因此调用Undo两次将对象设置回其原始状态。UndoCore方法protected virtual void UndoCore();行为     该方法负责执行撤消行动。它由公用的Undo方法调用。Undo方法其本身工作以即使在UndoCore抛出异常的事件中都保留UndoUnit对象内的一致状态。
图2A和2B分别说明了用于在设计表面210的示例用户界面对象212上重新调整大小的操作的示例处理及其相应的撤消单元250。在用户界面对象212的左上角的按下鼠标事件上,从设计表面210向撤消引擎发送开始处理通知,随后为正在改变通知。开始处理通知告知撤消引擎应当在单个撤消单元内捕获一系列改变。改变通知告示撤消引擎保持对象212的当前属性,因为它将要改变。
最初,用户界面212位于位置214,反映为撤消单元250的改变前部分内的(30,30)的定位272和(40,40)的尺寸274。在设计表面210内,用户界面对象212的左上角通过位置216移动到位置218。在抬起鼠标的事件上,向撤消引擎发送结束处理通知,随后为已改变通知。已改变通知告知撤消引擎保持对象212的已改变属性,结束处理通知关闭处理。注意,移动对象212的左上角同时改变了对象的位置和尺寸。因此,在撤消单元250的改变后部分280内储存(10,10)的定位282和(60,60)的尺寸284。通过组合移动-从定位(30,30)到定位(10,10)-和尺寸-从尺寸(40,40)到尺寸(60,60),撤消和重复能够一次同时执行两个动作,这很可能是开发者所期望的,因为从开发者的观点来看,仅执行了一个操作。
撤消单元250也包括额外信息,包括对象名称251、对象类型252以及其它信息253。这一额外信息能够帮助标识与改变的单元相应的对象。例如,当在其上执行操作的对象从设计表面删除然后通过撤消来重新添加时,额外信息将撤消或重复行动指向适当的对象。考虑添加对象的情况,其文本属性被修改-生成两个离散的撤消行动-并且两个行动都是可撤消的。为在由第一个撤消重新创建对象之后重复文本属性改变,撤消单元应当即使在原始对象已经通过删除操作摧毁的情况下也能够定位适当的对象。
图3A和3B分别说明了用于设计表面310上的第三方对话框用户界面对象312的示例处理及其相应的撤消单元350。对话框用户界面对象312包括年龄域313(Age)、性别域315(Sex)、OK按钮317和CANCEL按钮319。在选择性别域315时,从设计表面310向撤消引擎发送开始处理通知,随后为正在改变通知。如图2A-2B一样,开始处理通知告知撤消引擎应当在单个撤消单元内捕获一系列改变。改变通知告知撤消引擎保持对象312的当前属性,因为它将要改变。
最初,性别域315包含“M”,反映为撤消单元350中的改变前部分的包含“M”的性别域372。当焦点离开对话框用户界面对象312的性别域315时,发送已改变通知来告知撤消引擎保持对象312的已改变性别属性,这一已改变的性别属性反映为撤消单元350的改变后部分380的包含“F”的性别域382。在选择年龄域313时,从设计表面310向撤消引擎发送正在改变通知,来告知撤消引擎保持年龄属性,因为它将要改变。最初,年龄域374包含“30”,反映为撤消单元350的改变前部分370内的包含“30”的年龄域374。当焦点离开年龄域313时,发送已改变通知来告知撤消引擎保持对象312的已改变的年龄属性,这一已改变的年龄属性反映为撤消单元350的改变后部分内的包含“-5”的年龄域384。
由于域的有效化一般需要该域首先接收新值,因此“-5”储存在撤消单元350内。然而,域有效化可能需要在可能选择OK按钮和/或年龄域可能失去焦点之前来纠正年龄域。因此,可能向撤消引擎发送另一正在改变通知,在撤消单元350的改变前部分370内在年龄域376中记录“30”。(有效化代码可能将值改回“30”,作为有效化进程的一部分。)将年龄域313改变到合法的值“5”生成已改变通知来告知撤消引擎保持该新值,反映为撤消单元350的改变后部分的包含值“5”的年龄域386。注意,与图2B相似,撤消单元350也包括额外信息,包括对象名称351、对象类型352和其它信息353。
由于对话框用户界面对象312既包括OK按钮317也包括CANCEL按钮319,可能无法完成打开处理。如果选择了CANCEL按钮319,则仅重新运行处理,并且不储存撤消单元350,因为在重新运行之后没有东西可以撤消。如果选择了OK按钮317,则向撤消引擎发送结束处理来关闭该处理,并且储存撤消单元350,允许撤消/重复对话框用户界面对象312内的改变。当关闭对话框时,所有改变一般都作为单个处理来处理,因为大多数用户认为对对话框的改变是单个操作。当然,当打开对话框时,可以将个别改变储存为单独的撤消单元,使它们能够每次撤消或重复一个改变。根据用户界面对象的复杂性,处理可能适当地被嵌套。注意,这一精确的撤消功能对第三方对话框用户界面对象312可用,对象的开发者不需要实现该撤消和重复功能。
本发明也可以按照包括功能性步骤和/或非功能性行动的方法来描述。以下是对可能在实践本发明中执行的行动和步骤的描述。通常而言,功能性步骤按照所达到的结果来描述本发明,而非功能性行动描述用于达到特定结果的更详细的行动。尽管可能以特定的顺序描述功能性步骤和非功能性行动或对其要求权利,本发明不必局限于行动和/或步骤的任一特定顺序或组合。
图4A-4C示出了依照本发明用于生成并跟踪撤消信息的方法的示例行动和步骤。用于处理(414)对可视化用户界面设计器内的用户界面对象的一个或多个改变的一个或多个改变通知的步骤可包括接收(412)作为对用户界面对象的一个或多个改变的响应而生成的一个或多个改变通知。用于保持(418)表示一个或多个改变之前的用户界面对象的初始状态的初始数据以及表示一个或多个改变之后的用户界面对象的随后状态的随后数据的步骤可包括调用(416)串行化引擎来将用户界面对象的至少一部分串行化为适合表示一个或多个改变的串行化格式的行动。
用于从初始数据和随后数据准备(424)用于撤消对用户界面对象的一个或多个改变的撤消单元的步骤可包括从对用户界面对象的一个或多个改变的串行化格式创建(422)撤消单元的行动。对于在对话框上执行的行动,该方法可包括接收(436)选择CANCEL按钮(判决块432的CANCEL分支434)的通知的行动以及取消(438)处理的行动。该方法也包括接收(444)选择OK按钮(判决块432的OK分支442)的通知的行动。
用于储存(454)撤消单元(对对话框或除对话框之外的用户界面对象选择OK按钮)的步骤可包括向撤消栈添加(452)撤消单元的行动。用于听从(458)通知来撤消撤消单元内的一个或多个改变的步骤可包括接收(456)通知来撤消一个或多个改变的行动。用于删除(464)撤消单元的步骤可包括从撤消栈中移除(462)撤消单元的行动。用于使用(468)撤消单元和一个或多个撤消例程来撤消向用户界面对象作出的一个或多个改变的步骤可包括调用(466)一个或多个例程来撤消一个或多个改变的行动。
用于将撤消单元储存(474)为重复单元的步骤可包括将撤消单元作为重复单元添加(472)到重复栈的行动。用于听从(478)通知来重复重复单元中的一个或多个改变的步骤可包括接收(476)通知来重复重复单元中一个或多个改变的行动。删除(484)重复单元的行动可包括从重复栈中移除(482)重复单元的行动。用于使用(488)重复单元和一个或多个重复例程来重复对用户界面对象作出的一个或多个例程的步骤可包括调用(486)一个或多个例程来重复对用户界面对象作出的一个或多个改变的行动。
处于本发明的范围之内的实施例也包括用于携带或在其上储存计算机可执行指令或数据结构的计算机可读媒质。这类计算机可读媒质可以是可由通用或专用计算机访问的任何可用媒质。作为实例而非局限,这类计算机可读媒质包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可以用来以计算机可执行执行或数据结构携带或储存期望的程序代码方法并可由通用或专用计算机访问的任何其它媒质。当通过网络或另一通信连接(任一硬布线、无线或硬布线和无线的组合)向计算机传输或提供信息时,计算机适当地将该连接视为计算机可读媒质。因此,任一这类连接适当地称为计算机可读媒质。上述的组合也应当包括在计算机可读媒质的范围内。计算机可执行指令包括,如,引发通用计算机、专用计算机或专用处理设备执行特定的函数或函数组的指令和数据。
图5及以下讨论提供了适合在其中实现本发明的计算环境的简要一般描述。尽管并非所需要,本发明在计算机可执行指令的一般语境下描述,计算机可执行指令如程序模块,由网络环境中的计算机执行。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。计算机可执行指令、相关数据结构以及程序模块代表了用于执行这里披露的方法的步骤的程序代码方法。这类可执行指令或相关数据结构的特定顺序代表用于实现这类步骤中描述的功能的相应动作的示例。
本领域的技术人员可以理解,本发明可以在具有多种类型的计算机系统配置的网络计算环境中实践,计算机系统配置包括个人计算机、手持式设备、多处理器系统、微处理器系统或可编程消费者电子产品、网络PC、小型机、大型机等等。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接(或者通过硬布线链路、或者通过无线链路、或者通过硬布线和无线链路的组合)的本地和远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
参考图5,用于实现本发明的示例系统包括以常规计算机形式520的通用计算装置,包括处理单元521、系统存储器522以及将各类系统组件包括系统存储器522耦合至处理单元521的系统总线523。系统总线523可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线结构的本地总线。系统存储器包括只读存储器(ROM)524和随机存取存储器(RAM)525。基本输入/输出系统(BIOS)526,包含如在启动时协助在计算机520内的元件之间传输信息的基本例程,可储存在ROM 524中。
计算机520也可包括用于对磁硬盘539进行读写的磁硬盘驱动器527、用于对可移动磁盘529进行读写的磁盘驱动器528以及用于对可移动光盘531如CD-ROM或其它光媒质进行读写的光盘驱动器530。磁硬盘驱动器527、磁盘驱动器528以及光盘驱动器530分别通过硬盘驱动器接口532、磁盘驱动器接口533和光盘驱动器接口534连接至系统总线523。驱动器及其相关的计算机可读媒质为计算机520提供了计算机可执行指令、数据结构、程序模块和其它数据的非易失存储。尽管这里描述的示例环境采用了磁硬盘539、可移动磁盘529以及可移动光盘531,然而也可以使用用于储存数据的其它类型的计算机可读媒质,包括盒式磁带、闪存卡、数字多功能盘、Bernoulli盒式磁盘、RAM、ROM等等。
包括一个或多个程序模块的程序代码方法可储存在硬盘539、磁盘529、光盘531、ROM 524或RAM 525中,包括操作系统535、一个或多个应用程序536、其它程序模块537以及程序数据538。用户可以通过键盘540、指向设备542或其它输入设备(未示出),如麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等向计算机520输入命令和信息。这些和其它输入设备通常通过耦合至系统总线523的串行端口接口546连接到处理单元521。可选地,输入设备也可以通过其它接口连接,如并行端口、游戏端口或通用串行总线(USB)。监视器547或另一显示设备也通过接口,如视频适配器548连接到系统总线523。除监视器之外,个人计算机通常包括其它外围输出设备(未示出),如扬声器和打印机。
计算机520可以在使用到一个或多个远程计算机,如远程计算机549a和549b的逻辑连接的网络化环境中操作。远程计算机549a和549b的每一个可以是另一个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机520相关的元件,尽管在图4中仅说明了存储器存储设备550a和550b及其关联的应用程序536a和536b。图4描述的逻辑连接包括局域网(LAN)551和广域网(WAN)552,这里示出作为示例而非局限。这类网络环境常见于办公室范围或企业范围计算机网络、内联网以及因特网。
当在局域网网络环境中使用时,计算机520通过网络接口或适配器553连接至局域网551。当在广域网网络环境中使用时,计算机520可包括调制解调器554、无线链路或其它装置,用于通过广域网552,如因特网建立通信。调制解调器554可以是内置或外置的,通过串行端口接口546连接至系统总线523。在网络化环境中,描述的与计算机520相关的程序模块或其部分可储存在远程存储器存储设备中。可以理解,示出的网络连接是示例性的,也可以使用通过广域网552建立通信的其它装置。
本发明可以在不脱离其精神或本质特征的情况下以其它特定形式来实施。描述的实施例在各个方面仅为说明性的而非限制。因此,本发明的范围由所附权利要求书而非之前的描述来指明。所有处于权利要求的等效权利要求的范围和意思之内的变化都包含在其范围之内。

Claims (34)

1.在支持可视化用户界面设计器和能够为在所述可视化用户界面设计器之内创建的用户界面对象保存状态的串行化引擎的计算机系统中,一种自动生成并跟踪对所述可视化用户界面设计器内的用户界面对象作出的改变的撤销信息以使所述用户界面对象的开发者无需负责生成并跟踪所述撤消信息的方法,其特征在于,所述方法包括以下行动:
接收一个或多个改变通知,所述改变通知响应于对所述可视化用户界面设计器内的所述用户界面对象作出的一个或多个改变而生成;
调用所述串行化引擎将所述用户界面对象的至少一部分串行化为适合表示所述一个或多个变化的串行化格式;
创建撤消单元,其中所述撤消单元包括对所述用户界面对象的所述一个或多个改变的所述串行化格式;以及
将所述撤消单元添加到撤消栈。
2.如权利要求1所述的方法,其特征在于,所述用户界面对象包括在所述可视化用户界面设计器中使用的第三方用户界面对象。
3.如权利要求1所述的方法,其特征在于,所述一个或多个改变通知包括正在添加通知和已添加通知的至少一个。
4.如权利要求1所述的方法,其特征在于,所述撤消单元标识了用于撤消对所述用户界面对象作出的所述一个或多个改变的一个或多个例程。
5.如权利要求4所述的方法,其特征在于,它还包括以下行动:
接收通知来撤消所述撤消单元中的一个或多个改变;
从所述撤消栈中移除所述撤消单元;以及
调用所述用于撤消对所述用户界面对象作出的所述一个或多个改变的所述一个或多个例程。
6.如权利要求5所述的方法,其特征在于,它还包括将所述撤消单元作为重复单元添加到重复栈的行动。
7.如权利要求6所述的方法,其特征在于,所述撤消单元标识了用于重复对所述用户界面对象作出的所述一个或多个改变的一个或多个例程,所述方法还包括以下行动:
接收通知来重复所述重复单元中的所述一个或多个改变;
从所述重复栈中移除所述重复单元;以及
调用所述用于重复对所述用户界面对象作出的所述一个或多个改变的所述一个或多个例程。
8.如权利要求1所述的方法,其特征在于,所述撤消单元包括所述用户界面对象的名称、所述用户界面对象的类型以及在所述一个或多个改变之前的所述用户界面对象的一个或多个先前状态。
9.对于支持可视化用户界面设计器和能够为在所述可视化用户界面设计器中创建的用户界面对象保存状态的串行化引擎的计算机系统,一种实现自动生成并跟踪对所述可视化用户界面设计器内的用户界面对象作出的变化的撤消信息以使所述用户界面对象的开发者无需负责生成并跟踪所述撤消信息的系统,其特征在于,所述系统包括下述部件:
设计表面装置,用于响应于对所述用户界面设计器内的所述用户界面对象的一个或多个改变生成一个或多个改变通知,并将所述改变通知发送给撤消引擎;撤消引擎,接收所述一个或多个改变通知,响应于所接收的改变通知调用串行化引擎,并创建撤消单元;以及
串行化引擎,用于将所述用户界面对象的至少一部分串行化为适合表示所述一个或多个改变的串行化格式;
其中,所述撤消单元包括对所述用户界面对象的所述一个或多个改变的所述串行化格式。
10.如权利要求9所述的系统,其特征在于,所述一个或多个改变通知的至少一个启动向所述用户界面对象作出多个改变的处理。
11.如权利要求9所述的系统,其特征在于,所述一个或多个改变通知包括正在改变通知和已改变通知的至少一个。
12.如权利要求9所述的系统,其特征在于,所述用户界面对象包括一对话框,所述对话框具有用于接受所述对话框内作出的任意改变的确认按钮(317)以及用于拒绝所述对话框内作出的任意改变的取消按钮(319)。
13.如权利要求12所述的系统,其特征在于,所述一个或多个改变通知的至少一个启动向所述对话框作出改变的处理。
14.如权利要求13所述的系统,其特征在于,所述系统还包括以下部件:
用于接收所述取消按钮已被选择的通知的装置;以及
用于取消所述处理的装置。
15.如权利要求13所述的系统,其特征在于,所述系统还包括以下部件:
用于接收所述确认按钮已被选择的通知的装置;以及
用于向撤消栈添加所述撤消单元的装置,其中,所述撤消单元包括所述处理。
16.如权利要求9所述的系统,其特征在于,所述撤消单元包括所述用户界面对象的名称、所述用户界面对象的类型以及在所述一个或多个改变之后的所述用户界面对象的一个或多个随后状态。
17.如权利要求9所述的系统,其特征在于,所述用户界面对象不实现用于所述用户界面对象的一个或多个属性的撤消。
18.在支持可视化用户界面设计器和能够为在所述可视化用户界面设计器内创建的用户界面对象保存状态的串行化引擎的计算机系统中,一种自动生成并跟踪对所述可视化用户界面设计器内的用户界面对象作出的改变的撤消信息以使所述用户界面对象的开发者无需负责生成并跟踪所述撤消信息的方法,其特征在于,所述方法包括以下步骤:
撤消引擎处理用于对所述可视化用户界面设计器内的所述用户界面对象作出的一个或多个改变的一个或多个改变通知;
串行化引擎串行化表示所述一个或多个改变之前的所述用户界面对象的初始状态的初始数据;
所述撤消引擎保持表示所述一个或多个改变之前的所述用户界面对象的初始状态的初始数据;
串行化引擎串行化表示所述一个或多个改变之后的所述用户界面对象的随后状态的随后数据;
所述撤消引擎保持表示所述一个或多个改变之后的所述用户界面对象的随后状态的随后数据;以及
所述撤消引擎从所述初始数据和所述随后数据准备用于撤消对所述用户界面对象作出的所述一个或多个改变的撤消单元。
19.如权利要求18所述的方法,其特征在于,所述一个或多个改变通知包括正在移除通知和已移除通知的至少一个。
20.如权利要求18所述的方法,其特征在于,所述撤消单元标识了用于撤消对所述用户界面对象作出的所述一个或多个改变的一个或多个例程。
21.如权利要求20所述的方法,其特征在于,它还包括以下步骤:
储存所述撤消单元;
听从通知来撤消所述撤消单元中的所述一个或多个改变;
使用所述撤消单元和所述一个或多个撤消例程来撤消对所述用户界面对象作出的所述一个或多个改变;以及
删除所述撤消单元。
22.如权利要求21所述的方法,其特征在于,它还包括用于将所述撤消单元作为重复单元储存的步骤。
23.如权利要求22所述的方法,其特征在于,所述重复单元包括用于重复对所述用户界面对象作出的所述一个或多个改变的一个或多个例程,所述方法还包括以下步骤:
听从通知来重复所述重复单元内的所述一个或多个改变;
使用所述重复单元和所述一个或多个重复例程来重复对所述用户界面对象作出的所述一个或多个改变;以及
删除所述重复单元。
24.如权利要求23所述的方法,其特征在于,所述用户界面对象不实现重复。
25.如权利要求23所述的方法,其特征在于,用于撤消引擎保持初始数据和保持随后数据的所述步骤包括调用所述串行化引擎以将所述用户界面对象的至少一部分串行化为适合表示所述一个或多个改变的串行化格式的行动。
26.对于支持可视化用户界面设计器和能够为在所述可视化用户界面设计器内创建的用户界面对象保存状态的串行化引擎的计算机系统,一种实现自动生成并跟踪对所述可视化用户界面设计器内的用户界面对象作出的改变的撤消信息以使所述用户界面对象的开发者无需负责生成并跟踪所述撤消信息的系统,其特征在于,所述系统包括以下部件:
用于处理对所述可视化用户界面设计器内的所述用户界面对象作出的一个或多个改变的一个或多个改变通知的装置;
用于串行化表示所述一个或多个改变之前的所述用户界面对象的初始状态的初始数据的装置;
用于保持表示所述一个或多个改变之前的所述用户界面对象的初始状态的初始数据的装置;
用于串行化表示所述一个或多个改变之后的所述用户界面对象的随后状态的随后数据的装置;
用于保持表示所述一个或多个改变之后的所述用户界面对象的随后状态的随后数据的装置;以及
用于从所述初始数据和所述随后数据准备用于撤消对所述用户界面对象作出的所述一个或多个改变的撤消单元的装置。
27.如权利要求26所述的系统,其特征在于,所述重复单元包括用于向所述用户界面对象作出多个改变的处理。
28.如权利要求26所述的系统,其特征在于,所述一个或多个改变通知包括重命名通知。
29.如权利要求26所述的系统,其特征在于,所述用户界面对象包括一对话框,所述对话框具有用于接受在所述对话框内作出的任意改变的确认按钮(317)以及用于拒绝在所述对话框内作出的任意改变的取消按钮(319)。
30.如权利要求29所述的系统,其特征在于,所述一个或多个改变通知的至少一个启动对所述对话框作出改变的处理。
31.如权利要求30所述的系统,其特征在于,所述系统还包括以下部件:
用于接收所述取消按钮已被选择的通知的装置;以及
用于取消所述处理的装置。
32.如权利要求30所述的系统,其特征在于,所述系统还包括以下部件:
用于接收所述确认按钮已被选择的通知的装置;以及
用于向撤消栈添加所述撤消单元的装置,其中,所述撤消单元包括所述处理。
33.如权利要求26所述的系统,其特征在于,所述用户界面对象是在所述可视化用户界面设计器中使用的第三方用户界面对象。
34.如权利要求26所述的系统,其特征在于,所述撤消单元包括所述用户界面对象的名称、所述用户界面对象的类型、所述一个或多个改变之前的所述用户界面对象的一个或多个先前状态以及所述一个或多个改变之后的所述用户界面对象的一个或多个随后状态。
CN200410061898XA 2003-06-23 2004-06-23 自动生成并跟踪撤消信息的方法和系统 Expired - Fee Related CN1573691B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/602,435 2003-06-23
US10/602435 2003-06-23
US10/602,435 US7207034B2 (en) 2003-06-23 2003-06-23 Undo infrastructure

Publications (2)

Publication Number Publication Date
CN1573691A CN1573691A (zh) 2005-02-02
CN1573691B true CN1573691B (zh) 2010-05-26

Family

ID=33418629

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200410061898XA Expired - Fee Related CN1573691B (zh) 2003-06-23 2004-06-23 自动生成并跟踪撤消信息的方法和系统

Country Status (5)

Country Link
US (1) US7207034B2 (zh)
EP (1) EP1491997A3 (zh)
JP (1) JP2005018774A (zh)
KR (1) KR101087364B1 (zh)
CN (1) CN1573691B (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003695B2 (en) * 2002-10-03 2006-02-21 Seiko Epson Corporation Undo/redo algorithm for a computer program
US7818718B2 (en) * 2003-09-30 2010-10-19 Sap Ag Undoing user actions in a client program
JP4515462B2 (ja) * 2004-11-12 2010-07-28 株式会社ジャストシステム データ処理装置およびデータ処理方法
CA2560179A1 (en) * 2006-09-20 2008-03-20 Ibm Canada Limited - Ibm Canada Limitee Temporal model exploring
US8127278B2 (en) * 2006-09-28 2012-02-28 Sap Ag System and method for extending legacy applications with undo/redo functionality
US7958490B2 (en) * 2006-12-29 2011-06-07 The Mathworks, Inc. System for automating the definition of application objects supporting undoing, redoing compressing and logging operations
US9229920B1 (en) * 2007-04-30 2016-01-05 Oracle America Inc. Compound undo/redo manager for mixed model edits
US8849872B2 (en) * 2007-08-31 2014-09-30 Red Hat, Inc. Providing a model-view-controller relationship
US8756204B2 (en) * 2008-01-08 2014-06-17 Microsoft Corporation Asynchronous multi-level undo support in javascript grid
JP5385545B2 (ja) * 2008-04-17 2014-01-08 インターナショナル・ビジネス・マシーンズ・コーポレーション トランザクションの実行を制御する装置及び方法
US8812796B2 (en) 2009-06-26 2014-08-19 Microsoft Corporation Private memory regions and coherence optimizations
US20110107246A1 (en) * 2009-11-03 2011-05-05 Schlumberger Technology Corporation Undo/redo operations for multi-object data
US20110106776A1 (en) * 2009-11-03 2011-05-05 Schlumberger Technology Corporation Incremental implementation of undo/redo support in legacy applications
US8402218B2 (en) * 2009-12-15 2013-03-19 Microsoft Corporation Efficient garbage collection and exception handling in a hardware accelerated transactional memory system
CN102419703A (zh) * 2010-09-25 2012-04-18 上海无戒空间信息技术有限公司 堆栈数据可视化方法及系统
US8732575B2 (en) * 2011-03-22 2014-05-20 Mark E. Nusbaum Word processing system and method with automatic undo operation monitoring and analysis
US8533594B2 (en) * 2011-04-19 2013-09-10 Autodesk, Inc. Hierarchical display and navigation of document revision histories
US8874525B2 (en) 2011-04-19 2014-10-28 Autodesk, Inc. Hierarchical display and navigation of document revision histories
US8533595B2 (en) * 2011-04-19 2013-09-10 Autodesk, Inc Hierarchical display and navigation of document revision histories
US8533593B2 (en) * 2011-04-19 2013-09-10 Autodesk, Inc Hierarchical display and navigation of document revision histories
US10733151B2 (en) 2011-10-27 2020-08-04 Microsoft Technology Licensing, Llc Techniques to share media files
US9053079B2 (en) * 2011-12-12 2015-06-09 Microsoft Technology Licensing, Llc Techniques to manage collaborative documents
US9311623B2 (en) 2012-02-09 2016-04-12 International Business Machines Corporation System to view and manipulate artifacts at a temporal reference point
CN102819429B (zh) * 2012-06-29 2015-04-29 广东威创视讯科技股份有限公司 三维场景设计中撤销操作的实现方法及其装置
US9129416B2 (en) 2012-11-14 2015-09-08 Microsoft Technology Licensing, Llc Digital art undo and redo
CN104238865A (zh) * 2013-06-08 2014-12-24 深圳联友科技有限公司 一种在电子设备中撤消和重做界面操作的方法及系统
US10491695B2 (en) * 2014-08-22 2019-11-26 Oracle International Corporation Autosave with across user session undo support
US9858312B2 (en) * 2014-10-14 2018-01-02 Red Hat, Inc. Transaction compensation for single phase resources
US10261756B2 (en) * 2015-06-01 2019-04-16 Brigham Young University Method for preventing reference invalidation when reversing operations in synchronous collaborative applications
US10423671B2 (en) * 2016-06-10 2019-09-24 Apple Inc. Selection behavior history and transformation
US10664557B2 (en) 2016-06-30 2020-05-26 Microsoft Technology Licensing, Llc Dial control for addition and reversal operations
US12073210B2 (en) 2020-06-24 2024-08-27 UiPath Inc. Context-aware undo-redo service of an application development platform
US11308272B1 (en) 2020-11-12 2022-04-19 Microsoft Technology Licensing, Llc Controlling a productivity application to integrate a revision stream and an undo stack to perform out of order undo operations
JP7767895B2 (ja) * 2021-12-16 2025-11-12 ブラザー工業株式会社 履歴管理プログラム、履歴管理方法、及び履歴管理装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111575A (en) * 1998-09-24 2000-08-29 International Business Machines Corporation Graphical undo/redo manager and method
US6185591B1 (en) * 1997-07-29 2001-02-06 International Business Machines Corp. Text edit system with enhanced undo user interface
US6522134B1 (en) * 1997-05-13 2003-02-18 International Business Machines Corporation Method of resetting spin valve heads in a magnetic disk drive

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481710A (en) * 1992-09-16 1996-01-02 International Business Machines Corporation Method of and system for providing application programs with an undo/redo function
EP0622729A3 (en) 1993-04-29 1995-02-01 Ibm User interface generator for a user interface server.
US6108668A (en) * 1997-04-18 2000-08-22 International Business Machines Corporation Method and system for undoing edits within selected portion of electronic documents
US5990906A (en) * 1997-06-25 1999-11-23 National Instruments Corporation Undo feature for a graphical programming system
US6496202B1 (en) * 1997-06-30 2002-12-17 Sun Microsystems, Inc. Method and apparatus for generating a graphical user interface
US6225998B1 (en) * 1997-12-02 2001-05-01 Aspect Communications Visual design of workflows for transaction processing
US6192378B1 (en) * 1998-05-13 2001-02-20 International Business Machines Corporation Method and apparatus for combining undo and redo contexts in a distributed access environment
JP3759676B2 (ja) 1998-06-24 2006-03-29 ドリームテクノロジーズ株式会社 作業のリドウ・アンドウ機能及び自動保存機能を備えたアプリケーション装置及び方法
US6141010A (en) * 1998-07-17 2000-10-31 B. E. Technology, Llc Computer interface method and apparatus with targeted advertising
US6523134B2 (en) * 1998-09-18 2003-02-18 International Business Machines Corporation Selective undo
US6490661B1 (en) * 1998-12-21 2002-12-03 Advanced Micro Devices, Inc. Maintaining cache coherency during a memory read operation in a multiprocessing computer system
US6167492A (en) * 1998-12-23 2000-12-26 Advanced Micro Devices, Inc. Circuit and method for maintaining order of memory access requests initiated by devices coupled to a multiprocessor system
US6671686B2 (en) * 2000-11-02 2003-12-30 Guy Pardon Decentralized, distributed internet data management
US20040225998A1 (en) * 2003-05-06 2004-11-11 Sun Microsystems, Inc. Undo/Redo technique with computed of line information in a token-oriented representation of program code
US7325226B2 (en) * 2003-06-19 2008-01-29 Microsoft Corporation Modular object serialization architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6522134B1 (en) * 1997-05-13 2003-02-18 International Business Machines Corporation Method of resetting spin valve heads in a magnetic disk drive
US6185591B1 (en) * 1997-07-29 2001-02-06 International Business Machines Corp. Text edit system with enhanced undo user interface
US6111575A (en) * 1998-09-24 2000-08-29 International Business Machines Corporation Graphical undo/redo manager and method

Also Published As

Publication number Publication date
EP1491997A3 (en) 2007-06-06
US20040268187A1 (en) 2004-12-30
CN1573691A (zh) 2005-02-02
KR101087364B1 (ko) 2011-11-25
KR20050000330A (ko) 2005-01-03
US7207034B2 (en) 2007-04-17
JP2005018774A (ja) 2005-01-20
EP1491997A2 (en) 2004-12-29

Similar Documents

Publication Publication Date Title
CN1573691B (zh) 自动生成并跟踪撤消信息的方法和系统
JPH05197573A (ja) タスク指向パラダイムによるタスク管理システム
US10176440B2 (en) Workflow sharing
US6275977B1 (en) Application cooperation method and apparatus
JP3590688B2 (ja) アプリケーションを導入するための導入計画オブジェクトを構築する方法、及びそのシステム
CN101101649B (zh) 管理工作流处理中的数据的方法和系统
US5784583A (en) Intuitive technique for building graphical menus
US6898764B2 (en) Method, system and program product for determining differences between an existing graphical user interface (GUI) mapping file and a current GUI
US8910117B2 (en) Customizing and performing policy in version control
EP3133539A1 (en) Method ans system for process automation in computing
CN111092933A (zh) 用于微服务架构的业务流程管理方法、系统、介质及电子设备
US20050114475A1 (en) System and method for collaborative development environments
US6725445B1 (en) System for minimizing notifications in workflow management system
US20110184870A1 (en) Form processing in a user interface workflow composition tool
US8869107B2 (en) Declarative dynamic control flow in continuation-based runtime
CN114327709A (zh) 一种控制页面生成方法、装置、智能设备及存储介质
US20140082587A1 (en) Method And System For Generating A Source Code For A Computer Program For Execution And Simulation Of A Process
CN114064240A (zh) 用于实现低代码配置化etl数据转换的平台系统、方法、装置、处理器及计算机存储介质
US11699115B2 (en) System and method for modular customization of intermediate business documentation generation
CN114049091A (zh) 一种基于工单的万能工作流实现方法及装置
CN114338178A (zh) Soar剧本模型、剧本构建方法、电子设备和存储介质
CN114296983B (zh) 基于触发器运转记录的流程异常处理方法及存储介质
CN116886736A (zh) 基于云化架构的中间件云化处理方法及装置
CN114386847A (zh) 一种销售奖励计算公式可视化实现方法
CN115086471B (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
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: 20150421

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

Effective date of registration: 20150421

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

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: 20100526

Termination date: 20200623