CA2184280A1 - System for binding document parts and editors in a computer-human interface - Google Patents

System for binding document parts and editors in a computer-human interface

Info

Publication number
CA2184280A1
CA2184280A1 CA002184280A CA2184280A CA2184280A1 CA 2184280 A1 CA2184280 A1 CA 2184280A1 CA 002184280 A CA002184280 A CA 002184280A CA 2184280 A CA2184280 A CA 2184280A CA 2184280 A1 CA2184280 A1 CA 2184280A1
Authority
CA
Canada
Prior art keywords
handler
data
kinds
available
contents
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002184280A
Other languages
French (fr)
Inventor
Tantek Celik
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2184280A1 publication Critical patent/CA2184280A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation

Abstract

A computer-human interface employs parts as the basic structural elements of documents. At the time a part is opened, an editor is bound to the part in a manner which makes most efficient use of programs available on the computer. The binding system first determines whether the preferred editor for the part is available on the computer. If so, that editor is bound to the part and launched, if it is not already running. If the preferred editor is not available, the system attempts to locate the most suitable handler for the part, based upon various characteristics of the part's contents, such as their category and kind. If a suitable editor or other handler is available on the computer, it is bound to the part and launched. If necessary, the part is translated from one kind into another kind for which an editor is available. If no editor suitable for the part can be located within the computer's available programs, a handler of last resort is bound to the part as its editor. A handler of this type is a generic tool which allows the part to be presented to the user, without offering all of the functions that are normally associated with an editor for manipulating the part's particular type of contents.

Description

218~280 ~Y~l~;l~ FOR BINDING DOCUMENT PARTS
AND EDITORS D~ A CO~ MAN INTERFACE

Fleld of the Invention The present invention is di,c~:Led to a co",pulel-human interfare 5 an~ of the type in which parts form the filn~s...~ ; 1 building blocks for do.;u...~nt~, and more particularly to a system for binding an editor to a part when the part is opened.

R~r~und of the Invention A co,,,l)ul~l-human intPrf~^x a~eh;te~t--.c, of the type in which parts 10 form the fun~ls~ Li~l building blocks for do.-u...~nt~i, is described in applir~tion Serial No. 08/058,260, filed May 10, 1993. A part is a self-contained entity that is compriced of two primary cG~nenLs, its content and a manipulator or handler for that contPnt Generally, the handler will be an editor that provides the n~s~.~ fimctionc for adding to, dP1eting and otherwise modifying some or 15 all of the conlenl~ of the part. For example, if the part comprises a textualdocument, its con~ are the text, and the editor which is a co",l)onent of that part can be word ~lvcec~;ng sor~wd,~ that enables the user to edit the text.
;vely, the handler which forms a cGIll~onent of the part can be a viewer, which enables the user to view the part's cQnlPnL!i but does not provide20 functions which allow for editing.
In an a~hi~e~l..,c of this type, the part's contenLs do not exist by thPmcPlves. Rather, they are always ~csoc;~ed with a handler whenever the part is active. In other words, when a part is opened, the handler which forms a co-lll)oncnt of the part is also opened, and running in the bac~ground, so that 25 its functions are available to the user.
Every part has certain ~ropc"ies ~ccoci~tP~ with it. One of these pe:~lies iS an identifir~tion of the y,efc"ed editor for that part. When a part is first created, the plOgldlll that was used to create the part is typically i~entifiPd as its prcfc,led editor. For a textual part, for example, the p~fcll~d 30 editor may identify the particular word processing program that was used to 2184~0 create the documPnt This pr~pel~y is stored with the part. Whenever the part is ~ub3e~uently opened, the word pr~P-c~;ng program is lql~nçhPd, so that its funetionqlity is available as the user ~^ceccps the c4n~c -t~ of the part.
It may be the case that a part is transferred from one c~--,put~. system to 5 another which does not cont in the pr~r~ d editor for the part. ~lternqtively,the plcfe~d editor may be removed from the system, e.g. it may have been available on a trial basis and the trial period expired. In these cases, a dirrt;
handler, which is available on the system, must be qcsignpA to the part.
Accordingly, it is desirable to provide a system which assigns the most suitable10 available handler to a part so that its filnetion~lity is available wl.~ ,~ the part is qrcess~Pd. This process of qccigning a handler to a part is known as binding.
Summary of the Invention The present invention provides a system for binding a handler to a part in a ",ann~l which makes most efficiPnt use of pr~gl~"s available on the 15 co",l,ut l. The binding operation can take place when a part is opened, or at any other suitable time det~",ined by the need to access the handler's fun~ tionqlity. In the binding operation, the system of the present invention first de~l",ines wl,~l,er a ~lefclled editor for the part is available on the Colll~ul~l.
If so, that editor is bound to the part and l~l-nchPd, if it is not already running.
20 If the ~ler~l~d editor is not available, the system of the present invention locates the most suitable handler for the part, based upon various chs.; ~t~;ctics of the part's c~nt~ ~Ic such as their calego,~ and type. If a suitable editor orother handler is available on the CGIll~ul~, it is bound to the part and l~lmch~p~d.
If no handler suitable for the part can be located within the co",~lltcr's available 25 pl.)gldlllS, a de~l...in~l;nn is made whether the part can be tr~n~1~tPA intoanother type for which a handler is available. If so, the part is tr~n~1~tPd and a handler is bound to it. Otherwise, a handler of last resort is bound to the partas its editor. A handler of this type is a generic tool which allows the part tobe pre~nted to the user, without offering all of the functions that are normally30 ~ccoc;~Pd with an editor for manipulating the part's particular type of contents.

Further fealules of the invention are eYplztinp~ he~ arLer with reference to a pçef~l~d embo~iimP-nt illustrated in the accG,.,panying drawings.
r Brief DescriDtioll of the Drawin~c Figure lA and lB are illustrations of screens that might be g~ne.at~d by S a grstrhir~l inLe~ra~ that employs parts;
Figure 2 is a flow chart d~Ppicting the basic process for the binding system of the present invention;
Figure 3 is a flow chart depicting the steps of the direct binding routine;
Figure 4 is a flow chart depicting the steps of the p~ Ul~ for directly 10 binding by the kind of part;
Figure S is a flow chart of the process for loczttin~ a ~hgol~ editor;
Figure 6 is a flow chart of the subçou~ine for choosing a handler based on the kind of part;
Figure 7 is a flow chart of the routine for trztncl~te~ binding;
Figure 8 is a flow chart of the ~ubçouLine for tn~n~l~tPd binding acco~h~g to a ~l~læd Cdlegc~
Figure 9 is a flow chart of the sulnoulhle for locating a calego,y editor within the handler list; and Figure 10 is a flow chart of the subrouline for a trztncl~ted binding in a 20 non sel~led catego,~.

