`Hernandez et al.
`
`[11] Patent Number:
`45
`Date of Patent:
`
`4,723,209
`Feb. 2, 1988
`
`73 Assignee:
`
`54 FLOWATTRIBUTE FORTEXT OBJECTS
`75 Inventors: Irene H. Hernandez, Travis; Barbara
`A. Barker, Williamson; Bevery H.
`Machart, Travis, all of Tex.
`International Business Machines
`Corp., Armonk, N.Y.
`21 Appl. No.: 645,621
`22 Filed:
`Aug. 30, 1984
`51) Int. Cl“................................................ G06F 7/00
`52 U.S.C. ..................................... 364/300; 364/518
`(58) Field of Search. 364/200 MS File, 900 MS File,
`364/300 MS File: 354/7, 8, 9; 400/61, 83;
`340/721, 747
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`Re. 32, 30 4/1986 Frederickson et al. ............. 364/900
`4,448,557 5/1984 Horn et al. .......................... 364/900
`OTHER PUBLICATIONS
`Borkin and Prager, "Some Issues in the Design of an
`Edition-Formatter for Structured Documents', 1981.
`Prager and Borkin, "Polite Project Progress Report,”
`1982.
`Siemens, vol. 12, No. 1, 1983, pp. 61-69, "Techniques
`for Preparing and Interchanging Mixed Text-Image
`DOCS . . .
`.
`The Computer Journal, vol. 25, No. 2, May 1982, pp.
`272-277.
`Electronic Design, vol. 30, No. 12, Jun. 1982, pp.
`553-5520.
`Primary Examiner-Gary V. Harkcom
`Assistant Examiner-C. H. Lynt
`
`Attorney, Agent, or Firm-C. Lamont Whitham;
`Michael E. Whitham
`57
`ABSTRACT
`Improvements in an application composite editor for
`compound documents containing not only text but also
`graphics and tables facilitate the manipulation of object
`sets in the formatting algorithm. The editor works with
`a page layout philosophy wherein data objects reside on
`the page and data resides in the data objects. All pages
`reside within a document object, and some data objects
`may have additional objects within them. Objects are
`data-specific entities that the user can manipulate on the
`page. All objects exist within a specified boundary on
`the page, and this boundary is defined as an object set
`boundary. Object sets may be moved into positions on
`the page such that more than one object set is occupy
`ing a single displayable area on the page. Such an ar
`rangement of objects creates a structure called a super
`block. A superblock is any displayable area containing
`two or more object sets positioned so that the objects
`sets overlap one another, reside side-by-side or extend
`above or below one another. A text object set may not
`be overlapped by any other object set. Although the
`superblock is itself a complex structure, the creation of
`this structure by the editor greatly simplifies integration
`of different data types on the page for the user and
`allows the user to manipulate a group of object sets
`within a single displayable area on the page with rela
`tive ease. Moreover, formatting of the document is
`facilitated by the editor since the superblock is treated
`as an object set without taking into consideration the
`complexity inside the superblock structure except when
`a page end decision must be made.
`6 Claims, 37 Drawing Figures
`
`ETACON
`PERBlock
`
`
`
`OBJSET TYPE
`TE
`
`52
`YES
`ER
`ETERINE
`OF FLOAREAS
`
`O)
`
`-1-
`
`Amazon v. Audio Pod
`US Patent 10,805,111
`Amazon EX-1055
`
`
`
`U.S. Patent Feb. 2, 1988
`
`Sheet 1 of 15
`
`4,723,209
`
`FG
`
`
`
`sho!
`
`CREATE
`
`DESCRIBE
`
`SEARCH
`
`GOTO
`
`DELETE
`
`more
`
`s
`
`DoARE Do PRN
`
`PASTE
`
`JKM compaY
`
`4000 Santa Barbara Ave.
`Anythere, U.S. A 7000
`September 21, l983
`
`John Doe
`900 to estern Avenue
`Any here, Texas
`7.8s. 99
`
`Dear John,
`
`These are the figures lhich you requested in Your letter dated
`June 2
`983.
`have built the graph lihi ch refects the act ua
`net Year end projection. If you need more information, Please
`don't hesitat et o a sk.
`
`Year End Projections
`
`Ill.)
`
`Cornpa Iy fame
`A
`E
`C
`
`Year End Project i on
`60 0
`1
`or
`500 hl or
`A 20
`on
`27s. 1
`or
`
`Company Name
`
`-2-
`
`
`
`U.S. Patent
`US. Patent
`
`Feb. 2, 1988
`Feb. 2, 1988
`
`Sheet 2 of 15
`Sheet 2 of 15
`
`4,723,209
`4,723,209
`
`
`
`NOLLVLONNYO10/W
`
`19380Wav
`
`
`
`19380HaVuSVeVd
`
`/HONV3S
`
`$193frd0
`
`49Vd
`
`TWINOZ1HOH
`
`ANI
`
`SNWOILSIA
`
`STQELO42FOSTIL
`
`GE
`
`seveueg
`
`INITATOd
`
`Sse,109
`
`Sates
`
`odayoannMOHS
`
`
`
`
`acoaWAttedo109SnivlsL83AN09
`ROveeomeossates
`SNIMVEGGNVH3443apdwved
`
`
`
`
`92seNWN109§sez3809
`1dgseung_—TULxt
`
`
`
`BDV1d2yAdO3aACWai373q)FarTssssaqalvaad
`
`L93°G0INI,
`¢ggunossig
`saBedeueauryatdweses1
`
`
`
`Te4Nn{QoNaasCSep
`
`£-
`ba woes ee
`
`
`
`NOD]39¥d
`
`
`
`NOD]Hdvddvuvd
`
`NOD!NI
`
`
`
`NOD]HdvydAVEO
`
`HdVudMV
`
`L3$193°
`
`
`
`éOld
`
`
`
`
`
`NOD!Hdvu9SS3NISNG
`
`
`
`HdV49SSANISNG
`
`44S195°80
`
`
`
`NOD!JT8VE
`
`LaSLO4PdOFIV
`
`-3-
`
`
`
`U.S. Patent Feb. 2, 1988
`LEFT PAPER EDGE
`
`
`
`Sheet 3 of 15
`
`4,723,209
`
`OBJECT SET
`
`OBJECT SET 2
`
`LEFT MARGIN
`
`LEFT MARGIN
`
`OBJECT SET 3
`LEFT MARGEN
`
`RGHT
`PAPER
`EDGE
`
`RIGHT
`MARGIN
`
`RIGHT
`MARGIN
`
`RIGHT
`MARGIN
`
`FG3
`
`POSITION POINTER
`AND SELECT
`
`2
`SELECT EDT ACTION
`
`3.
`TEST
`EDT ACTION
`TYPE ON
`
`4.
`CONVERT POINTER POSITION
`
`F G6
`
`5
`NORMAL EDT
`PROCESSING
`
`TESTYN 6
`CONVERTED
`LOCATION
`
`7
`PERFORM NORMAL OBJECT
`SET PLACEMENT
`
`9
`8
`h
`rur-warrrrrrrrrm-m-m-m-m--a r sers--
`PERFORM SUPERBLOCK --- NSERT OBJECT SET
`CREATION
`
`REDISPLAY
`- ACTION
`COMPLETE
`
`END
`
`-4-
`
`
`
`U.S. Patent Feb. 2, 1988
`
`Sheet 4 of 15
`
`4,723,209
`
`Noli is the time for all good men to come to the aid of their
`country. This is an example of text folding to the left of a
`non-text object set.
`Text inserted on this
`line is a ut ornati cally
`lirapped to the next
`line. If there had been
`enough room on the
`other side of the non
`text object, the edit or
`loud have fl oved the
`text on that side also
`If more data is a dided
`t is this paragraph, the
`additional data lill flol bel ol the non-text object set in this
`rhanner
`
`-
`NON-TEXT OBJECT SET
`
`FG4
`
`Noli is the time for all good men to corne to the aid of their
`country. Notice that the lines of text appear above and be ol
`the non-text object. Any text inserted on this line ljill auto
`
`THIS S A NON-TEXT OBJECT
`
`matically be lirapped to the first line after the non-text object
`set. Text inserted on this line lill automatically be lirapped to
`the foll cling line.
`
`FG5
`
`Noll is the time for all good men to come to the aid of their
`country. This is an example of text flowing to the left of a
`non-text object it. insert ed on this line is a uto
`matically trapped to the next line. If there had been enough
`room on the other side of the nontext object, the edit or sould
`have flol-led the text on that side also. If more data is added
`to this paragraph, the additional data till fl on bel oil the non
`text object set in this manner.
`
`FG 7
`
`
`
`
`
`-5-
`
`
`
`U.S. Patent
`
`Feb. 2, 1988
`
`Sheet 5 of 15
`
`4,723,209
`
`
`
`POSITION POINTER
`AND SELECT OBJECT
`2
`
`SELECT EDT
`ACTION
`
`.
`PROCESS EDT
`ACTION
`
`4
`
`TEST
`FOR CHANGE
`N PAGE BREAK
`POSITION
`
`YES
`
`PAGE
`BREAK N
`SUPERBLOCK
`
`SPLIT
`SUPERBLOCK
`
`PAGNATE WITH
`SUPERBLOCK
`SPT
`
`REDISPLAY
`-ACTION
`COMPLETE
`
`
`
`
`
`2
`
`NO
`PAGINATION
`
`NORMA
`PAGNATION
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`F. G8
`
`STORE
`NO SPLT
`NFORMATION
`8
`PAGINATE WITH
`SUPERBLOCK
`KEEP
`
`BUILD SCREEN
`WITH NO SPLT
`INFORMATION
`
`
`
`-6-
`
`
`
`S E. UPPER
`
`Sheet 6 of 15
`
`BOUND ARY
`
`LOWER
`BOUND ARY
`
`U.S. Patent Feb. 2, 1988
`PAGE 6SEC
`
`w
`
`-
`
`
`
`
`
`EDT ACTION =
`MOVE GRAPHC TO
`X POSITION
`
`
`
`t = OBJ SELECTED
`
`UPPER
`BOUNDARY
`THE SAME
`TEXT
`REPOST ONED
`OWER
`BOUND ARY
`THE SAME
`
`4,723,209
`
`FG 9 A
`
`FG 9B
`
`FG 9C
`
`FGO A
`
`FG, OB
`
`PAGE
`OBJECT
`
`is - - - - - - - - -
`
`UPPER
`BOUNDARY
`
`
`
`
`
`
`
`LOWER
`BOUNDARY
`
`EOT ACTION =
`MOVE GRAPHC TO
`POSITION X
`OBJ SELECTED
`PAGNATOR NEEDS TO
`1ESSA
`
`UPPER BOUND ARY
`MANTA NED
`
`TEXT FROM SUCCEENG
`PAGE FLOWS INTO THE
`CURRENT PAGE --
`
`- NEW LOWER
`BOUND ARY
`
`F GOC
`
`-7-
`
`
`
`U.S. Patent Feb. 2, 1988
`
`Sheet 7 of 15
`
`4,723,209
`
`UPPER
`BOUNDARY
`
`LOWER
`BOUNDARY
`
`FG. A
`
`FGB
`
`DATA INSERTED WA
`NORMAL KEY
`EDITING RULES
`
`
`
`POSITION
`SELECTED
`
`
`
`UPPER BOUNDARY
`MANTANED
`
`DATA AODED CAUSED
`- -
`- PAGNATOR TO
`SPLT SUPERBLOCK
`
`ur
`
`
`
`PAGE BREAK
`-SUPERBLOCK
`OWERFLOWS INTO
`NEXT PAGE
`
`FGC
`
`NEW LOWER
`BOUNDARY
`
`-8-
`
`
`
`U.S. Patent Feb. 2, 1988
`
`Sheet 8 of 15
`
`4,723,209
`
`CT
`
`PAGE END
`
`---
`
`
`
`POSITION SELECTED
`-EDT ACTION IS
`TO CREATE AN OBJECT
`
`
`
`RIGHT ADJUSTED
`
`UPPER
`BOUND ARY
`
`LOWER
`BOUNDARY
`
`FG2A
`
`FG2B
`
`FG2C
`
`SAME UPPER
`BOUNDARY
`
`IMPLEO KEEP
`
`NEW LOWER
`BOUNDARY
`-SAME PAGE
`
`-9-
`
`
`
`U.S. Patent Feb. 2, 1988
`FIG 3A
`FLOW OFF
`
`Sheet 9 of 15
`FG3B
`
`FLOWON
`
`4,723,209
`
`FLOW
`LEFT
`
`FG3 C
`FLOW OFF
`
`
`
`F. G. 3D
`
`FLOW ON
`
`FLOW
`RIGHT
`
`FG3E
`FLOW OFF
`
`
`
`FG, 3F
`
`FLOWON
`
`FLOW
`BOTH
`SDES
`
`x = SELECTED DESTINATION FOR OBJECT SET
`
`-10-
`
`
`
`U.S. Patent Feb. 2, 1988
`
`Sheet 10 of 15
`
`4,723,209
`
`SUPERBLOCK
`
`24
`
`FG4 A
`
`
`
`
`
`
`
`
`
`
`
`
`
`SET TYPE
`
`25
`TEST
`OBJSET TYPE
`TEXT
`
`YES
`SET TEXT EXISTS
`TRUE
`
`FLOW ATTRIBUTE
`
`26
`
`27
`
`28
`
`SET FLOWON
`
`TEST
`MORE OBSETS
`OR FLOWON
`
`DETERMINE NUMBER
`OF FLOWAREAS
`
`GA)
`
`-11-
`
`
`
`Sheet 11 of 15
`
`4,723,209
`
`FG4B
`
`U.S. Patent Feb. 2, 1988
`GA)
`
`
`
`
`
`33
`
`34
`
`TEST
`OBJSET TYPE
`TEXT
`
`
`
`FLOW ATTRIBUTE
`
`SET FLOWON
`
`
`
`
`
`
`37
`
`TEST
`FLOWON AND
`FLOWAREAS
`
`
`
`38
`
`
`SPLT OBJECTSETOBJECT SET
`
`GET FLOW AREA
`Flowest/40
`4.
`
`NO
`
`
`
`YES
`1ESS
`FORMORETEX
`
`No
`
`YES
`
`
`
`NO
`
`
`
`47
`
`NOMORETEXT
`QR NOT CAN RESTART
`
`NO
`
`
`
`
`
`YES
`
`TEST
`ALL OBJECT
`SETS
`
`48
`
`YES
`
`
`
`42
`DETERMINE
`RESTART FLOW
`
`46
`
`SET
`TRUE
`
`REMAINING TEXT
`
`END
`
`-12-
`
`
`
`U.S. Patent Feb. 2, 1988
`
`Sheet 12 of 15
`
`4,723,209
`
`FIG 5A
`
`PAGE
`- OBJECT
`
`FLOWMARGINS
`
`FLOW AREA
`
`FG5B
`
`FLOWMARGIN
`
`FLOWMARGIN FLOWAREA
`
`
`
`FLOWMARGIN
`
`AREA
`FLOWAREA 2
`
`FLOWAREA 3
`
`SUPERBLOCK
`
`PAGE
`OBJECT
`
`FLOWMARG
`FLOWAREA2
`
`FLOWMARGIN
`FLOWAREA 4
`
`FLOWMARGIN
`
`FLOWMARGINS
`
`
`
`
`
`FLOWAREA t
`FLOW AREA 3.
`FG 5D
`
`
`
`FLOWMARGINS
`
`PAGE
`OBJECT
`
`FLOW AREA 2
`
`FLOWAREA 4
`
`-13-
`
`
`
`U.S. Patent Feb. 2, 1988
`
`Sheet 13 of 15
`
`4,723,209
`
`LEFT PAPER EDGE
`
`F.G. 6
`
`RIGHT PAPER EDGE
`
`SUPERBLOCK LEFT MARGIN
`
`WHTE SPACE
`
`OBJECT SET
`(NON-TEXT)
`
`OBJECT SET 3
`(NON-TEXT)
`
`OBJECT, SET 2
`(NON-TEXT)
`
`SUPERBLOCK RGHT MARGIN -
`
`LEFT PAPER EDGE
`
`
`
`FIG 7
`
`RIGHT PAPER EDGE
`
`SUPERBLOCK LEFT MARGIN
`-
`Nol is the time for all good people to come
`to the aid of their
`country.
`See hol
`the text
`flots
`above
`object
`set 2 &
`object
`set 3
`
`OBJECT SET 3
`(NON-TEXT )
`
`OBJECT SET 2
`(NON-TEXT)
`
`SUPER BLOCK RIGHT MARGIN -
`
`-14-
`
`
`
`U.S. Patent Feb. 2, 1988
`
`Sheet 14 of 15
`
`4,723,209
`
`
`
`describe
`CREATE
`SHO
`super block Description
`
`GET
`
`UNDO/ REDO
`
`
`PASTE
`
`SEARCH
`
`GOTO
`
`DELETE
`
`MOVE
`
`END
`
`copy.
`
`LEFT MARGIN:
`R GHTMARGIN:
`
`sPA cl NGBE FORE:
`SPACI. NG AFTER:
`TEx T. FLOWMARGIN:
`
`.25 in.
`... 25 in.
`.25 in.
`
`POECTION:
`
`O
`
`of f
`
`F. G8
`
`SUPERBLOCK REPRESENTATION
`
`
`
`
`
`FIRST OBSET
`Di
`
`OBSET
`D 2
`
`LAST
`
`OBSET
`Di N
`
`
`
`
`
`
`
`OBJSET
`
`OBJSET PREV
`it 2
`NEXT
`
`OBJSET
`it N
`
`
`
`
`
`
`
`PREV
`NEXT
`NAME
`HEGHT
`FORMATTED
`KEEP
`ID TAG
`SHEAD
`OBSET TYPE
`SUPERBLOCK
`OBJECT SET
`
`
`
`
`
`SIGNIFIES A NL POINTER
`S HEAD - FIRST OBJSET ID
`LAST OBJSET ID
`
`OBJSET -N CAN BETEXT,
`GRAPHCS OR TABLES
`
`FG20
`
`-15-
`
`
`
`U.S. Patent Feb. 2, 1988
`
`Sheet 15 of 15
`
`4,723,209
`
`DOCUMENT RING
`
`DOCUMENT
`HEADER
`
`NEXT DOCUMENT HEADER
`UNDO RING
`REDO RING
`DOC FCB
`
`
`
`FG 9
`
`DATA TYPE
`DEFAULT DATA
`AND ATTRIBUTES
`
`
`
`
`
`
`
`FN 2
`
`
`
`
`
`
`
`FN 3
`
`PREVFN
`
`DOCUMENT OBJECT
`
`PREV LAB
`
`PREVPAGE
`
`PREVOBJSET
`FIRSTOBJSET
`NAMED OBy
`
`HDRPTR
`
`i.
`
`PAGE 2
`HDRPTR
`i.
`PAGE3
`HDRPTR
`FTRPTR
`HDRPTR
`FTRPTR
`
`OBSET2
`
`t
`
`NAMED OBJ
`
`LAB 2
`
`NAMED OBJ
`- AB
`
`NAMED OBJ
`
`PAGEN
`
`OBSETN-DATA
`
`NEXT LAB
`
`NEXT PAGE
`
`NEXT OBSET
`
`NEXT FN
`
`LAST PAGE
`
`LAST OBJ SET
`
`-16-
`
`
`
`1.
`
`FLOWATTRIBUTE FORTEXT OBJECTS
`
`O
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`The invention disclosed in this application is related
`to the inventions disclosed in the following applications
`filed concurrently herewith and assigned to the assignee
`of this application:
`Ser. No. 645,622 for SUPERBLOCKSTRUCTURE
`IN A MULTIPLE DATA EDITOR filed by Barbara
`A. Barker and Rex A. McCaskill filed on Aug. 30, 1984;
`Ser. No. 645,620 for IMPLICIT CREATION OF A
`SUPERBLOCK STRUCTURE filed by Barbara A.
`15
`Barker and Irene H. Hernandez filed on Aug. 30, 1984;
`and
`Ser. No. 645,630 for EDITING OF A SUPER
`BLOCK STRUCTURE filed by Barbara A. Barker,
`Irene H. Hernandez and Rex. A McCaskill filed on
`20
`Aug. 30, 1984.
`The disclosures of the foregoing applications are
`incorporated herein by reference.
`BACKGROUND OF THE INVENTON
`25
`The present invention generally relates to integrated
`multiple data editors and, more particularly, to a super
`block structure containing two or more diverse object
`sets positioned so that the object sets overlap one an
`other, reside side-by-side, or extend above or below one
`30
`another. The object sets may be text, graphics or tables,
`and once created, the super block structure is treated as
`an object set in the formatting of a document thereby
`simplifying the formatting algorithm of the editor.
`Computers are coming into more common use
`throughout society not only because computers can
`perform many jobs more efficiently than prior devices
`or methods, but because the relative cost of computers
`has decreased dramatically over the past decade. At
`first, mainframes and then microcomputers with multi
`40
`ple terminais made access to computers available to
`many people in larger businesses. With the advent of
`microcomputers for both business and personal use,
`great numbers of people now have access to computers.
`The trend is for most computer users not to be com
`45
`puter professionals or sophisticated in data processing
`techniques. It has therefore been necessary to design
`what have come to be known in the art as user friendly
`computer programs to allow the unsophisticated user to
`perform desired tasks on a computer without extensive
`training. One technique that has been employed is to
`provide the user with a menu of choices of the particu
`lar tasks or functions which may be performed. Such a
`menu may take the form of a full or partial screen dis
`play with spaces adjacent the menu entries where the
`cursor may be placed by the use of keys on a keyboard
`or other cursor moving device. A selection of the de
`sired task or function is made by placing the cursor in
`the spaced adjacent that entry and pressing the ENTER
`key or other key provided for that purpose. The pro
`gram may be provided with a series of menus so that the
`user is led through progressively more complex tasks or
`functions in a simple and unconfusing process. Such
`programs are generally described as menu driven pro
`grams as distinguished from command driven pro
`65
`grams. In the latter case, the tasks or functions to be
`performed by the user must be chosen and entered by a
`series of commands. This type of program is typical of
`
`4,723,209
`2
`earlier types of programs and requires some degree of
`sophistication and training of the user.
`In addition to making programs more user friendly,
`the recent trend has been to provide some form of inte
`gration of computer program applications. Without
`integration, the user must employ separate application
`programs for, say, word processing, data processing,
`and graphing, and it is often difficult to merge the out
`puts of the several applications in a single document.
`Therefore, the purpose of program application integra
`tion is to further simplify the use of a computer to pro
`duce a desired output product. Software integration has
`evolved in several forms. Perhaps the simplest form of
`integration is a series of application programs designed
`to work alike sharing the same files and using the same
`or similar commands to perform the same or similar
`functions. This form of integration is relatively easy to
`implement but does not allow the individual programs
`of the family to be run simultaneously. Currently, the
`most popular integrated software are what may be
`termed multiple-function programs. These are charac
`terized as incorporating a variety of applications within
`one program. Such programs generally allow splitting
`of the screen into several different windows almost as if
`each were a separate program. Typically, these multi
`ple-function programs include text, spreadsheet and
`business graphing applications. Somewhat similar to the
`multiple-function programs is the now evolving integra
`tion technique based on a database application environ
`ment wherein all applications share a common set of
`data. Quite a different approach is taken when an inte
`grated operating environment is provided. In this ap
`proach, individual programs can share information and
`often appear on the screen at the same time, each in its
`own window. Applications can be chosen and com
`bined in contrast to multiple-function programs that are
`limited to applications programmed into the package.
`Integrated operating environments are best imple
`mented in object-oriented systems. This is a relatively
`new approach in that software systems have tradition
`ally had two components: data and procedures. The
`data represents the information manipulated by the
`software and the procedures represent a unit of the
`software. Actions occur when a procedure is invoked
`and is given some data to manipulate. The problem with
`this traditional approach is that the data and the proce
`dure are treated as if they are independent when in fact
`they are really related. In contrast, there is only one
`component in an object-oriented system, i.e. the object
`which represents both the information and the manipu
`lation of this information. A programmer using an ob
`ject-oriented system sends a message to invoke a manip
`ulation, instead of calling a procedure. The message
`includes a symbolic name which describes the manipu
`lation but not the manipulation details. The object re
`ceiving the message determines which method to exe
`cute on the basis of the message selector. The most
`thorough investigation of the object-oriented approach
`has been done by the Xerox Learning Research Group
`in Palo Alto, Calif., which designed and implemented
`Smalltalk, a language very similar to the process of
`human interaction. A Smalltalk programmer imple
`ments a system by describing messages to be sent and
`describing what happens when messages are received.
`Smalltalk has been particularly advantageous in the
`development of software for the user of personal com
`puters with a high-resolution display, a keyboard, a
`pointing device such as a mouse, and a disk storage and
`
`35
`
`50
`
`55
`
`-17-
`
`
`
`4,723,209
`3
`4.
`processor unit. A pointing cursor is used to track the
`dards' document that describes how a user interacts
`current screen mouse position and allows the user to
`with the Lisa system. Like the Star computer, the desk
`point to any displayed object. Usually, the mouse has
`top manager for the Lisa is an icon base, but unlike the
`one or more buttons, one being used for object selection
`Star where the icons can be put at fixed locations on the
`and another being used for menu presentation. Such a
`screen so that they can never overlap, the Lisa icons can
`machine was designed and developed by Xerox to facil
`be placed anywhere. For that reason, the Lisa computer
`can have overlapping, arbitrarily shaped objects on the
`itate the research and development by Smalltalk. This
`machine is the Alto computer, and several machines
`display screen. The Lisa computer depends on the meta
`were donated by Xerox to Stanford and Carnegie-Mel
`phor that the video display is a desktop, while the icons
`are objects on the desktop. Everything in the Lisa sys
`lon Universities and the Massachusets Institute of Tech
`10
`nology to be used for research projects. The Alto was
`tem is represented on the desktop by either an icon or a
`never commercially produced.
`rectangular area referred to as a window. All icons can
`Early in 1981, Xerox introduced the 8010 Star Infor
`be selected via the mouse, and all windows can be
`mation Systems, a personal computer patterned after
`scrolled horizontally or vertically, expanded or con
`the Alto computer for use in offices by business profes
`tracted, and moved by holding down the mouse booth
`15
`sionals. The Star is a multifunction system which com
`and moving the cursor. The design of the Lisa system is
`integrated. Each of the Lisa programs has a large
`bines document creation with data processing, elec
`tronic filing, mailing and printing. As in the Alto, an
`amount of common behavior and structure. There are
`important component of the Star computer is an all
`no modes to restrict the user's activities at a given time.
`points addressable (APA) or bit-mapped display screen
`For example, the user can switch from text to spread
`20
`sheet to graphing applications just as if those applica
`which makes visual communications more effective by
`allowing full graphics flexibility. The approach in de
`tions were separate sheets of paper on the desk. Like the
`signing the Star computer was to first establish the
`Xerox Alto and Star computers, the Lisa computer is
`based on the Smalltalk Language/operating system.
`fundamental concepts of how the user would relate to
`The technology developed for the Lisa computer has
`the system and then design the software and hardware
`25
`specifications. The design of the Star user interface was
`been further refined in the recently introduced Macin
`based on a familiar user's conceptual model, seeing
`tosh and Lisa II computers from Apple Computer.
`/pointing as opposed to remembering/typing, what you
`As part of a research effort at the IBM Cambridge
`see is what you get (WYSIWYG), a set of universal
`Scientific Center in Cambridge, Mass, to develop soft
`commands, consistency, simplicity, a modeless interac
`ware techniques in the field of office systems, Sheldon
`30
`Borkin and John Prager developed the personal on-line
`tion and user tailorability. There are icons on the dis
`play which represent office objects, such as documents,
`integrated text editor (POLITE). This is an easy-to-use,
`real-time editor and formatter for compound docu
`folders, file drawers, in-baskets, and out-baskets. The
`icons can be "opened' to enable the user to deal with
`ments. A compound document is one containing im
`the object the icon represents. Documents can be read,
`ages, draw graphics, charts, handwriting, text, tables
`35
`the contents of folders can be inspected and mail can be
`and mathematical symbols. The philosophy of Polite is
`examined. Everything to be dealt with by the user and
`the idea that an editor should be able to handle integra
`all actions available to the user have a visible represen
`tion of function in-line without having to invoke sepa
`rate applications and without using a cut and paste
`tation on the screen so that the user never has to remem
`ber the different meanings and contexts of any key. The
`buffer. The Apple Lisa and Macintosh and the Xerox
`Star computers are all integrated systems offering the
`mechanism used to make these concepts visible is the
`property and option sheets. A property sheet presents
`capability to edit compound documents, but the method
`all the possible options for a particular object such as,
`commonly used in those computers is to place the result
`for example, type font and size, bold, italic, underline
`of the requested function in a cut buffer and then return
`and superscript/subscript on a text character property
`to the document editor to paste the result in the desired
`45
`sheet. To select any of these options, the user merely
`location. This is a time-consuming and tedious process.
`selects the option by pointing and pressing the appropri
`However, the inspiration for Polite was drawn from the
`ate button, and then to change any property on the
`research done at the Xerox Palo Alto Research Center,
`property sheet, the user points to it and presses the
`and the concepts of the Polite Editor are similar to those
`appropriate button again. To prevent the user from
`developed for the Smalltalk programming language and
`50
`being ovewhelmed with information, property sheets
`further refined by the Star and Lisa computers. Since
`display only the properties relevant to the type of object
`Polite is intended to have a very wide audience, the
`currently selected thereby hiding complexity until it is
`human factors of the system have been carefully consid
`needed. The Star computer also allows the system to be
`ered. Some of the ease-of-use features of the system
`tailored to fit the individual user's needs. The user can
`include unlimited UNDO and REDO functions, real
`55
`tailor the working environment by choosing the icons
`time formatting, use of menus, a pointing-based help
`for the desktop display. Blank documents can be set up
`system, multiple window editing, and tutorial "help-by
`with text, paragraph and page layout defaults. The fil
`example'. In Polite, there is no distinction between
`ing system can be tailored by changing the sort order in
`source document and formatted document. There is
`file drawers and folders.
`only one form of a document in existence, and it is
`Early in 1983, Apple Computer introduced a new
`always formatted and it is always printable. Thus,
`kind of computer called the Lisa. Lisa's designers drew
`whenever the user makes a change, the document is
`heavily on the previous work done by the Xerox Palo
`automatically reformatted thereby providing immediate
`Alto Research Center, but they also refined several
`feedback to the user and eliminating much of the guess
`borrowed concepts and combined them with many new
`work that characterizes prior editors. The user sees a
`65
`ideas. The first task tackled by Lisa's designers was to
`portion of the document on the screen along with a
`devise a new way for users to interact with the com
`small menu identifying the current programmed func
`puter. The result was an internal "User Interface Stan
`tion key definitions. On the function keys are requests
`
`-18-
`
`
`
`20
`
`35
`
`4,723,209
`6
`5
`are within other objects reside within a defined object
`(commands) which are either immediately executable
`set boundary. All objects are explicit, i.e. they are rec
`or which act as a "gateway' to further menus. In these
`ognizable, choosable entities. Blocks are user-selected
`other menus, some of the function keys have other, i.e.
`ranges of any part of the document. For example, a
`local, definitions. The Polite system consists of two
`major functional components: the screen-manager and
`block can be defined as a range of cells in a column or
`the document-manager. The document-manager con
`a character string. The block object allows the user to
`tains Polite's internal representation of the document
`underline characters, change fonts, or define a "keep'
`around a group of objects. When the user applies an
`(both text and formatting information), while the
`screen-manager contains the displayable form of the
`attribute to the block such as underline, the underline is
`ignored where it has no meaning. For example, an un
`document (the only form the user ever sees) and con
`10
`derline of a set of graphics objects is not meaningful. All
`trols the interaction with the user. The screen-manager
`objects exist within a specified boundary on the page.
`maintains a display-oriented WYSIWYG (what you see
`This boundary is defined as an object set boundary. For
`is what you get) represenation of some subset of the
`example, a text character exists within the boundary of
`document. This subset includes at least that portion of
`either a line object set or a paragraph object set; a rect
`the document which fits on the screen, and possibly the
`15
`angle exists within the boundary of a graphic object set;
`whole document depending on the document size.
`and a cell exists within the boundaries of a table object
`SUMMARY OF THE INVENTION
`set. According to the present invention, object sets may
`It is an object of the present invention to provide
`be moved into positions on the page such that more than
`improvements in integrated computer software.
`one object set is occupying a single displayable area on
`the page. Examples of this are a paragraph flowing
`It is another more specific object of the invention to
`provide improvements in an application composite edi
`around a graphic object set, a table object set next to a
`graphic object set and a graphic object set in the middle
`tor which simplifies integration of different data types
`of a paragraph with text flowing above and below. Such
`on a page of a document.
`an arrangement of objects creates a structure called a
`It is a further object of the invention to provide a
`25
`superblock.
`multiple data editor which facilitates the manipulation
`A superblock is any displayable area containing two
`of a group of diverse object sets within a single display
`or more object sets positioned so that the object sets
`able area on a page of a document and simplifies the
`formatting procedure of the editor.
`overlap one another, reside side-by-side or extend
`The subject invention is directed to improvements in
`above or below one another. A text object set may not
`be overlapped by any other object set. As a result, text
`an application composite editor which is based on the
`Polite system. Like Polite, the application composite
`will always be readjusted according to its flow attri
`bute. The purpose of the superblock structure is to
`editor is an easy-to-use, real-time editor formatter for
`compound documents containing not only text but also
`similify the calculation of the space the object sets oc
`images, graphics, tables, annotations and handwriting.
`cupy. By creating the superblock structure, the format
`The application composite editor provides integration
`ting algorithm does not have to take into consideration
`the complexity inside each object's block structure ex
`of a data on a single page in relation to each other in
`dynamic editable form. All data types can be created
`cept when a page end decision must be made. Presenta
`tion of the complex relationship on the page is also
`within the same document, and text can flow around
`simplified.
`graphics or tables. All data in the editor resides on pages
`The superblock is implicitly created by the editor as
`and all pages reside within a composite document. The
`user interface design for the application composite edi
`the result of a user specified action. There are five ac
`tor is based on the following ease-of-use features to
`tions which can cause the creation of a superblock.
`make document creation and editing a quick, easily
`They are CREATE, MOVE, COPY, PASTE and
`learned and straight forward process:
`GET. When the editor creates the superblock the super
`45
`block icon is placed at the starting top boundary for the
`1. Use of key-word commands on a command bar
`superblock. One method of selecting the superblock is
`which is always displayed at the top of the screen. The
`for the user to first select the superblock icon. A pop
`command bar lists all of the commands currently active
`down panel showing a list of the icon representations
`for the type of data being edited.
`2. Use of pop-down panels when a command is se
`for each object set within the superblock structure is
`50
`displayed, and the pop-down panel is positioned below
`lected which lists a set of options which can be selected
`the superblock icon and appears to the user as an exten
`and/or modified.
`sion of the icon. To select the object set within the
`3. Use of full screen windows as a mechanism for
`viewing and manipulating data.
`superblock, the user selects the icon representation of
`the object set from the pop-down panel. Another selec
`4. Use of unlimited UNDO and REDO functions to
`55
`allow the user to reverse previously performed func
`tion method is to point at the desired object set within
`the superblock. An enclosing routine is then called to
`tions without fear of damaging data.
`5. Use of a help-by-demonstration function which
`determine the object set selected. In cases where selec
`allows the user to request a demonstration of how a
`tion by pointing results in ambiguity, the first selection
`particular command works. The editor will show the
`method should be used. When the user selects an object
`set within the superblock, the command bar changes to
`user how the command works by doing it and then
`undoing it.
`reflect the actions which are valid for that ty