Insertion bar

Abstract: A computer implemented method, computer system, and article of manufacture embodying computer readable program means direct a computer system to create in a window an insertion bar for inserting hierarchical level identifiers into any hierarchically arranged data. The method includes the first step of inserting a blank line at the location of an insert event, in response to detecting the insert event at the location in the window. The second event includes the step of counting a number of hierarchical levels above the blank line and placing a marker on the blank line, each marker corresponding to a horizontal position of each hierarchical level, thereby creating the insertion bar. The third step includes the step of in response to detecting a move event over one of the markers in the insertion bar, creating an additional hierarchical level identifier of the same hierarchical level and in succession to the hierarchical level corresponding to the selected marker.

Description: Field of the Invention The present invention relates to enhancements in user interfaces and, more particularly, but without limitation, to an insertion device for inserting hierarchical identifiers into any hierarchically arranged data. Background Information and Description of the Related Art Figure 1 illustrates a prior art window 101 for displaying document 118. Document 118 contains information that is arranged in successive hierarchical levels. For example, first level identifiers (i.e., roman numerals) 104 and 105 are indented a first amount of space (i.e., one tab) and sequentially number major topics, including "scuba diving" and "snow skiing". Second level identifiers, (i.e., letters) 108 and 109 are indented two tabs and sequentially organize subtopics of the major topic "scuba diving", including "gear" and "places to dive", respectively. Third level identifiers (i.e., numbers) 112 are indented three tabs and sequentially number elements of the subtopic "gear", including "regulator", "BCD" and "mask/snorkel". A conventional user interface allows a user to manipulate/edit the information in document 118. For example, a user may desire to sequentially add more elements in a particular hierarchical level. The user may place, by way of example, mouse pointer 102 below third level identifier 114 and above second level identifier 109, click the first button on a mouse, and in response, the user interface causes document 118 to display third level identifier 106 directly below third level identifier 114. Notice that third level identifier 106 (i.e., "4") is in numerical succession with third level identifier 114 (i.e., "3"). Accordingly, the user interface examines the preceding level identifier directly above the point where the user desires to add a new element. In this example, third level identifier 114 is the number "3", so the user interface places a number "4" directly below the number "3" and positions flashing cursor 110 next to third level identifier 106 so that the user may type in any desired data or information. However, this editing technique presents certain disadvantages and limitations. For example, the user may not desire to add third level identifier 106 as a succession (i.e., an additional element) to third level identifiers 112, but rather may desire to add a new count that is of the same hierarchical level as second level identifiers 108 and 109. Therefore, the user may desire third level identifier 106 to be the letter "B" rather than the number "4", and may desire second level identifier 109 to change to a letter "C". To do this using a conventional user interface, the user must position mouse pointer 102 directly under second level identifier 108, press the first mouse button to create a new letter "B", move the newly created letter "B" to the desired location, and finally manually change second level identifier 109 to a "C". This process is time consuming and tedious. Accordingly, there is a great demand for a user interface that allows the user to directly choose which hierarchical level a new element will belong to when attempting to add new elements to a document containing hierarchically arranged data. Summary According to the invention, a computer implemented method, computer system, and article of manufacture embodying computer readable program means direct a computer system to create in a window an insertion bar for inserting hierarchical level identifiers into any hierarchically arranged data. A method for directing a computer system to create and to utilise in a window an insertion bar for inserting hierarchical level identifiers into any hierarchically arranged data, comprising the steps of: in response to detecting an insert event at a location in the window, inserting a blank line at the location of the insert event; counting a number of hierarchical levels above the blank line and placing a marker on the blank line corresponding to a position of each hierarchical level, thereby creating the insertion bar; and in response to detecting a move event over one of the markers in the insertion bar, creating an additional hierarchical level identifier of the same level and in succession to the hierarchical level corresponding to the selected marker. A computer program product stored on a computer-readable storage medium, said program product, when loaded into a computer system, directing said computer system to create and to utilise in a window an insertion bar for inserting hierarchical level identifiers into any hierarchically arranged data, said program product comprising: insertion means for, in response to detecting an insert event at a location in the window, inserting a blank line at the location of the insert event; counting means for counting a number of hierarchical levels above the blank line and placing a marker on the blank line corresponding to a position of each hierarchical level, thereby creating the insertion bar; and creation means for, in response to detecting a move event over one of the markers in the insertion bar, creating an additional hierarchical level identifier of the same level and in succession to the hierarchical level corresponding to the selected marker. A computer system which, when instructed by an appropriate program, creates and utilises in a window an insertion bar for inserting hierarchical level identifiers into any hierarchically arranged data, said computer system comprising: insertion means for, in response to detecting an insert event at a location in the window, inserting a blank line at the location of the insert event; counting means for counting a number of hierarchical levels above the blank line and placing a marker on the blank line corresponding to a position of each hierarchical level, thereby creating the insertion bar; and creation means for, in response to detecting a move event over one of the markers in the insertion bar, creating an additional hierarchical level identifier of the same level and in succession to the hierarchical level corresponding to the selected marker. Brief Description of the Drawings An embodiment of the invention will now be described by reference to the drawings, in which: Fig. 1 illustrates a window that displays a document and illustrates a conventional user interface for adding hierarchical level identifiers in the document; Fig. 2 illustrates a representative hardware configuration for implementing the present invention; Fig. 3 illustrates a window that displays a document and illustrates a user interface for adding hierarchical level identifiers according to the preferred embodiment; and Fig. 4 illustrates a flowchart of detailed logic for implementing the preferred embodiment. Detailed Description of the Preferred Embodiment The present invention is practised in a laptop computer or, alternatively, in the computer system illustrated in Fig. 2. Computer system 100 includes central processing unit (CPU) 10, such as an IBM's PowerPC 601 (PowerPC is a trademark of International Business Machines Corporation) or Intel's 486 microprocessor for processing cache 15, random access memory (RAM) 14, read only memory 16, and non-volatile RAM (NVRAM) 32. One or more disks 20, controlled by I/O adapter 18, provide long term storage. A variety of other storage media may be employed, including tapes, CD-ROM, and WORM drives. Removable storage media may also be provided to store data or computer process instructions. Instructions and data from the desktop of any suitable operating system, such as Sun Solaris, Microsoft's Windows NT, IBM's OS/2, or Apple's System 7, control CPU 10 from RAM 14 (OS/2 is a trademark of International Business Machines Corporation). Accordingly, the desktop executes from RAM 14. However, in the preferred embodiment, an IBM RISC System/6000 runs the AIX operating system (RISC System/6000 is a trademark of International Business Machines Corporation). As previously described, however, one skilled in the art readily recognizes that other hardware platforms and operating systems may be utilized to implement the present invention. Users communicate with computer system 100 through I/O devices (i.e., user controls) controlled by user interface adapter 22. Display 38 displays information to the user, while keyboard 24, pointing device 26, and speaker 28 allow the user to direct the computer system. Communications adapter 34 controls communications between this computer system and other processing units connected to a network by network interface 40. Display adapter 36 controls communications between this computer system and display 38. Fig. 3 illustrates a window for displaying document 300 in accordance with the preferred embodiment. Document 300 could have been created using, for example, an idea processor, browser, outline processor, or word processor. An enhanced user interface provides an interface between document 300 and the operating system, thereby allowing the user to easily manipulate/edit document 300. Document 300 includes first level hierarchical identifiers 306 and 315 (i.e., roman numerals), second level hierarchical identifiers 308 and 313 (i.e., letters), and third level hierarchical identifiers 316 and 318 (i.e., numbers). The third level identifiers are subsets of the second level identifier, and the second level identifiers are subsets of the first level identifiers. In this example, the user desires to insert a second level hierarchical identifier (i.e., the letter "B") between third level identifiers 316 and second level identifier 313. To do so, the user positions the mouse pointer (not shown) between third level identifiers 316 and second level identifier 313 and presses the first mouse button. In response, the user interface displays insertion bar 302 (herein bar 302). Bar 302 includes hash mark 310 (e.g., a marker), which represents first hierarchical level identifiers and is indented one tab corresponding to the indention of first level identifiers 306 and 315, hash mark 312, which represents second level hierarchical identifiers and is indented two tabs corresponding to the indention of second level identifiers 308 and 313, and finally hash mark 320, which represents third level hierarchical identifiers and is indented three tabs corresponding to the indention of third level identifiers 316 and 318. The browser initially places an "I" over the hash mark representing the level of the preceding row's level. In this case, the browser places an "I" over hash mark 314, which is of the same level as third level identifiers 316. To change the position of the "I", the user positions the mouse pointer over one of the desired hash marks 310, 312, or 320, depending on which hierarchical level identifier the user desires to create. In this example, the user desires to insert a second hierarchical level identifier. Therefore, the user positions and clicks the mouse pointer over hash mark 312. Alternatively, the user may drag and drop the "I" from hash mark 314 to hash mark 312 (not shown). In response, the user interface places the "I" over the selected hash mark 312. At this point, the user may select another hash mark by simply single clicking over the desired hash mark, or double click the mouse pointer (or equivalent keyboard event) to cause the user interface to make the desired selection. If hash mark 312 is selected, the user interface places a "B" in that position and appropriately re-letters the identifiers below it in the same hierarchical level. If the user positions the mouse pointer over hash mark 310, the user interface would place a roman numeral "II" in that position and would change third level identifier 315 (i.e., roman numeral "II") to a roman numeral "III". Using the preferred embodiment, the user can easily select the position of a newly added identifier and the hierarchical level that the new identifier belongs to, all in one simple step using bar 302. Figure 4 illustrates a flowchart of detailed logic for implementing the preferred embodiment. At 410, the user interface determines if there are events to be processed. If so, at 412 the UI determines if an insert event has occurred. This event would occur if a user had clicked between rows of text in a document. If so, at 414, the UI inserts a blank row at the position of the detected click. At 416, the UI draws a horizontal line (i.e., bar 302) in the blank row. At 418, the UI draws an "I" at a hash mark under the left margin of the row above. Accordingly, if the row above the new blank line was indented three tabs, an "I" will be positioned on a hash mark on the new horizontal line indented three tabs. At 420, the UI sets a variable NUMHASH = the number of levels present in the document above the new horizontal line + 1. Therefore, referring to Fig. 3, because there are three different levels of identifiers (e.g., 306, 308, and 316), NUMHASH would be set to 4. At 422, the UI determines if NUMHASH is equal to 0. If not, at 424, the UI draws a hash mark at the position equal to NUMHASH. For example, in the previous example, NUMHASH was equal to 4. Therefore, the UI would draw a hash mark at the fourth tabbed position. At 426, the UI subtracts 1 from NUMHASH and control returns to 422, where the UI determines if NUMHASH is equal to 0. In this example, NUMHASH would have been decremented by 1 to a number of 3. Therefore at 424, the UI would draw another hash mark at the third tabbed position. This process continues until hash marks are placed on the horizontal line for each tabbed level plus 1. Control returns to 410. At 430, the UI determines if an move event has occurred. If so, at 432, the UI draws an "I" on the new selected hash mark. For example, the user may drag and drop the "I" on another hash mark. Control returns to 410. At 440, the UI determines if a text detect entry event has occurred. If so, at 442, the UI hides the insertion bar 302 and, at 444, the UI displays any typed text entered on the line. Control returns to 410. At 450, the UI determines if a "I" draw event has occurred. This event would be generated at 432. If so, at 452, the UI determines the first preceding level identifier from the position of the selected hash mark. At 454, the UI increments the identifier by one value and displays the identifier to the right of the "I". At 456, the UI increments any identifiers below the new line of the same hierarchical level. Control returns to 410. At 460, the UI determines if a closed bar event has occurred. This event would occur if the user clicked on any empty space or clicked between two other rows of text. If so, the UI closes the insertion bar at 462. Control returns to 410. At 470, the UI processes other events. If no more events are detected at 410, the process ends. As indicated above, aspects of this invention pertain to specific "method functions" implementable on computer systems. In an alternate embodiment, the invention may be implemented as a computer program product for use with a computer system. Those skilled in the art should readily appreciate that programs defining the functions of the present invention can be delivered to a computer in many forms; including, but not limited to: (a) information permanently stored on non-writable storage media (e.g. read only memory devices within a computer such as semiconductor ROM or CD-ROM disks readable by a computer I/0 attachment); (b) information alterably stored on writable storaged media (e.g. floppy disks and hard drives); or (c) information conveyed to a computer through communication media such as a computer network and telephone networks via a modem. It should be understood, therefore, that such media, when carrying computer readable instructions that direct the method functions of the present invention represent alternate embodiments of the present invention. While the invention has been shown and described with reference to particular embodiments thereof, it will be understood by those skilled in the art that the foregoing and other changes in form and detail may be made therein without departing from the scope of the invention as claimed.

