throbber
(12) United States Patent
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket