CA1326561C - System for managing hierarchical information in a digital data processing system - Google Patents

System for managing hierarchical information in a digital data processing system

Info

Publication number
CA1326561C
CA1326561C CA000596729A CA596729A CA1326561C CA 1326561 C CA1326561 C CA 1326561C CA 000596729 A CA000596729 A CA 000596729A CA 596729 A CA596729 A CA 596729A CA 1326561 C CA1326561 C CA 1326561C
Authority
CA
Canada
Prior art keywords
entry
outline
display
pointer
identified
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.)
Expired - Fee Related
Application number
CA000596729A
Other languages
French (fr)
Inventor
Duane A. Smith
Kelly A. O'rourke
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Application granted granted Critical
Publication of CA1326561C publication Critical patent/CA1326561C/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation

Abstract

ABSTRACT OF THE DISCLOSURE
A system for use in conjunction with a digital data processing system includes an applications program, a user interface and a hierarchy information management system. The applications program generates an information hierarchy including a plurality of hierarchy information items organized in a plurality of hierarchy levels. The user interface includes a display for displaying information to a user and an event initiator, such as, for example, a keyboard or a mouse for generating event information. The hierarchy information management system receives hierarchy information items at selected hierarchy levels from the applications program and transmits the received hierarchy information items to the display of the user interface for display, and responds to the event information by initiating selected operations in connection with the received hierarchy information.

Description

~ ~26~

,~:

- 1. Field of the Invention , .' The invention relates generally to ~he~ field of digital `: data processing systems, and ~ore particularly provides a x, system for managing and displaying hierarchically arranged ~`, 5 information for an applications progra~ gener~ting the ` information and a user who can use the information.

., 2. Background Digital data processing systems, or computer æystems, ~ allow users to organize and maintain large amounts of : information from a number of applications programs, and to `` generate information for use by those or other applications programs. In many cases, it is desirable to divide the ;~ 15 massive amounts of in~ormation that a user may ~ave available to him on the computer into a number of diverse ite~s. To organize the information, the information may be classified according to a multiple-l~vel classification scheme. Familiar ~xamples of such classi~ication schemes 20 include the Dewey Decimal System ~or classifying book~ in a library, division of a re~erence book on a particular topic into a number of diverse parts, each perhaps having a plurality of subsidiary subdivisions, and so for~h, and organization of documents into ~iling ~abinets, drawers and 25 folders, all of which provide a tree-like-classiPication s structure such as wol~ld be provided in, for example, an outline.

i .

; ' : , " ' .

, , ~ ~

~326~

~ 2 ,....
~:, Several examples may help explain the use of hierarchical organization o~ information in a computer system. Information used in, for example, an accounting program may be divided into, at a first level, account~
receivable information, accounts payable infoxmation, asset S information, liability infoxmation, and so forth. The accoun~s receivable infor~ation, in turn, ~ay be organi~ed ` by the party owing the receivable, and then further divided by the aging of the receivable. Similarly, the accounts payable information may be organized by the party to whom 10 the payable is owed and then further divided by the aging of the payable. The assets may be divided into the type of ., asset, that is, whether the asset is curren~ or fixecl.
Continuing with the example, the current assets may be further divided by whether they are cash or cash equivalents, with cash being further organized by the banks ~:. in which it is deposited and cash equivalents being further organized into the type of as~et, such as stock, bond, and ~ so ~orth, Si~ilarly, the fixed assets may be organized by : whether the asset is depreciable or not depreciable, further 20 organized by location, and o forth.
.~ ~
Similarly, using a mail applications program on a comput~r ~y tem, a user may generate memoranda and trans~it them to other users on the computer system~ In addition, 25 using the mail applica~ions program, the user may receive memoranda generatsd by other users. In many ca es, a user ~ay wish to organize the received memoranda by originator, dividing the memoranda according to the origi~ators' departments, sections, or other subdivisio~s in which the :
, - ;, 132~S~
~- 3 60412-1945 company may be parki~ioned. If the memoranda are organized in .:;.:
~ this manner, the user, by specifying a subdivision may easily . ~,, ~ .
~ retrieve only the memoranda from originators in the specified .
subdivision, which may reduce the time required to review his mail ~ .^;
. if he is not interested in memoranda from other subdivislons.
~,...
Alternatively, or additionally, a user may wish to organize the memoranda by subject matter, whi~h may also b~ divided into a .i plurality of levels, and review memoranda only relating to particular sub~ects.
SUMMARY OF THE INVENTION
The invention provides a new and improved hierarchical .,~,, information management system for enabling a computer system to manage and display hierarchically-organized data in a digital data .: processing system.
....
In brie~ summary, the new system lncludes an applications program, a user interface and a hierarchy information ~i management system. The application program generates an information hierarchy including a plurality of hlerarchy ..
information items organized in a plurality of hierarchy levels.
The user inter$ace includes a display for displaying lnformation ~, to a user and an event initiator, such as, for example, a keyboard ~x or a mouse for generating event information. The hierarchy :j information management system receives hierarchy in$ormation ltems at selected hierarchy levels from the applications means and .ransmits the received hierarchy information items to the display of the user interface means for display, and responds to the event ~;, information by initiating selected operations in connection with the received hierarchy information.
, .

; q~
,, ~
:.i : , , . , ~

, - ~32~
~ 4 60412-1945 ... .
According to a broad aspect of the invention there is provided an outline management system adapted for use in .
conjunction with a user interface means including display means for displaying a portion of a multiple-level ou~line to a user and an input device for yenerating lnput information in response to : use of said input device by a user, said outline management system comprising:
A. applications program means, comprising software, for organizing information stored in a computer database into a multiple-level outline including a plurality of outline items organized in a plurality of levels and for retrieving outllne items from said outline in response to requests, and B. outline control means, interfacing with said applications program means and said user interface means, for receiving said input information from said user interface means, said input information indicating to said outllne control means which outline items said user wishes to have displayed by said display means, for requesting and receiving, from said applications program means, outline items from a portion of said ~0 outline that said user wishes to have displayed by said display means, said received outline items being located on a plurality of branches of said outline, and for transmitting received outline items located on a plurality of branches of said outline to said display means of said user interface means for simultaneous display, said outline control means transmitting said received outline items that said user wishes to have displayed to said display means in a manner such that relative locations of said received outline items on said display means render apparent to r . .;
', ,"' ,~
'I , .' ' ' ,' ' ~ ' ' ' . ~ ,' "~

~326~
4a said user parenk-child relationships among said received outline .~
items that said user wishes to have displayed by said display means, said outline control means being adapted ~or use in conjunction with any of a plurality of differing applications program means, comprising software, that organize information that is stored in a computer database into an outline including a plurality of outline items organized in a plurality of levels, and ~ that structure said ou~line in response to a multiple-level ; outline scheme, said outline control means requesting and receiving, from any of said plurality of applications program means, outline items that said user wishes to have displayed by sald display means and that are located on a plurality of branches of said outline.
According to another broad aspect of the invention there is provided an outline management system adapted for use in coniunction with any of a plurality of differing applications program means comprising software that organize information stored in a computer database into a multiple-level outline including a ` plurality of outline items organized in a plurality of levels and that retrieve outline items for said outline in response to requests, and adapted for use in con~unction wikh a user interface means including display means for displaying a portion of said outline to a user and an input device for generating input information in response to use of said input device by a user, said outline management system comprising:
A. instance storage means for storing outline items organized in said plurality of levels; and B. outline control means, interfacing with said ,.,.~
;~ J/
.

~, 1 3 2 ~
4b 60412-1945 : applications pro~ram means and said user interfa~e means, for receiving said input information from said user interface means, said input information indicating to said outline control means which outline itemæ said user wishes to have displayed by said display means, for requesting and receiving, from said applications program means, outline items from a portion of said outline that said user wishes to have displayed by said display means, said received outline items being located on a plurality of branches of said outline, for storing said received outline items located on a plurality of branches of said outline in said instance storage means, and for transmitting received and stored outline items located on a plurality of branches of said outline to said display means for simultaneous display, said outline control means transmit~ing said received ou~line items that said user wishes to have displayed to said display means in a manner such that relative locations of said received outline items on said display means render apparent to said user parent-child relationships among said received outlinè items that said user wishes to have displayed by said display means.
According to another broad aspect of the invention there is provided an outline management system adap-ted for use in ~ conjunction with a user interface means including display means for displaying outline items to a user and an input device ~or generating input information in response to use o~ said input device by a user, said outline management system comprising:
A. applications program meansr comprising software, for organizing information stored in a compu~er database into a multiple-level outline including a plurality of outline items f~
'~s,""~

132~
4c 60412-1945 organized in a plurality of levels and for retrieving outline items from said outline in response to reques~s, and B. outline control means, interfacing with said applications program means and said user interface means, for receiving input information from said user interface means indicating to said outline control means which outline i~ems said user wishes to have displayed by said display means, for requesting and receiviny, from said applications program means, outline items that said user wishes to have displayed by said display means and that are located on a plurality of branches of said outline, for transmitting received outline items located on a plurality of branches of said outline to said display means of said user interface means for simultaneous display, for receiving input information from said user interface means corresponding to said user performing a selection operation simultaneously upon displayed outline items in differing branches and levels of said outline, and for causing said display means to display said outline items upon which said selection operation has been performed in a manner that distinguishes display of said outline items upon which said selection operation has been performed from outline items upon which said selection operation has not been performed.
According to another broad aspect of the invention there is provided an outline management system adapted for use in conjunction with a user interface means including display means for displaying a portion of an outline to a user and an input device for generating inpu~ information in response to use of said input device by a user, said outline management system comprisingS

~J

~ ':

1 3 ~
4d 60412-1945 A. applications program means, comprlsing software, for organizing information stored in a computer database into a multlple-level outline including a plurality of outline items organized in a plurality Gf levels and for retrieving outline 1tems from said outline in response ko requests, and B. outline control means, inter~acing with said applications program means and said user interface means, for receiving said input infoxmation from said user interface means, said input information indicating to said outline control means which outline items said user wishes to have displayed by said display means, for requesting and receiving, from said applications program means, outline items from a portion of said ; ou~line that said user wishes to have displayed by said display means, said received outline items being located on a plurality of : branches of said outline, and ~or transmitting received outline ,~ items located on a plurality of branches of said outline to said ~ -display means of said user interface means for simultaneous display, said outline control means transmitting said received outline items that said user wishes to have displayed to said display means in a manner such that relative loeations of said ~ received outline items on said dlsplay means render apparent to I said user a path to a root of said outline for each displayed l: outline item.
j:
'~ According to another broad aspect of the invention there is provided an outline management system adap~ed for use in conjunction with a plurality of user interface means including a respective plurality of display means fox displaying a respective plurali~y of portions of an outline to a plurality of usex~ and a , ' - ' :': ~, .
,, -: . . .
: - .: : .. .. .
' ~ ~ ',:, .

~L 3 2 ~
4e 60412-1945 respective plurality of input devices for generating input in~ormation in response ~o use of said input devices by said usersl said outline management system compr.lsing:
A. applications program means, comprising software, for organizing information stored in a computer database into a multiple-level outline including a plurali~y of outline items organized in a plurality of levels and for retrieving outline items from said outline in response ~o requests, and B. outline control ~eans, interfacing with said applications program means and said plurality of user interface means, for receiving input information from each of ~aid plurality of user interface means, said input ln~ormation indicating to said outline control means which outline items each of said plurality of users wishes to have displayed by a respective display means, for requesting and receiving, from said applications program means, outline items from a plurality of portions of said outline that respective users wish to have displayed, said outline items in each of said plurality of portions of said outline being located on a plurality of branches and levals of said outline, and for transmitting received outline items located on a plurality of branches and levels of said outline to respective ones of said display means for simultaneous display.
BRIEF DESCRIPTIO~ OF THE DRAWINGS t This invention is pointed out with particularity in the appended claims. The above and further advantages of this invention may be better understood by referring to ~he following description taken in conjunction with the accompanying drawings, in which:

r~

.
. . . , ~ .-5 ~ ~
4f 60412-1945 Figure 1 is a functional block diagram of a hierarchical 1nformation management system in accordance with the invention;

Figure 2 depicts data structures useful in understanding the hierarchical information management syst,em depicted in Figure l;
Figures 3A-1 through 3F deplct flow dlagrams useful in understanding the opera~ions of the hierarchical information management system depicted in Figure 1.
DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT
A GENERAL DESCRIPTION
Figure 1 depicts a functional block dlagram of a hierarchical information management system lO constructed in accordance with the invention. Preliminarily, in one specific embodiment, the new hierarchical information mana~ement system lO
comprises a program for use in a computer system and provides one or more interfaces between -' .

, . ~ '' '~ ' , .

~ ~26~

, . .

an applications program and users. With reference to :~ Fig. 1, the hierarchical information management system 10 com~unicates with an applications program 11, which includes an applications module 12 and a source module 13. The applications program 11 organizes its-applications information into a multiple-level hierarchy having a tree-like structure, in which each information category at a level may have one or more sub-categories. The hierarchical - information management system 10 co~municates with the . 10 applications program to obtain therefrom information regarding the hierarchy in which the applications program has categorized the applications information. Upon I obtaining the hierarchy in~ormation, the hierarchical i information management system 10 displays at least a portion ~ 15 of the hierarchy infor~ation to a user inter*ace 14, and -i particularly to a di~play 15, for display to a user. In i particular, the hierarchical information management system 10 may initially display the hierarchy information from the root level, at the top of the hierarchy, down to a ~,~ 20 predetermined lower level.
PreliminariIy, by way of background, the display 15 displays information to a user in a windvw associated with ~l the applications program 11. The display 15 may ha~e a ., 2S plurality of window~ each associated with an pplications .ilj program. The applications program 11 may allocate various j portions of its window to YarioUs syste~s~ including the .~ hierarchical information management ~y~tem 10, to various menus and pushbuttons, and so forth~ In it~ di~play operations, the hierarchical infor~ation ~anagement system , . . . .
:: , .~ .
~ . .