Detailed Description To fztcilitsttp an underststnding of the present invention, a cG",~uler-human intPrfst-e which employs parts as the filndztmPntztl colllpon~t of do~;u.... ~ will first be dest~ribed. In the particular example tdes~ribed 25 herein, an interfsJ~ which is suitable for a Mztc;l~o~lt~ brand co...~~r, mztnuf~ ~tured by Apple Co"~l,uler, Inc., is illustrated. It will be apprc~ Pd, however, that the principles of the present invention are not limited to this particular eYs~mplp 2184280 -- `

Figures lA and lB illustrate views of screens that might be plesented to a user via a cG...pu~Gr-human interface which employs parts. These screens depict a desktop 34 which defines a wo.k~l.q~e 36. Also included on the desktop is a menu bar 38. Within the wo,k~.qce 36 are two windows, 40 and 5 42. The lefthand window 40 is a folder window which contqinC icons ~ep~senl;ng various parts. As shown in Figure lA, three icons 44 pertain to text parts, a fourth icon 45 l~l)lesents a graphic part and anotl.~ icon 46 1`GP~n~ a spre~cheet part. A sixth icon 48 is a st~tionpry icon lG~ n~ g a part that can be used for the creation of present;.~ n slides. In Figure lA, 10 the righthqn-l window 42 contqinc a text document. More particularly, the do~iu...Pnt includes a text part 50. This text part can be created by typing text within the window 42, or by opening in the window a previously created text part that was 1~ se.lted by an icon.
Figure lB illustrates the result of an operation in which the graphic icon 15 45 has been dlagget from the folder in the left window 40 to the text do iu...- -t in the right window 42. As is known in user interfaces which employ a desktop met-qrhor, such as that shown in Figures lA and lB"1r~gging is an o~ i~l;o~- in which objects can be moved or copied on the desktop and within windows through the actu~tion of a suitable cursor control device, such as a 20 mouse. Once the graphic icon is placed w-ithin the do-;u...~nt, its con~ are displayed in a frame 52. Since the do~;u--,ent now containc a graphic co...l)onellt as well as text, it is l~fc.lcd to as a co---pound document In a co---pouild doc;.~ nt dirrGlGnt pn)gld-.. eYecut~bl~Ps, e.g. editors, coopelilte to produce the a~ -ce of a single unified piece of information.
25 Each such e~ecut~hle controls one segmPnt i.e. part, of the total inrol...ation content of the docl~mPnt ContainmPnt is used to relate the parts of the document to one another. Conl~h-...P-nt lc~se.-~ a logical rel~tionchip in which the user expects the containPd, or embedded, part to move with and be affected by the cont~iner part. The text 50 and the graphic elPmPnt within the 30 frame 52 pertain to se~ate respective parts which toge~l-e make up the 21842~0 co",pound documPnt. The graphic part is contained within the text part in this particular eY~mI lP
A part is a self-cont~inpd entity which is comprised of content and a manipulator or handler for that content. These two cG",ponen~ are always 5 available when the part is ~-ces~P~, regardless of where it is located on the desktop. Thus, when the graphic icon 45 is located in the folder of window 40, as in Figure lA, it cp~isen~ a part compricing a graphic clF "~nt and an editorfor that clP- .~--t. When the part is moved to the do.;u...~-nl in the window 42, its conte..t~ go with it, and the funstion~lity of an editor for those conle .1~ is 10 immPAi~tPly available to the user.
The si~nific~nc~ of this feature is the fact that the cQn~t~ of a part can always be edited, or otherwise manipulated, whereva they are loc~tP~ Thus, in the c4...pound docu...ç~-t of Figure lB, the textual content 50 can be editedwithin the do;u~..--nt, for eY~mple by using the same word pn~cessor that was 15 used to originally create the text. Since the graphic editor is present as a co",poncnt of the part l~)r~s~nled by the frame 52, it enables the graphical c4~ nl~ of the part to be directly edited in place. Thus, it is not n~P~.y for the user to open a se~te ~r~rhics applir~tion, for PY~mplc in anol],er window on the desktop 34, edit the graphical infol",ation as desired, and then export the 20 edited ~r~phics into the docu~..enl in the window 42. Rather, the user can dil~;lly edit the cont~nl~ of the frame 52 within the context of the do~ l-t in the window 42, without having to implement any intervening steps. The user is able to focus on doc~ -t contPnt, ratha than the appli~tion program, and can take advantage of the context provided by the surrounding d~u~..en~
The part, t}.~_.c~.c, is a self-co~ ;n~d object which is ~ul~nol~ous of the underlying system technology. It can be used in any type of sof~w~c engine or environment and the user is not required to learn the operation of a particular editor for the part. As long as an editor suitable for that part is lcpresen~ed in the underlying system, the user can take full advantage of the part's capabilities. Furthermore, if a text part was created with a particular text editor (word processor), the user is not constrained to use only that text editor 218~280 with the part. If the user has more f~mili~rity with the co..~ nds of a diff~rc;word pr~cessor, for eY~mrle, that word processor can be decigr~t~l as the pr~f~ d editor for all text parts in the docllm~nt or the COIllyut~ system.
The editor, or other handler, for a part is analogous to an ayp~ ;on S ylu~,l~ll in a conventi~-n~l colllyu~r system. It is a sbrlw~c cGlllyonent which provides the n~cc~.y filnctir,n~lity to display a part's cont~nl~ and, where approylidle~ preænt a user interface for modifying those con~enlC. It may include menus, controls, tool palettes and other user interaction f~iliti~s, Fora part which is capable of con~ ng other parts, its editor takes these con~ d 10 parts into collcidt ration when displaying its content For eY~mple, a text editor may wrap its part's contel~lc so that they do not appear within an e~nbedded graphic part.
A part has a number of proyc~lies ~csoc;~d with it. One of these is its ylcf~.lcd editor. For eY~mple, when a part is first created, the pr~ES,dlll that15 was used to create the part can be identifi~oA as its pref~.,~ editor. Ther~te~, the plef~ d editor can be changed. Typically, such a change might be made by the user, to confc.,lll with the user's p,~fe.cnces. Alternatively, or in ~1ition, the çl~ng;ng of the pr~fell~ d editor might be done aulo...~ lly by the system, for eY~mple to conform with the system def~llltc.
Another ylOyclly of a part is its type, or kind. The various kinds of parts can be cl~ccified in different calegolies. Gener~ly sre~king~ a categoly identifiPs one of several generic classes of information for the part's COI~.'Il~!i, such as text, gr~phics, spre~dch~t etc. The kind p~opclly in~ ttos one or more characteristic features of the conten~. For example, the kind might in-iic~te an attribute of the co~ tc (it~lici7ed letters), the data forrnat (PICT or TIFF files), or other salient f~lul~s, such as the particular word piocessol that was used to create text, which inherently id~-ntifiPc the f~lllatling and other control codes ~ccor~ with the text.
More det~ d information ~di.lg parts, and graphical interfaces which are based upon parts, can be found in the above-identified U.S.