Claims: A method for directing a computer system to create and to utilise in a window an insertion bar for inserting hierarchical level identifiers into any hierarchically arranged data, comprising the steps of: in response to detecting (412) an insert event at a location in the window, inserting (414) a blank line (302) at the location of the insert event; counting a number of hierarchical levels above the blank line and placing a marker (310,312,314,320) on the blank line corresponding to a position of each hierarchical level, thereby creating the insertion bar; and in response to detecting (430) a move event over one of the markers in the insertion bar, creating an additional hierarchical level identifier of the same hierarchical level and in succession to the hierarchical level corresponding to the selected marker. The method of claim 1 comprising the further step of incrementing by one (454, 456) the newly created hierarchical level identifier the same hierarchical level and every hierarchical level identifier in the same hierarchical level below the newly created hierarchical level identifier. A computer program product stored on a computer-readable storage medium, said program product, when loaded into a computer system, directing said computer system to create and to utilise in a window an insertion bar for inserting hierarchical level identifiers into any hierarchically arranged data, said program product comprising: insertion means for, in response to detecting (412) an insert event at a location in the window, inserting (414) a blank line (302) at the location of the insert event; counting means for counting a number of hierarchical levels above the blank line and placing a marker (310, 312, 314, 320) on the blank line corresponding to a position of each hierarchical level, thereby creating the insertion bar; and creation means for, in response to detecting (430) a move event over one of the markers in the insertion bar, creating an additional hierarchical level identifier of the same hierarchical level and in succession to the hierarchical level corresponding to the selected marker. The program product stored on a computer-readable storage medium of claim 3, further comprising incrementing means for incrementing by one (454, 456) the newly created hierarchical level identifier in the same hierarchical level and every hierarchical level identifier in the same hierarchical level below the newly created hierarchical level identifier. A computer system which, when instructed by an appropriate program, creates and utilises in a window an insertion bar for inserting hierarchical level identifiers into any hierarchically arranged data, said computer system comprising: insertion means for, in response to detecting (412) an insert event at a location in the window, inserting (414) a blank line (302) at the location of the insert event; counting means for counting a number of hierarchical levels above the blank line and placing a marker (310,312,314,320) on the blank line corresponding to a position of each hierarchical level, thereby creating the insertion bar; and creation means for, in response to detecting (430) a move event over one of the markers in the insertion bar, creating an additional hierarchical level identifier of the same hierarchical level and in succession to the hierarchical level corresponding to the selected marker. The computer system of claim 5, further comprising: incrementing means for incrementing by one (454, 456) the newly created hierarchical level identifier in the same hierarchical level and every hierarchical level identifier in the same hierarchical level below the newly created hierarchical level identifier.

Inventors: BEER JOHN CARL, CLINE TROY LEE, POSTON RICKY LEE, WERNER JON HARALD, BEER, JOHN CARL, CLINE, TROY LEE, POSTON, RICKY LEE, WERNER, JON HARALD
Applicants: IBM, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1996
Main classification: G06F17
IPC codes: G06F17, G06F3