-~326~

lO displays the hierarchy infor~ation in th~ window allocated to it by th~ applications progra~.
After the hierarchical information management system lO
has displayed the information, the user, u~ing an input device, ~uch a~ a keyboard or a mou~e, a~ an event initiator 16, may perform various selection operation~ in connection with various items of hierarchy infor~ation and enable the hierarchical information management system lO or the applications program 11 to perform various operations in connection with the ~elected itemæ. For example, by manipulating a mouse, a user may initiate an event which results in the selection of one or more items of information in the hierarchy. lf the user enables the hierarchical information management system lO, it may expand or collapse the displayed portion of the hierarchy, so that items under a selected it~m, for example, ~ay be displayed (if hidden) or hidden (if di~played) on the display. If the user enable the applications program 11 through a menu or a 20 pushbutton, it may perfor~ a predetermined operation in connection with the selected item.
The hierarchical information ~anagement system lO
includes a widg~t control module 20, which initiates a 25 plurality of operations described below in connection with Figs. 3A through 3F, and a plurality of widget ins~ance structureæ 21, one of which is shown in Fig. 1. A widget instance structure 21 is effectively a~ociated with an int~rface between the applications program 11 and the user interface 14, and so an applica~ion~ progra~ may have one or more interface~with one or ~ore uæer~ with each interface . . .
:' .

1326~gt being associated with one of the widget instance structures 21.
The wldge~ control module 20 manages communlcations with the applications module 12 and the source module 13, establishes a widget instance structure 21 and manages the display of the hierarchy information to the user and receives certain event lnformation from the user interface 14. The applications program 11 and the widget control module 20 communicate through calls a~d callbacks, which will be described in detail below. Generally, ; however, the applications program 11, including both the applications module 12 and the source module 13, per~orms calls to th0 widget control module 20 to enable the widget control module ~0 to per~orm certain operations, to provide hierarchy information to be dlsplayed, and to obtaln status information, such as whether or not a particular item o~ hlerarchy information is selected which may be used in connection with processing in response to the user initiating a menu item or a pushbutton. The widget control module 20 per~orms callbacks to the source module 13 to obtain ~ hierarchy information, to notify the source module 13 of various ¦~ events and to respond to requests for status information.
As noted above, a particular interface between an appllcations program 11 and a user inter~ace 14 effectively corresponds to a widget instance structure 21. A widget instance ~ structure 21, whose components are described in detail in - connection with Figure 2, includes a widget instance record 22 chat points to an entry list 23, comprising a .~,~

~. ., ~ . ~

1 3 2 ~

plurality of entries 24A through 24N (generally identi~ied by reference numeral 24). In one specific embodiment, the entry list 23 comprise~ a linked list, that is, each of the entries ~4 in the entry list 23 point~ to the next and 5 previous entrie~ in the entry list 23. ~ach entry 24 in the ,. entry list 23, in turn, also points to a component list 25.
The component list 25 includes a plurality o~ component entries 26A ~hrough 26~ (generally identified by re~erence numeral 26) each pointing to a data array generally identified by reference numeral 27 that contains hierarchy information.
Before proceeding further, it would be helpful to describe some of the calls an~ callbacks tran~mitted between ~ 15 the applications program 11 and the widget control module , ~ ~, and the operations performed in response thereto. To initialize an interface, the application~ proqram 11, and, specifically, the applications module 12, iSSU8S a CREATE
WIDG~T call, which includes as parameters a widget name, 20 display information and callback pointer~, which point to ~, routine~ processed by the source module 13 to process the callbacks fro~ the widget control module 2~k As i~
conven~ional, the applications program 11 may have an i associated display wind~w on th~ display 15 in the user's Z5 user int~rface, which may comprise all or only a portion of the display's ~reen (not shown), and the display information may include 3uch infor~ation as a portion of the I applications program's window in which the hierarchical information manage~ent system lO may di~play the - 30 hi~rarchicnl infor~ation, thereby ef~ectively defining a ,, .

~326~

window for th~ hierarchical information management system 10 .
In response to a CREAT~ WIDGET call, the widget control module ~ creates a widget instance 6tructur~ 2~, in which the parameters are stored as described below in connection with Fig. 2, and generate~ an ATTACH callback to the source module 13. In response to the ATTAr~ callba~.k, the source module 13 generates one or more ADD ENTRIE5 cal~ to the widget control module 20 that identify an initial number of entries 24 for the widget control module 20 to create in the entry list 23. The widget control module 20 then creates the data structure comprising the ¢ntry list 23, specifically creating a number of entries corresponding to the number set forth in the ADD ENTRIES calls from the source module 13.
~ ollowing creation of the entry list 24, the widget control module obtains from the ~ource module the information to display in the window of the user interface 14 allocated ~o the hierarchical information management system lO, creates the component list 25 and arrays 27 to store the hierarchical information, and en7bles the hierarchical informa~ion from the array~ ~ to be transmitted to the di~play 15 for display to the ussr. In thl~ operation, the widget control module 20 generates a GET
ENTRY callback for the source module 13 for each entry whose information is being obtained. The GET ENTRY callback identifies the entry who~e in~ormation i8 being obtained.
In response, the source module genera~es a SET E~TRY call for the widget con~rol msdule 20 to provide information for i the entry, such as th~ number of components, and a SET
COMPONENT call, which identifies the information for the array 27, for each of the component~ 26 associated with ~he ~, entry 24. The widget control module 20 iteratively 1 5 generat~s GET ENTRY callbacks until it sither receives su~ficient infor~ation to fill its window in th~ display 15 ~, or until it reaches the last entry 24 in the entry list 23.
j After displaying the initial window o~ the hiera~hy i ¢ 10 information asscciated with the entries 24 as provided~the . source module 13, the widget control module 20 waits for an event from the event initiator 16 in the user interface 14.
An event may indicate, for example, that a user has depressed a key on a keyboard and/or a push-button on a 15 mouse in connection with an item o~ hierarchical information, which, in turn, is associated with an entry 24 and a co~ponent 26. The hierarchical information management I system 10 provide3 several general type~ of events, 3 including a selection e~ent, a selection and confirmation 20 ewent, and a scrolling event.
In a selection ev~nt, a u~er ~elect~ an item of hierarchy information, which may then be the subject o~ an operation ~elected fro~ a menu or puehbutton. In one 25 embodi~ent, the widget control ~odule 20 identifies a selected item to the user on display 15 by displaying it in rever~e ~ideo. FQ110Wing selection of an item, the user may also deselect the item without initiating a menu- or pushbutton-initiated operation. In re~pons~ to ~election of 30 an ite~, th- widget control ~odulo aleo generates an ENTRIES

,~

~, , ~32~

SELECTED callback to the source module 13 identifying the selected entries.
In a selection and confir~ation event, a user selects an item of hierarchy information and initiates a default operation in cvnnection therewith. In that default operation, the application~ program 11 may per~orm an expansion operation to di~play the items of hierarchy information in the next Ievel depending from the selected item. Alternatively, if the hierarchical information management system lO is already displaying the items of hierarcby information below the salected item, it may perform a collapse operation in which it removes the items from the display 15. In one embodiment, to initiate both a 15 select operation and a select and confirm operation using a mouse as the event initiator 16, the u~er manipulates the mouse as a pointer to point to the item of hierarchy information to be elected and depre~se a bu~ton on the ~ouse. If the user presses the button once, the 20 hierarchical information manage~ent system 10 performs a selection operation in connection with the ite~, and if thP
user presses the button ~wice it per~orms a selection and con~irmation operation.
In a scrolling operation, the user enables scrolling of the di~play through the ite~s of hierarchy information. In the scrolling operation, either up or down, the hierarchical infor~ation manage~ent system 10 display~ the path to the root, that i~ ema of hierarchical information to the 30 topmo~ level. Thus~ during the scrolling operation, the hierarchical in~ormation ~anagement sy3~m 10 does not ~32~g~

necessarily eliminate the item in the top l:ine of its window of the display 15 during a scroll up operat:Lon, or move the item in the top line during a scroll down operation, but instead selects the ite~ so that the path to the root is always displayed.
In one embodiment, the user may initiate a scrolling operation in several ways, including dragging the mouse to an upper or lower edge of the window a~sociatsd with the 10 hierarchical information management system 10, and by manipulation of a pushbutton on a scroll bar in the window associated with the hierarchical in~ormation management system 10. In the dragging operation, the user may previously have selected one or more of tha items of 15 hierarchical information: when that occurs, the hierarchical information management system 10 may move the items to another location indicated by the event initiator 16 at the end o~ the scroll operation.
With this background, aft~r the hierarchical in~ormatio~ management system 10 ha~ initially obtained and displayed the items of hierarchy in~oxmation from the ~ource module 13, in response to a user selecting an item and initiating an operation by mean~ of a ~enu or pushbutton, 25 the source module 13, if it does not aIready have the identifications of the selected ~ntries, ~irst transmits a NUM SELECTED call to the widget cvntrol module to obtain th2 number o~ selected entries. The source module 13 uses the number returned by the widget control module to size a 30 bu~fer. Th~ source module 13 then transmits a GET
SELECTIONS call to the widge~ control ~odule 20, including a , : .
, .
,, .: : ~ .
.. .

~ 32~6~

; pointer to the bu~fer. The widget control ~odule then loads the identifications of the selected entries 24 into the buf~er.
. 5 In response to a select and confir~ation operation, the widget control module 20 generates a SELECT AND CONPIRM
' callback to the source module 13, which identifies the ,i selected entry 24 and component 26. The source ~odule 13 ¦ then initiates a default operation in connection with the ~: 10 entry 24 and component 26. If the default operation i5 an expand operation, and if the selected entry ~4 is not fully , expanded, the source module 13 generates an ADD ENTRIES call 3 to ~he widge~ control modula 20 to add entries 24 to the 1 entry list 23 a~ter the selected entr~ 24. The ADD ENTRIES
15 call identifie~ a number of entries to ~e added as well as the selected entry 24 as the entry after which th~ Qntries are to be added. In response, the widg~t control module 20 generates the entries 24 and links them into the entry list 23 after the identified entry. If the hierarchy information 20 ass~ciated with the entries is to be displayed, the widget control module 20 also generates a GET ENTRY callback for each entry, to w~ich the source module 13 responds with the ~ SET ENTRY and SET CO~PONENT calla to provide the necessary ., hierarchy information for the entries 24 and associated ~ 25 components 26 and arrays 27.
, If, on the other hand, the en~ry 24 is fully expanded, that is, if it is a leaf on the tree-structured hierarchy, the source modulQ 13 may, as the default operation, enable 30 the display 15 to display information relating to the selected entry. For example, if the application 11 is a ., :~ .

~L32~

mail program, the source module 13 may enable the display 15 to display mail messages relating to thQ selected entry 24.
Similarly, i~ the applica~ions program l~ a filing sys~em, with th~ en~rie~ 24 representing hierarchie~ resembling, for exampl~, iling cabinets, drawers, folder~, document~, and so forth, ~rom the top level o~ the hierarchy to the bottom, the source module 13 may enable the display to display the selected document.
I~ the default operation initiated in r~sponse to a SELECT ~ND CONFIRM callback is a collapse operation, the source module 13 first verifie~ that the entry list 23 contains entries 24 depending thsrefrom in the next level down in the hierarchy. If so, those entr~es 24 are ~tored in the entry list immediately ~ollowing the selected entry 24. Thus, in the collapse operation, the source module 13 generates a DE~ETE ENTRIES call to the widget control module 20, identifying the entry 24 ~fter which the depending entries 24 are to be deleted, which correspond~ to the selec~ed entry 24, and also identi~ying the number o~
entries 24 to be deleted. The widget control module 20 then deletes the entries 24 from the entry list 23 and remo~es the hierarchy information relating to those sntries fro~ the display 15.
Remo~al of the hierarchy information from the display 15 in re~pon~e to the DELETE ENTRIES call may provide room for other hierarchy information associated with other entries 24, and so the widget control ~odule 20 may enable ~he display 15 to di~play hierarchy information from array~
27 related thereto. I~ the hierarchy information fox an . . .