appli~tion Serial No. 08/058,260, the disclosure of which is inco,~ldled herein by reference.
In order to use the functio~c provided by a conventiQ~ appli~tinn~ the ~l~Jgl~ must be l~un~h~p~ and running. In other words, it must be stored in the S co,..pu~r system's main memory. In a similar ,..amlcr, in an in~erf?~e which is based upon docu...eY-t parts, the editor for a part must be running in the system's memory or otherwise açceccihle to the co"-puler's CPU when the part is ~^CPCcPd by the user. To do so, the editor must be inct~lkPd on the system.
For e~mple, it can be stored in a folder or subdi,eclor~ of p~"lanenl ",cmo,~, 10 such as a hard disk, and called when an ~cc~i~t~pd part is acces~ To conserve system f~SOUl~S, all inst~llP~ editors may not be loaded into the system Illelllol~ at all times. Rather, they can be l~lm~hPd as nPeded For example, an editor for a part can be l~lmchPA when the part is dragged into a documPnt, since this is the time that the editing capabilities are most likely to 15 be nP~ded Accordingly, whenever access to the CQI~ .t`i of a part is requil~d, it is desirable to ~C~ ~te an editor with that part. The process of ~cco~i~ting a sperific editor with a part is known as binding. Typically, binding is carried out when the part is first opened, and the editor re."ains bound to the part as 20 long as the part remains open. Alternatively, it may be desirable to bind an editor to a part at other times. For eY~mple, binding might be carried out when a window co~ ining the part is made active, even if the part itself has not yet been opened within the window.
Of course, it is unlikely that every possible editor will be available on 25 every co,l,~ut~r system in which a part can be ~ccess~P~ For eY~mplc, a textual do~ nt might be created on one co-"puler system, using a particular word pr~c~ g program. The p,~f~lled editor for that part, thefcful~;, is the word p,.)cessor that was used to create it. It is possible that the part will be transferred to another co",puler which employs a word procçs~ing program 30 different from the one used to origin~lly create the part. Accordingly, when the part is ~c~ on this latter conlpuler system, the p~rtllcd editor for the part W O 95/24009 PC~r~US95/02744 218~2~

is not available. In such a case, it is necec~ y to identify another editor, from those available on the system, which is suitable for binding to the part.
The present invention is dil~led to a ,ulucedulc for ~ ting the most suitable handler for a part from those ava'ilable on the CG~ Jul~ system, and 5 binding that handler to the part. An overview of the general ploc~lulc for binding an editor to a part, in acco~ance with the present invention, is illustrated in the flow chart of Figure 2. Details of particular steps within this general p~lUl`~ are illustrated in the flow charts of the subsequent figures.
The binding P1~JCCI~IU1C can be carried out whenever there is a need to 10 ~c~:~le a handler with a part. Typically, this will take place when a part isfirst opened after being in a closed or hidden state. This may occur, for e-~mpl~, in response to an event flag that is geneldted when a mouse button is depless~, or it could be a step in a script. Other suitable times for binding a handler to a part might be when the part is first loaded into a system, when a 15 window cou~ e the part is opened, or when the part is dragged into an active do~;u...rMI
Rere~ to Figure 2, once an applu~liale event that in;l;~tfs binding has been det~ted, the system of the present invention first carries out a routine known as Direct Rin-line (Step 201). In Direct Rin-line, an attempt is made to 20 locate the ~c~e.led editor for a part or, if the plefe.led editor is not available, another handler which auppOll~ one of the kinds of conlents in the part. When a suitable handler is located, it is bound to the part. If there are no available parts handlers which satisfy the appfop-iale ~ritPri~, Direct Rin-line cannot beaccomplished. At Step 202, a dele.lllination is made whether the Direct 25 Rin-line routine has been succeccful. If so, the system returns to the ylu~
which called the binding process (Step 203).
If the Direct Rin~ing routine was not succ~ccful (a negative response at Step 202), a pr~CedUlC iS carried out to pe,Çull" Tr~ncl~t~d Rintiine (Step 204).
In this process, an attempt is made to translate the contents of the part into a30 kind for which a handler is available. If such a procedure is feasible, the part is tr~nCl~t~ and an available handler is bound to the tr~ncl~ted part. If the _9 _ results of this procedure are successful, as determined at Step 205, the system returns at Step 203. If, however, the ~sponse is negative at Step 205, i.e. the Tr~n~l~ted Rintling routine was uncuccessful~ the system binds the part to a handler of last resort at Step 206. The handler of last resort is a p~
5 eYt~cut~hle that enables the part to be pl~ sented to the user. De~ ~d;ng on the handler's filnrtinn~lity, it may enable the COIlt~l ts of the part to be displayed.
Otherwise, the part is displayed as an empty box, to enable the user to visualize its location within the overall docu...ent. For in~t~nce~ if a handler of last resort is employed for the graphic part in the t Y~mple of Figure lB, the outline 10 of the frame 52 might be displayed, but none of the int~ l co~ would be shown. The handler of last resort may also provide certain limited inîolmalion about the part, such as the particular kinds into which the part can be eYplicitly tr~nc1~t~
Rer~.ling to Figure 3, the Direct RindinE routine of Step 201 is 15 illustrated in greater detail. At Step 301, the system detc....ines whether aplcr~.lcd handler is sperified for the part. If so, at Step 302 a de~,...;~ ;on is made whether the ~lcfe~lcd handler is available on the co-"~ul~r system. If so, at Step 303 that handler is identified as the bound handler for the part. For eY~mple, a unique string which itlentifies the handler can be lclul"cd to the 20 pr~gldlll which called the binding process. This string can be stored as a local variable for further reference whenever the part is acct s~l. An a~ropliale flag is set at Step 304 to int3ic~te the success of the direct binding routine, and the system returns to Step 202 in the flow chart of Figure 2.
If the pl~rellcd handler is not spe~ifi~d at Step 301, or cannot be located 25 at Step 302, the system de~el"~ines what kind of data is cor,~il-ed in the part.
If the part is compri~ecl of multiple kinds, one of the kinds is slo1~t~ (Steps 305 and 306). Preferably, the kinds are s~ ted in order of their fidelity. In this regard, every handler has ~s~-;~t~A therewith a listing of pl._f~ d kinds and categolies for that editor. Different kinds and categolies of data can be 30 said to lcl~lesenl the same information, but some may be qualitatively better or worse than others when the functionality of the editor is considered. A

