`Baker et al.
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 6,185,591 B1
`Feb. 6, 2001
`
`US006185591B1
`
`(54) TEXT EDIT SYSTEM WITH ENHANCED
`UND0 USER INTERFACE
`
`(75)
`
`Inventors: Bruce Raymond Baker; Adrian
`Storisteanu, both of Toronto (CA)
`
`(73) Assigned International Business Machines
`Corps Armonk, NY (US)
`Under 35 USC, 1540;), the term of this
`patent shall be extended for 0 days.
`
`( * ) Notjee;
`
`(21) APPL NO; 08/902448
`(22)
`Filed:
`Jul. 29, 1997
`
`(51)
`
`Int. Cl.7 .......................... .. G06F 15/00, G06F 17/00,
`G06F 17/21; G06F 17/24
`
`(52) U.S. Cl.
`
`......................... .. 707/531, 707/530, 707/540
`
`(58) Field of Search ................................... .. 707/531, 540,
`707/529, 530, 515; 717/1; 345/439
`
`(56)
`
`References Cited
`U S PATENT DOCUMENTS
`'
`'
`7/1997 Eick ................................... .. 345/326
`5,644,692 *
`9/1998 Bangs et al.
`.. 707/515
`5,802,380 *
`5,990,906 * 11/1999 Hudson et Ell.
`345/439
`6,026,233 *
`2/2000 Shulman et al.
`..... .. 717/1
`6,026,416 *
`2/2000 Kanerva et al.
`................... .. 707/515
`
`
`
`OTHER PUBLICATIONS
`Quattro Pro Version 3.0 User’s Guide, Borland Interna-
`tional, pp. 12-17, 30-31, 513-520, 1991.*
`WordPerfect User’s Guide Version 6.1, Novell Incorporated,
`pp. 634-635, Oct. 1994.*
`Editable graphical histories, Kurlander, D; Feiner, S; IEEE
`¥)c;ré<sFhop on Visual Languages, 1988, pp. 127-134, Oct.
`WordPcrfcct 6.1 For Wondows For Dummies, 2nd Edition,
`IDG B0015, PP~ 23-25, 55, 1994*
`cited by examiner
`Primary Examiner—Stephen S. Hong
`Assistant Examt'ner—William L. Bashore
`(74) Attorney, Agent. or Firm—A. Bruce Clay; Myers,
`Bigel, Sibley & Satovec, PA
`(57)
`ABSTRACT
`
`Present edit systems having undo/redo functions are typi-
`cally inflexible and do not permit users of computer systems
`to make use of these hlhetlhhs to the greatest adVahtage~ The
`disclosed edit system ‘having an enhanced undo interface,
`permits the selective display of undo elements intermixed in
`the edit view of the document with actual text elements and
`positioned relative to the affected text The user may select
`.
`any undo element and selectively restore changes to the text.
`A series of user interface enhancements provide the user
`with a flexible set of capabilities for manipulating and
`assessing changes to a document.
`
`20 Claims, 6 Drawing Sheets
`
`10
`
`
`
`Editor pro]ec1’\sampIe.cpp
`
`O_pflons Vfindow flelp
`Edit
`flew A_/cflons
`IBIS’! nlblfllnn 0001900
`Column 1
`Insert
`'
`—+——1 —+—2—+——-3———+-—-4—+—-5—+—-6-—-+——7—+—8
`I
`oc
`--Too‘
`1 I
`long LPEXCompare::fi||B|ock {IGraphicContect& gc, int top, int bottom}
`K
`
`11
`
`12
`
`
`
`003
`004
`005
`33$
`O08
`009
`010
`011
`012
`013
`014
`015 3’
`
`13
`
`14
`
`15
`
`
`
`long yTop = ychart + cychan - {top - 1} ‘ cycharrlsscaler;
`long yBottom = yChart + cychart - bottom * cyChart/sSca|er;
`lGRectang|e b|ock(|Rectang|e(xLeft, c|ientHeight - yTop,
`xRight, c|ientHeight - yBot'tom));
`
`|Co|our;;Colour b|ockCo|our =
`compareoptions.|ineCo|our[top];
`bundle.setFi||Co|our(b|ockCo|our).setPenColour(b|ockCo|our);
`c|ock.setGraphicBundIe(bundle);
`b|ock.drawOn(gc);
`return (yTop + yBo1tom) / 2;
`
`16
`
`1
`
`MS 1006
`
`MS 1006
`
`1
`
`
`
`U.S. Patent
`
`.D
`
`Cm
`
`US 6,185,591 B1
`
`W...52._cE:_oU
`
`2E.oE
`
`
`
`%m;oucw>EofimEofid,3gumom
`
`
`
`aao.m_aEo2oo.o.Q.23D
`
`
`M€38E_.8.E_onw.o2cooo_fi9_o_vV_oo_m___hm§_eooxmn_._95.M._oo.Ioou_
`6.,w.|+IInII+|.oII+IImII+IlvIl+..|mII+IINII+II_II+I..-
`
`
`
`
`
`
`
`__m_mowm\tm;o>o.2.-83-tm_._o>o+tmco>uao._.>m_._o_
`
`.
`
`
`
`
`
`Suo_momm=._m;o>o..Eozon-:m,._o>o+tm_._o>uEouom>m:o_
`
`
`
`.1.do:-zm_o_._Em__o.:o._.%_o:2oom_v_oo_nm_9_28m_o_
`
`
`
`
`
`
`
`o§Eo=om>-zm_m:..$__o.Em_mx
`
`_Eo=._:o_ooo:__.mco_EOw.maEoo%u5o_ooxoc_n5o_oo_u:o_oU_
`
`Hcso_ooxoo_£So_oocwn=uw.c:o_ooxoo_£5o_oo___u=mm.w_u:an
`
`_Aw.uc:£m_uc:moEam.0wmm.v_oo_o
`
`N;AEozom_>+no.5E32
`
`xo9cO>>m._u.v_oo_n
`
`2
`
`
`
`U.S. Patent
`
`Feb. 6,2001
`
`Sheet 2 of6
`
`US 6,185,591 B1
`
`
`
`
`
`522.0%-Ea_o:Em__u.Em_~_x
`
`
`
`.Eo:on_E_d2E_on.»t8,EoUu_cao._O__u_oo_m____.fio._UaEoUxoa._mco
`
`
`
`
`
`u¢_oomm>cor_U>u..S-no:-tocU>o+tor_U>uac;95.
`
`
`
`uo_oom&tocU>o..Eoton-tocU>u+tocU>nEo:om>9.2
`
`
`
`
`
`do;-Em_2.:cm__u.:o._x_w_mco,6o~__Iuo_no_ucBoo~_0_
`
`
`
`
`
`$30:50:003m_.oc__E".85UoEUoEI=v_oo_m___:
`
`u._o_oov_oo_a_o_ouSn_§.._o_ouu_8_n:o_ou__E9.o_us5
`
`u_Qo:_o_oUmc__.mco=QO9oaEoo
`
`
`
`n_o_oUxuo_n.o_oUEo_oU_
`
`N\?cOt.Om>+85E29
`
`.28o_uu_EE22E;u2cOz6._v.u_uo_n_
`
`3
`
`
`
`
`
`Feb. 6, 2001
`
`Sheet 3 of 6
`
`US 6,185,591 B1
`
`msIiEo:om>-Em_$_Eo__o.Eu_~_x
`
`
`.
`
`
`
` .oocm.om. .oo_3.0.5.
`
`:0
`
`.uEU N5
`
`
`
`
`
`
`
`do;.Eu_o_.zco__u.cm._x_m_aca.uo~__:uo_nm_mc£oomo_
`
` U.S.Patent
`
`
`
`um_oomm>._ucU>o.:-no:-tocU>o+tccux,u8396.
`
`
`
`um_oom»\to.._U>o.Eaton-to;0>o+._LO£U>.hC._Ot.Om>95.
`
`N».
`
`
`
`non28:?EofiwEofidso.»:82.“.
`
`Iu»\
`
`4
`
`
`
`
`
`
`
`aP
`
`10026,
`
`t
`
`5O01,6
`
`1B
`
`
`
`
`
`..._o_2.=co__u£o._x_o_uco.uo~__:oo_ao_uc2oo~_o_.o3/7ieozofi-Eu_o:Eo__u.29”...4doe»-
`
`
`
`
`
`
`
` sou...2._o_oUoc__.mcoz.Oo_o.Eoo%I.—0_OU¥UO_fl.o_oEo_oU_
`
`S__<,6o_3ooUco=oo_8ncm
`
`300
`
`23m
`
`1§32.
`
`m29.03
`
`MamacocoVtmmc_wmcE3_0Uo_.30¢
`
`
`
`t2as:38:2,Eofio8o=o<32>=82:%aao.o_aEoacom_o.n_
`.o=umDt4/E
`EEEEEEEQEEIEWEW:\‘I.|.IIII.II\\“F
`
`
`
`m.Lo_oum$.c;o>u.Eozon-:o5>u+taco?Soto?98.S.Lo_oom<t2u>u.:-no...-tocofi+coco.»nno;9.25
`
`5
`
`
`
`..lHe4|.aP3U
`
`Feb. 6, 2001
`
`Sheet 5 of 6
`
`US 6,185,591 B1
`
`V»./I
`
`hhlv
`
`t0mC_
`
`canzonc.s.>
`
`%@aa%sm@
`:53.0EKElN»
`_.Cc.__...__OU
`3250Eofid269amam\
`
`Qh
`
`
`
`M:.05
`
`K
`
`
`
`aao.m_aEomcom_o.a5%
`
`1D/
`
`3
`
`
`
`
`
`.Eot.on=.__d2E_do.m,§oEoUuEao.O__V.uo_m__cuo.oaEoUxoQ._ocomoo
`
`
`
`
`
`uo_oum&toc0>u.2-no:-to;u>o+tU£U>HQO.—.>oco.woo
`
`
`
`
`
`
`
`um_oumm:._o.._U>u.Eoton-tocU>u+t_u.._U>uEOtOm>ace.moo
`
`woo
`
`coo
`
`
`
`
`
`do:-Eu_o:Em__u.:m._x.o_oco6o~__v_uo_no_oc_2uo~_o_K8
`
`
`
`fieozoe,Eu_o:Eo__u.23..-
`
`
`
`
`
`
`
`n.o_oUu_oo_n.o_oUEo_oU_moo
`
`moo
`
`1__o_oov_oo_a.o_ou$n_§...o_oou_oo_%o_oo___u_,§6_nc2_—5NHo:._3o_oUoc__.mco=aOQon_Eouo8
`
`R.o_u:3_m_nc3u_fio.o_o3_uo_nN8
`
`.SoN\AEotom>+85.229m8
`
`
`
`,E_oa0_UU_EE22\\So
`
`;om.cO>>o._o.v_uo_nm8
`
`upup
`
`
`
`._._..“.83:=._uo_m__E.8
`
`
`
`
`
`6
`
`
`
`U.S. Patent
`
`Feb. 6,2001
`
`Sheet 6 of6
`
`US 6,185,591 B1
`
`FIG. 2
`
`.. 22
`
`Edit Control
`
`2”
`
`/
`
`,........................................................ 23
`Text Processing
`
`E.................................................... 24
`Imbedded Undo
`
`............................................................... 25
`= Graphical User
`Interface Control
`
`25
`
`§Extemal Commands/E
`Macros Interface
`3
`
`Edit Control
`
`Structure
`
`Document Control
`
`Structure
`
`27
`
`28
`
`
`I
`
`21
`
`Ed“ Buffer 29
`
`30
`
`Undo Stack 31
`
`32
`
`ElementStructure
`
`UndoStructure
`
`
`
`
`
`
`
`Vrew Control
`
`Structure
`
`33
`
`
`I
`
`7
`
`
`
`US 6,185,591 B1
`
`1
`TEXT EDIT SYSTEM WITH ENHANCED
`UNDO USER INTERFACE
`
`The subject invention relates to computer applications in
`general and more particularly to improvements in the car-
`rying out and performing editing functions on data in
`computer systems which include a central processing
`system, an interactive display terminal and a user input
`device.
`
`BACKGROUND OF THE INVENTION
`
`The ability of data processing systems to store, retrieve
`and manipulate data has been well exploited in the fields of
`text and program processing. Typically, an author uses an
`interactive display terminal to create a document or file by
`entering text or data into a data processing system which
`stores the data in electronic form and displays the text on a
`display device, such as a cathode ray tube. When the author
`is satisfied, the text is stored in the form of a file or document
`in a memory device which may be, for example, a magnetic
`disk store. In order to change or manipulate the data, the
`system must be adapted to perform editing functions.
`Editor programs are well known in the field of data
`processing. A file of data, which may hold numerical data,
`computer programs, or documentation such as text, as well
`as other information, is created by the user. If it is required
`to make a change to the file of data, it is necessary to use a
`program executed on the computer to access and allow the
`user to effect changes. Thus, editors are known to allow
`users to work with files and perform such activities as to
`create files, enter data, manipulate the screen display, make
`changes to the file, and transfer data between files. Use of
`editors involves the interactive changing, adding or deleting
`data from files.
`
`An example of a general text processing editor for use on
`the Call Management System (CMS) computer environment
`is the XEDIT program. Details of this program and the
`functions involved can be found in the XEDIT User’s Guide
`
`Virtual Machine/Enterprise Systems Architecture, available
`from International Business Machines Corporation as pub-
`lication no. SC24-5463. XEDIT is available for use on host
`computer systems.
`Apublication describing editors in general, as well as the
`LEXX editor in particular, is entitled LEXX—A Program-
`mable Structured Editor, by M. F. Cowlishaw, published in
`the IBM Journal of Research and Development, Volume 31,
`No. 1, Jan. 1987, pp. 73-80. This paper describes details of
`aspects and capabilities of various text editors and structured
`editors. LEXX is a general purpose editor that can edit both
`documentation and programs while making evident
`the
`structure of the data being edited. LEXX is an editor that can
`be programmed not only to understand and present
`the
`structure of data, but also to display those data in a variety
`of styles and colors in order to best match the data to the user
`and to the task being performed. The result is a program-
`mable editor that can be customized to suit the data, the task
`and the needs of the user.
`
`A further development of the LEXX editor that can also
`be used to create and edit many kinds of data, including
`programs and documentation,
`is referred to as the Live
`Parsing Extensible Editor (LPEX), which runs on worksta-
`tions. The live parsing capability permits external com-
`mands and edit macros attached to the editor to monitor
`
`changes made to a document as the user works with and
`manipulates the document. Details of the LPEX editor can
`be found in the LPEX User’s Guide and Reference Manual,
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`IBM publication no. SC09-2202, available from Interna-
`tional Business Machines Corporation.
`Text editor applications are continually being improved
`and made more useful and friendly to the end user. For
`example, IBM Technical Disclosure Bulletin, Volume 34,
`No. 7A, Dec. 1991, pp. 20-25, describes a pause review
`technique for improving the interactivity of direct manipu-
`lation in a text editor application. During direct manipula-
`tion of a document, a user may be uncertain of the effects of
`certain changes. This publication describes a technique for
`providing visual feedback and the effect that the change may
`have on the document before a direct manipulation is
`completed.
`It provides for a conversation-like preview/
`reject/continue sequence so as to permit the user to actually
`see what is happening to the document before the changes
`are finally implemented.
`Word processors are application programs for use in
`personal computer environments and perform similar func-
`tions on a document as an editor, including the creating and
`editing of files. Examples of available word processor appli-
`cations are WordPerfectTM from Corel Corporation, Ami-
`proTM from Lotus Development Corporation and PFS Win-
`dowWorksTM from Softkey International Inc. Typically, user
`manuals are provided by the respective suppliers or manu-
`facturers of these programs which readily describe the
`capabilities and functions of the programs.
`In general, currently available editors and word process-
`ing programs, and in particular the programs referred to
`above, provide for the functions of making a change to a
`document or file, such as deleting a word, line or some
`portion of a file, and providing the capability to recover or
`“undo” the change that had been originally made in the
`process of editing the document. Some programs also pro-
`vide the capability to “redo” a change that was previously
`undone. It has been found, however, that these capabilities
`are not sufficient for all editing applications and there is a
`need for a niulti-level, random access undo function, thus
`providing increased usability. There is a further need for an
`improved graphical user interface so as to display all
`changes to a document in their context, and to be able to
`selectively accept them as desired. Thus, new functions to be
`implemented in computer programs for editing documents
`are needed, along with an associated meaningful graphical
`interface.
`
`Present undo/redo implementations in edit systems pro-
`vide neither adequate visual feedback of the available undo-
`able changes, nor flexible capabilities to handle these and
`can be characterized by the following shortcomings or
`limitations:
`
`the user can only proceed through changes sequentially,
`from the most recent change backwards, must apply
`these changes (undo/redo them) while going through
`the Undo Stack, consequently eliminating from the
`document edit view the latest, and any other, variant of
`the affected text;
`the user cannot selectively restore part of a global change;
`the user cannot see all the text that is going to be restored
`(e.g., in the case of a global change);
`the user cannot see a certain change in the context of the
`other changes carried out
`in the course of editing,
`before undoing it.
`This lack of 11ser-friendliness prevents users from using
`undo/redo functions in complex editing situations where
`they could be most useful, as the user is virtually operating
`blindly while doing changes to a document. As a result the
`user is forced to retype, carefully rescan the document
`
`8
`
`
`
`US 6,185,591 B1
`
`3
`manually while looking for changes, keep and open in the
`edit system several versions of the document or parts of it for
`reference, or similar unproductive alternatives, resulting in
`loss of time and productivity.
`SUMMARY OF THE INVENTION
`
`It is an object of the present invention to provide an edit
`system having an enhanced undo interface which selectively
`displays undo elements (records), that is, previous states of
`the document
`text,
`intermixed in the edit view of the
`document with the actual
`text elements, and positioned
`relative to the affected text. The invention allows the user to
`
`display selected undo elements that belong to one or more
`undo units (sets, or generations of changes), and selectively
`restore changes to the text. A series of user
`interface
`enhancements comprising visual indications, menu items,
`and key actions available in the enhanced edit system
`provide a rich and flexible set of capabilities to the user and
`to external command/cdit macro writers to manipulate
`changes to the document.
`Another object of the invention is to allow the user to
`view, analyze, select specific undo unit elements and option-
`ally restore changes selectively. For a line that underwent
`several modifications,
`the user can select any of those
`changes to be restored.
`It is an object of the invention is to allow a user of an edit
`system to view and pick partial changes done in the context
`of a comprehensive (large-scope) document alteration, such
`as a global “find and replace” operation, and selectively
`restore the text in order to regress undesired text replaces.
`Another object of the invention is that, depending on the
`particular implementation in the enhanced edit system and
`the active mode of imbcdding undo rccords, any changes
`being performed to the document text, including the pro-
`cessing of undo elements, may trigger a refresh of the undo
`elements imbedded in the document edit view.
`
`Another object of the invention is to display attributes of
`the undo elements in the edit View such that they are clearly
`distinguished from the current text elements. The user can
`navigate easily between the undo elements selected, and
`zoom-in on one or more types of undo elements selected for
`display, and then zoom out to the surrounding contcxt.
`Another object of the invention is to permit this enhanced
`undo interface to be implemented in addition to the conven-
`tional undo/redo options or commands currently imple-
`mented in edit systems. The described method does not
`affect
`the basic underlying mechanism of storing undo
`information in the edit system (either separate structures, or
`structures intermixed with the text elements), nor the pro-
`cessing of the regular undo/redo operations.
`According to one aspect of the present invention, there is
`provided an improved method implemented in a computer
`system, for editing a document containing text stored in and
`displayed by said computer system. The method comprises
`the steps of displaying the document incorporating a plu-
`rality of changes, displaying the document with all of the
`text along with the plurality of changes, selecting and
`“undoing” certain of said plurality of changes, and display-
`ing and storing an edited document having certain changes
`implemented and the selected changes undone so that the
`resulting document has text corresponding to the undone
`changes along with the remaining plurality of changes.
`According to another aspect of the invention there is
`provided a programmed computer system to enable a user to
`edit a document containing text stored in and displayed by
`said computer system. The programmed computer system
`
`4
`comprises means for a user to enter into the computer system
`a plurality of changes to the text of the document, means for
`displaying the document with all of the text along with the
`plurality of changes, means for selecting and undoing cer-
`tain of said plurality of changes, and means for displaying
`and storing an edited document having certain changes
`implemented and the selected changes undone so that the
`final document has text corresponding to the undone
`changes along with the remaining plurality of changes.
`According to a further aspect of the invention there is
`provided a computer program product comprising a com-
`puter usable medium having computer readable program
`code means embodied therein for causing the editing of a
`document containing text, the computer readable program
`code means in said computer program product comprises
`computer readable program code means for causing a com-
`puter to enter a plurality of changes to the text of the
`document, computer readable program code means for caus-
`ing the document to be displayed on a monitor with the text
`along with the plurality of changes, computer readable
`program code means, in response to user inputs, for select-
`ing and undoing certain of said plurality of changes, and
`computer readable program code means for displaying and
`storing an edited document having certain changes imple-
`mented and the selected changes undone so that the docu-
`ment has text corresponding to the undone changes along
`with the remaining plurality of changes.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The foregoing and other objects, aspects and advantages
`of the invention will be better understood from the following
`detailed description of the preferred embodiment of the
`invention with reference to the accompanying drawings in
`which:
`
`FIGS. 1A to IE is a series of document images on a screen
`display illustrating a sample application of the invention;
`and
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`FIG. 2 provides an overview of the main components of
`an edit system showing the implementation of the invention.
`
`45
`
`50
`
`55
`
`60
`
`65
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT OF THE
`INVENTION
`
`The disclosed invention as embodied in a method, com-
`puter system and computer program product, is particularly
`applicable to the live parsing extensible editor (LPEX)
`environment. Those skilled in the relevant art will appreciate
`that the invention is also suitable and relevant to various
`computer system environments, which are appropriately
`programmed in accordance with the features to be subse-
`quently described, including use in conjunction with host
`computer systems such as VM/CMS operating systems and
`personal computer systems such as OS/2®, AIX® and
`Windows® operating systems.
`The edit screen display depicting an application of the
`subject
`invention displays requested undo elements or
`records, intermixed with the affected text elements. User
`interface components of the screen provide for the selective
`display of the undo elements of one or more sets of changes
`to a document and provide for the undo or redo changes to
`be selectively made to the text.
`The present invention may be implemented in a computer
`application in addition to the regular undo options or com-
`mands that are currently implemented,
`including “undo
`change” which retrieves and undoes the changes in a most
`
`9
`
`
`
`US 6,185,591 B1
`
`5
`recent-earlier order, and “undo line change” which restores
`the current edit line of the document to its previous state.
`The subject invention displays the undo elements or changes
`intermixed in the edit View of the document on the screen
`with the affected text elements. It allows the user to view,
`analyze, select specific undo unit elements, and optionally
`undo the changes selectively. For a line that underwent
`several modifications,
`the user can select any of those
`changes to be undone. The invention allows the user to view
`and pick partial changes done in the context of a
`comprehensive, large-scope document alteration, such as a
`“global find and replace” operation, and selectively undo
`tcxt rcplaccs which have subsequently bccn found to bc
`undesirable, for whatever reason. The invention provides
`that the display attributes of the undo elements in the edit
`view clearly distinguish them from the current text elements.
`The user is able to easily navigate between the undo ele-
`ments selected and zoom in on all
`the undo elements
`selected for display and then zoom out to the surrounding
`related text.
`
`Reference to FIGS. 1A to 1E of the drawings will provide
`an example of a specific application of the invention. Each
`of the Various screen displays depicted in FIGS. 1A to IE
`have the format of a conventional user interface window
`
`display, generally indicated by the numeral designation 10,
`and includes such familiar components as title bar 11, menu
`bar 12, tool bar 13, status line 14 and document working area
`generally indicated as 15. FIG. 1A depicts the initial state of
`a document file which had been previously created and has
`been opened for editing purposes. This particular file is a
`C++ program source file. In order to illustrate this sample
`application of the invention, the user desires to perform the
`following examples of changes or editing operations on the
`displayed document:
`
`(A) add a comment before the last line of code (record
`014) in order to explain the value returned by the
`function;
`(B) delete the instruction in record 012 which
`is
`deemed
`unnecessary,
`namely
`"block.setGraphicBundle(bundle);”
`(C) a global find-and-replace of all occurrences of
`“Colour” to “Color” so that the code conforms to the
`
`usage in the C++ libraries; and
`(D) modify the top comment in record 001 to indicate the
`changes carried out in the document.
`These changes to the document can be entered into the
`computer and the document in any well known manner such
`as by use of a keyboard.
`The term “record” as used herein refers to the lines or
`rows of text in the document and these are numbered along
`the left side of the window display 10 in the prefix area (16),
`as shown in FIGS. 1A to 1E. With the above described
`changes entered by the user, the new state of the document
`incorporating all of the entered plurality of changes is shown
`in FIG. 1B. It can be seen that the status line 14 in display
`10 indicates that four changes were executed in the
`document, including a global change that affected several
`records. Thus there are four undo units recorded in the editor
`software.
`
`The above changes are depicted in FIG. 1B as follows:
`Change (A) resulted in a new record 013;
`Change (B) resulted in deletion of record 012 from FIG. 1A
`so that previous record 013 is now record 012 in FIG. 1B;
`Change (C) resulted in changes to records 009, 010 and 011;
`and
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`Change (D) resulted in a change to record 001.
`All of the changes to the records are recorded in the edit
`system, and at this point these can be chosen to be displayed
`as inserted undo elements. These can be displayed,
`for
`example, by selecting a menu option “Show all changes”.
`This results in the screen display as depicted in FIG. 1C.
`Thus, in FIG. 1C, all of the proposed changes are shown in
`highlighted format as records following the document text
`records in which changes have been made. Also shown in
`FIG. 1C of this example, the editor provides an indication of
`the type of the undo element shown in the edit View by way
`of designations in the prefix area towards the left of each
`record, as shown by reference 17, namely “c” for changed
`records, “d” for deletions and “i” for insertions. As can be
`seen, the undo elements are also highlighted in comparison
`to the text of the document. They generally refer to the text
`and/or location in the document immediately above or at
`their position. The changes that would result from their
`implementation into the text thus become readily apparent.
`The user now carries out a series of editing operations on
`the sample document in an effort to arrive at a final docu-
`ment. For the purposes of this example, the processing of
`undo elements is activated by a double right button mouse
`click or via a pop-up menu. With reference to FIG. 1D, the
`user performs the following operations:
`Click the right mouse button while pointing the cursor to
`the change “c” undo element below document record
`010. This brings up a pop-up menu 18 with an item
`“Restore changed record”. The user activates this selec-
`tive record by clicking on it in order to restore the
`original statement since it was determined that “line-
`Colour” was incorrectly modified to “lineColor” by the
`previously indicated global change (C) of “Colour” to
`“Color”;
`In a similar manner, for change (B), restore the previously
`deleted statement by double clicking on the “d"
`(deletion) undo element above document record 012;
`As for change (D), double click on the “c” (change“)
`element below record 001 so as to restore the original
`top comment in record 001; and
`Remove the display of thc undo clcmcnts from the cdit
`view by activating the appropriate pull-down menu, for
`example, menu item “Remove all undo elements” in
`the “Actions” pull-down, and then saving the final
`edited document.
`
`FIG. 1E illustrates the resulting current and final state of
`the document in the edited view after all of the changes and
`selected undo elements as described above have been incor-
`porated into the document.
`A more detailed description of the implementation of the
`invention will now be provided. The present
`invention
`provides for a set of comprehensive enhancements to the
`user interface of an edit system for the processing of
`undo/redo elements, through the imbedding in the document
`edit view of undo elements intermixed with the document
`text. These enhancements incl11de:
`
`menu actions;
`pop-up menu actions;
`key and mouse actions;
`font attributes and colors of the undo elements imbedded
`in the document view in order
`
`to make them stand out from the regular text,
`to clearly distinguish their type, and
`to highlight a particular generation of changes;
`the marking of the undo elements in a separate area of the
`document view (such as the prefix area);
`fly-over help;
`
`10
`
`10
`
`
`
`US 6,185,591 B1
`
`7
`
`context-sensitive help.
`One or more of these may be implemented by an edit
`system which embodies the subject invention. Also, certain
`capabilities may be made available in the external
`command/edit macro interface of the edit system, even if not
`made available in the basic user interface.
`Edit System
`With reference to FIG. 2 of the drawings, an overview of
`a high-level description of the main components of a typical
`edit system will be provided with particular reference to the
`implementation of the subject invention. The blocks shown
`in FIG. 2 are intended to pictorially represent the functions
`performed by the code in an edit system to support
`the
`subject invention, as well as data structures maintained for
`the documents being edited. The control code is generally
`referred to in various blocks in FIG. 2 by reference numeral
`20 and the components of the data structures by reference
`numeral 21. The various components in the edit system will
`now be briefly described to the extent needed to provide a
`context for the subject invention.
`Dealing first with the components of control code 20, Edit
`Control 22 is responsible for the instantiation and manage-
`ment of the various components of the edit system.
`It
`processes the edit system internal commands. It handles the
`binding of internal commands or external commands and
`edit macros to menu items, key actions, mouse actions, etc.
`When an action is received, it invokes the command bound
`to it (if any).
`Text Processing component 23 handles the loading of
`documents into the Edit Buffer 29 of the edit system, all the
`text editing operations and the formatting of the text, and the
`saving of the document. It records changes to the document
`in the Undo Stack 31 for subsequent undo and redo. Edit
`Buffer 29 and Undo Stack 31 temporarily store the docu-
`ments and changes to the documents during processing.
`Imbedded Undo 24 handles the imbedding, removal, and
`processing of undo elements in the document edit view. This
`is the component of the edit system by which the main
`aspects of the subject invention will be implemented as will
`be more fully described.
`The Graphical User Interface control 25 controls the
`document edit view and builds and renders the edit view.
`
`Interface control 25 manages the display attributes of the
`rendered elements. It can show the document Edit Buffer 29
`
`selectively (zoom in/out), by only including in the view
`those elements whose visibility matches the current settings.
`External Commands/Macros Interface 26 controls the
`interface to external commands and edit macros, including
`live (incrcmcntal) parscrs. Interface 26 loads and runs cxtcr-
`nal commands and macros. It records committed changes
`into a stack for subsequent processing by any live parser
`attached to the edit system.
`As part of the data structure 21 of the edit system, edit
`control structure 27 represents the global data for controlling
`the edit system. Document control structure 28 contains
`information to control the operations on a document in the
`edit system, and as is illustrated pictorially in FIG. 2, there
`are a plurality of these controls created, one for each
`document. Edit buffer 29 comprises a linked list of all the
`elements for a particular document as further described with
`reference to element structure 30. Classes are defined for a
`
`document, that broadly classify element types in the docu-
`ment. Classes are used to filter out elements from the view,
`and are used by the parsers or external commands to
`interpret thc cdit buifcr on contcnts at various dcgrcc of
`detail. Each element can belong to one or more classes.
`Element structure 30 represents the elements that make up
`the edit buffer 29 and include TEXT elements, SHOW
`
`10
`
`15
`
`'
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`elements and the combination of TEXT and SHOW ele-
`ments. TEXT elements are the contents of the document
`loaded in the edit system. The display attributes for each
`character are usually set by the tokenizer of a live parser
`attached to the edit system. SHOW elements are the ele-
`ments that are created for the purpose of display only: error
`and status messages, imbedded undo records. The display
`attributes are set separately for SHOW elements. They are
`protected from regular editing, and are not saved into the
`document file. For a combination of TEXT and SHOW
`elements, the SHOW display attributes take precedence, but
`the element may be edited and it is saved in the document.
`An element structure contains
`the text contents
`
`the corresponding prefix area contents
`formatting flags and display attributes
`the type (e.g., TYPE_DELETION for an imbedded
`DELETION undo SIIOW element)
`class information.
`Undo structure 32 within Undo Stack 31 consists of a
`
`linked list of undo records created as changes take place to
`the document during the edit session, while undo recording
`is enabled. There is a structure 32 for each document being
`processed in the edit system. The information stored
`depends on the type of change, and the particular edit
`system. Undo records are of three basic types:
`INSERTION—records the insertion of elements ir1 the
`Edit Buifer
`DELETION—records the deletion of elements
`
`CHANGE—records changes to the contents of the docu-
`ment.
`
`Complex operations will create a series of the above undo
`records. For example, a block move will create a series of
`DELETION and INSERTION undo records that all belong
`to one undo unit. An undo unit records a s