. .
~, .
::, , ~, ` : :

~3~6~1 entry 24 to be displayed is not present in an array 27, the widget control module 20 generates the GET ENI~RY callback to the sourc2 module 13, which responds with the SET ENTRY and SET CC)MPONENT calls as described above.
In one specif ic embodiment, the widget control module 20 performs two diverse types of scrolliny operations, including scrolling and dragging. In scrolling, the hierarchy information associateà with entries 24 are moved 10 up or down on the window as~ociated with the hierarchical information management system 10 on display 150 At the same time, hierarchy information associated with other ent:ries 24 may be added at the bottom or directly under the path-to-root information near the top of the window in the manner as 15 described above.
In a dragging operation, the user selects one or more entries ahd, by manipulating a mouse in one embodiment, ~
moves the mouse pointer to point to another location in the 20 window. The widget control module 20 generates a SELECTIONS
DRAGGED callback to the source module 13 identifying th~
entry 24 associa~ed wlth the location of the pointer. ~he source module 13 generates a DELETE EN~RY call to delete the selected entry or entrie. ~4 from the entry li~t 23 at the 25 point where they were selected, and an ~DD ENTRY call to add th~ entries 24 a:~ter the entry 24 in the entry list identified in the SETECTIONS DRAGG:EI) callback~ To obtain hierarchy infonnation to display, the wldgst control module 20 general:es a GET ENTRY callbas::k for the ~ource module 13, 30 which respond~3 with the SET EN~rRY and SET COI~PC)NENT calls to -::
.

:: ~32~5~1 .i .
,, .

provide the hierarchy information ~or the entries 24, components 26 and arrays 27.
~IThe app1ications program 11, and speci~ically the :l5 ~ource module 13, may a1so enable the widget control module 20 to periorm several operations in connection with the widget instance structure 21 a~ d~scribed below in ;,connection with ~igs. 3A through 3F. In addition, the applications program 11 may destroy a widget represented by 10 the widget instance structure by an appropriate message to the widget control module 20. In response, the widget control ~odule 20 generates a DETACH FRO~ SOURC~ ca11back to the source module 13 identifying the widget.
15 B. SPECIFIC DISCUSSION
1. at~ ~truct~ro~
With this background, the specific data structures used 20 in one specific en~odi~ellt of the widg~t instance record Z2, entry list 23, component list 25 and array~ 27 will now be described in connection with Fig. 2. With re~erence to Fig. 2, ~he widget in~tance record 22, which is established -by the widget control module 20 in re~ponse to the CREATE
25 WIDGET call from the application module 12, includes a number of fields, including a widget identification field 30 that identifies the widget represented by t~e widge~
in~tance record, a~d a callback pointer~ field 31 that receive~ pointers to routine~ in the sourc~ module 13 that 30 proc~ss the callbacks fro~ th~ widget control ~odule 20.
C ~entially, the widget control ~odule ~ a c~llback :` .

13265~1 ~17-, ' routine pointer to identify a callback type when it ¦ generates a callback for the source module 13. The contents for both the widg~t identification field 30 and the callback pointers field eorrespond, to the widget name and callback 5 poin~er~ received by the widge~ control module 2V in the CREA~E WIDG~T call.
The widget instance record 22 also includes several fields that relate to the entry li~t ~3. Speci~ically, the 10 contents o~ an ent~y pointer field 32 point to the first entry 24A in the entry list 23, and a field 33 contains a value that identifies the number of entries 24 in the entry }ist.
', The widget instance record 22 also includes fields that ' contain information relating to the display of the hierarchy ', information on the display 15. In particular, a level ~onts ~ield 34 contain~ information that identifies the different fonts in which text is to be displayed in the diverse levels 2n of the hierarchy. A display attributes field 35 contain such information as the location, relative to the window ~or the applications program 11, for the window associated with the hierarchical information management 8y8tem 10. Finally, ~, a field 36 contains pointers to ob~ects which may be used by 25 the widget control module 20 in connection with the widget instance record 22. For example, the widg~t con~rol module 20 may display such ob~ect~ a~ scroll bars and so forth in the window associated with the hierarchical information ma~agement sy tem 10, which objects ~ay be represented by 30 pointer~ ~tored in field 36.

,;
... , :
'~ . ;

; ' ~L32~
., , As noted above, the entry list 23, in one embodiment, l is a linked list o~ entries 24, with each entry i corresponding to one category of the hierarchy information provided by the source module 13. The entry pointer 32 in S the widget instance record 22 points to the beginning of ~he first entry 24A of the entry list 23. Since the entry list 23 i~ a linked list, the first field 40 of each entry 24 contains a pointer to the next entry in the list and a second ~ield 41 which contains a pointer to the previous entry in the lis~. The widget control module 20 may traverse the entry list 23 forwardly entry by entry using the contents of the ~ields 40 in each of the entries, and backwardly uRing the contents of field~ 41 in each of the entries. In the first entry 24A, the contents of field 41 points to the last entry 24N in the entry list, and, in the last entry 24N, the contents o~ field 40 point~ to the first entry 24A, thereby linking the two ends o~ the entry list 23.
: 20 An entry 24 al50 i~clude~ a number of fields containing control and status flags, including a valid flag 42, a selected flag 43~and an unselectable ~lag 44. The condition of the valid flag 42 indica~es whe~her the widget control module 20 has available to it the hierarchy in~or~ation associated wi~h ~he entry 24. The hierarchy information would be contained in arrays 27.
The condition of the selected flag 43 indicates the selected condition of the entry 24, that is, whe~-her, by manipulation of the event inikiator, the user ha~ noted the display~d inform~ion relating to ~he entry 24 is to be . ~ ,, ~' ~ :; .~ . `

" .

~32~ 3 , --19-- .
selected. The condition of the unselectable flag 44 indicates whether the user can select the entry 24~ I~ the user selec~s a component 26 of the ent~y 2~, a selec~ed component identification ~ield 45 identi~ies the particular component 26 selected.
~ he entry 24 further includes ~everal additional fields containing information u~ed by the widget control module 20 in its operations. A level number field 46, whioh identifies the level in the hierarchy of the entry 24. An entry tag field 47 receives an entry tag value provided by the ~ource module 13 which identifies the entry 24 to the source module 13. A display information field 50 contains display information received from the source module 13. The display information identifies the amount of space on the display required to display the hierarchy informatisn associated with the entry 24. Finally, the entry 24 includes two fields whose content~ relate to the component list 25, namely, a co~ponent pointer ~ield 51 and a number of components field 52. The component pointer ~ield 51 pQint5 to the fir~t component entry 26 in th~ components list 25 and the number of co~ponents field 52 identifias the number o~ component entries 26 in the component~ list Z5.
The component entries 26 in the component list 25 all have the ~ame structur~, and 30 only one component entry 26 will be described in detail. A component entry 26 includes three fields, namely, ~ component type ~ield ~0, a display attributes ~ield 61, and an array pointer field 62. The 30 component t~pe field 60 identi~ies ~he ~ype o~ compon~nt represented by the component e~try 26, th~t ist for example, :
, :
' ; . . :

1326~

whether the infoxmation associated with the component is text or graphical information. The content~3 of the component type field 60 may, if it indicate~s that the information is graphical, also indicate the manner in which 5 the info~mation is encoded, that is, ~or example, whether it is bit-mapped, vector, compr~sed and so forth. The display attributes field includes information as to the lo~ation, within the portion o~ the display associated with the entry 24, in which the information associated with the component entry 26 is to be displayed.
Finally, the array pointer 62 contains a pointer to the array 27 which contains the information associated with the component entry to be displayed to the user by way of the display 15 of the user interface 14. The array 27 may contain, for example, a text string or graphical information encoded as indicated by the contents o~ the component type ~ield 60.
2, Op~ratlo~s The various operations of the applications program 11, including the application~ module 12 and source module 13, and the widget control module 20, including the calls and callback~ therebetween, will now be described in connection with ~ig~O 3A-1 through 3F.
a. Widget Creation Figs. 3A-1 through 3A-3 detail the operations performed in connection with creation of a widget. With re~erence to ~ig. 3A-l, the applications modul~ 12 f$rs~ generate~ a .

. . . ~

~ 3 ~

CREATE WIDGET call to the widget control ~odule 20, the call including a name ~or the widget, certain display information and callback point~rs (~tep 100). The display iniEormation identifies a window in the screen (not ~hown) of the display 5 15 in which the widget control module 20 may display hierarchy information and other in~ormdtion depicting object~, mo~t notably objects ~uch a~ scroll bars. In . response to the CR~ATE WIDGET call, the widget control . module 20 create~ the widget instance r~cord 22 (step lol), storing the widget name in the call in the widget identification field 30 (Fig. 2), callback pointers in the callback pointers field 31, and di~play information in the display attribute information field 35. The widget control ~odule 20 also establishes dePault display fonts ~or the 15 various levels of hierarchy in~ormation which will be displayed, and loads values corresponding thereto in the :~ level fonts field 34 (step 102) The widset controI module 20 then obtains hierarchy information fro~ the sourc~ module 13 to display on the scr~en of display 15. In that operation, it generates the ATTACH callback for the source ~odule 13, using the callback poin~er therefor from the callback poin~ex~ field 31 ~step 103). In the ATTACH callback, the widget control module 20 25 identifie.~ the widget using the contents of the widget identification field 30 and provides an entry number of the ~irst entry in an entry list 23 to be con~tructed. At this point the first entry ha~ an entry number of zero.
In response to the ATTACH callback, the source module 13 g~nerates an ADD ENTRIES call to the w~dget control .. ; i, . , `

:
., -;.. ~
:
:

: :

1 3 ~

module 20 to establish a first series o~ entries 24 in the entry list, as a step in pro~iding hierarchy information asssciated therewith for display to the user. In the ADD
ENTRIES call, the source ~odule id~nti~ies the widget, and provides entry information including an entry number, a number o~ entries value, a level numb~r and a set of entry tags corresponding to the n ~ er o~ entries value (step 104). The widget control module 20 th n (step 105) : establishes the e~try list 23, linking it to the widget instance record 22 by establishing the value o~ the entry pointer 32 and the number of entries field 33. In establishing the entry list 23, the widget control mo~ule 20 first creates a serie~ of entries 24, linking them together by means of the next pointer field 40 and previous pointer field, the number of entries 24 corre~ponding to the number of entries value in the ADD ENTRIES call.
After establishing the entry list 23 in response to the ADD ENTRIES CALL, th~ widget control module 20, in ~ach r~ 20 entry, inserts a value in the l~vel number fleld ~ in all of the entries 24 corresponding to the level n~mber value in the ADD ENTRI~S ~all. Thus, if the ~ource ~odule 13 is to add entrie associated with di~ferent hierarchy level~, it generates an AD~ ENTRIES call for each level, as will be described below. In addition, in each entry 24 the widget control ~odule 20 e~tablishes ~he value o~ the entry tag ~ield 47 from the entry tags rece~ved in the ADD ~NTRIES
call, with the con~ecutive entry tag~ fro~ th~ ADD ENTRIES
call being inserted into the fields 47 in the con~cutive entries 24 in the entry list 23. In addition, the widget ~ 32~

control module 20 initializes all o~ ~he valid flags 42, selected flag 43 and unselectable ~lags 44 in all o~ the entries 24 in the entry li~t to a reset conclition.
After th~ widget control module 20 has established the entry list 23, it iteratively obtains hierarchy information asss:)ciated with each o~ the entries 24 to display on display 15. To initiate each iteration, the widget control module 20 generates a GET ENTRY callback to the source module 13, including the entry number and the entry tag ~rom entry tag field 40 of tha entry 24 ~step 1063. In response, the source module generates a SET ENTRY call to the widget control module 20, including the widget na~e, the entry tag and number, display in~ormation, a value identifying the number of components of hierarchy information a~ociated with the entry and a value that identifies the condition o~
the unselectable flag 44 (step 107).
The widget control moduIe 20 rec~ives the SET ENTRY
call and loads the information therein into the respective fields o~ the entry 24 (step 110). Th~t is, ~he widget control module 2Q inserts the ~alue identi~ying the number of components field into the field 52, the display information into field 50 and the unselectable flag value into thQ flag 44. The widget control module 20 then establishe~ a data structure for the component list 25, with a number of component entrie~ corresponding to the value in the number of c~mponents field 52 in the entry 24. In addition, the widget control mo~ule 20 inserts a pointer ~o the data structure into the compo~ent polnter field 51 in , - :

, ., .: . .
~ . .

1 326~ 61 24.
entry 2 4 .
The source module 13 then iteratively performs steps 111 and 112 to generate a number of SErr COMPONENT calls 5 corresponding to the number of coD~ponents that were identified in the SET ENTRY call. The source module 13 include~ in each S~T COMPONENT call the entry number and the component nu~ber, and also includes a component type val~e, display attribute information and the hierarchy information.
10 The component type value may identify, for example, whether the hierarchy information i5 in textual form or in graphical form.
In reeponse to each SET COMPONENT call, the widget 15 control module 20 stores the component type value and display information in the c:omponent entry 26 identified by the cr~mponent nu~nber, in the compon~nt list 25 associated j with (that is, pointed to by) the entry 24 identified by the entry number in the call (step$ 113 and 114). The ~idget 20 control module 20 es~abli~he~ as a data structure an array 27 to contain the hierarchy infor~ation, and conditions the value of the array pointer 62 in the component entry 2 6 to link the array 27 to th~ component entry 26.
The widget control module 20, after receiving S~T
COMPONENT calls corre~ponding to the number of components in field 52 of the entry 24, sets the valid flag 42 in the entry 24 to indicate that its associated hierarchy in~ormation is available (step 115) and determines whether 30 it has, in arrays 27, sufficient hierarchy information to fill the window in the display (step 116). If so, it , "' ' , ~ ~

.

:1 3 2 ~

sequences to step 117, in which it display~ the hierarchy information and thereafter waits ~or an event indication from the event initiator 16.
If, on the other hand, the widget control module 20 deter~ines in step 116 that it does not have su~ficient hierarchy information to fill its window of the display 15, it sequences to step 120 in which it determines whether it has gener~ted GET ENTRY calls ~or all o~ the entries 24 in the entry list 23. If so, it has exhausted the entries ~4 and displays the hierarchy information it has in t~e arrays 27 (step 121). If not, it returns to step 106 to generate a GET ENTRY callback for the next entry 24.
It will be appreciated that the seguence depicted in Figs. 3A-2 and 3A-3 essentially form two nested loops. In the outer loop, the widget control module 20 iteratively obtain~ infor~ation for the various entries 24 in the entry list, and is executed until either the widget control module :~ 20 20 has sufficient information to fill its window of the display l~ or until in~ormation ha~ ~een obtained for all of the entries 24 in the entry list. In the inner loop, the widget control module 20 iteratively obtains information for all of the components 25 in the component list associated 25 with the entry 2~ and the array 27 ass~ciated therewith.
b. Selection And Deselection Fig. 3B depic~s the oper~tions performed by the widget 30 control module 20 and sourc2 module 13 in response to a selection and d~selection by the user initiated by the event , :-. , .

, ~ 3 ~ t initiator 16 of the user interface 14. The ~vent initiator 16 es~entially per~it~ the user to toggle the sele~tion ~tatus of an sntry0 as indicated by the condition of the selected flag 43 ~Fig. 2) betw~en the seleclted state and the 5 deselected state. The event initiator 16, when it indicates a selection event, also provides information identifying an entry 24 in the entry list 23. In one embodimentr i~ the ev2nt initiator 16 is a mouse, the user initiates a selection event by moving the mouse pointer to an item of 10 hierarchy information di~played on the screen of display 15 and depressing a button on the mouse. The event initiator identifies the location of the mouse pointer on the screen and the widget control module 20, from that location information, identifies the entry 24 a~sociated therewith.
With reference to Fig. 3B, when the widget control module 2 0 receives a selection event from the event initiator, including information ident~fying the ent~y 24 selected ~step 130), it fir~t de~ermines the con~ition o~
20 the selected flag 43 in the entry 24 in entry list 23. If the selected flag 43 i~ clear, th~ entry 2~ is not select~d and so the se}ec~ion event is intended to select th~ entry.
The widget control module 20 thus sequences to step 132 in which it te~ts the condition of the unselectable ~lag 44.
25 If ~e widyet control module 20 determines that the unselectable flag 44 i~ se~, th~ entry 2~ cannot ba selected, and 80 the widget control modllle ao xit~ (step 133).
On th other hand, if the widqet control module 20 determin~ in ~tep 132 that the unRelectable flag is not , .
.. . .

.~ ' . .

~32~
, set, the entry 24 can be selected and so it sequences to .~ step 134 to set the selected flag 43 in the entry 24. The widget control module 20 then enables the di~play 15 to highlight the hierarchy information associated with entry 24 on the display screen (step 135), whi¢h may ~e accomplished ~, by enabling the display 15 to di~play the hierarchy : infor~ation in reverse video, and generates an ENTRIES
~ SELECTED callback to the sourca module to iden~ify the ; selected entrias.
;1 10 In one embodiment, only one entry 24 may be ~elected at a time, by m~ans of a selection event. Accordingly/ aft~r the selection sequence depicted in steps 131 through 135, i~ the widget control module 20 in that embodiment also '1 15 sequences through th~ entry list 23 to clear the flags of `', any other entries whose selected flags 43 are set.
3 Alternatively, the widget instance record 22 may include a `iI field (not shown) which maintains a record of the identification of the selected ent~y 24, whlch may be used ~', 20 in clearing the selectsd flag 43 of an entry 24 when another entry is selected.
Returning to FigO 3B, if, in step 131, the widget ~, control module 20 determines that the ~elected flag 43 of 25 the entry 2~ to be selected is already se~, the widge~
~, control module 20 sequence~ to step 136 to d ear the entry's selected flag 43, thereby deselecting the entry 24. The widget control ~odule 20 then disables the highlighting of the hierarchy infermation associated with the entry on the 30 aareen of the dl-play 15 ~nd gen-rates an BNTR~S DESE~RCTED

.
, 11 3 2 ~

~28-callback to the ~ource module 13 identifying the desel~ctedentries.
The applications program 11 may need to determine the identi~ication of a selected entry 24 in response to a menu selection or other operation by the uæer. The applications progra~ 11 may determine the identificativn by enabling the source module 13 to generat2 a NU~ SELECTIONS call to th~
widget control module 20 to obtain the nu~ber of selected entries 24 from the widget control module 20. After receiving ~he number of ~elected entries from the widget control module, the source module establishec a bu~fer sufficient to hold the identi~ications of the entries selected, and gener~tes a GET SELECTIONS call to the widget control module 20, including a pointer to the buffer. The widget control module 20 then insertc the identifications of the selected entri~s into the identified buffer~ In response to a deselection of an e~try 24, the widget control module 20 may generat~ an E~TRY UNSELECTED callback, identifying the de~elected entry or entrie~ 24.
c. Select And Conf irm Figs. 3C~l through 3C-3 depict the operations performed 25 by the widget control module 20 and source module 13 in response to a election and confir~ation operation by the user initiated by the event initiator 16 of the us~r interface 14. In one embodiment in which the event initiatvr 16 i5 a ~ouse, the user initiates a selection and 30 confir~ation event by ~oving th¢ ~ou e pointer to an item of hierarchy information displaysd on the ~creen of di~play 15 ~. ~ , , ............................. ;

: ,, . , ~

~ 3 2`~