WO 95/24009 2 1 8 ~ 2 8 0 PCT/US95/02744 qualitatively better kind of data is identified as being of higher fidelity. There is no predetPrmin-Pd ordering of kinds of data by fidelity. Rather, fidelity is always detel..,ined by a particular conteYt Editors may be able to support many dirr~,~nt kinds of data, and thclcfor~ a suitable data structure stores a list S of those kinds of data ~oci~tP.d with a particular editor, in order of fidelity.
For example, a word proce~ pr~gld". can typically handle dirr~l t kinds of text. The fidelity ordering of these different kinds could be (1) rich text, (2)style text, (3) plain text, etc.
Every part, thelcforc, has its different kinds of data listed in order of 10 fidelity. This ordering is determined by the editor that was last bound to the part. At Step 306, the kinds of data are sPl~Prted in order of fidelity. After one of the kinds of data for the part has been selç~ted, the system pclrol---s a routine labelled Direct Bind By Kind at Step 307. In this routine, the system deterrnines whether a handler is present that suppo,Ls the selçctçd kind. If so,that handler is identifi~P~d as the bound handler for the part (Steps 308 and 309), and the success flag is set at Step 304. If the routine at Step 307 is not sucre~ful in loc~tine a handler for that kind of part, the system returns to Step 305 to det~,.,ine whether the part contains another kind of cor l~ which has not yet been eY~min-P~. If so, the Direct Bind By Kind routine of Step 307 is 20 l~ealed for that kind of contenl<i. This process conLinues until a handler can be located for one of the kinds of contç~L~ of the part. If no handler can be found for any of the part's kinds, the process proceeds to Step 310, in which the success flag is reset to a false condition, and the system returns to Step 202.
The Direct Bind By Kind subr~uLine of Step 307 is illustrated in detail in 25 the flow chart of Figure 4. Referring thereto, each docum~nt (which can contain one or more parts) has ~soci~ted with it a restricted list of handlers.
This list is formed when the user chooses a set of handlers that are prerell~d for that documPnt At Step 401, the system carries out a ~ubrouLine l~hellPd Choose By Kind. In this subroutine, the system determines whether any of the 30 handlers in the document's restricted list support the kind of part that was sPle~ted at Step 306. If so, one of the handlers which su~polLs the selç~t~

WO 95t24009 PCT/US95102744 kind is chosen, using any suitable procedure. For eY~mple, the suitable handlers can be chosen by sorting them in alphanu.,.eric order and choosing the first handler in the list.
If the Choose By Kind ~.-l,n)uliile was succPccful in se1ectin~ a handler, S that handler is bound to the part at Step 403, and the success flag is set at Step 404. Th~ f~cr, the process returns to Step 308.
If the sublouli-le of Step 401 was not succPscful in choocin~ a handler, a det~....inAtion is made at Step 406 whether a pr~f.llcd handler for the ~l~-l?d kind of part has been i~ ntifi~P~ for the underlying CO~--p~lt~ system. For 10 eY~mplP, when a user first configures the collll,ul~l system, he may identifypreferred editors for each kind of part. ~ltPrn~tively, plcÇe~lcd handlers mightbe aulo...s~ lly SPl~ctP~ by the co...puler system, or some other suitable r~lulc might be carried out to identify prcr~.lcd handlers. If a plefcll~d handler has been speçifi~p~ the system determines at Step 407 whether that 15 handler cullcnlly exists in the system. If so, the handler is bound to the part at Step 408, and the pr~S5 continues after setting the success flag at Step 404.
If there is no sper-ifi~d prefc.lcd handler, or if it does not cu~lenlly exist on the system, a sublouli-le is carried out at Step 409 to delcr-,-ine whether ahandler is available according to a categol y of the part. The details of this 20 subrouliile are i~ ted in the flow chart of Figure S. Referring thereto, in this s.lbr~uline, a handler is chosen on the basis of the various calegolies ~c$oc;~tP~ with the sPlectPA kind of part. More particularly, every kind of partiS s~CSo~ t~d with at least one categoly, although some kinds of parts may be ~csoci:ltP~d with more than one calegol~r. At Steps 501 and 502, one of the 25 categolies ~csoci~tP~ with the SPlPctP~ kind of part is chosen, and at Step 503 a det~ ination is made whether the cG--Ipuler system has a plcf~rcd handler for that categoly of part. If so, a detel---ination is made at Step 504 whether thatplcÇerlcd handler is applupliale for the selected kind of part, i.e., whether its functionality ~uppolls that kind of part. If so, a delcl---ination is made at Step 30 SOS whether that handler currently exists in the system. If so, the handler is selPcted at Step 506, and the success flag is set. If no handler is chosen as a result of this process, the system returns to Step 501, to detel"-ine whether the SPl~tPd kind of part is ~ccori~tpd with any other categories. If so, the processis lepcated until a handler is sPl~ted or all the categolies have been ~.h~u~d.
If it is not possible to choose a handler for any of the categolies, the successflag is reset at Step 507, and the process proceeds to Step 410 in the flow chart of Figure 4.
Referring again to Figure 4, if the ~ublou~ine of Step 409 was suc~ful, the chosen handler is bound to the part at Step 411, and the success flag is set at Step 404. Otherwise, the process proceeds to the ~louline of Step 412. In this ~.lb~l,tine, an attempt is made to locate any handler which will support the ~l~ted kind. The details of the ~ubfl)uline are illus~ ted in Figure 6. Referring thereto, at Steps 601 and 602 the system selects a handler from all of those l;u~ tly available on the colllpul~ system. At Step 603, a dete....in-t;nn is made whether this handler is appr~liate for the ~el~ted kind 15 of part. If it is, this handler is added to a te~ll~l;1l y list of ~ ...;n~d handlas (Step 604). Steps 601-604 are repeated until all handlers ~iullently available on the colllput~r system have been eY~minP~ relative to the ~Pl~t~P~ kind of part, to create the te.ll~l~ list. Then, at Step 605, the list of c-~ ;n~d handlers issorted so that editors are placed before viewers, and within each of these two 20 calegolies the handlers are arranged alph~hetir~lly, or in any other suitableorder. Th~ aftcr, at Step 606, one of the handlers is chosen from those on the list, for c-;~ )le, the handler at the top of the list. The process then returns to Step 413 in the flow chart of Figure 4. If the subroutine is succe~rul in choosing a handler, that handla is bound to the part at Step 414, and the 25 success flag is set at Step 404. If no handler was chosen as a result of the Direct Bind By Kind routine of Figure 4, the success flag is reset at Step 415, and the system returns to Step 308 of the flow chart of Figure 3.
If, after P"~ ;ning all of the kinds for the part, the Direct Rinding routine is not able to select a handler, the Tr~n~l~tPd Rinding routine of Step 30 203 is carried out. The process of this routine is illustrated in the flow chart of Figure 7. As a first step of the Tr~ncl~tPA Binding routine (Step 701), the system carries out a subroutine in which translation is implem~ntçd with respectto a sf~x-;rçd categoly. The steps of this ~ubluuline are i~ str~t~ in Figure 8.Rer~.ling thereto at Step 801 the kinds of the part are stored in a list, l~hell~d "all kinds". At Steps 802 and 803, one of the kinds in this list is sPlect~Pd, and S the ~ in;ng entries in the lists are stored in a second list, l~bpllpd "other kindsn. The system idP-ntifiPs the kinds of parts into which the sflc~d kind can be tr~nsl~t~Pd. This may be determined, for eY~mple, by tr~nCl~tQrs which are available on the colllpulcl system. These idçntifi-Pd kinds of parts are stored in a list of desl;n~l;on kinds. The kinds of parts which are stored in the other10 kinds list are removed from the list of de,lin~lion kinds. The reason for removing the kinds of parts on the list of other kinds from the list of destin~tion kinds is due to the fact that these other kinds of parts have already been e-;t...in.-d for the PY~i~te-nce of a suitable handler during the Direct Rin~ling routine. By virtue of the fact that the tr~ncl~t~d binding routine is now being 15 carried out, a dct~...;n~tiQn has previously been made that no suitable handler exists for the kinds of parts in the list of other kinds. Accordingly, there is no need to further ey~mine these kinds of parts in the Tr~ncl~tPd Rinrling routine.At Step 804, the various categolies ~csoci~t~d with the sel~t~d kind are identifipd. The entries in the list of destin~tion kinds are ~.~...;ned, and if any of the kinds in this list do not have an ~csoci~t~d calegG,y which is the same as one of the categolies for the se1ectçd kind, they are also removed. The list of destin~tiQns kinds lh~folc compricP~s all of the kinds into which the selectçd kind can be tr~nQl~ted, and which have at least one calegoly in common with the SPl~Pctçd kind and which do not appear on the list of other kinds.
At Steps 805 and 806, one of the kinds of parts on the list of deslin~l;on kinds is SPlçctPd~ and at Step 807 the Direct Bind By Kind ~ul)l~uline is carried out, as described previously with respect to the flow chart of Figure 4. If the subç~uline is succe-ssful in locating an available handler, that handler is added to a list of cl~;,l;n~l;on handlers at Step 808. ~ltem~tively, if no handler was found, the sPlPcted destin~tion kind is removed from the list of desl;n~lion kinds at Step 809. The process then returns to Step 805, to detel",ine whether any WO 9~t24009 PCT/US95/02744 218~280 other clestin~tion kinds remain to be ex~mined. The result of this process is tocreate a list of all handlers on the system which are suitable for the possible de~1;nsl;0n kinds into which the part of interest can be tPncl~t~d.
After all of the destin~tion kinds have been ~ ..;n~d, the system makes 5 a d~ t;r.n, at Step 810, whether the list of desl;nst;on handlers is empty.
If not, i.e., at least one handler was located as a result of the Direct Bind ByKind s~uline, the system proceeds to Step 811. At this step, a ;,ubfouline is imp~ onl~d to choose one of the destin~tions handlers on the basis of calegolies. The steps of this ~ubn~uline are illustrated in the flow chart of Figure 9. Referring thereto, at Steps 901 and 902 one of the calegolies for the selected kind of part (as it identifi~d at Step 803) is chosen. At Step 903, a dt;~....;nsl;--n is rnade whether a system ~lcf~llcd editor has been id~ntifi~d for that categoly. If so, at Step 904 the system detell"ines whether that handler can be found on the list of destin~tion handlers established at Step 808. If so,15 at Step 905 a check is made to delel-"h~e whether the chosen handler cullcnlly is present in the colll~-llel system. If the handler can be found, this handler is chosen and the success flag is set at Step 906. The system then returns to the subl~uline of Figure 8, where the state of the success flag is recognized at Step 812 and the chosen handler is established as the plef~llcd handler for the 20 sel~ted categGl~ in Step 813.
If no handler is found for the first sPl~ted categoly, the system returns to Step 901, to choose another calegGly and detel",ine whether a system ~r~;îe.led handler can be found for that categoly. The process loops through Steps 902-905 for each categGly- until a handler is found. If no handler is 25 found after all of the categories have been eYh~ ted, the success flag is set to false at Step 907.
If no handler is chosen as a result of this subroutine, the system p~ceeds to Step 814, where one of the handlers on the list of destin~tion handlas is chosen, in acco~lce with any plcÇe.led plocedule. For example, 30 as described previously, the list of handlers can be sorted in ~lph~nu~ ric order, and the handler at the top of the list chosen for further proces.;i-g.

