CN102414679B - 保持跨元数据合并的撤销和重复能力 - Google Patents

保持跨元数据合并的撤销和重复能力 Download PDF

Info

Publication number
CN102414679B
CN102414679B CN2010800200101A CN201080020010A CN102414679B CN 102414679 B CN102414679 B CN 102414679B CN 2010800200101 A CN2010800200101 A CN 2010800200101A CN 201080020010 A CN201080020010 A CN 201080020010A CN 102414679 B CN102414679 B CN 102414679B
Authority
CN
China
Prior art keywords
document
metadata
client computer
paragraph
stack
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.)
Active
Application number
CN2010800200101A
Other languages
English (en)
Other versions
CN102414679A (zh
Inventor
J·B·拜勒
E·M·桑德兰
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 CN102414679A publication Critical patent/CN102414679A/zh
Application granted granted Critical
Publication of CN102414679B publication Critical patent/CN102414679B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1078Logging; Metering
    • 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
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1273Print job history, e.g. logging, accounting, tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1038LFS, i.e. Log Structured File System used in RAID systems with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Security & Cryptography (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

呈现了一种用于在客户端计算机处的撤销操作期间保持元数据的方法。通过在文档的第一部分中执行一个或多个用户动作,在客户端计算机上的文字处理应用上修改文档的第一部分。在修改文档的第一部分时,在客户端计算机处接收到关于文档的第二部分的元数据。元数据被插入文档的第二部分中。在元数据被插入文档的第二部分后,在文字处理应用上执行撤销操作。撤销操作包括以下步骤:从文档的第二部分中移除元数据、撤销文档第一部分中一个或多个用户动作中的最近一次用户动作、以及还原关于文档第二部分的元数据。

Description

保持跨元数据合并的撤销和重复能力
背景技术
在线文档协作系统可以支持文档的共同创作。共同创作使多个用户能访问同一个文档、对文档作出改变、并且在文档协作系统处合并这些改变。当多个用户正在编辑文档的同一部分时产生困难。
例如,两个用户可以对文档的同一部分作出改变,系统必须在将修改合并到单个文档中时协调这些改变。而且,当用户在其他用户已经在期间修改了文档时尝试还原到前一状态的时候,可以发生变化。在例如用户尝试撤销他已经对共同创作的文档作出的改变时,这可以导致意想不到的行为。
发明内容
本发明的各实施例针对在客户端计算机处的撤销操作期间保留元数据。在客户端计算机的字处理应用上修改文档的第一部分。修改文档的第一部分包括在文档的第一部分内执行一个或多个用户动作。在修改文档的第一部分时,在客户端计算机处接收到关于文档的第二部分的元数据。文档的第二部分不同于文档的第一部分。在接收到关于文档的第二部分的元数据之后,将该元数据插入文档的第二部分。
在元数据被插入文档的第二部分后,在字处理应用上执行撤销操作。撤销操作包括以下步骤:从文档的第二部分中移除元数据、撤销文档第一部分中一个或多个用户动作中的最近一次用户动作、以及还原关于文档第二部分的元数据。
一种或多种技术的细节在附图和以下描述中阐明。通过描述、附图和权利要求,这些技术的其他特征、目的和优点将变得显而易见。
附图说明
图1示出用于在跨元数据合并的文档中保持撤销/重复能力的示例系统。
图2示出图1的示例客户端计算机的示例模块,该示例客户端计算机实现了用于在跨元数据合并的文档中保持撤销/重复能力的能力。
图3示出示例撤销/重复栈的示例性时间快照。
图4示出在示例客户端计算机处执行的示例撤销操作的流程图。
图5示出图2的示例客户端计算机,该示例客户端计算机实现了在跨元数据合并的文档中保持撤销/重复能力。
具体实施方式
本发明涉及用于在共同创作的文档中跨元数据合并而保持撤销/重复能力的系统和方法。共同创作的文档是多个用户可以同时访问和修改的文档。
在这里描述的一些例子中,跨元数据合并而保持撤销/重复能力。在元数据被插入文档时发生元数据合并,元数据一般是来自另一共同创作的用户的段落锁定。该系统和方法公开了基于状态的撤销/重复栈的使用,该撤销/重复栈存储用户动作并且还存储元数据。该系统和方法有效地允许跳过栈上存储的元数据,使得撤销/重复能力不受到元数据合并所影响。
图1示出用于在跨元数据合并的文档中保持撤销/重复能力的示例系统100。示例系统100包括客户机102和104、网络106和服务器108。可以使用更多或更少的客户机、服务器和网络。在本发明中,术语客户机和客户端计算机交换地使用,术语服务器和服务器计算机交换地使用。
在示例实施例中,客户机102和104是如下进一步详述的计算设备。
在由客户机102、104存储的多个信息中有客户机操作系统(“OS”)和客户机应用程序。客户机操作系统是管理客户机系统的硬件和软件资源的程序。客户机应用利用客户机102、104的资源来直接执行用户指定的任务。例如,客户机102、104包括用于创建和编辑文档文件的一个或多个软件应用,诸如文字处理程序。这种应用的一个示例是华盛顿州雷蒙德市微软公司的MicrosoftWord文字处理应用程序。这种应用的其它示例也是适用的。
在示例实施例中,网络106是局域网(LAN)、广域网(WAN)或因特网。客户机102和104可以访问服务器108以及远程地连至服务器108的资源。
示例服务器108通常包括适用于控制联网的计算机的操作的操作系统或者服务器,所述操作系统诸如华盛顿雷蒙德市的微软公司的Windows
Figure BPA00001461964800021
操作系统,所述服务器诸如华盛顿雷蒙德市的微软公司的Microsoft Server 2008。
在示例实施例中,示例系统100是在线的、基于浏览器的文档协作系统。在线的、基于浏览器的文档协作系统的一个示例是来自美国华盛顿州雷蒙德市的微软公司的Microsoft Sharepoint
Figure BPA00001461964800031
团队服务软件。在示例系统100中,服务器108是Microsoft Sharepoint服务器,诸如来自美国华盛顿州雷蒙德市的微软公司的Microsoft Office SharePoint Server 2007。
在示例实施例中,客户机102和104可以共同创作存储在服务器108上的文档。一个示例文档包括一个或多个部分。文档的每个部分一般是一个段落。然而,部分可以是文档的任何子部分,例如句子、段落、标题、附图、表格等等。文档可以仅包含例如单个表、句子这样的一个部分,或者包含诸如多个表、句子或段落的多个部分。对于这里公开的示例实施例,文档部分是文档的一个段落。
当客户机102处的共同创作用户键入文档的一个段落时,示例客户机102向服务器108发送关于该段落的元数据。该元数据的形式一般是段落锁定,表明客户机102已经锁定了正在被编辑的段落。在一个示例中,段落在用户对段落作出修改时被标识为正在被编辑。在另一个示例中,段落在用户将光标置于段落内时被标识为正在被编辑。示例客户机锁定正在被编辑的段落,因为同一时刻仅允许一个共同创作的用户来编辑文档的特定段落。
当服务器108从客户机102接收元数据时,服务器108标识可能正在打开文档的所有其他共同创作的用户。服务器108将元数据发送至所标识的共同创作的用户。例如,如果示例客户机104上的共同创作的用户打开了文档,服务器108就将元数据插入被客户机104上的共同创作的用户所打开的文档。
在示例实施例中,服务器108将段落锁定插入由客户机104上共同创作的用户所打开的文档的段落,该段落对应于由客户机102上的共同创作的用户所编辑的段落。锁定防止客户机104上的共同创作的用户编辑其中插入锁定的段落。然而,客户机104上的共同创作的用户可以编辑文档中尚未被锁定的任何其他段落。客户机104上的共同创作的用户也可以在客户机104上打开的文档中创建一个或多个新段落,并且编辑那些段落。
在客户机104上进行编辑的过程中,共同创作的用户可以希望撤销一个用户动作。例如,共同创作的用户可能已键入不正确的键或者可能已经作出共同创作的用户可能希望撤销的格式化改变,或者,共同创作的用户可能已经执行了该用户可能希望撤销的剪切和粘贴操作。也可能有共同创作的用户希望撤销的其他用户动作。
撤销操作的附加示例在2005年3月30日提交的第7,499,955号美国专利以及在2007年1月15日提交的第11/623,234号美国专利申请中描述,两者都通过引用结合于此。
示例客户机104上的共同创作的用户撤销用户动作的一种方式是执行撤销操作,例如通过按压客户机104上的示例撤销键。一般而言,撤销操作撤销最近一次动作并且将文档还原到前一动作。例如,如果共同创作的用户在文档中键入字母“t”、“h”和“e”,则在示例客户机104上按下示例撤销键删除了最近一次动作(例如键入字母“e”),使得文档在撤销操作后包含字母“t”和“h”。
用户动作一般被保存在程序栈上,例如撤销/重复栈,以便允许用户动作被撤销。例如,如果用户键入字母“t”,则字母“t”会被保存在撤销/重复栈上。然后当键入字母“h”时,字母“h”被保存在撤销/重复栈上,并且当键入字母“e”时,字母“e”被存储在撤销/重复栈上。在示例实施例中,实际字母可能不被存储在栈上。相反,可以存储到存储器内一区域的指针。存储器内的区域可以包含实际字母。
程序栈(例如撤销/重复栈)在后进/先出基础上操作。对于上面的例子,字母“e”首先离开栈,因为字母“e”是栈上存储的三个字母中的最后一个。在示例撤销操作期间,字母“e”突然离开栈,使字母“h”留在栈的顶部。
元数据锁定也被存储在示例撤销/重复栈上。如果用户正在段落中键入,则用户键入的每个字母都被顺序地存储在撤销/重复栈上。然而,如果在用户正在键入时接收到元数据锁定,该锁定也被存储在撤销/重复栈上。锁定被存储在撤销/重复栈上的原因在于,在像Microsoft Word这样的文字处理应用中,撤销/重复栈一般存储每个动作,包括锁定。因此,期望当用户执行撤销操作时,锁定一般被保留而不是被丢弃,因为锁定位于撤销/重复栈的顶部。这导致用户预期的撤销/重复行为。也就是说,用户一般预期撤销操作撤销最近一次用户动作,而不移除文档中的任何锁定。
在示例实施例中,为了在撤销操作期间保留段落锁定,当撤销操作发生时,从撤销/重复栈中移除段落锁定并且将其暂时存储在客户端计算机上的存储器中。然后,撤销/重复栈顶部存储的用户动作被撤销。在撤销/重复栈顶部存储的用户动作被撤销之后,从存储器获得段落锁定并且将其存储回栈上。以此方式,从用户的观点,撤销操作按预期进行,锁定被保持在文档中。
图2示出示例客户机102上的示例模块。示例客户机102包括示例数据处理模块202、示例元数据合并模块204、示例用户界面模块206以及示例撤销/重复模块208。示例数据处理模块202包括文字处理程序,诸如来自美国华盛顿州雷蒙德市的微软公司的Microsoft Word文字处理应用程序。
示例元数据合并模块204处理从示例服务器108接收到的元数据,并将元数据插入客户端计算机102上打开的文档的适当部分。一般而言,元数据在其他共同创作的用户正在编辑的文档的各部分上表示锁定。当示例元数据合并模块204从服务器208接收到对文档特定部分的锁定时,示例元数据合并模块204将锁定插入到客户端计算机102上打开的文档的相应部分中。锁定防止客户机102上的共同创作的用户编辑对其引导锁定的文档的部分。在示例实施例中,文档的部分对应于文档的段落。在其他示例实施例中,如上所述,文档部分的间隔尺寸可以改变。
示例用户界面模块206从示例元数据合并模块204接收锁定,并将该锁定显示在文档的适当部分中。例如,示例用户界面模块206可以在段落外加上括号,以表明段落被锁定。举另一个例子,示例用户界面模块可以紧接着要被锁定的段落插入一个表示锁定的图标。此外,示例用户界面模块可以显示正在共同创作该段落的用户的名称。其他示例也是可能的。当用户看到段落被锁定的图形指示时,用户被通知:禁用编辑该段落的操作,直到锁定被移除。
关于这种锁定的另外的细节可在2008年6月25号提交的第12/145,536号美国专利申请中找到,该美国专利申请整体通过引用结合于此。其他配置是可能的。
示例撤销/重复模块208处理撤销和重复请求,并且在保持文档中任何元数据锁定的完整性的同时、在文档中执行撤销和重复操作。示例撤销/重复模块208包括示例撤销/重复栈。示例撤销/重复栈包括撤销部分和重复部分。然而,传统的程序栈将项目推至栈上以及使项目离开栈,示例撤销/重复栈向撤销/重复栈的特定部分提供标记。相对于标记在撤销/重复栈中指示的位置,用户动作和元数据锁定被存储在撤销/重复栈或从撤销/重复栈被移除。如上面所讨论的,在示例实施例中,示例撤销/重复栈可以存储指向用户动作的指针和指向元数据锁定的指针。
当接收到撤销请求时,示例撤销/重复模块208检查客户端计算机102上的撤销/重复栈,并且从撤销/重复栈的撤销部分移除任何元数据锁定。于是,所有从撤销/重复栈的撤销部分被移除的元数据锁定都被暂时存储在客户端计算机102上的存储器中。然后从撤销/重复栈移除最近一次用户动作,并且还原最近一次用户动作。例如,如果最近一次用户动作是要使字符加粗,则撤销操作从字符去除粗体。
在完成撤销操作之后,示例撤销/重复模块208检索存储器中暂时存储的锁定,并且将锁定还原至撤销/重复栈。示例撤销/重复模块以和从撤销/重复栈移除锁定的顺序相反的顺序还原锁定。例如,如果有两个锁定从撤销/重复栈被移除,则所移除的第二锁定首先被还原至栈,所移除的第一锁定其次被还原至栈。然后,栈上的锁定处在和从撤销/重复栈移除最近一次用户动作之前的顺序相同的顺序。因此,在使对用户体验的任何负面影响最小的同时还原锁定,所述负面影响诸如非响应度或不规则的用户界面行为。
撤销/重复栈也允许重做撤销操作。例如,如果作为撤销操作的结果而从撤销/重复栈的撤销部分移除用户动作,则用户动作被存储在撤销/重复栈的重复部分中。如果确定撤销操作要被反转,例如通过在示例客户端计算机102上按下示例重复按钮,则从撤销/重复栈的重复部分移除用户动作,并将其还原至文档并且还原至撤销/重复栈的撤销部分。例如,如果撤销操作从文档移除了字母“e”,重复操作还原字母“e”。此外,重复操作将字母“e”还原至撤销/重复栈的撤销部分。
图3示出在用户编辑会话的时间快照处的示例撤销/重复栈和示例文档。在示例说明中,每个字母表示特定段落的内容,例如段落A、B、C和D。
在时间快照302,用户打开包含段落A中的内容的文档。尚未作出任何编辑,因此示例撤销/重复栈为空。
在时间快照304,用户创建段落B的内容。示例撤销/重复栈示出水平线314,该水平线示出示例撤销/重复栈的重复部分和撤销部分之间的分界。示例撤销/重复栈的撤销部分是底部316。在时间快照304,示例撤销/重复栈的底部316示出“-B”。“-B”表示段落B的撤销动作。示例段落B中作出的每个用户动作都由字符“-B”来表示。例如,如果用户仅在段落B中键入字符“T”、“h”和“e”,每个字符以键入的顺序被插入撤销/重复栈,先“T”再“h”然后“e”。为简洁起见,所有这些动作都由字符“-B”来表示。
在时间快照306,用户创建段落C的内容。因而,快照306的文档部分示出文档现在具有段落A、B和C中的内容。此外,字符“-C”被添加至撤销/重复栈318的底部。
在时间快照308,作为元数据合并的结果,在示例客户端计算机102处接收到对段落A的锁定。锁定由段落A周围的锁定字符320表示。锁定是表示客户机系统(例如客户端计算机104)上的共同创作的用户正在编辑段落A的元数据。当在客户端计算机102处接收到锁定时,锁定也被添加至撤销/重复栈的撤销部分。这由示例锁定字符322表示。锁定322也通过括号324在撤销/重复栈的撤销部分中的前一条目“-C”前后被括号括起。锁定在前一条目“-C”前后用括号括起的原因是强调元数据合并前的文档状态。
在时间快照310,示例客户端计算机102处的用户决定执行撤销操作,以撤销段落C中作出的最近一个条目。当执行撤销操作时,示例撤销/重复模块208暂时移除示例文档330中的锁定,对段落C中作出的最近一个条目执行撤销操作,然后将该锁定重新插入示例文档330。这些动作被添加至示例撤销/重复栈的重复部分326。动作被添加至示例撤销/重复栈的重复部分326,使得在必要时,动作可以通过重复操作来倒转。
示例撤销/重复栈的示例重复部分326示出,要为对段落C作出的最近一个条目从示例撤销/重复栈的示例重复部分326的自下而上地重复撤销动作,首先移除当前锁定(由字符“-L”指示),然后将段落C的最近一个条目重新插入段落C,然后将锁定重新插入文档(由字符“L”指示)。
时间快照310还示出,在段落C的撤销操作之后,示例文档300包括段落A和B。为简洁起见,这假定段落C的撤销操作移除段落C中的所有文本。时间快照310还示出,在段落C中的最近一个用户动作被撤销之后,示例撤销/重复栈328的重复部分示出锁定以及段落B的最近一个用户动作。这表明,设立下一个撤销操作来暂时移除该锁定并且撤销段落B的最近一个用户动作。
在时间快照312,示例客户端计算机102处的用户开始在新的段落D内键入。每当用户开始新动作时,清除撤销/重复栈的重复部分。这是因为,一旦发起了新动作,就可以不再回复前一个撤销操作。例如,如果用户键入了“t”、“h”和“s”然后为“s”进行撤销操作并且再键入“e”,如果在键入“e”时未清除重复栈,则重复操作会还原“s”,得到“t”“h”“e”“s”,这明显不是所希望的。
时间快照312的示例文档部分330示出段落D已经被添加至文档。时间快照312的示例撤销/重复栈的示例撤销部分332示出,字符“-D”被添加。由于在接收到对段落A的锁定之后创建了段落D,因此段落D的最近一个用户动作可以被撤销,而不用首先移除锁定。然而,正如所讨论的,如果段落D的最近一个用户动作被重复,则为了撤销段落A的最近一个用户动作,可以暂时移除对示例文档330的锁定。
图4示出一流程图,该流程图说明了由示例客户端计算机102执行的示例操作400。在操作402,在示例客户端计算机102处打开共享文档。共享文档是存储在诸如Microsoft SharePoint Server 2007这样的基于在线浏览器的文档协作服务器上的文档。共享文档也可供其他用户共同创作,例如示例客户端计算机104上的用户。共享文档使用示例文档处理模块202来打开和处理。
在操作404,客户端计算机102上的共同创作的用户修改文档的第一部分。用户可以通过在第一段落中键入、删除第一段落的部分、或者在第一段落中作出格式化改变,来修改第一段落。在第一段落中键入包括创建第一段落和编辑第一段落中的文本。
在操作406,客户端计算机102上的示例元数据合并模块204接收对文档第二段落的元数据锁定。在操作408,示例元数据合并模块204将元数据锁定插入到文档的第二段落中。元数据锁定表明另一客户端系统(诸如客户端计算机104)上的共同创作的用户正在修改文档的第二段落。元数据锁定防止客户端计算机102上的用户修改文档的第二段落。
在操作410,示例用户界面模块206以图形形式将元数据锁定显示在文档上,因此客户机102上的共同创作的用户可以快速地看到文档的哪些段落被锁定。在操作412,示例元数据合并模块204将元数据锁定存储在客户端计算机102上的撤销/重复栈上。
在操作414,客户端计算机102上的共同创作的用户发起撤销操作。例如,客户端计算机102上的共同创作的用户可以希望撤销文档第一段落中的最近一个用户动作。撤销操作由示例撤销/重复模块208处理。最近一个用户动作是一编辑动作,编辑动作可以包括键入字符、删除第一段落的部分、以及在第一段落中作出格式化改变。用户一般通过在客户端计算机102上按下与撤销操作相关联的键(例如按下撤销键)来发起撤销操作。
在操作416,示例元数据合并模块204移除撤销/重复栈上的元数据锁定,并且将元数据锁定暂时存储在示例客户端计算机102上的存储器的除了撤销/重复栈以外的区域中。在操作418,最近一个用户动作被撤销,在操作420,示例元数据合并模块204还原撤销/重复栈上的元数据锁定。
图5是示出客户机102上的示例物理组件的框图。客户端计算机104和服务器计算机108以及/或者客户端计算机102和104和/或服务器计算机108内的电子计算设备可以以和实现客户机102的方式类似的方式来实现。
如图5的例子中所示,客户机102是诸如台式机、膝上型计算机、终端计算机、个人数据助理或蜂窝电话设备这样的电子计算设备。
客户机包括存储器单元501。存储器单元501是能够存储数据和指令的计算机可读数据存储介质。存储器单元501可以是各种不同类型的计算机可读数据存储介质,包括但不限于,动态随机存取存储器(DRAM)、双倍数据率同步动态随机存取存储器(DDR SDRAM)、减少等待时间的DRAM、DDRSDRAM、DDR3 SDRAM、Rambus RAM、或者其他类型的计算机可读数据存储介质。
客户机102还可以包括通信介质。通信介质通常由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据来体现,并包括任何信息传递介质。术语“已调制数据信号”是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。
此外,客户机102包括处理单元502。在第一示例中,处理单元502可执行使处理单元502提供专用功能的软件指令。在该第一示例中,处理单元502可实现为一个或多个处理核和/或一个或多个单独的微处理器。例如,在该第一示例中,处理单元502可实现为一个或多个Intel Core2微处理器。处理单元502能够执行指令集中的指令,诸如x86指令集、POWER指令集、RISC指令集、SPARC指令集、IA-64指令集、MIPS指令集,或其他指令集。在第二示例中,处理单元502可实现为提供专用功能的专用集成电路(ASIC)。在第三示例中,处理单元502可通过使用ASIC和通过执行软件指令来提供专用功能。
客户机102还包括视频接口504,该视频接口使客户机计算机(102和104)或服务器计算机108能将视频信息输出到显示设备506。显示设备506可以是各种不同类型的显示设备。例如,显示设备506可以是阴极射线管显示器、LCD显示面板、等离子屏幕显示面板、触敏显示面板、LED阵列,或其他类型的显示设备。
另外,客户机102包括非易失性存储设备508。非易失性存储设备508是能够存储数据和/或指令的计算机可读数据存储介质。非易失性存储设备508可以是各种不同类型的不同非易失性存储设备。例如,非易失性存储设备508可以是一个或多个硬盘驱动器、磁带驱动器、CD-ROM驱动器、DVD-ROM驱动器、蓝光盘驱动器,或其他类型的非易失性存储设备。
客户机102还包括外部组件接口510,该外部组件接口使客户端计算机102和104以及服务器计算机108能与外部组件通信。如图5的示例所示,外部组件接口510与输入设备512和外部存储设备514进行通信。在客户机102的一个实现中,外部组件接口510是通用串行总线(USB)接口。在客户机102的其他实现中,客户机102可以包括使客户机102能与输入设备和/或输出设备通信的另一类接口。例如,客户机102可以包括PS/2接口。输入设备512可以是各种不同类型的设备,包括但不限于,键盘、鼠标、跟踪球、指示笔输入设备、触摸板、触敏显示设备、触敏显示屏、或其他类型的输入设备。外部存储设备514可以是各种不同类型的计算机可读数据存储介质,包括磁带、闪存模块、磁盘驱动器、光盘驱动器、和其他计算机可读数据存储介质。
此外,客户机102包括网络接口516,网络接口816允许客户机102向网络106发送数据并从网络106接收数据。网络接口516可以是各种不同类型的网络接口。例如,网络接口516可以是以太网接口、令牌环接口、光纤接口、无线网络接口(例如,WiFi、WiMax等)、或另一类型的网络接口。
客户机102还包括便于在客户机102的各个组件间进行通信的通信介质518。通信介质518可包括一个或多个不同类型的通信介质,包括但不限于,PCI总线、PCI Express总线、加速图形端口(AGP)总线、Infiniband互连、串行高级技术附件(ATA)互连、平行ATA互连、光通道互连、USB总线、小型计算机系统接口(SCSI)接口、或其他类型的通信介质。
在图5的示例中示出若干计算机可读数据存储介质(即,存储器单元501、非易失性存储设备508、和外部存储设备514)。这些计算机可读数据存储介质可共同构成一个单独的逻辑计算机可读数据存储介质。因此,该单独的逻辑计算机可读数据存储介质可存储处理单元502可执行的指令。以上描述所述的动作可源自存储在该单独的逻辑计算机可读数据存储介质上的指令的执行。由此,当本描述表示特定的逻辑模块执行特定的动作时,这种陈述可解释为意指软件模块的指令使处理单元,诸如处理单元502,执行该动作。
上述各个实施例仅作为说明提供,并且不应被解释为限制。可对上述实施例作出各种修改和改变,而不背离本公开的真实精神和范围。

Claims (13)

1.一种用于在客户端计算机(102)处的撤销操作(300)期间保持元数据的方法(400),所述方法包括:
在所述客户端计算机(102)处修改客户端计算机(102)上的文字处理应用上的文档的第一部分,所述修改文档的第一部分包括在文档的第一部分中执行一个或多个用户动作;
在修改文档的第一部分的同时,在客户端计算机(102)处接收关于文档的第二部分的元数据,文档的第二部分不同于文档的第一部分;
在接收到关于文档的第二部分的元数据之后,将该元数据插入文档的第二部分;以及
在元数据被插入文档的第二部分之后,在文字处理应用上执行撤销操作(300),其中撤销操作包括以下步骤:
在客户端计算机(102)处移除关于文档第二部分的元数据;
撤销文档第一部分中的一个或多个用户动作中的最近一个用户动作;
以及
还原关于文档第二部分的元数据,
其中在客户端计算机(102)处移除关于文档第二部分的元数据包括:从程序栈移除元数据并将所述元数据存储在客户端计算机(102)上的不同于所述程序栈的存储器区域中。
2.如权利要求1所述的方法,其特征在于,在客户端计算机(102)处接收到的关于文档第二部分的元数据是对文档第二部分的锁定。
3.如权利要求1所述的方法,其特征在于,文档的第一部分对应于文档中的段落。
4.如权利要求1所述的方法,还包括,将接收到的关于文档第二部分的元数据存储在程序栈中。
5.如权利要求4所述的方法,其特征在于,所述程序栈是撤销/重复栈。
6.如权利要求4所述的方法,其特征在于,撤销所述最近一个用户动作包括从程序栈移除最近一个用户动作。
7.如权利要求1所述的方法,其特征在于,文档的第一部分对应于文档中第一用户正在编辑的第一段落,文档的第二部分对应于第二用户正在编辑的第二段落。
8.一种用于撤销操作期间保持元数据的系统,包括:
文档处理模块(202),该文档处理模块允许用户在计算设备(102)上创建和编辑文档;
元数据合并模块(204),该元数据合并模块接收来自服务器计算机(108)的元数据并将所述元数据插入由文档处理模块(202)打开的文档的一个或多个部分中;
撤销/重复模块(208),该撤销/重复模块存储一个或多个用户动作并且存储从服务器系统(108)接收到的元数据,所述撤销/重复模块(208)包括撤销/重复栈,所述元数据和用户动作被存储在所述撤销/重复栈上,所述撤销/重复模块(208)允许用户通过在撤销用户动作前从文档的一个或多个部分移除元数据、并且在撤销用户动作后将所移除的元数据重新插入到文档的一个或多个部分中、来撤销所述一个或多个用户动作;以及
用户界面模块(206),该用户界面模块在文档上显示从服务器计算机(108)接收到的元数据,
其中所述撤销/重复模块从所述撤销/重复栈移除所述元数据并将所述元数据存储在客户端计算机上的不同于所述撤销/重复栈的存储器区域中。
9.如权利要求8所述的系统,其特征在于,文档的一个或多个部分是段落。
10.如权利要求9所述的系统,其特征在于,所述元数据是锁定,所述锁定防止用户对锁定被插入其中的文档的一个或多个部分进行写操作。
11.如权利要求8所述的系统,其特征在于,所述元数据是锁定,所述锁定防止用户对锁定被插入其中的文档的一个或多个部分进行写操作。
12.如权利要求8所述的系统,其特征在于,所述撤销/重复模块(208)还包括重复程序栈,所述重复程序栈存储一个或多个用户动作和元数据,所述重复程序栈能在保持文档中元数据的完整性的同时允许倒转对用户动作的撤销操作。
13.一种由第一客户端计算机(102)的处理单元(502)执行的方法,包括:
在第一客户端计算机(102)上编辑文档的第一段落,所述第一段落被第一客户端计算机(102)上的用户所编辑,文档第一段落的编辑包括文档的第一段落中的一个或多个用户动作,所述一个或多个用户动作包括在第一段落中键入、删除第一段落中的文本、在第一段落中作出样式改变、以及格式化第一段落,所述文档的第一段落中的一个或多个用户动作被存储在第一客户端计算机(102)上的撤销/重复栈上;
在编辑文档的第一段落的同时,在第一客户端计算机(102)处接收对文档的第二段落的锁定,所述锁定从服务器计算机(108)被接收,所述锁定表明,第二客户端计算机(104)上的用户目前正在编辑文档的第二段落,所述锁定防止用户编辑第二段落;
在接收到对文档的第二段落的锁定之后,使第一客户端计算机(102)的处理单元(502)进行以下操作:
在文档的第二段落中插入锁定,所述锁定防止第一客户端计算机(102)上的用户编辑第一客户端计算机(102)上的第二段落;
将所述锁定存储在第一客户端计算机(102)的撤销/重复栈上;以及
在将锁定存储在第一客户端计算机(102)的撤销/重复栈上之后,在第一客户端计算机(102)处执行撤销操作,其中所述撤销操作使第一客户端计算机(102)上的处理单元执行以下操作:
从第一客户端计算机(102)处的撤销/重复栈移除对文档的第二段落的锁定;
当从第一客户端计算机(102)处的撤销/重复栈移除锁定时,将所述锁定暂时存储在第一客户端计算机(102)上的存储器(501)中,所述锁定被存储在不包括撤销/重复栈的存储器(501)的区域中;
当从第一客户端计算机(102)处的撤销/重复栈移除锁定时,撤销第一客户端计算机(102)处的一个或多个用户动作中的最近一个,所述一个或多个用户动作中的最近一个从撤销/重复栈被移除;以及
在第一客户端计算机(102)处撤销了所述一个或多个用户动作中的最近一个之后,从第一客户端计算机(102)上暂时存储所述锁定的存储器(501)的区域移除所述锁定,并且在撤销/重复栈上还原所述锁定。
CN2010800200101A 2009-04-29 2010-04-21 保持跨元数据合并的撤销和重复能力 Active CN102414679B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/431,883 2009-04-29
US12/431,883 US8209603B2 (en) 2009-04-29 2009-04-29 Maintaining undo and redo capability across metadata merges
PCT/US2010/031951 WO2010126763A2 (en) 2009-04-29 2010-04-21 Maintaining undo and redo capability across metadata merges

Publications (2)

Publication Number Publication Date
CN102414679A CN102414679A (zh) 2012-04-11
CN102414679B true CN102414679B (zh) 2013-07-17

Family

ID=43031324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800200101A Active CN102414679B (zh) 2009-04-29 2010-04-21 保持跨元数据合并的撤销和重复能力

Country Status (14)

Country Link
US (1) US8209603B2 (zh)
EP (1) EP2425357B1 (zh)
JP (1) JP5684236B2 (zh)
KR (1) KR101683322B1 (zh)
CN (1) CN102414679B (zh)
AU (1) AU2010241861B2 (zh)
BR (1) BRPI1012014A8 (zh)
CA (1) CA2756687C (zh)
IL (1) IL215273A0 (zh)
MX (1) MX2011011350A (zh)
RU (1) RU2554785C2 (zh)
TW (1) TWI412942B (zh)
WO (1) WO2010126763A2 (zh)
ZA (1) ZA201106939B (zh)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468168B2 (en) * 2007-07-25 2013-06-18 Xobni Corporation Display of profile information based on implicit actions
US20110010638A1 (en) * 2009-07-10 2011-01-13 Novell, Inc. Presence-enabled inbox
US9208137B2 (en) * 2010-08-19 2015-12-08 Cadence Design Systems, Inc. Method to preview an undo/redo list
US20120101980A1 (en) * 2010-10-26 2012-04-26 Microsoft Corporation Synchronizing online document edits
CN102262620B (zh) * 2011-08-04 2014-11-26 无锡永中软件有限公司 一种文档协作方法
US9948988B2 (en) 2011-10-04 2018-04-17 Ricoh Company, Ltd. Meeting system that interconnects group and personal devices across a network
US10733151B2 (en) 2011-10-27 2020-08-04 Microsoft Technology Licensing, Llc Techniques to share media files
US8949352B2 (en) 2011-10-28 2015-02-03 Microsoft Corporation Document sharing through browser
US8484166B2 (en) * 2011-11-03 2013-07-09 Oracle International Corporation Oracle rewind: metadata-driven undo
US9053079B2 (en) * 2011-12-12 2015-06-09 Microsoft Technology Licensing, Llc Techniques to manage collaborative documents
US11514230B2 (en) * 2012-01-18 2022-11-29 Google Llc Methods and systems for searching document operation labels
US11392601B2 (en) 2012-01-18 2022-07-19 Google Llc Search-based document user interfaces
US9262180B2 (en) * 2012-04-26 2016-02-16 Adobe Systems Incorporated Method and apparatus for recommending product features in a software application in real time
US20150199307A1 (en) * 2012-08-08 2015-07-16 Google Inc. Pluggable Architecture For Optimizing Versioned Rendering of Collaborative Documents
US9336234B2 (en) 2013-02-22 2016-05-10 Adobe Systems Incorporated Online content management system with undo and redo operations
CN104238865A (zh) * 2013-06-08 2014-12-24 深圳联友科技有限公司 一种在电子设备中撤消和重做界面操作的方法及系统
CN103501339B (zh) * 2013-09-30 2017-06-20 华为技术有限公司 元数据处理方法及元数据服务器
US9530233B2 (en) * 2013-10-10 2016-12-27 Adobe Systems Incorporated Action records associated with editable content objects
US9817805B1 (en) * 2014-06-24 2017-11-14 Google Inc. Systems and methods for providing a collaborative document environment
JP6512763B2 (ja) * 2014-07-16 2019-05-15 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
CN104156344B (zh) * 2014-07-21 2016-09-28 小米科技有限责任公司 文本编辑方法和装置
US10491695B2 (en) * 2014-08-22 2019-11-26 Oracle International Corporation Autosave with across user session undo support
KR101683448B1 (ko) * 2014-12-02 2016-12-07 주식회사 인프라웨어 복합 명령에 대한 실행 취소 방법
WO2016094868A1 (en) * 2014-12-11 2016-06-16 LiveLoop, Inc. Method and system for concurrent collaborative undo operations in computer application software
US20160321226A1 (en) * 2015-05-01 2016-11-03 Microsoft Technology Licensing, Llc Insertion of unsaved content via content channel
US9972109B2 (en) * 2015-07-30 2018-05-15 Adobe Systems Incorporated Implementing out of order access to reversal operations in images
CN106250221B (zh) * 2016-07-28 2019-06-11 福建天泉教育科技有限公司 基于PowerPoint应用对象的插入方法及其系统
AU2020335015B2 (en) * 2020-05-07 2022-01-20 Citrix Systems, Inc. Dynamic region based application operations
CN113836875B (zh) * 2021-09-16 2023-08-22 网易(杭州)网络有限公司 文本处理方法、系统、装置、存储介质
CN114816593A (zh) * 2022-06-27 2022-07-29 天津联想协同科技有限公司 一种命令的执行方法、装置及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2920393B2 (ja) * 1989-12-14 1999-07-19 株式会社日立製作所 文書編集方法
DE69126066T2 (de) * 1990-06-29 1997-09-25 Oracle Corp Verfahren und Gerät zur Optimierung des Logbuchaufhebungsgebrauchs
EP0664901B1 (en) * 1992-12-23 1996-09-18 Otlc Atomic command system
US5890181A (en) * 1996-11-14 1999-03-30 Kurzwell Applied Intelligence, Inc. System and method for remotely grouping contents of an action history stack
US5966512A (en) 1997-06-05 1999-10-12 International Business Machines Corporation Groupware save operation
US6067551A (en) * 1997-11-14 2000-05-23 Microsoft Corporation Computer implemented method for simultaneous multi-user editing of a document
US7096465B1 (en) * 1999-05-17 2006-08-22 Invensys Systems, Inc. Process control configuration system with parameterized objects
WO2002017115A2 (en) * 2000-08-21 2002-02-28 Thoughtslinger Corporation Simultaneous multi-user document editing system
EP1204048A1 (en) * 2000-11-03 2002-05-08 Sun Microsystems, Inc. Method and apparatus for handling scenarios in spreadsheet documents
US7823060B2 (en) * 2002-06-07 2010-10-26 Microsoft Corporation Undo/redo architecture across multiple files
US6976022B2 (en) * 2002-09-16 2005-12-13 Oracle International Corporation Method and mechanism for batch processing transaction logging records
US6981004B2 (en) * 2002-09-16 2005-12-27 Oracle International Corporation Method and mechanism for implementing in-memory transaction logging records
US20080177994A1 (en) * 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US8719325B2 (en) * 2003-02-28 2014-05-06 Microsoft Corporation Method to initiate server based collaboration on e-mail attachments
CA2422176C (en) * 2003-03-14 2009-07-21 Ibm Canada Limited - Ibm Canada Limitee Method and apparatus for interrupting updates to a database to provide read-only access
US7818679B2 (en) * 2004-04-20 2010-10-19 Microsoft Corporation Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems
JP4069905B2 (ja) * 2004-06-28 2008-04-02 コニカミノルタビジネステクノロジーズ株式会社 共有ファイル管理システムおよびサーバー
US7499955B2 (en) * 2005-03-30 2009-03-03 Microsoft Corporation System and method for undoing application actions using inverse actions with atomic rollback
US8127278B2 (en) * 2006-09-28 2012-02-28 Sap Ag System and method for extending legacy applications with undo/redo functionality
US7865872B2 (en) * 2006-12-01 2011-01-04 Murex S.A.S. Producer graph oriented programming framework with undo, redo, and abort execution support
US7900142B2 (en) * 2007-01-15 2011-03-01 Microsoft Corporation Selective undo of editing operations performed on data objects
KR100819005B1 (ko) * 2007-02-16 2008-04-03 삼성전자주식회사 저항체를 이용한 비휘발성 메모리 장치
US8239760B2 (en) * 2007-06-26 2012-08-07 Sap Ag Multi-user document editing system and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
KR101683322B1 (ko) 2016-12-06
BRPI1012014A2 (pt) 2016-05-10
CA2756687C (en) 2016-06-21
ZA201106939B (en) 2012-11-29
CN102414679A (zh) 2012-04-11
US20100281362A1 (en) 2010-11-04
MX2011011350A (es) 2011-11-18
EP2425357B1 (en) 2020-10-14
JP5684236B2 (ja) 2015-03-11
KR20120011332A (ko) 2012-02-07
AU2010241861B2 (en) 2014-07-10
BRPI1012014A8 (pt) 2017-10-03
RU2011143848A (ru) 2013-05-10
JP2012525635A (ja) 2012-10-22
TW201039148A (en) 2010-11-01
RU2554785C2 (ru) 2015-06-27
IL215273A0 (en) 2011-11-30
EP2425357A4 (en) 2018-01-10
US8209603B2 (en) 2012-06-26
TWI412942B (zh) 2013-10-21
WO2010126763A3 (en) 2011-01-13
AU2010241861A1 (en) 2011-10-20
CA2756687A1 (en) 2010-11-04
WO2010126763A2 (en) 2010-11-04
EP2425357A2 (en) 2012-03-07

Similar Documents

Publication Publication Date Title
CN102414679B (zh) 保持跨元数据合并的撤销和重复能力
CN108292302B (zh) 用于重复内容的自动呈现的方法和系统
JP2012525635A5 (zh)
KR20150115850A (ko) 특징의 버전 또는 다수의 편집기를 사용하는 공동 작업
EP3084634B1 (en) Interaction with spreadsheet application function tokens
KR20060041873A (ko) 통합 개발 환경에서 디자이너로서 호스트된 애플리케이션
CN102508840A (zh) 在线绘画的协作编辑
EP3230893B1 (en) Method and system for concurrent collaborative undo operations in computer application software
US10867118B2 (en) Method and system for implementing a collaboration platform for structured objects in a document
US10565301B2 (en) Stateful editing of rich content using a basic text box
US20160196251A1 (en) Method and apparatus for annotating an electronic document
US10063603B2 (en) Method and system for concurrent collaborative undo operations in computer application software
US8327278B2 (en) Synchronizing metadata describes user content updates and an indication of user gestures being performed within the document, and across client systems using different communication channels
US20160320948A1 (en) Document and object manipulation
KR20140045395A (ko) 전자 문서의 편집 뷰와 백스테이지 뷰 사이의 전환 기법
CN104317415A (zh) 在移动端虚拟机内实现单一按键替代组合键的方法和系统
KR20220111220A (ko) 워드 프로세싱 장치 및 방법
EP3912116A1 (en) Intent signaling with collaborators
Herrenknecht et al. Tunnelling in changing geology

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

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

Effective date of registration: 20150507

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.