, and depras~ing a button on the mou~e twice in rapid succession. The event initiator identifie the location o~
the mouse pointer on the screen and the widget control module 20, from that location infor~atisn, identifies the entry 24 associated therewith. In respon~e to a selection and confirmation event, the widget control module 2G
notifie~ the source module 13 o~ th~ event, which may ( initiate selected operations in response thereto~ In one I embodiment, the source module 13 enables the hierarchy informa~ion under the selected entry 24 to be toggled between expanded or collapsed or, if the entry 24 cannot be expanded or collapsed, it enables the contents of documents associated with the entry 24 to be displayed by the dlsplay ~ 15.
'I 15 ' With reference to Fig. 3C-l, the widget control module ~j 20 initially receives the selection and confirmation event from the event initiator 16, identifying the event and the I identification of an entry 24 ~step 150). In response, the '1 20 widget control module 20 generates a SELECT AND CONFI~
callback to the source module 13, including the entry number and the entry tag of the identified entry 24 (~tep 151).
The ource module 13 then determines the operation to 25 be performed in connection with the identi~ied entry 240 If the operation is an expansion operation, the source mo~ule 13 generates ~n A3D ENTRIES call to th~ widget control module 20 to snabl~ the widget contxol module ~0 to add entries 24 to the entry list 23 following the iden'ified 30 antry 24 at the next level down in the hierarchy.
Sp-cirically, the ~DD ENTRI~S call id-nti~ie3 ~h3 entry 24 -' -~3~5~ `