W 095/24009 PCTnUS95/02744 218~2~

Once a handler is chosen at Step 814, the list of destin~tion kinds is c~ d to dcl~.",ine which kind is concide-red to have the highest fidelity by the chosen editor. The categolies ~csoc;~t~ with this highest fidelity kind are i.1PntifiPd, and a dc~c~ inalion is made whether there is a system pl~f~l~d S editor for each ca~gol ~. If any of the categolies does not already have a system plcre.,cd editor, the chosen editor is set to be the system p~cÇ~ d editor for that calegGl~, at Step 816. The~car~c~, the success flag is set at Step 817, and the process returns to Step 702. Since the success flag is set, the arr,ll"~ e reSponce at Step 702 causes the system to proceed to Step 703, where the chosen handler is bound to the part. Thereafter, at Step 704 the part is tr~n~l~tpd into the kind on the list of destin~tion kinds which the chosen handler con~idP-rs to have the highest fidelity.
RPferring again to Figure 8, if the list of destin~tion kinds is found to be empty at Step 810, or a handler is not chosen at Step 814, the system returns toStep 802, to det~.l",ne whether the part has any other ~ccor~ pd kinds which have not yet been ~ ;ned. If so, the process is ~qxa~ed for another kind. If a handler cannot be chosen after all kinds have been ~ nF.d~ the success flag is reset at Step 818, and it is c hPrl~P~I at Step 702. Since a handler was not chosen, the system proceeds to the subrouliile of Step 705, which is illlJSI.AtPd in detail in Figure 10.
In the s.-bl~uline of Step 701, an attempt is made to locate an available handler that suppolls one of the categolies ~csoci~tpd with the part of interest.
If that proc~dure is not s~lccec~rul~ the s.~b~uline of Step 705 allc",pls to locate an available handler based upon other calegolies of parts. Referring to Figure 10, at Steps 1001-1003, one of the kinds for the part of interest is sPl~ted, a list of de.lin~ n kinds for that SPlPctp~d kind is formed, and the other kinds are removed thelcr,o"" similar to Steps 801-803. At Step 1004, the list of destin~tion kinds has removed thclerlo--- those kinds having an ~csoc:~ted ca~egol~ which is the same as any of the categolies ~ccori~t~ with the s~PlP~tP~kind. In other words, the process pclr~Jlllled at Step 1004 is the complement ofthe procedure carried out at Step 804. Steps 1005-1009, which collcs~ond to 21842~0 Steps 805-809, are then carried out to create a list of destin~tion kinds and handlers. The.~arlel, at Step 1010, a de~l...;n~l;on is made whether these listsare empty. If not, i.e., at least one desl;,-~l;on handler has been lor~t~od, one of the handlers is chosen at Step 1011, either albitl~ily or using any desirable 5 technique, and the success flag is set at Step 1012. The process then returns to the flow chart of Figure 7, where the chosen handler is bound to the part at Step 706. Thele~r~r, at Step 704, the destin~tion kind which the chosen handler conQiders to have the highest fidelity is se1ected, and the part trancl~ted into that kind. The success flag is again set, and the process ends.
Otherwise, if no destin~tion handler was chosen, the success flag is reset at Step 1013. Thereafter, the process returns to Step 204, where a dele~...;n-l;on is made that neither the Direct Rinding routine nor the Tr~ncl~t~
Rin-ling routine was succes~ful in choosing a handler. Accordingly, the handler of last resort is bound to the part at Step 205.
In i,.. ~. ~, thel~;fole, the present invention provides a procedul~ for identifying the most suitable editor, or other handler, for a part, and binding that handler to the part. In a p,ef~ll~ mode of operation, an attempt is first made to bind a handler that is a~pf~,iate for one of the con~titl~ent kinds of the part, without having to translate the part. If the part's y~ere"~ editor exists 20 on the underlying co,npule~ system, that editor is chosen. Otherwise, an editor is chosen based on a set of prioritilos These prioriti~s include editors from the doc.. ion~'s restricted set of editors which handle that kind of part, systemp~erer~ed editors for that kind of part, system pr~relled editors for the categoly of part which are also able to handle the kind of part, and any other editor 25 which h~n~ s that kind of part. If none of these approaches are succe~ful in selectin~ an editor, tran~l~tion is employed. In this approach, an editor is identifi~ for one of the kinds into which the part of interest can be tr~n~l~tPdand which is co,.,patible with the category of the part. If no such editor can be found, an editor which is compatible with any other category of part is chosen.
30 If no suitable editor is found to be available on the basis of these various W O 95/24009 PC~r~US95/02744 criteri~, a handler of last resort is bound to the part, to enable the part to be ~s~nled to the user on the system.
To f~ilit~tP an underst~n(ling of the invention, its principles have been in~d with reference to a sperific embo~im~-nt thereof. It will be 5 a~ ed, however, that the practical appli~tion~ of the invention are not limited to this particular embo~lim~nt For eY~mple, the various s,lbr~ulines forlo~tine a suitable handler, and the steps within those ~. br~ulines, need not becarried out in the specific order described herein. Suitable results can be achieved by ~ ..ining the various criteria in dir~nl sequences of steps. The 10 scope of the invention, therefore, is set forth in the following claims, rather than the for~going desc.iplion. All equivalents which are con~i~tent with the m~ning of the claims are inten~ed to be embraced therein.

Claims (28)

WHAT IS CLAIMED:
1. In a computer system having a computer-human interface of the type in which documents are based upon parts, where each part comprises contents and a handler for those contents, and the contents are identified as belonging to at least one of plural different kinds of data, a method for binding a handler to a part, comprising the steps of:
determining whether a handler is available on the computer system which is suitable for handling at least one of the kinds of data contained in the part, and binding the part to such a handler when one is determined to beavailable;
if no such handler is available, determining other kinds of data to which the part can be translated;
identifying a handler available on the system which is suitable for any of said other kinds of data;
translating the contents of the part into one of said other kinds of data for which the identified handler is suitable; and binding the translated part to the identified handler.
2. The method of Claim 1 further including the steps of:
providing a handler of last resort which enables a part to be presented to a user of the computer system; and binding the part to said handler of last resort if no handler is available that is suitable for any of said other kinds of data.
3. The method of Claim 1 wherein said step of determining whether a handler is available includes the steps of determining whether the part includes information identifying a preferred handler; and when a preferred handler is identified, determining whether such preferred handler is available on the computer system; and selecting such preferred handler for binding to the part when it is available.
4. The method of Claim 3 wherein said step of determining whether a handler is available includes the further steps of providing a restricted set of handlers for the document containing the part, determining whether any of the handlers in said restricted set are suitable for a kind of data contained in thepart, and selecting one of the handlers from said restricted set which is suitable for said kind of data.
5. The method of Claim 4 wherein the contents of the part are associated with plural kinds of data each having a corresponding fidelity, and wherein one of said kinds is selected on the basis of its fidelity relative to that of the other kinds.
6. The method of Claim 5 wherein the fidelity of each kind of data is determined by the handler which was last bound to the part.
7. The method of Claim 5 further including the steps of determining whether the computer system contains an identification of a preferred handler for the selected kind of data, and selecting the preferred handler when it is identified and is available on the computer system.
8. The method of Claim 7 wherein each kind of data is associated with at least one generic category of data, and further including the steps of:
identifying a category associated with the selected kind of data;
determining whether the computer system contains an identification of a preferred handler for that category of data;
if a preferred handler for the category is identified, determining whether that preferred handler is suitable for the selected kind of data; and selecting the preferred handler for the identified category if it is suitable for the selected kind of data.
9. The method of Claim 8 further including the step of selecting a handler from any handler available on the computer system which is suitable for the selected kind of data if no system preferred handler is identified.
10. The method of Claim 1 wherein the step of determining other kinds of data into which the part can be translated includes the steps of:
selecting one kind of data with which the contents of the part are associated determining a set of destination kinds of data into which the selected kind can be translated;
removing from said set all other kinds of data with which the contents of the part are associated;
determining one or more generic categories of data with which the selected kind is associated; and removing from said set all destination kinds which are not also associated with at least one of said categories of data.
11. The method of Claim 10 wherein said step of identifying a handler includes the steps of:
locating handlers available on the computer system which are suitable for the destination kinds of data in said set;
determining whether any of the located handlers is suitable for at least one of said categories; and selecting a handler that is determined to be suitable.
12. The method of Claim 11 further including the step of selecting a handler from any of said located handlers if none of said handlers is determinedto be suitable for any of said categories.
13. The method of Claim 1 wherein the step of translating the contents of the part includes the steps of determining a preferred order of fidelity for different kinds of data associated with the identified handler, andtranslating the contents of said part into the one of said other kinds of data which has the highest fidelity ordering for said identified handler.
14. In a computer system having a computer-human interface of the type in which documents are based upon parts, where each part comprises contents and a handler for those contents, and the contents are identified as belonging to at least one of plural different kinds of data each having a corresponding fidelity, a method for binding a handler to a part, comprising thesteps of:
selecting one of said kinds of data for the part on the basis of its fidelity relative to that of the other kinds for the part;
determining whether the computer system contains an identification of a preferred handler for the selected kind of data;
selecting the preferred handler when it is identified and is available on the computer system; and binding the part to the selected handler.
15. The method of Claim 14 further including the steps of providing a restricted set of handlers for the document containing the part, determining whether any of the handlers in said restricted set are suitable for the selectedkind of data, and selecting one of the handlers from said restricted set which is suitable for said kind of data.
16. The method of Claim 14 wherein the fidelity of each kind of data is determined by the handler which was last bound to the part.
17. The method of Claim 14 wherein each kind of data is associated with at least one generic category of data, and further including the steps of:
identifying a category associated with the selected kind of data;

determining whether the computer system contains an identification of a preferred handler for that category of data;
if a preferred handler for the category is identified, determining whether that preferred handler is suitable for the selected kind of data; and selecting the preferred handler for the identified category if it is suitable for the selected kind of data.
18. The method of Claim 17 further including the step of selecting a handler from any handler available on the computer system which is suitable for the selected kind of data if no system preferred handler has been identified.
19. In a computer system having a computer-human interface of the type in which documents are based upon parts, where each part comprises contents and a handler for those contents, and the contents are identified as belonging to at least one of plural different kinds of data, a method for translating a part from one kind into another kind and binding a handler to the translated part, comprising the steps of:
selecting one kind of data with which the contents of the part are associated;
determining a set of destination kinds of data into which the selected kind can be translated;
removing from said set all other kinds of data with which the contents of the part are associated;
determining one or more generic categories of data with which the selected kind is associated;
removing from said set all destination kinds which are not also associated with at least one of said categories of data;
locating handlers available on the computer system which are suitable for the destination kinds of data in said set;
determining whether any of the located handlers is suitable for at least one of said categories;

selecting a handler that is determined to be suitable;
translating the contents of the part into one of said destination kinds of data for which the selected handler is suitable; and binding the translated part to the selected handler.
20. The method of Claim 19 further including the step of selecting a handler from any of said located handlers if none of said handlers is determinedto be suitable for any of said categories.
21. A system for binding a handler to an information part in a computer, comprising:
a first data structure storing information which identifies handlers available within the computer and kinds of data with which each handler is associated;
a second data structure which identifies kinds of data contained within a part;
means for determining whether an available handler is associated with a kind of data contained in the part;
means for binding a handler to the part if it is associated with a kind of data contained in the part;
means for determining kinds of data into which the contents of the part can be translated;
means for determining whether an available handler is associated with any of the kinds of data into which the contents of the part can be translated; and means for translating the contents of the part into a kind with which an available handler is associated.
22. The system of claim 21 further including means storing a handler of last resort which enables any part to be presented to a user of the computer,and means for binding said handler of last resort to the part if no available handler is associated with the kind of data contained in the part and the kinds of data into which the contents of the part can be translated.
23. The system of claim 21 wherein said second data structure identifies an order of fidelity for each kind of data contained in the part, andwherein said determining means sequentially selects the kinds of data contained in the part in order of their fidelity to determine whether an available handler is associated therewith.
24. The system of claim 23 wherein each kind of data is associated with at lest one generic category of data, and said determining means determines whether the computer contains information identifying a preferred handler for a category associated with the selected kind of data, and if so whether the preferred editor is associated with the selected kind.
25. The system of claim 21 wherein said translating means determines a preferred order of fidelity for different kinds of data associated with said available handler, and translates the contents of said part into the kind having the highest order of fidelity which is suitable for translation.
26. In a computer of the type having a computer-human interface in which documents are based upon parts, where each part comprises contents and a handler for those contents, a system for binding a handler to a part, comprising:
a data structure which identifies the contents of a part as belonging to at least one of plural different kinds of data each having a corresponding fidelity;
means for selecting one of said kinds of data for the part on the basis of its fidelity relative to those of other kinds for the part;
means for determining whether the computer system contains a suitable handler for the selected kind of data; and means for binding the part to a suitable handler that is determined to be available.
27. The system of claim 26 wherein the fidelity of each kind of data is determined by the handler which was last bound to the part.
28. The system of claim 26 further including means storing information which associates each kind of data with at least one generic category of data;
means for identifying a category associated with the selected kind of data;
means for determining whether the computer contains a suitable handler for that category of data and, if a suitable handler for the category isavailable for determining whether that handler is suitable for the selected kindof data; and means for selecting the handler for the identified category to be bound to the part if it is suitable for the selected kind of data.
CA002184280A 1994-03-02 1995-03-02 System for binding document parts and editors in a computer-human interface Abandoned CA2184280A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/204,520 US5752056A (en) 1994-03-02 1994-03-02 System for binding document parts and handlers by fidelity of parts or by automatic translation of parts
US08/204,520 1994-03-02

Publications (1)

Publication Number Publication Date
CA2184280A1 true CA2184280A1 (en) 1995-09-08

Family

ID=22758251

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002184280A Abandoned CA2184280A1 (en) 1994-03-02 1995-03-02 System for binding document parts and editors in a computer-human interface

Country Status (7)

Country Link
US (1) US5752056A (en)
EP (1) EP0748478B1 (en)
JP (1) JP3950938B2 (en)
AU (1) AU1979695A (en)
CA (1) CA2184280A1 (en)
DE (1) DE69525243T2 (en)
WO (1) WO1995024009A1 (en)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838906A (en) 1994-10-17 1998-11-17 The Regents Of The University Of California Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document
JP3684555B2 (en) * 1995-04-20 2005-08-17 富士ゼロックス株式会社 Document processing device
US5675637A (en) * 1995-05-16 1997-10-07 Inventions, Inc. Method for automatically obtaining and presenting data from multiple data sources
US6480206B2 (en) * 1998-02-24 2002-11-12 Sun Microsystems, Inc. Method and apparatus for an extensible editor
JP2001306308A (en) * 2000-04-11 2001-11-02 Sap Ag Method for defining class of data center application
CA2443454A1 (en) * 2003-09-11 2005-03-11 Teamplate Inc. Data binding method in workflow system
CA2451164C (en) * 2003-09-11 2016-08-30 Teamplate Inc. Customizable components
US7617447B1 (en) 2003-12-09 2009-11-10 Microsoft Corporation Context free document portions
US7464330B2 (en) * 2003-12-09 2008-12-09 Microsoft Corporation Context-free document portions with alternate formats
US20070276689A1 (en) 2006-05-12 2007-11-29 Kirk Slone Workflow data binding
US7359902B2 (en) * 2004-04-30 2008-04-15 Microsoft Corporation Method and apparatus for maintaining relationships between parts in a package
US7383500B2 (en) 2004-04-30 2008-06-03 Microsoft Corporation Methods and systems for building packages that contain pre-paginated documents
US7487448B2 (en) 2004-04-30 2009-02-03 Microsoft Corporation Document mark up methods and systems
US7418652B2 (en) * 2004-04-30 2008-08-26 Microsoft Corporation Method and apparatus for interleaving parts of a document
US8661332B2 (en) 2004-04-30 2014-02-25 Microsoft Corporation Method and apparatus for document processing
US7512878B2 (en) 2004-04-30 2009-03-31 Microsoft Corporation Modular document format
US7549118B2 (en) 2004-04-30 2009-06-16 Microsoft Corporation Methods and systems for defining documents with selectable and/or sequenceable parts
US7634775B2 (en) * 2004-05-03 2009-12-15 Microsoft Corporation Sharing of downloaded resources
US8243317B2 (en) * 2004-05-03 2012-08-14 Microsoft Corporation Hierarchical arrangement for spooling job data
US7580948B2 (en) * 2004-05-03 2009-08-25 Microsoft Corporation Spooling strategies using structured job information
US7519899B2 (en) * 2004-05-03 2009-04-14 Microsoft Corporation Planar mapping of graphical elements
US7607141B2 (en) * 2004-05-03 2009-10-20 Microsoft Corporation Systems and methods for support of various processing capabilities
US8363232B2 (en) * 2004-05-03 2013-01-29 Microsoft Corporation Strategies for simultaneous peripheral operations on-line using hierarchically structured job information
US7440132B2 (en) * 2004-05-03 2008-10-21 Microsoft Corporation Systems and methods for handling a file with complex elements
US7755786B2 (en) * 2004-05-03 2010-07-13 Microsoft Corporation Systems and methods for support of various processing capabilities
US7617450B2 (en) 2004-09-30 2009-11-10 Microsoft Corporation Method, system, and computer-readable medium for creating, inserting, and reusing document parts in an electronic document
US7584111B2 (en) * 2004-11-19 2009-09-01 Microsoft Corporation Time polynomial Arrow-Debreu market equilibrium
US20060136816A1 (en) * 2004-12-20 2006-06-22 Microsoft Corporation File formats, methods, and computer program products for representing documents
US7620889B2 (en) 2004-12-20 2009-11-17 Microsoft Corporation Method and system for linking data ranges of a computer-generated document with associated extensible markup language elements
US7617451B2 (en) * 2004-12-20 2009-11-10 Microsoft Corporation Structuring data for word processing documents
US7617444B2 (en) 2004-12-20 2009-11-10 Microsoft Corporation File formats, methods, and computer program products for representing workbooks
US7614000B2 (en) 2004-12-20 2009-11-03 Microsoft Corporation File formats, methods, and computer program products for representing presentations
US7617229B2 (en) * 2004-12-20 2009-11-10 Microsoft Corporation Management and use of data in a computer-generated document
US7770180B2 (en) * 2004-12-21 2010-08-03 Microsoft Corporation Exposing embedded data in a computer-generated document
US7752632B2 (en) * 2004-12-21 2010-07-06 Microsoft Corporation Method and system for exposing nested data in a computer-generated document in a transparent manner
US20060277452A1 (en) * 2005-06-03 2006-12-07 Microsoft Corporation Structuring data for presentation documents
US20070022128A1 (en) * 2005-06-03 2007-01-25 Microsoft Corporation Structuring data for spreadsheet documents
US20080115056A1 (en) * 2006-11-14 2008-05-15 Microsoft Corporation Providing calculations within a text editor
US20090113292A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Flexibly editing heterogeneous documents

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4723210A (en) * 1984-08-30 1988-02-02 International Business Machines Corp. Superblock structure in a multiple in a data editor
US4751740A (en) * 1984-12-10 1988-06-14 Wang Laboratories, Inc. Apparatus, method, and structure for translating a document having one structure into a document having another structure
US4815029A (en) * 1985-09-23 1989-03-21 International Business Machines Corp. In-line dynamic editor for mixed object documents
US4974194A (en) * 1986-04-04 1990-11-27 International Business Machines Corporation Method for modifying intermingled text object and graphic object within an object set individually or correspondingly
US5243691A (en) * 1986-06-18 1993-09-07 Hitachi, Ltd. System for printing documents
US5142618A (en) * 1986-11-21 1992-08-25 Hitachi, Ltd. Window management apparatus for a document creating apparatus
US5226161A (en) * 1987-08-21 1993-07-06 Wang Laboratories, Inc. Integration of data between typed data structures by mutual direct invocation between data managers corresponding to data types
JPH01211067A (en) * 1988-02-19 1989-08-24 Hitachi Ltd Document editing device
US4933880A (en) * 1988-06-15 1990-06-12 International Business Machines Corp. Method for dynamically processing non-text components in compound documents
US5033008A (en) * 1988-07-22 1991-07-16 International Business Machines Corporation Dynamic selection of logical element data format as a document is created or modified
US5140677A (en) * 1990-05-11 1992-08-18 International Business Machines Corporation Computer user interface with window title bar mini-icons
AU9031191A (en) * 1990-10-31 1992-05-26 Go Corporation Computer documents as compound documents in a notebook metaphor
JPH05225181A (en) * 1991-03-14 1993-09-03 Nec Corp Editing device
US5299304A (en) * 1991-04-16 1994-03-29 International Business Machines Corporation Method and apparatus for identifying multiple stage document format transformations
CA2064508A1 (en) * 1991-04-26 1992-10-27 John D. Gerlach, Jr. Methods and apparatus providing for a multimedia authoring and presentation system
CA2068486C (en) * 1991-08-30 1998-09-15 Stephen S. Fleming System and graphical method for creating an object
GB2270242A (en) * 1992-08-29 1994-03-02 Ibm A method of editing for an object oriented computer system
EP0606811A3 (en) * 1992-12-28 1995-06-21 Ibm Employing a preferred object handler.

Also Published As

Publication number Publication date
EP0748478B1 (en) 2002-01-30
US5752056A (en) 1998-05-12
DE69525243T2 (en) 2002-10-02
WO1995024009A1 (en) 1995-09-08
JPH09510034A (en) 1997-10-07
DE69525243D1 (en) 2002-03-14
JP3950938B2 (en) 2007-08-01
EP0748478A1 (en) 1996-12-18
AU1979695A (en) 1995-09-18

Similar Documents

Publication Publication Date Title
CA2184280A1 (en) System for binding document parts and editors in a computer-human interface
US5243519A (en) Method and system for language translation within an interactive software application
US5950001A (en) Method and apparatus for customizing a software component
US7440958B2 (en) Trusted access by an extendible framework method
US6185591B1 (en) Text edit system with enhanced undo user interface
CN100476859C (en) Method and device for extracting metadata from document areas of pixel
US8418130B2 (en) Managing comments associated with computer code
US5825944A (en) Block selection review and editing system
US7546315B2 (en) Device for reporting software problem information
US20090222760A1 (en) Method, System and Computer Program Product for Automating the Selection and Ordering of Column Data in a Table for a User
EP1635254A1 (en) Configurable interface for template completion
US20050251757A1 (en) Display of enlarged visual container graphical user interface (GUI) components during GUI layout or design
US5933143A (en) Method and apparatus for displaying a tree structure diagram representing a relationship among windows with icons representing respective windows
WO1997029433A1 (en) Graphical user interface (gui) language translator
JPH09134282A (en) Program generation method
JP5302759B2 (en) Document creation support apparatus, document creation support method, and document creation support program
US7401070B2 (en) Flow data generation method, flow data generation apparatus, and flow data generation program product
US7194694B2 (en) Device for indicating and providing information and links to quoted or reproduced material
CN1983173A (en) Graphical user interface design method and device
EP1341081A1 (en) Sequence analysis method and sequence analysis apparatus
US7333951B1 (en) Method and system for building and maintenance watch lists
US7065748B2 (en) Test specification formation supporting apparatus, method, and program, and recording medium
EP1591894A2 (en) Method and program for linking different applications through data displayed on screen
US7000182B1 (en) assistant for creation of layouts or reports for databases
US6774921B1 (en) Method and apparatus for dynamically saving/restoring the properties of controls in a screen dialog

Legal Events

Date Code Title Description
FZDE Discontinued