that was identi~ied in the SELECT ~ND CONFI~ callback as the entry 24 after which the entries 24 are to be added. In addition, the ADD ENTRIES call identi~ie~ the number of entrie~, the level number, which i9 the next: level from the identified entry 24, and entry tag The widget contrvl 5 module 20 then creates the new entries 24 and link~ them into the entry list 23 following the identi~'ie~ entry 24 by adjusting the values in the pointer fields 40 and 41 in an appropriate manner. The widget control module 20 and source module 13 then proceed as depicted in Figs. 3A-2 and 3A-3, lO using the GET ENTRIES callback and the SET ENTRY and SET
COMPONENT calls, to obtain the hierarchy in~ormation relating thereto for display to the user.
I~, in step 152, the source ~odule 13 determines that 15 the operation to be performed is a ollapse operation, it sequences to step 156 (Fig. 3C-23 to generate a ~ELETE
ENTRIES call to the widget co~trol module 20. The DELETE
E~TRI~S call identifies an entry 24, specifically the entry 24 identified in the SELECT AND CONFIRM callbacX, and an 20 entry number value. The widget eontrol module 20 receives the DELETE ENTRXES call and deletes from the entry list the number of entries identified by the numb~r entry value following the identified entry 24. The widget control module 20 acGo~plishes the deletion adju~ting the value in 25 the next pointer field 40 of the entry 24 identified in the DELETE ENTRIES eall to point to the next ~ntry 24 after the last entry to b~ deleted, and the value in the previou~
pointer field 41 of the next entry 24 after the las~ entry 24 to be deleted to point to the entry 24 identi~ied in the 30 DELETE ~NTRIES call.

, .. , j .

.
~ . .. ~ , . . . . .
~,. ' '. ' , ' , 132~

The wid~et control module 20 then initiates a series of steps, beginning with step 160, to refresh the display 15 so as to delete therefrom hierarchy in~or~ation associated with the deleted entries, to iteratively obtain and display 5 hierarchy informa~ion relating to each of tlle en~ries 24 newly linked to the entry 24 that was ~dentified in the DE~ET~ ENTRIES call so as to fill in the screen o~ display 15 after that entry, and, if necessary, to obtain hierarchy information relating to those entries to display. The 10 widget control module 20 does not obtain hierarchy information relating to entries in the entry list 23 until it need~ it for the display.
Speci~ically, with reference to Fig. 3C-2, the widget 15 control module 20 first determines whether its display screen window in display 15 is full (step 161). If it i5, it exits (step 162). On the other hand, i~ the display screen window is not full, the widgat control modul~ 20 se~uence~ to st~p 163 in ~hich it tests the condition of the 20 valid flag 42 of the next entry 24 in the entry list 23 (step 163). At thi~ point, the next entry 24 is the entry 24 newly linked to the entry 24 ~hat wa~ iden~ifie~ in the DELETE ENTRIES call, that is, the entry 24 following whlch the entries were deleted. If the entry flag 42 o~ that 25 entry i~ St, the arrays 27 associated therewith contain hierarchy information that can be displayed, and so the widget control module 20 sequence~ to step 164 to display the hierarchy in~ormation. The widget control module 20 then returns to step 161 for the next iteration.

:

r If, on the other hand, the widget control module 20 determine~ in step 163 that the valid flag ~42 o~ the entry :24 is clear, hierarchy information associat~-d with the entry : 24 is not available. Accordingly, ~he widglet control module ~5 20 initiate-e and, with source module 13, pe:r~orms a sequencQ
j of operations depicted in steps 165 through 167 to obtain the hierarchy information associated with ~he entry 24, using th~ GET ENTRY call~ack and S~T ENTRY and SET COMPONENT
calls as described above.
The widget control module 20 and source module 13 performs the sequence of steps 161 through 167 until the widget control module 20 has sufficient hie~archy information to fill the di~play ~creen.
~ 15 i, If the source module 13 determines, in step 152 that the entry 24 cannot be expanded or collapsed, it may transmit directly to the display 15 infor~ation, such as the ~' contents of mail or other documents that may be identi~ied ~20 by the entry 24, for display to the u-~i~r~
.j~. Scroll Up Operation Figs. 3D-l ~hrough 3D 2c depict the operations 25 performed by the widget control modul~ 20 and source module ',in connection with a scroll up op~ration. ~he operations performed in connection with a scroll down operation will be described below beginning with Fig. 3~ o initiate a scroll up or ~croll down operation, ~he event initiator 16 30 transmiti an event identify~ng the scroll up or scrol} down ev~nt as initiated by the user. In one specific e~bodiment , : ' ' ' ' ,:
, :: ~ :

~3~5~:1 in which the event initiator 16 is a mouse and which includes a scroll bar in the window a~30ciated with the widget instance record 22, a u~er may initiate a scrolling operation by manipulaking the mou~e pointer to either a scroll up pushbutton or a scroll down pushbutton on the ends of the scroll bar and depre~sing a button.
With reference to Pig. 3D-1, the ~idget control module 20, in respon~e to the receipt of a scroll up event from the event initiator 16 (step 180), initially determines which item of hierarchy information displayed by di~play 15 is to be removed from the upper portion of the screen of display 15 (step 181). As noted above, the display 15 maintains the path up the tree-structured hierarchy to the root on the screen for the user, and so the widget control module 20 performs the sequence depicted in ~ig~. 3D 2a through 3D 2c to determine which of the items to remove from the display screen. The widget control module 20 th2n enables the display 15 to shift up the item~ of hierarchy information following the rem~ved item to ~ill in the display (step 182).
` Following step 182, the widget control modula 20 initiat~s a serie~ o~ ~teps to add an item of hierarchy inform~tion to the bottom of the screen o~ display 15, which is the item associated ~ith thQ next entry 24 a~ter the ;`
ent~y 24 associated with the last it~m currently d~splayed~
The widget control module 20 Pirst identifies the entry 24 associated with the last item di~played on the screen and tests the valid flag 42 of the ne~t entry 24 (step 183). In one embodiment, the display attribute information field 35 . ;
, 1 ~2~

of th~ widget in~tance record 22 includes pointers to the entries 24 being displayed, and ~o the widg~et control module 20 can identify the last entry 24 pointed to by th~
pointersO
s If, in step 183, the widget control module 20 determines that the valid flag 42 is s~t, it sequences to step 184 in which it enables the display 15 to display the hierarchy informatisn in arrays 27 as~o¢iated with the entry 24. On the other hand, i~ t~e widget control module 20 d~termines in step 183 that the valid flag 42 is clear, it initiates, and, with source modul~ 13, performs a series of operations, depicted in steps 185 through 187 to obtain and display the item of hierarchy information associated with the entry 24.
As noted above, the widget control module 20 enables the display to display the pa~h to ~he root o~ the tree structured hierarchy o~ the hlerarchical information structure. The operations initiate~ during a scroll up operation to accompli~h this are depicted in Figs. 3D-2a through 3D-2c. With refarence to Fig. 3D-2a, and preliminarily, ~he widget control ~odule 20 uses four data fields 190 through 194 all included in the di~play attribut~ in~ormation field 35 in widget in~tance record 22, to determine the en~ry 24 who~e hierarchy information is to be rem~ve~ during a ~croll up or scroll down op~ration.
Specifically, field 190 contain~ a value iden~ifying the number o~ items sf hierarchy lnform~tion displayed by 30 display 15 at the top of it8 screen and representing the path to the root of the in~orma~ion hierarchy. Field 191 , .', . ' : . ' ` ' ;,' ~', , ~ ''' ~ 3 ~
i' .

identifies the ma~imum number of items of hierarchy ~: in~ormation that can be displayed by the display 15. Field ¦ 192 contains pointer~ to entries 24 whose associated hierarchy information is currently being displayed, and field 193 identifies the number of items of hierarchyinformation currently being displayed~ It will be appreciated that the value in field 193 also identi~ies the nu~ber of pointers in field 192.
With this background, to determiine the item of hierarchy information to be removed during a scroll up operation, the widget control module 20 first per~orms a series of steps 200 through 206 to initialize the value stored in the display number path field 190, if it has not 15 been previously initialized. If the value in the display number path field 190 has been previously initialized, the widget control module 20 proceeds to perform a seri~ o~
tests, depicted in steps 210 throuqh 217, 220 through 227 and 230 through 232 to identify an ite~ to be re~oved.
~ccording~y, the widget control msdule 20 first ~ests '-the value in the di~play number path field 190. If the value in field 190 ls zero, the field ha~ not been ~;25 initialized, and 50 the widget control module 20 se~uences ~to ~tep 201 to b~gin initiaiization o~ the field. In that -operation, the widge~ control module 20 iteratively compares the contents o~ ~he level number fieldi ~6 of ~wo successive of entries 24, after the first entry, who~e hierarchy ~30 information i~ being displayed, and thus that are identified :by the display entry pointers }g2, to f~nd a pair of succe~sive entries in which the value ~tored in the level ,, .

,:
'" ` ' ' ~32~

number field 46 of the second entry 24 in tlle pair is greater than the value stored in the level number field 46 of the fir~t entry in the pair. If such a pair of entriss is loca~ed, the pa~h to root has been found and ~he value ~o 5 be stored in the display number path ield i~ related to the n~mber of preceding entries 24 who~e h~erarc~hy information is being displayed.
Specifically, if the value in the display number path field 190 has not previously been initialized, the widget control module 20 initially establishes an index with an initial value of one (step 201). Th~ index serve~ as a pointer into display entry pointers ~i~ld 192. The widget control module 20 then tests the value in the level number field 46 of the entry 24 in the entry pointers field 192 identified by the index with the level nu~ber field 46 of the entry 24 identified by the next pointer in th~ entry pointers field (step 202)~ I~ the value in the level number field 46 of the entry 24 pointed to by the pointer identified by the ind~x is not greater than or equal to the value of the level number field 46 of the ent~y pointed to by the next pointer, the widgat control ~odule 20 increments the valu~ o~ the index (st~p 203) an~ compares the valu~ of the index to the contents of the display count field, ~o 25 deter~ine whether entrie~ 24 pointed to by all cf the pointer~ in field 192 have ~een tested (~tep 204). If not, the widget control module 20 returns to step 202 to test the contents of the level number fi~ld 46 of the entri0s 24 pointed to by the next two pointer in ~ield 192.

..
~. ~ , , .
. .
.
, ;

` 1326~1 , .
37~
If, duriny step 202, the widget control module 20 determines that the value in the lavel n~mber field 46 o~
the entry 24 pointed to by the pointer identi~ied by the index is greater than or equal to the value of the level S number field 46 of the entry pointed to by the next pointer, the last entry in the path ha~ been located. As a result, the widget control module 20 decrements the value of the index by one (step 205~ and stores the value of the index in the display number path field 190 as its initial value. The 10 value in the di~play number path field 190 at that point identifies the entry pointer in field 192 that points to the entry associated with the last item of displayed hierarchy information in the path to the root.
.
, 15 After the value in the display number path field 190 :. has been established, the widget control module 20 sequences to step 210 to begin a series of four operations to identify an entry 24 whose associated hierarchy information is to be removed from the display 15. In step~ 210 through 212, the 20 widget control module 20 determines whether the hierarchy 'i le~el, indicated by the level number ~ield 46, of the entry 24 identifled by the pointer in field 192 that is, in ~urn, identified by the display number path field 190 is the same as the hierarchy level of the entry 24 identified by the 25 pre~ious pointer in field 192 ~tep 211). If so, the two entrie~ are at the same level in the hierarchy and so the widget control module 20 remove~ the hierarchy information associated with the entry identified by the prev~ous pointer in field 192 (step 212).

, ~

:

~326~

~38-If the widget control modul~ 20 does not remove hierarchy information in steps 210 through 212, it sequences to steps 213 through 215 in which it determines whether the hierarchy level of the entry 24 identified by the pointer in 5 field 192 that i~, in turn, identif~ed by the pointer in display number path field 190 i~ the same a~; the level of the entry 24 identified by the nexk pointer in field 192.
If so, the two entries 24 re at the same level in the hierarchy and so the widget control module 20 removes the hierarchy information associated with the entry identified by the pointer in field 192 that is identified by the value in the display number path field.
If the widget control module 20 does not remove hierarchy information in steps 213 through 215, it sequences to s~eps 21~ and 217 in which it determin~s whether the entry 24 ~ollowing the entries 24 identifying the path to the root should be removed. In that operation, the widget control module 20 determines whether the value in the level number field 46 of the entry 24 identified by the pointer in field 192 after the pointer identifie~ by the value in the display number path field 190 i5 th~ ~ame as the value in the level nu~ber field 4Ç of the entry 24 identified by the next pointer in field 192. If they are the same, the entri~s are at the sam2 level in the hierarchy ~tructure, and so kh~ wid~Qt control module 20 remove~ the first entry 24, that i~, the entry 24 identi~i~d by the pointer in ~i01d 192 a~ter the pointer identified by the value in the display nu~ber field 190.

:
,;

:~

:: ~

~ 3 2~

-39~
If the widget control module 20 has not removed an item of hierarchy infor~ation by ~tep 217, it Stl3pS to a sequence of steps 218, 220 through 227 and 230 throus3h 231 in which it iteratively compares the hierarchy level~ of pairs of ~ntries 24 identified by ~uccessive pointer~ in field 192 to locate two in which the hierarchy level of th~ second entry is les~ than or equal to the hierarchy level of the irst entry in the pair. When such a pair of entries 24 are located, the widg~t con~rol module 20 removes the first entry in the pair.
Following all four tests, represented by ~teps 210 through 212, steps 214 and 215, step~ 216 and 217 and steps 218, 220 through 227 and 230 through 231, re~pectiv~ly, the 15 widget control module 20 sequence~ to step 232 to adjust the value in the display number path field 190 to identify the number of entries identified by pointers 192 which constitute the path to root hierarchy information.
e. Scroll D~wn Operation Figs. 3E 1 through 3E-2b depict the operation-~performed by the widget control module 20 and source module in connection with a scroll down operation. With reference 25 to Fig. 3E-l, when the widget control module 20 receives a scrolI down event from the event initiator 16 (step 240) it first identifies the first item of hierarçhy information to be shifted down on the ~creen of the display 15 (step 241~.
The sequence per~ormed by the widget control module 20 in 30 ~onnection with that operation will be described in connection with Figs. 3E-~a and 3E-2b. The widget control ' -132~

module 20 then enables the display 15 to shi~t down those itemis of hierarchy information, beginning with, and below, the item deterMined in step 241 (step 242~, thereby creating a space on the display screen into which additional 5 hierarchy information is inserted in the following steps.
~' Following step 242, the widget control module 20 identi~ies an entry 24 w~ose associated hierarchy information, in its associated arrays 27, is to be displayed in the space on the display screen created in istep 242, and tests the valid flag 42 of that entry 24 i~ set to indicate thiat the hierarchy information has been previou~ly supplied by the source module 13 and is available in arrays 27 (step 2~3). I~ the wldget control module 20 determines that the 15 entry's valid flag 42 is set, it ~nables the display 15 to display the hierarchy in~ormation in the arrays 27 on the display iscreen (step 244). If, on the other hand, the widget control module 20 determineis that the entry'si valid flag is not s~t, it and the source module 13 performi st~ps 20 245 through 247 to provide the hierarchy information for display.
I As noted above, the widget control ~odulQ ~0, in steps 241 a~d 243, determines, first, the entries whose associated 25 hierarchy information is to be shifted down on the display 15 and, seco~d, an entry 24 whose h~erarchy information is to be di~played in tha space created thereby. Both of these ~r operations are depicted on Figs. 3~ 2a and 3E-2b. With reference to Fig. 3E-2a, the sequence represented by steps i 30 250 through 253 provides the identification o~ the ~irst .. entry 24, identified by a pointer in di~play entry pointers I

'.!
,, : !
'', "
;;, ''' ~ : .
~" ~
,", , ~, . , ' ",, : .' ~ :
', ~ ' ' ~ ;
,. . . . .

1 326~61 192, to be shi~ted down. Furthermore, the sequence represented ~y steps 254 through 257 and 260 throuyh 263 provides the identification of an entry 24 in entry list 23 whose associated hierarchy information is to be displayed in the space left by the shift operation.
Accordingly, to identify the ftr3t entry 24 identified by display entry pointers in field 192 to be shifted down on the display lS, the widget control module 20 sequences backward, from the last di~play entry pointer in fi~ld 192 iteratively testing the sequence of the entries 24 in the entry list 23 to find the ~irst pair of entrie-c 24 that are not consecutive in the entry list 23. Tha hierarchy information ~s~ociated with the second display antry pointer in the pair (tha~ is, the one of the display entry pointers that points to the entry 24 who~e a sociated hierarchy information is displayed }ater on the creen), and the hierarchy information associated with the subsequent entry pointers in field 192, are all shifted down on the display 15.
To accomplish this operation, the widget control module 20 first establishee an index i with a value corresponding to th~ value in th2 display count ~ield 193 (step 250). The widget control module 20 uses the index i as a pointer into the di~play entry pointers field 132. If the widget control module 20 determine~ that value o~ the index ~ is not equal to one (st~p 251), it id~ntifie~ the location of the entry 24 in the entry li~t 23 identified by the display index 30 pointer that i~, in turn, iden~ified by th~ value of index i ~step 252~. In addition, ~h~ wid~et con~rol module 20 .
.
, ~ , :
. ,. ~ :

~32~

determines the location of the entry 24 identi~ied by the previous display entry pointer in field 192. If the two entries 24 are COnBecutiVe in the entry list 23, the widget control module 20 decrements ~he value of index i by one and returns to step 251. On the other hand, if the widget control module 20 determines in step 251 that the value of index i has been decremented to one, or if it determine~
that entries 24 identified by two consecutive pointers in the entry list 23 are not consecutive, the value of inde~c i identifies the display entry pointer in field 192 that, in turn, points to the entry 24 whose associated hierarchy information i5 to be shifted down. In addition, the hierarchy information associated with entries identified by the subsequent entry pointers in the field 192 is to be shifted down as well.
When, in step 251,the widget control module 20 determines that the value o~ index i ic ~qual to one, or, in step 252, it determines that two entries identified by consecutive di~play entry pointer~ in field 192 are not consecutive, it sequences to step 254. In steps 254 through 257 and 260 thro~gh 263, the widget control module 20 performs three test~ to identify an entry 24 in entry list 23 whose associated hierarchy information is to be inserted into th~ space on di~play left by the ~hi~t down operation.
In tho~e operations, the widget control module 20 uses index i as d2termined in step~ 250 through 253.
In the first test, the widget control ~odule 20 selects the entry 24 preceding the first entry 24 who e aRsociated hierarchy information was shifted down, if tha~ entry 24 has .
..

the same hierarchy level, as indicated by the contents of its level number field 46, a~ the last entry 24 whose associated hierarchy information was not sh:ifted down.
Thus, in steps 254 through 256, the widget control module 20 d~termines whether the content~ o~ the leve:L number field 46 associated with the entry 24 preceding, in l3ntry list 23, the ~ntry 24 identified by the (i)th display i~dex pointer in field 192, equal the contents o~ the level number ~ield of the entry 24 identified by the (i~ t display index 10 pointer in field 192. If they do, the widget control module 20 selects that entry 24 as the one who~e associated hîerarchy information is to be displayed. In addition, the widget control module 20 adjusts the display entry pointers in the field 192 to identify the new sequence of entries ~ 15 being displayed.
: If the ~irst te~t fails, the widget control module 20 performs a sequence of steps 257 and 260 through 262 in which it steps rearwardly between the entries 24 in entry list 23 iden~i~ie~ by the (i)th an~ l) t display entry pointers to find one whose hierarshy level, as indicated by the contents of ~5 level nu~ber field 46, is one greater than the hiexarchy level of the entry 24 idantified by the (i-l)st display entry pointer in field 192. If such an 25 entry 24 exist~, the widget control module ~0 select~ that entry 24 a~ the one who~e associat~d hierarchy information is to be display~d and adjusts the di~play entry pointsrs in the field 192 to ~dentify the new sequenc~ Or entries 24 being di~played.

. . ..

",,, ~ , , -Finally, if the ~econd te~t fails, the widget control module 20 selects the entry 24 in entry liat 23 following the entry 24 identified by the (i-13~t display entry pointer in field 192, and adjusts the display entry pointers in the field 192 to identify the new seguence of entrie~ 24 being displayed.
f. Dragging Operations Finally, Fig. 3F depicts operations performed ~y the widget control module 20 in connection with a dragging operation initiated by the event initiator 16. In a dragging operation, one or more entries 24 i8 selected and, a pointer is manipulated so as to point to another entry.
~15 In respon~e to the dragging operation, the selected entries 24~removed ~rom their locations in the entry list 23 and linked into the entry list following the entry 24 pointed to by the pointer. In addition, the widg~t control modul~ 20 enables the display 15 to display the entrie3 24 as listed in the entry list 23 after ~he completion of the linking operation.
With reference to Fig. 3F, the event initiator ~6 and widget control module 20 first perform operation~ depicted 25 in Fig. 3B to selec~ one or more of the entrie~ 24 (~tep 270). The widget control module 20 then receives the dragging event information fro~ the event initiator t~tep 271). If ~anipulation of the pointer require scrolling, the ~idge~ control ~odule 20 enables scrolling as described 30 above in connection with Figs. 3D-1 through 3~-2.

:: ' .;.

:: `
:
. 132~6 After the event initiator 16 ldentifies an entry 24 after which the selected entries 24 are to be linked, the widget control module 20 performs the linking operation to remove the selected entries from their previous locations in the entry list 23 and link them into the entry list after the identified entry 24, and enables the display to display the entries 23 as set forth in the revised ent~y list 23 (s~ep 272). The widget control module 20 then generates a SELECTIONS DRAGGED callback to the source module identifying the selected entries 24 and the entry 24 after whlch the selected entrles were llnked.
The foregolng descriptlon has been limited to a speclfic embodiment of this inventlon. It will be apparent, however, that variations and modifications may be made to the invention, with the attainment of some or all of the advantages of the invention.
Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit :~1 ~ and scope of the inventlon.

1! , ~.

,., :1 ~, ,:
r~
':, ;

~ ~ . 7

Claims (63)

1. An outline management system adapted for use in conjunction with a user interface means including display means for displaying a portion of a multiple-level outline to a user and an input device for generating input information in response to use of said input device by a user, said outline management system comprising:
A. applications program means, comprising software, for organizing information stored in a computer database into a multiple-level outline including a plurality of outline items organized in a plurality of levels and for retrieving outline items from said outline in response to requests, and B. outline control means, interfacing with said applications program means and said user interface means, for receiving said input information from said user interface means, said input information indicating to said outline control means which outline items said user wishes to have displayed by said display means, for requesting and receiving, from said applications program means, outline items from a portion of said outline that said user wishes to have displayed by said display means, said received outline items being located on a plurality of branches of said outline, and for transmitting received outline items located on a plurality of branches of said outline to said display means of said user interface means for simultaneous display, said outline control means transmitting said received outline items that said user wishes to have displayed to said display means in a manner such that relative locations of said received outline items on said display means render apparent to said user parent-child relationships among said received outline items that said user wishes to have displayed by said display means, said outline control means being adapted for use in conjunction with any of a plurality of differing applications program means, comprising software, that organize information that is stored in a computer database into an outline including a plurality of outline items organized in a plurality of levels, and that structure said outline in response to a multiple-level outline scheme, said outline control means requesting and receiving, from any of said plurality of applications program means, outline items that said user wishes to have displayed by said display means and that are located on a plurality of branches of said outline.
2. An outline management system as defined in claim 1 wherein:
said outline management system further comprises instance storage means for storing outline items, said outline control means receives outline items from said applications means and stores the outline items in said instance storage means; and said applications means includes means for generating a call to said outline control means to enable said outline control means to create said instance storage means.
3. An outline management system as defined in claim 2 wherein A. said instance storage means includes:
i. entry list means including a plurality of entry means each for storing an outline item received from said applications means; and ii. instance means for identifying said entry list means; and B. said outline control means receives each outline item from said applications means and stores the outline item in a selected one of said entry means in said entry list means identified by said instance means.
4. An outline management system as defined in claim 3 wherein each said entry means includes valid flag means having selected conditions indicating whether it contains an outline item, said outline control means including A. entry display identification means for identifying entries whose outline items are to be displayed;
B. valid flag testing means, responsive to said entry display identification means for identifying an entry, for testing the condition of said valid flag of said identified entry means;
C. means for generating a callback to said applications means to obtain an outline item associated with said entry means in response to said valid flag testing means determining that the valid flag of said entry means indicates that said entry means does not contain an outline item.
5. An outline management system as defined in claim 3 wherein:
A. said applications means includes means responsive to a callback from said outline control means requesting outline information for an entry means for generating a call identifying said entry means and an outline item; and B. said outline control means includes item storing means responsive to the receipt of said call for storing said outline item in said entry means and item display transmission means responsive to the operation of said item storing means for thereafter transmitting said outline item to said display means for display.
6. An outline management system as defined in claim 5 wherein said entry means includes storage pointer means for storing an information storage means pointer to an outline item storage means, said item storing means storing said outline item in said outline item storage means identified by said information storage means pointer.
7. An outline management system as defined in claim 6 wherein an outline item includes at least one component, said applications means generating a call including an entry means identification, a component entry means identification and said component;
A. said outline item storage means including:
i. an array storage means for storing a component; and ii. component list means containing a component entry means including an array pointer to said array storage means, said information storage means pointer pointing to said component list means;
B. said outline control means including:
i. component pointer retrieval means responsive to the receipt of a call from said applications means for retrieving said information storage means pointer from the entry means identified in said call;
ii. array pointer retrieval means, responsive to said component pointer retrieval means for retrieving said information storage means pointer, for using said information storage means pointer to identify said component list means, retrieving said array pointer from the component means of the component list means identified by said component entry means identification, and storing the component in said array storage means.
8. An outline management system as defined in claim 7 in which said component entry means further includes a component type value, said display means using said component type value in its display operation.
9. An outline management system as defined in claim 3 wherein:
A. said applications means includes means responsive to the receipt of an attach callback from said outline control means for generating an add entries call including a selected entry number value;
B. said outline control means includes:
i. attach callback generating means responsive to said call from said applications means for generating an attach callback to said applications means; and ii. entry list creation means responsive to the-receipt of said add entries call for establishing said entry list means, including a number of entries identified by said entry number value.
10. An outline management system as defined in claim 9 wherein said entry means further includes means for storing a level identification value, said add entries call further including a level value, said entry list creation means further storing the level value in each said entry means created in response to said add entries call.
11. An outline management system as defined in claim 10 wherein said instance storage means includes instance means for identifying said entry list means, said instance means including means for identifying a display font value associated with each outline level, said outline control means including display control means comprising:
A. display information retrieval means for retrieving outline information from respective entry means;
B. display image generation means for generating image information for said entry means in response to the outline information from said entry means, the level value in said entry means, and the display font value associated with said level value;
and C. display image transmission means for transmitting the image information for said entry means to said display.
12. An outline management system as defined in claim 11 wherein said instance means further includes means for identifying a display object, said display image generation means further generating image information representative of said identified display object for transmission by said display image transmission means.
13. An outline management system as defined in claim 3 wherein:
A. said input device includes means for generating selection information identifying an entry, B. each entry means in said entry list means includes a selected flag having selected conditions indicating a selection condition and an unselected condition; and C. said outline control means includes selected flag conditioning means for receiving said selection information and for conditioning said selected flag of the entry means identified by said selection information.
14. An outline management system as defined in claim 13 wherein said selected flag conditioning means further conditions said selected flag in response to the condition of said selected flag.
15. An outline management system as defined in claim 13 wherein each said entry means further includes an unselectable flag having selected conditions, said selected flag conditioning means being disabled in response to said unselectable flag having selected conditions.
16. An outline management system as defined in claim 13 wherein said outline control means further includes means for generating a callback to said applications means in response to receipt of said selection information.
17. An outline management system as defined in claim 3 wherein:
A. said input device includes means for generating selection and confirmation information identifying an entry;
B. said outline control means includes means for generating a callback to said applications means in response to receipt of said selection and confirmation information, said callback identifying an entry; and C. said applications means includes selection and confirmation response means for responding to the receipt of said selection and confirmation information.
18. An outline management system as defined in claim 17 in which:
A. said selection and confirmation response means includes means for generating an add entries call in response to said callback, said add entries call including an entry means identification, an entry number value and a level value; and B. said outline control means includes add entry means responsive to said add entries call for creating additional entry means, corresponding to said entry number value, in said entry list following the entry means identified by said entry means identification, each of said additional entry means including level identification value storage means for receiving said level value.
19. An outline management system as defined in claim 18 in which said entry list comprises a linked list of said entry means, each entry means including a next entry pointer identifying the next entry means in the list, said add entry means establishing the contents of said next entry pointer in said entry means identified by said entry means identification in said add entries call to identify the first of said additional entries, and establishing the contents of the last of said additional entries to identify the next entry means in the entry list to thereby link said additional entries into said entry list.
20. An outline management system as identified in claim 17 in which:
A. said selection and confirmation response means includes means for generating a delete entries call in response to said callback, said delete entries call including an entry means identification and an entry number value; and B. said outline control means includes delete entry means responsive to said delete entries call for deleting entry means, corresponding to said entry number value, from said entry list following the entry means identified by said entry means identification.
21. An outline management system as defined in claim 20 in which said entry list comprises a linked list of said entry means, each entry means including a next entry pointer identifying the next entry means in the list, said delete entry means establishing the contents of said next entry pointer in said entry means identified by said entry means identification in said delete entries call to identify the entry means in said entry list subsequent to the identified entry means corresponding to said entry number value.
22. An outline management system as defined in claim 3 wherein:
A. said input device generates scrolling information, and B. said outline control means transmits selected outline items to said display means for display, said outline control means adjusting the selection of the outline items transmitted for display in response to said scrolling information from said input device.
23. An outline management system as defined in claim 22 wherein each entry means in said entry list includes valid flag means having selected conditions indicating whether it contains an outline item, said outline control means including:
A. entry display identification means for identifying an entry means in response to said scrolling information;
B. valid flag testing means responsive to said entry display identification means identifying an entry for testing the condition of said valid flag of said identified entry means;
C. means for generating a callback to said applications means to obtain an outline item associated with said entry means in response to said valid flag testing means determining that the valid flag of said entry means indicates that said entry means does not contain an outline item.
24. An outline management system as defined in claim 22 wherein said outline control means includes entry display identification means for identifying an entry means in response to said scrolling information, and said scrolling information includes scroll up information, said entry display identification means including entry display deletion means responsive to said scroll up information for selecting an entry means whose associated outline information is to be deleted from said selected outline items transmitted to said display means.
25. An outline management system as defined in claim 24 wherein each entry means includes means for storing a level identification value, said entry display deletion means including:
A. display entry pointer means for storing pointers identifying entries whose associated outline information is being transmitted for display on said display means;
B. path identification storage means for storing a value identifying a pointer in said display entry pointer means whose outline items correspond to a path to the root of the outline information transmitted for display on said display means;
C. entry deletion identification means responsive to the contents of said path identification means and said display entry pointer means for comparing the level identification values of said entry means proximate the entry means pointed to by the pointer identified by the contents of said path identification storage means to identify an entry whose associated outline item is to be deleted.
26. An outline management system as defined in claim 25 wherein said entry deletion identification means includes:
A. first scroll up test means for comparing the level identification value of the entry means identified by the pointer in said display entry pointer means identified by the pointer in said path identification storage means with the level identification value of the entry means identified by the previous pointer in said display entry pointer means and for deleting the outline item associated with the entry means identified by the previous pointer in response to a predetermined comparison result;

B. second scroll up test means responsive to another predetermined comparison result by said first scroll up test means for comparing the level identification value of the entry means identified by the pointer in said display entry pointer means identified by the pointer in said path identification storage means with the level identification value of the entry means identified by the next pointer in said display entry pointer means and for deleting the outline item identified by the pointer in response to a predetermined comparison result;
C. third scroll up test means responsive to another predetermined comparison result by said second scroll up test means for comparing the level identification value of the entry means identified by the first pointer in said display entry pointer means after the pointer identified by the pointer in said path identification storage means with the level identification value of the entry means identified by the next pointer in said display entry pointer means and for deleting the outline item identified by the second pointer in response to a predetermined comparison result;
and D. fourth scroll up test means responsive to another predetermined comparison result by said third scroll up test means for iteratively comparing the level identification values of the entry means identified by pairs of two succeeding pointers in said display entry pointer means after the pointer identified by the pointer in said path identification storage means and for deleting the outline item identified by the first pointer in a pair in response to a predetermined comparison result.
27. An outline management system as defined in claim 22 wherein said outline control means includes entry display identification means for identifying an entry means in response to said scrolling information, and said scrolling information includes scroll down information, said entry display identification means including scroll down entry display deletion means responsive to said scroll down information for selecting an entry means whose associated outline information is to be deleted from said selected outline items transmitted to said display means.
28. An outline management system as defined in claim 27 wherein each entry means includes means for storing a level identification value, said scroll down entry display deletion means including:
A. consecutive entry comparison means for iteratively testing two consecutive entries whose associate outline items are being transmitted to said display means for display, beginning from the entry means associated with the last outline item transmitted, to identify two entry means that are not consecutive in said entry list; and B. scroll down entry identification means responsive to the identification by said consecutive entry comparison means identification for specifying an entry means in said entry list between said two identified entry means whose associated outline item is to be transmitted to said display means for display.
29. An outline management system as defined in claim 28 in which:
A. said entry comparison means includes:
i. index storage means for storing an index value initially identifying the number of entry means whose associated outline items are being transmitted to said display means for display;
ii. display entry pointer means for storing pointers identifying entries whose associated outline information is being transmitted for display on said display means;
iii. scroll down comparison means for iteratively determining the location, in said entry list, of said entry means identified by the pointer in said display entry pointer means identified by said index storage means to the location of said entry means identified by the previous pointer in said display entry pointer means to determine whether they are consecutive; and iv. decrement means for decrementing said index value in said index storage means in response to a negative determination by said scroll down comparison means;
B. said scroll down entry identification means includes:
i. first scroll down test means responsive to a positive determination by said scroll down identification means for comparing (a) the level identification value of said entry means identified by the pointer in said display entry pointer means previous to the pointer identified by said index value, to (b) the level identification value of said entry means in the entry list means previous to the entry means identified by the pointer in said display entry pointer means identified by said index value, and for specifying said entry means identified by the pointer in said display entry pointer means previous to the pointer identified by said index value as said entry means whose associated outline item is to be transmitted to said display means if said level identification values are the same;

ii. second scroll down test means responsive to a negative comparison by said first scroll down test means for iteratively comparing (a) the level identification value of said entry means identified by the pointer in said display entry pointer means previous to the pointer identified by said index value, to (b) the level identification value of said entry means in the entry list means previous to the entry means identified by the pointer in said display entry pointer means identified by said index value, and for specifying said entry means identified by the pointer in said display entry pointer means previous to the pointer identified by said index value as said entry means whose associated outline item is to be transmitted to said display means if said level identification values differ by a selected value; and iii. third scroll down test means responsive to a negative comparison by said second scroll down test means for specifying the entry means in said entry list means following said entry means identified by the pointer in said display entry pointer means previous to the pointer identified by said index value as the said entry means whose associated outline item is to be transmitted to said display means.
30. An outline management system adapted for use in conjunction with any of a plurality of differing applications program means comprising software that organize information stored in a computer database into a multiple-level outline including a plurality of outline items organized in a plurality of levels and that retrieve outline items from said outline in response to requests, and adapted for use in conjunction with a user interface means including display means for displaying a portion of said outline to a user and an input device for generating input information in response to use of said input device by a user, said outline management system comprising:
A. instance storage means for storing outline items organized in said plurality of levels; and B. outline control means, interfacing with said applications program means and said user interface means, for receiving said input information from said user interface means, said input information indicating to said outline control means which outline items said user wishes to have displayed by said display means, for requesting and receiving, from said applications program means, outline items from a portion of said outline that said user wishes to have displayed by said display means, said received outline items being located on a plurality of branches of said outline, for storing said received outline items located on a plurality of branches of said outline in said instance storage means, and for transmitting received and stored outline items located on a plurality of branches of said outline to said display means for simultaneous display, said outline control means transmitting said received outline items that said user wishes to have displayed to said display means in a manner such that relative locations of said received outline items on said display means render apparent to said user parent-child relationships among said received outline items that said user wishes to have displayed by said display means.
31. An outline management system as defined in claim 30 wherein A. said instance storage means includes:

i. entry list means including a plurality of entry means each for storing an outline item received from said applications means; and ii. instance means for identifying said entry list means; and B. said outline control means receives outline items from said applications means and stores the outline items in a selected one of said entry means in said entry list means identified by said instance means.
32. An outline management system as defined in claim 31 wherein each said entry means includes valid flag means having selected conditions including whether it contains an outline item, said outline control means including A. entry display identification means for identifying entries whose outline items are to be displayed;
B. valid flag testing means, responsive to said entry display identification means for identifying an entry, for testing the condition of said valid flag of said identified entry means;
C. means for generating a callback to said applications means to obtain an outline item associated with said entry means in response to said valid flag testing means determining that the valid flag of said entry means indicates that said entry means does not contain an outline item.
33. An outline management system as defined in claim 31 wherein said applications means includes means responsive to a callback from said outline control means requesting outline information for an entry means for generating a call identifying said entry means and an outline item, said outline control means further including item storing means responsive to the receipt of said call for storing said outline item in said entry means and item display transmission means responsive to the operation of said item storing means for thereafter transmitting said outline item to said display means for display.
34. An outline management system as defined in claim 33 wherein said entry means includes storage pointer means for storing an information storage means pointer to an outline item storage means, said item storing means storing said outline item in said outline item storage means identified by said information storage means pointer.
35. An outline management system as defined in claim 34 wherein an outline item includes at least one component, said applications means generating a call including an entry means identification, a component entry means identification and said component;
A. said outline item storage means including:
i. an array storage means for storing a component; and ii. component list means containing a component entry means including an array pointer to said array storage means, said information storage means pointer pointing to said component list means;
B. said outline control means including:
i. component pointer retrieval means responsive to the receipt of a call from said applications means for retrieving said information storage means pointer from the entry means identified in said call;

ii. array pointer retrieval means, responsive to said component pointer retrieval means for retrieving said information storage means pointer, for using said information storage means pointer to identify said component list means, retrieving said array pointer from the component means of the component list means identified by said component entry means identification, and storing the component in said array storage means.
36. An outline management system as defined in claim 35 in which said component entry means further includes a component type value, said display means using said component type value in its display operation.
37. An outline management system as defined in claim 31 wherein said applications means includes means responsive to the receipt of an attach callback from said outline control means for generating an add entries call including a selected entry number value, said outline control means further including;
A. attach callback generating means responsive to said call from said applications means for generating an attach callback to said applications means; and B. entry list creation means responsive to the receipt of said add entries call for establishing said entry list means, including a number of entries identified by said entry number value.
38. An outline management system as defined in claim 37 wherein said entry means further includes means for storing a level identification value, said add entries call further including a level value, said entry list creation means further storing the level value in each said entry means created in response to said add entries call.
39. An outline management system as defined in claim 38 wherein said instance means further includes means for identifying a display font value associated with each outline level, said outline control means including display control means comprising:
A. display information retrieval means for retrieving outline information from respective entry means;
B. display image generation means for generating image information for said entry means in response to the outline information from said entry means, the level value in said entry means and the display font value associated with said level value;
and C. display image transmission means for transmitting the image information for said entry means to said display.
40. An outline management system as defined in claim 39 wherein said instance means further includes means for identifying a display object, said display image generation means further generating image information representative of said identified display object for transmission by said display image transmission means.
41. An outline management system as defined in claim 31 wherein:
A. said input device includes means for generating selection information identifying an entry, B. each entry means in said entry list means includes a selected flag having selected conditions indicating a selection condition and an unselected condition; and C. said outline control means includes selected flag conditioning means for receiving said selection information and for conditioning said selected flag of the entry means identified by said selection information.
42. An outline management system as defined in claim 41 wherein said selected flag conditioning means further conditions said selected flag in response to the condition of said selected flag.
43. An outline management system as defined in claim 41 wherein each said entry means further includes an unselectable flag having selected conditions, said selected flag conditioning means being disabled in response to said unselectable flag having selected conditions.
44. An outline management system as defined in claim 41 wherein said outline control means further includes means for generating a callback to said applications means in response to receipt of said selection information.
45. An outline management system as defined in claim 31 wherein said input device includes means for generating selection and confirmation information identifying an entry, said outline control means further including means for generating a callback to said applications means in response to receipt of said selection and confirmation information, said callback identifying an entry, and said applications means includes selection and confirmation response means for responding to the receipt of said selection and confirmation information for generating an add entries call in response to said callback, said add entries call including an entry means identification, an entry number value and a level value, said outline control means including add entry means responsive to said add entries call for creating additional entry means, corresponding to said entry number value, in said entry list following the entry means identified by said entry means identification, each of said additional entry means including level value storage means for storing a level identification value for receiving said level value.
46. An outline management system as defined in claim 45 in which said entry list comprises a linked list of said entry means, each entry means including a next entry pointer identifying the next entry means in the list, said add entry means establishing the contents of said next entry pointer in said entry means identified by said entry means identification in said add entries call to identify the first of said additional entries, and establishing the contents of the last of said additional entries to identify the next entry means in the entry list to thereby link said additional entries into said entry list.
47. An outline management system as identified in claim 45 in which said applications means generates a delete entries call in response to said callback, said delete entries call including an entry means identification and an entry number value, said outline control means includes delete entry means responsive to said delete entries call for deleting entry means, corresponding to said entry number value, from said entry list following the entry means identified by said entry means identification.
48. An outline management system as defined in claim 47 in which said entry list comprises a linked list of said entry means, each entry means including a next entry pointer identifying the next entry means in the list, said delete entry means establishing the contents of said next entry pointer in said entry means identified by said entry means identification in said delete entries call to identify the entry means in said entry list subsequent to the identified entry means corresponding to said entry number.
49. An outline management system as defined in claim 31 wherein:
A. said input device generates scrolling information, and B. said outline control means transmits selected outline items to said display means for display, said outline control means adjusting the selection of the outline items transmitted for display in response to said scrolling information from said input device.
50. An outline management system as defined in claim 49 wherein each entry means in said entry list includes valid flag means having selected conditions indicating whether it contains an outline item, said outline control means including:
A. entry display identification means for identifying an entry means in response to said scrolling information;

B. valid flag testing means responsive to said entry display identification means identifying an entry for testing the condition of said valid flag of said identified entry means;
C. means for generating a callback to said applications means to obtain an outline item associated with said entry means in response to said valid flag testing means determining that the valid flag of said entry means indicates that said entry means does not contain an outline item.
51. An outline management system as defined in claim 49 wherein said outline control means includes entry display identification means for identifying an entry means in response to said scrolling information, and said scrolling information includes scroll up information, said entry display identification means including entry display deletion means responsive to said scroll up information for selecting an entry means whose associated outline information is to be deleted from said selected outline items transmitted to said display means.
52. An outline management system as defined in claim 51 wherein each entry means includes means for storing a level identification value, said entry display deletion means including:
A. display entry pointer means for storing pointers identifying entries whose associated outline information is being transmitted for display on said display means;
B. path identification storage means for storing a value identifying a pointer in said display entry pointer means whose outline items correspond to a path to the root of the outline information transmitted for display on said display means;
C. entry deletion identification means responsive to the contents of said path identification means and said display entry pointer means for comparing the level identification values of said entry means proximate the entry means pointed to by the pointer identified by the contents of said path identification storage means to identify an entry whose associated outline item is to be deleted.
53. An outline management system as defined in claim 52 wherein said entry deletion identification means includes:
A. first scroll up test means for comparing the level identification value of the entry means identified by the pointer in said display entry pointer means identified by the pointer in said path identification storage means with the level identification value of the entry means identified by the previous pointer in said display entry pointer means and for deleting the outline item associated with the entry means identified by the previous pointer in response to a predetermined comparison result;
B. second scroll up test means responsive to another predetermined comparison result by said first scroll up test means for comparing the level identification value of the entry means identified by the pointer in said display entry pointer means identified by the pointer in said path identification storage means with the level identification value of the entry means identified by the next pointer in said display entry pointer means and for deleting the outline item identified by the pointer in response to a predetermined comparison result;

C. third scroll up test means responsive to another predetermined comparison result by said second scroll up test means for comparing the level identification value of the entry means identified by the first pointer in said display entry pointer means after the pointer identified by the pointer in said path identification storage means with the level identification value of the entry means identified by the next pointer in said display entry pointer means and for deleting the outline item identified by the second pointer in response to a predetermined comparison result and D. fourth scroll up test means responsive to another predetermined comparison result by said third scroll up test means for iteratively comparing the level identification values of the entry means identified by pairs of two succeeding pointers in said display entry pointer means after the pointer identified by the pointer in said path identification storage means and for deleting the outline item identified by the first pointer in a pair in response to a predetermined comparison result.
54. An outline management system as defined in claim 49 wherein said outline control means includes entry display identification means for identifying an entry means in response to said scrolling information, and said scrolling information includes scroll down information, said entry display identification means including scroll down entry display deletion means responsive to said scroll down information for selecting an entry means whose associated outline information is to be deleted from said selected outline items transmitted to said display means.
55. An outline management system as defined in claim 54 wherein each entry means includes means for storing a level identification value, said scroll down entry display deletion means including:
A. consecutive entry comparison means for iteratively testing two consecutive entries whose associated outline items are being transmitted to said display means for display, beginning from the entry means associated with the last outline item transmitted, to identify two entry means that are not consecutive in said entry list; and B. scroll down entry identification means responsive to the identification by said consecutive entry comparison means identification for specifying an entry means in said entry list between said two identified entry means whose associated outline item is to be transmitted to said display means for display.
56. An outline management system as defined in claim 55 in which:
A. said entry comparison means includes:
i. index storage means for storing an index value initially identifying the number of entry means whose associated outline items are being transmitted to said display means for display;
ii. display entry pointer means for storing pointers identifying entries whose associated outline information is being transmitted for display on said display means;
iii. scroll down comparison means for iteratively determining the location, in said entry list, of said entry means identified by the pointer in said display entry pointer means identified by said index storage means to the location of said entry means identified by the previous pointer in said display entry pointer means to determine whether they are consecutive; and iv. decrement means for decrementing said index value in said index storage means in response to a negative determination by said scroll down comparison means;
B. said scroll down entry identification means includes:
i. first scroll down test means responsive to a positive determination by said scroll down identification means for comparing (a) the level identification value of said entry means identified by the pointer in said display entry pointer means previous to the pointer identified by said index value, to (b) the level identification value of said entry means in the entry list means previous to the entry means identified by the pointer in said display entry pointer means identified by said index value, and for specifying said entry means identified by the pointer in said display entry pointer means previous to the pointer identified by said index value as said entry means whose associated outline item is to be transmitted to said display means if said level identification values are the same;
ii. second scroll down test means responsive to a negative comparison by said first scroll down test means for iteratively comparing (a) the level identification value of said entry means identified by the pointer in said display entry pointer means previous to the pointer identified by said index value, to (b) the level identification value of said entry means in the entry list means previous to the entry means identified by the pointer in said display entry pointer means identified by said index value, and for specifying said entry means identified by the pointer in said display entry pointer means previous to the pointer identified by said index value as said entry means whose associated outline item is to be transmitted to said display means if said level identification values differ by a selected value; and iii. third scroll down test means responsive to a negative comparison by said second scroll down test means for specifying the entry means in said entry list means following each entry means identified by the pointer in said display entry pointer means previous to the pointer identified by said index value as the said entry means whose associated outline item is to be transmitted to said display means.
57. An outline management system as defined in claim 1 wherein said input device generates input information in response to said user performing a dragging operation upon a displayed outline item, and said outline control means modifies displayed parent-child relationships between outline items in a manner determined by said input information corresponding to said dragging operation.
58. An outline management system as defined in claim 57, wherein said outline control means notifies said applications program means of said input information corresponding to said dragging operation.
59. An outline management system adapted for use in conjunction with a user interface means including display means for displaying outline items to a user and an input device for generating input information in response to use of said input device by a user, said outline management system comprising:
A. applications program means, comprising software, for organizing information stored in a computer database into a multiple-level outline including a plurality of outline items organized in a plurality of levels and for retrieving outline items from said outline in response to requests, and B. outline control means, interfacing with said applications program means and said user interface means, for receiving input information from said user interface means indicating to said outline control means which outline items said user wishes to have displayed by said display means, for requesting and receiving, from said applications program means, outline items that said user wishes to have displayed by said display means and that are located on a plurality of branches of said outline, for transmitting received outline items located on a plurality of branches of said outline to said display means of said user interface means for simultaneous display, for receiving input information from said user interface means corresponding to said user performing a selection operation simultaneously upon displayed outline items in differing branches and levels of said outline, and for causing said display means to display said outline items upon which said selection operation has been performed in a manner that distinguishes display of said outline items upon which said selection operation has been performed from outline items upon which said selection operation has not been performed.
60. An outline management system as defined in claim 57, wherein said input device further generates input information in response to said user performing a scrolling operation simultaneously with said dragging operation, and said outline control means, in response to said scrolling information, deletes at least one outline item from display by said display means and adds at least one outline item for display by said display means, before said outline control means modifies displayed parent-child relationships between outline items in a manner determined by said input information corresponding to said dragging operation.
61. An outline management system adapted for use in conjunction with a user interface means including display means for displaying a portion of an outline to a user and an input device for generating input information in response to use of said input device by a user, said outline management system comprising:
A. applications program means, comprising software, for organizing information stored in a computer database into a multiple-level outline including a plurality of outline items organized in a plurality of levels and for retrieving outline items from said outline in response to requests, and B. outline control means, interfacing with said applications program means and said user interface means, for receiving said input information from said user interface means, said input information indicating to said outline control means which outline items said user wishes to have displayed by said display means, for requesting and receiving, from said applications program means, outline items from a portion of said outline that said user wishes to have displayed by said display means, said received outline items being located on a plurality of branches of said outline, and for transmitting received outline items located on a plurality of branches of said outline to said display means of said user interface means for simultaneous display, said outline control means transmitting said received outline items that said user wishes to have displayed to said display means in a manner such that relative locations of said received outline items on said display means render apparent to said user a path to a root of said outline for each displayed outline item.
62. An outline management system as defined in claim 61 wherein said input device generates input information in response to said user performing a scrolling operation; said outline control means, in response to said scrolling information, deletes at least one outline item from said display means and adds at least one outline item to said display means; and said outline control means transmits outline items to said display in a manner such that, throughout said scrolling operation, relative locations of said outline items on said display means render apparent to said user said path to said root of said outline for each displayed outline item.
63. An outline management system adapted for use in conjunction with a plurality of user interface means including a respective plurality of display means for displaying a respective plurality of portions of an outline to a plurality of users and a respective plurality of input devices for generating input information in response to use of said input devices by said users, said outline management system comprising:
A. applications program means, comprising software, for organizing information stored in a computer database into a multiple-level outline including a plurality of outline items organized in a plurality of levels and for retrieving outline items from said outline in response to requests, and B. outline control means, interfacing with said applications program means and said plurality of user interface means, for receiving input information from each of said plurality of user interface means, said input information indicating to said outline control means which outline items each of said plurality of users wishes to have displayed by a respective display means, for requesting and receiving, from said applications program means, outline items from a plurality of portions of said outline that respective users wish to have displayed, said outline items in each of said plurality of portions of said outline being located on a plurality of branches and levels of said outline, and for transmitting received outline items located on a plurality of branches and levels of said outline to respective ones of said display means for simultaneous display.
CA000596729A 1988-04-15 1989-04-14 System for managing hierarchical information in a digital data processing system Expired - Fee Related CA1326561C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US18211088A 1988-04-15 1988-04-15
US182,110 1988-04-15

Publications (1)

Publication Number Publication Date
CA1326561C true CA1326561C (en) 1994-01-25

Family

ID=22667101

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000596729A Expired - Fee Related CA1326561C (en) 1988-04-15 1989-04-14 System for managing hierarchical information in a digital data processing system

Country Status (6)

Country Link
US (1) US5230072A (en)
EP (2) EP0718759A3 (en)
JP (1) JPH03500588A (en)
CA (1) CA1326561C (en)
DE (1) DE68927216T2 (en)
WO (1) WO1989009963A1 (en)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5423034A (en) * 1992-06-10 1995-06-06 Cohen-Levy; Leon Network file management with user determined hierarchical file structures and means for intercepting application program open and save commands for inputting and displaying user inputted descriptions of the location and content of files
US5896532A (en) * 1992-06-15 1999-04-20 Lucent Technologies Inc. Objects with run-time classes and methods of making them
JPH0652161A (en) * 1992-08-03 1994-02-25 Fuji Xerox Co Ltd Method and device for processing document
CA2123924A1 (en) * 1993-06-02 1994-12-03 Charles Douglas Blewett Specifying contexts in callback style programming
US5808611A (en) * 1993-09-23 1998-09-15 International Business Machines Corporation Positioning for multiple icons in an object-oriented interface
US5721848A (en) * 1994-02-04 1998-02-24 Oracle Corporation Method and apparatus for building efficient and flexible geometry management widget classes
JPH07281874A (en) * 1994-04-15 1995-10-27 Fuji Photo Film Co Ltd Environment setting system
US5978577A (en) * 1995-03-17 1999-11-02 Csg Systems, Inc. Method and apparatus for transaction processing in a distributed database system
US5745718A (en) * 1995-07-31 1998-04-28 International Business Machines Corporation Folder bar widget
US5826270A (en) * 1995-12-28 1998-10-20 Csg Systems, Inc. Methods and systems for client or customer-site transaction processing in a distributed database system
US5812135A (en) * 1996-11-05 1998-09-22 International Business Machines Corporation Reorganization of nodes in a partial view of hierarchical information
US6990458B2 (en) * 1997-08-28 2006-01-24 Csg Systems, Inc. System and method for computer-aided technician dispatch and communication
US6356899B1 (en) 1998-08-29 2002-03-12 International Business Machines Corporation Method for interactively creating an information database including preferred information elements, such as preferred-authority, world wide web pages
US6334131B2 (en) 1998-08-29 2001-12-25 International Business Machines Corporation Method for cataloging, filtering, and relevance ranking frame-based hierarchical information structures
US6496842B1 (en) * 1999-05-28 2002-12-17 Survol Interactive Technologies Navigating heirarchically organized information
US6569205B1 (en) * 1999-07-26 2003-05-27 International Business Machines Corporation Method and system for report presentation and navigation in a computer system
US7082567B1 (en) * 1999-10-18 2006-07-25 Rose Blush Software Llc Enhanced human computer user interface system for searching and browsing documents
US7213048B1 (en) 2000-04-05 2007-05-01 Microsoft Corporation Context aware computing devices and methods
US7743074B1 (en) 2000-04-05 2010-06-22 Microsoft Corporation Context aware systems and methods utilizing hierarchical tree structures
US7421486B1 (en) 2000-04-05 2008-09-02 Microsoft Corporation Context translation methods and systems
US7076255B2 (en) 2000-04-05 2006-07-11 Microsoft Corporation Context-aware and location-aware cellular phones and methods
US6750883B1 (en) 2000-04-05 2004-06-15 Microsoft Corporation Identity-based context aware computing systems and methods
US7096029B1 (en) * 2000-04-05 2006-08-22 Microsoft Corporation Context aware computing devices having a common interface and related methods
US20010044796A1 (en) * 2000-05-19 2001-11-22 Hiroyasu Fujiwara Totalization system and recording medium
US7072956B2 (en) * 2000-12-22 2006-07-04 Microsoft Corporation Methods and systems for context-aware policy determination and enforcement
US6944679B2 (en) * 2000-12-22 2005-09-13 Microsoft Corp. Context-aware systems and methods, location-aware systems and methods, context-aware vehicles and methods of operating the same, and location-aware vehicles and methods of operating the same
US7493565B2 (en) * 2000-12-22 2009-02-17 Microsoft Corporation Environment-interactive context-aware devices and methods
US6671689B2 (en) 2001-01-19 2003-12-30 Ncr Corporation Data warehouse portal
US7120646B2 (en) * 2001-04-09 2006-10-10 Health Language, Inc. Method and system for interfacing with a multi-level data structure
US8356019B1 (en) * 2002-12-11 2013-01-15 Altera Corporation Method and apparatus for utilizing patterns in data to reduce file size
US20050166149A1 (en) * 2004-01-23 2005-07-28 Microsoft Corporation Table of contents display
US7644374B2 (en) * 2005-04-14 2010-01-05 Microsoft Corporation Computer input control for specifying scope with explicit exclusions
US8195646B2 (en) 2005-04-22 2012-06-05 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US7657843B2 (en) * 2005-08-15 2010-02-02 At&T Intellectual Property I, L.P. Menu promotions user interface
US7774701B2 (en) * 2005-08-22 2010-08-10 Sap Aktiengesellschaft Creating an index page for user interface frames
US8869066B2 (en) 2006-07-06 2014-10-21 Addthis, Llc Generic content collection systems
US20080082627A1 (en) * 2006-09-29 2008-04-03 Allen Stewart O Method and Apparatus for Widget Container/Widget Tracking and Metadata Manipulation
US8056092B2 (en) * 2006-09-29 2011-11-08 Clearspring Technologies, Inc. Method and apparatus for widget-container hosting and generation
US9009728B2 (en) 2007-03-06 2015-04-14 Addthis, Inc. Method and apparatus for widget and widget-container distribution control based on content rules
WO2008109761A2 (en) 2007-03-06 2008-09-12 Clearspring Technologies, Inc. Method and apparatus for data processing
US8812944B2 (en) * 2007-08-16 2014-08-19 Yahoo! Inc. Page modules and providing content
US8209378B2 (en) 2007-10-04 2012-06-26 Clearspring Technologies, Inc. Methods and apparatus for widget sharing between content aggregation points
US20090187864A1 (en) * 2008-01-17 2009-07-23 Microsoft Corporation Dynamically Scalable Hierarchy Navigation
US20100100605A1 (en) * 2008-09-15 2010-04-22 Allen Stewart O Methods and apparatus for management of inter-widget interactions
KR101624137B1 (en) * 2009-11-18 2016-06-07 삼성전자주식회사 Method for updating display and mobile terminal using the same
WO2015143416A1 (en) 2014-03-21 2015-09-24 Ptc Inc. Systems and methods for developing and using real-time data applications
US9467533B2 (en) 2014-03-21 2016-10-11 Ptc Inc. System and method for developing real-time web-service objects
US20150269130A1 (en) * 2014-03-21 2015-09-24 Ptc Inc. System and method of using multi-level hierarchical data in displaying real-time web-service objects
US10156841B2 (en) 2015-12-31 2018-12-18 General Electric Company Identity management and device enrollment in a cloud service

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648046A (en) * 1984-10-24 1987-03-03 International Business Machines Corporation Editing and reflecting color display attributes of non-active profiles
CA1252906A (en) * 1985-06-11 1989-04-18 Frank D. Bartocci Generalized directory data model
JPH0661061B2 (en) * 1985-07-23 1994-08-10 カシオ計算機株式会社 Selective display method
JPS6249538A (en) * 1985-08-29 1987-03-04 Hitachi Ltd Menu selecting system for display device
JPH0630065B2 (en) * 1986-01-17 1994-04-20 株式会社日立製作所 Information retrieval method
AU594109B2 (en) * 1986-03-27 1990-03-01 Wang Laboratories, Inc. Menu management system
US4945475A (en) * 1986-10-30 1990-07-31 Apple Computer, Inc. Hierarchical file system to provide cataloging and retrieval of data

Also Published As

Publication number Publication date
EP0718759A3 (en) 1997-05-02
US5230072A (en) 1993-07-20
DE68927216T2 (en) 1997-04-24
EP0362369A1 (en) 1990-04-11
EP0718759A2 (en) 1996-06-26
WO1989009963A1 (en) 1989-10-19
EP0362369B1 (en) 1996-09-18
JPH03500588A (en) 1991-02-07
DE68927216D1 (en) 1996-10-24

Similar Documents

Publication Publication Date Title
CA1326561C (en) System for managing hierarchical information in a digital data processing system
US5948058A (en) Method and apparatus for cataloging and displaying e-mail using a classification rule preparing means and providing cataloging a piece of e-mail into multiple categories or classification types based on e-mail object information
US7962508B2 (en) System and method for searching and retrieving related messages
US6003034A (en) Linking of multiple icons to data units
US5303361A (en) Search and retrieval system
EP0810534B1 (en) Document display system and electronic dictionary
JP3760057B2 (en) Document search method and document search service for multiple document databases
EP1005681B1 (en) Browser for hierarchical structures
US20070226204A1 (en) Content-based user interface for document management
US20050198143A1 (en) System and method for replying to related messages
JP2001312515A (en) Information processing system and method, and program storing medium
JPH08249357A (en) Information processor
JPH09120405A (en) Service changeable system in information center
CN109739815A (en) Document handling method, system, device, equipment and storage medium
MX2008015234A (en) Bucket-based searching.
US20060195426A1 (en) Information management apparatus, information management method, and information management program
US5063495A (en) Method of associating document processing states with an action market
US20050235208A1 (en) User interface for a guided activity window
US9652456B2 (en) Automated relationship management for darwin information typing architecture
US7818680B2 (en) Method for deleting related messages
US5142678A (en) Method for a requesting user to use a marker to associate a document with an end user action
JP2001325299A (en) Device and method for retrieving data and information recording medium
CN102479219B (en) Interactive searching processing method
KR101143165B1 (en) Method and System for Managing Message Using Auto Classify Function of Mobile Communication Terminal
CN115373785A (en) Display method and device of novice guiding content

Legal Events

Date Code Title Description
MKLA Lapsed