Method of manipulating elements of a structured document, function key operation being dependent upon current and preceding image element types5285526Abstract A method is described for manipulating commonly used elements within a structured document. The method takes advantage of a user's intent in selecting certain keystrokes to complete a task. By making assumptions on the user's intent at the current position within the document and dynamically changing the functions of keystrokes based on those assumptions, the method allows the user to quickly and easily manipulate the commonly used elements of a structured document without having to specify any tag names or markup language, and without having to understand the rules for creating a structured document. Claims What is claimed is: Description FIELD OF THE INVENTION
______________________________________
[list]*
[li]This is the first original list item.[/li]
[li]This is the second original list item.[/li]
[/list]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[list]
[li]*[/li]
[li]This is the first original list item.[/li]
[li]This is the second original list iten [/li]
[/list]
______________________________________
Positioned at Start of a List Item--if the current document position is at the start of a List Item element (before any of its contents), a new List Item element is inserted into the document BEFORE, and as a sibling to, the current List Item element. The cursor is then positioned at the start of that new List Item. Example document section before execution of Active Intent Interpretation:
______________________________________
[list]
[li]*This is the first original list item.[/li]
[li]This is the second original list item.[/li]
[/list]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[list]
[li]*[/li]
[li]This is the first original list item.[/li]
[li]This is the second original list item.[/li]
[/list]
______________________________________
Positioned within a List Item--if the current document position is within a List Item element (but not at the start of that element), a new List Item element is inserted into the document AFTER, and as a sibling to, the current List Item element. The cursor is then positioned at the start of that new List Item. Example document section before execution of Active Intent Interpretation:
______________________________________
[list]
[li]This is the first *original list item.[/li]
[li]This is the second original list item.[/li]
[/list]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[list]
[li]This is the first original list item.[/li]
[li]*[/li]
[li]This is the second original list item.[/li]
[/list]
______________________________________
Any non-flowing element--if the current document position is within an element which does not automatically reflow its text content, a new Line is inserted into the document following the Line containing the current document position. The cursor is then positioned at the start of that new Line. Example document section before execution of Active Intent Interpretation:
______________________________________
[lines]
This is the *first original line.
This is the second original line.
[/lines]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[lines]
This is the first original line.
*
This is the second original line.
[/lines]
______________________________________
Positioned within an empty Paragraph--if the current document position is within an empty Paragraph, a Line Break Instruction is inserted into the document before, and as a sibling to, that Paragraph. The position of the cursor within the empty Paragraph remains unchanged, though the document will appear with another blank line preceding the Paragraph. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]This is a previous paragraph.[/p]
[p]*[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]This is a previous paragraph.[/p]
[Line Break Processing Instruction]
[p]*[/p]
______________________________________
All other document positions--If allowed, a Paragraph is inserted at the current document position as a child of the current element and the cursor is positioned at the start of the new Paragraph. Example document section before execution of Active Intent Interpretation:
______________________________________
[h1]*
[p]This is a paragraph of text.[/p]
[/h1]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[h1]
[p]*[/p]
[p]This is a paragraph of text.[/p]
[/h1]
______________________________________
If a Paragraph is not allowed as a child, then: a. if the cursor is at the start of the current element, a Paragraph is inserted BEFORE, and as a sibling to, the current element and the cursor is positioned at the start of that new Paragraph. If a Paragraph is not allowed at that position, selecting Enter has no affect. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]This is a preceeding paragraph.[/p]
[p]*This is a paragraph of text.[/p]
[p]This is a following paragraph.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]This is a preceeding paragraph.[/p]
[p]*[/p]
[p]This is a paragraph of text.[/p]
[p]This is a following paragraph.[/p]
______________________________________
b. if the cursor is within the current element, but not at the start of that element, a Paragraph is inserted AFTER, and as a sibling to, the current element and the cursor is positioned at the start of the new Paragraph. If a Paragraph is not allowed at that position, selecting Enter has no affect. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]This is a preceeding paragraph.[/p]
[p]This is a *paragraph of text.[/p]
[p]This is a following paragraph.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]This is a preceeding paragraph.[/p]
[p]This is a paragraph of text.[/p]
[p]*[/p]
[p]This is a following paragraph.[/p]
______________________________________
Logic Flow in Response to Enter Key If the current document position is in a List element: 1) Insert a new List Item element at the current document position 2) Position the cursor at the start of the new List Item Else If the current document position is in a List Item element: If the current document position preceeds any contents in the List Item: 1) Set the current document position to the document position which immediately preceeds the List Item begin tag. 2) Insert a new List Item element at the current document position 3) Position the cursor at the document position which immediately follows the begin for the new List Item. Otherwise: 1) Set the current document position to the document position which immediately follows the List Item end tag. 2) Insert a new List Item element at the current document position 3) Position the cursor at the document position which immediately follows the begin for the new List Item. Else If the `non-flowing` attribute is specified for the current element: 1) Insert a new line immediately following the line on which the current document position resides. Else If the current element is a paragraph with no contents: 1) Set the current document position to the document position which immediately preceeds the begin tag for the current element. 2) Insert a line break instruction at the current document position. 3) Set the current document position to the document position which immediately follows the next begin tag (which will be the begin tag for the paragraph originally in). Else If the Tag Set Definition allows a paragraph to be inserted as a child to the current element: 1) Insert new a paragraph at the current document position. 2) Set the current document position to the document position which immediately follows the begin tag of the newly added paragraph. Else If the current document position preceeds any text in the Current Element: 1) Set the current document position to the document position which immediately preceeds the current element's begin tag. 2) If the Tag Set Definition allows a paragraph to be inserted as a child to the current element: 1) Insert a new Paragraph element at the current document position 2) Position the cursor at the document position which immediately follows the begin for the new Paragraph. Otherwise: 1) Set the current document position to the document position which immediately follows the current element's end tag. 2) If the Tag Set Definition allows a paragraph to be inserted as a child to the current element: 1) Insert a new Paragraph element at the current document position 2) Position the cursor at the document position which immediately follows the begin for the new Paragraph. Delete Key The function defined for the Delete (Del) key is based on the current document position, as can be seen with reference to FIG. 10. The action taken in response to the Del key is described by the first item which accurately describes the current document position: 1.) Positioned at a Text Character or Processing Instruction if the current document position is related to a Text Character, that Text Character is deleted from the document, and the Text following that character will be shifted over appropriately. The cursor position is not changed relative to the contents of the document. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]This is a *paragraph of text.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]This is a *aragraph of text.[/p]
______________________________________
2.) Positioned within an empty last List Item--if the current document position is within the last List Item and that List Item is empty, the List Item is deleted and the cursor is moved to the start of the next element. Example document section before execution of Active Intent Interpretation:
______________________________________
- Top Level Element
[list]
[li]This is the first original list item.[/li]
[li]This is the second original list item.[/li]
[li]*[/li]
[/list]
[p]This is a following paragraph.[/p]
[/odoc]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
- Top Level Element
[list]
[li]This is the first original list item.[/li]
[li]This is the second original list item.[/li]
[/list]
[p]*This is a following paragraph.[/p]
[/odoc]
______________________________________
If there is no next element and the current List is not nested within another List, a new Paragraph is inserted into the document after, and as a sibling to, the List containing the List Item just deleted. The cursor is then positioned at the start of that new Paragraph. Example document section before execution of Active Intent Interpretation:
______________________________________
- Top Level Element
[list]
[li]This is the first original list item.[/li]
[li]This is the second original list item.[/li]
[li]*[/li]
[/list]
[/odoc]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
- Top Level Element
[list]
[li]This is the first original list item.[/li]
[li]This is the second original list item.[/li]
[/list]
[p]*[/p]
[/odoc]
______________________________________
If there is no next element and the current List IS nested within another List, a new List Item is inserted into the document instead of a new Paragraph as just described, and the cursor is positioned at the start of that new List Item. Example document section before execution of Active Intent Interpretation:
______________________________________
[odoc]
[list]
[li]This is a list item containing another
list.[/li]
[list]
[li]This is the first original list
item.[/li]
[li]This is the second original list
item.[/li]
[li]*[/li]
[/list]
[/list]
[/odoc]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[odoc]
[list]
[li]This is a list item containing another
list.[/li]
[list]
[li]This is the first original list
item.[/li]
[li]This is the second original list
item.[/li]
[/list]
[li]*[/li]
[/list]
[/odoc]
______________________________________
Note that if all List Items within the List have been deleted, the List
element will also be deleted for both of the above two cases.
Example document section before execution of Active Intent Interpretation:
______________________________________
[odoc]
[list]
[li]This is a list item containing another
list.[/li]
[list]
[li]*[/li]
[/list]
[/list]
[/odoc]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[odoc]
[list]
[li]This is a list item containing another
list.[/li]
[li]*[/li]
[/list]
[/odoc]
______________________________________
3.) Positioned within an empty line of a non-flowing element--if the current document position is within a non-flowing element and the current line is empty, the current line is deleted. The cursor will then be placed at the start of the following line, whether that line is within the current non-flowing element or outside of the element (in the event that the last line of the non-flowing element is deleted). Example document section before execution of Active Intent Interpretation:
______________________________________
[p]This is a preceeding paragraph.[/p]
[lines]
This is the first original line.
This is the third original line.
[/lines]
[p]This is a following paragraph.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]This is a preceeding paragraph.[/p]
[lines]
This is the first original line.
*This is the third original line.
[/lines]
[p]This is a following paragraph.[/p]
______________________________________
Note that if all lines of the element have been deleted, the element
itself is also deleted.
Example document section before execution of Active Intent Interpretation:
______________________________________
[p]This is a preceeding paragraph.[/p]
[lines]
*
[/lines]
[p]This is a following paragraph.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]This is a preceeding paragraph.[/p]
[p]*This is a following paragraph.[/p]
______________________________________
4.) All other document positions--if the current element and its children do not contain text, the element and its contents are deleted. The cursor position is not changed relative to the contents of the document. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
[list]*
[li][/li]
[/list]
[p]Following paragraph text.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]*
[p]Following paragraph text.[/p]
______________________________________
If the element and/or its children contains text, then the user is informed that the element and all of its contents are about to be deleted from the document. At that point, the user may select to either keep the element and its contents or to have them deleted. If deletion is selected, then the element is deleted as described above. The cursor position is not changed relative to the contents of the document. Logic Flow in Response to Delete Key If the current document position is at a character or processing instruction: 1) Delete the character or processing instruction. Else If the current element is a List Item element with no content and there are no List Item elements between the end tag for the current List Item and the end tag for its parent List element: 1) If there is an element begin tag (for any element) which follows the end tag for the current List element: 1) If there is a List Item element between the begin tag for the current List element and the begin tag for the current List Item element: 1) Delete the current List Item element. 2) Set the current document position at the document position which immediately follows the begin tag for the element following the end tag for the current List element. Else (there are no siblings to the current List Item element): 1) Set the current document position at the document position which immediately follows the begin tag for the parent List element. 2) Delete the List element at the current document position, removing its child List Item element as well. 3) Set the current document position at the document position which immediately follows the begin tag for the element following the end tag for the List element just deleted. Else (there is no element begin tag following the List element): 1) If the parent to the current List element is a List element: 1) If there is a List Item element between the begin tag for the current List element and the begin tag for the current List Item element: 1) Delete the current List Item element. 2) Set the current document position at the document position which immediately follows the end tag for the current List element. 3) Insert a new List Item element at the current document position. 4) Set the current document position at the document position which immediately follows the begin tag for the newly inserted List Item element. Else (no siblings to the current List Item element): 1) Set the current document position at the document position which immediately follows the begin tag for the parent List element. 2) Delete the List element at the current document position, removing its child List Item element as well. 3) Set the current document position at the document position which immediately followed the end tag of the List element just deleted. 4) Insert a new List Item element at the current document position. 5) Set the current document position at the document position which immediately follows the begin tag for the newly inserted List Item element. Else (the parent to the List element is not a List element): 1) If the Tag Set Definition allows a paragraph to be inserted as a sibling to the current List element: 1) If there is a List Item element between the begin tag for the current List element and the begin tag for the current List Item element: 1) Delete the current List Item element. 2) Set the current document position at the document position which immediately follows the end tag for the current List element. 3) Insert a new Paragraph element at the current document position. 4) Set the current document position at the document position which immediately follows the begin tag for the newly inserted Paragraph element. Else (no siblings to the current List Item element): 1) Set the current document position at the document position which immediately follows the begin tag for the parent List element. 2) Delete the List element at the current document position, removing its child List Item element as well. 3) Set the current document position at the document position which immediately followed the end tag of the List element just deleted. 4) Insert a new Paragraph element at the current document position 5) Set the current document position at the document position which immediately follows the begin tag for the newly inserted Paragraph element. Else If the `non-flowing` attribute is specified for the current element and the current line of that element contains no text: 1) If the current line is the only line within the current element: 1) Delete the current element 2) Set the current document position to the document position of the start of the next line in the document. Else (there is more than one line within the current element): 1) Delete the current line 2) Set the current document position to the document position of the start of the next line in the document. Else If the current element and/or its children contain text: 1) Prompt the user to confirm the deletion of the current element. 2) If the user confirms the deletion: 1) Delete the current element Otherwise: 1) Delete the current element Backspace (Destructive) The function defined for the Backspace (destructive) key is based on the current document position, as can be seen with reference to the flow diagram of FIG. 11. The action taken in response to the Backspace key is described by the first item which accurately describes the current document position: 1.) Positioned following a text character or processing instruction--if the current document position immediately follows a text character, that character is deleted from the document. The cursor position is not changed relative to the contents of the document. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]This is a pa*ragraph of text.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]This is a p*ragraph of text.[/p]
______________________________________
2.) Positioned within an empty list item within a list containing only one list item--both the list item and its parent list are deleted. The cursor position is not changed relative to the contents of the document. Example document section before execution of Active Intent Interpretation:
______________________________________
- Top Level
______________________________________
Element
______________________________________
[p]This is a preceeding paragraph.[/p]
[list]
[li]*[/li]
[/list]
[p]This is a following paragraph.[/p]
[/odoc]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
- Top Level Element
[p]This is a preceeding paragraph.[/p]*
[p]This is a following paragraph.[/p]
[/odoc]
______________________________________
3.) Positioned within an empty line of a non-flowing element--if the current document position is within a non-flowing element and the current line is empty, the current line is deleted. Note that if the deleted line is the only line within the non-flowing element, the entire element will also be deleted. The cursor position is not changed relative to the contents of the document. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]This is a preceeding paragraph.[/p]
[lines]
This is the first original line.
*
This is the third original line.
[/lines]
[p]This is a following paragraph.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]This is a preceeding paragraph.[/p]
[lines]
This is the first original line.*
This is the third original line.
[/lines]
[p]This is a following paragraph.[/p]
______________________________________
Positioned at the boundary of an element containing text--if the current document position is related to the start/end tags for an element whose contents (or children's contents) include text, the user is informed that the element and all of its contents are about to be deleted from the document. At that point, the user may select to either keep the element and its contents or to have them deleted. If deletion is selected, the cursor is moved to the document position immediately preceding the location from which the element was deleted. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
[list]
[li]User confirms deletion of list/list item.[/li]
[/list]*
[p]Following paragraph text.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]*
[p]Following paragraph text.[/p]
______________________________________
All other document positions--if the current element and its children do not contain text, the element and its contents are deleted and the cursor is moved to the document position immediately preceding the location from which the element was deleted. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
[list]
[li][/li]
[/list]*
[p]Following paragraph text.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]*
[p]Following paragraph text.[/p]
______________________________________
Logic Flow in Response to Backspace (Destructive) Key If the current document position follows a character or processing instruction: 1) Delete the character or processing instruction. Else If the current document position is within (or immediately follows the end tag for) a List Item element with no content which is the only List Item element within the parent List element: 1) Set the current document position to the document position immediately following the begin tag for the parent List element. 2) Delete the current List element. Else If the `non-flowing` attribute is specified for the current element and the current line of that element contains no text: 1) If the current line is the only line within the current element: 1) Delete the current element 2) Set the current document position to the document position of the end of the previous line in the document. Else (there is more than one line within the current element): 1) Delete the current line. 2) Set the current document position to the document position of the end of the previous line in the document. Else If the current element and/or its children contain text: 1) Prompt the user to confirm the deletion of the current element. 2) If the user confirms the deletion: 1) Delete the current element Otherwise: 1) Delete the current element Tab Key The function defined for the Tab key is based on the current document position, as can be seen with reference to the flow diagram of FIG. 12. The action taken in response to the Tab key is described by the first item which accurately describes the current document position: 1.) Positioned within an empty Paragraph--if the cursor is positioned within an empty Paragraph, the Paragraph is changed to a Simple List, a new List Item is inserted as a child to the new Simple List and the cursor is positioned at the start of the new List Item. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
[p]*[/p]
[p]Following paragraph text.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
[list form=simple]
[li]*[/li]
[/list]
[p]Following paragraph text.[/p]
______________________________________
2.) Positioned on the only list item in a simple list whose contents consists of a single character "1", "A" or "a"--the simple list is changed to an ordered list and the cursor is positioned at the start of the first list item. The contents of the first List Item will be removed, since the formatting of the List Item will automatically generate the ordered numbers which were just entered by the user. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
[list form=simple]
[li]1*[/li]
[/list]
[p]Following paragraph text.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
[list form=ordered]
[li]*[/li]
[/list]
[p]Following paragraph text.[/p]
______________________________________
3.) Positioned within an empty List Item--if the cursor is positioned within an empty List Item which is not the only List Item within the current List, the List Item is changed to a Simple List, a new List Item is inserted as a child to the new Simple List and the cursor is positioned at the start of the new List Item. This allows the user to create a list as a child to the current list be pressing Tab on an empty List Item within the current list. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
[list]
[li]Preceeding List Item.[/li]
[li]*[/li]
[li]Following List Item.[/li]
[/list]
[p]Following paragraph text.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
[list]
[li]Preceeding List Item.[/li]
[list form=simple]
[li]*[/li]
[/list]
[li]Following List Item.[/li]
[/list]
[p]Following paragraph text.[/p]
______________________________________
4.) All other document positions--move the cursor to the start of the next element which is allowed to contain text, or to the next tab character, whichever comes first. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
[p]This is a *paragraph also.[/p]
[p]Following paragraph text.[/p]
______________________________________
Example document section after execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
[p]This is a paragraph also.[/p]
[p]*Following paragraph text.[/p]
______________________________________
Logic Flow in Response to Tab Key If the current element is a Paragraph element with no content: 1) Replace the Paragraph begin and end tags with the begin and end tags for a List element. 2) Set the current document position to the document position which is between the List element begin and end tags. 3) Set the format of the List element to "Simple" list. 4) Insert the begin and end tags for a List Item element at the current document position. 5) Set the current document position to the document position which is between the List Item element begin and end tags. Else If the current element is a List Item element with no content and there is at least one other List Item element within the parent List element: 1) Replace the List Item begin and end tags with the begin and end tags for a List element. 2) Set the current document position to the document position which is between the List element begin and end tags. 3) Set the format of the new List element to "Simple" list. 4) Insert the begin and end tags for a List Item element at the current document position. 5) Set the current document position to the document position which is between the List Item element begin and end tags. Otherwise: 1) Set the current document position to the document position of the next element begin tag or tab character, whichever comes first. Period If the current element is the only list item within a simple list and the Period key is pressed so that a period "." is typed as the second character and follows the character "1", "A" or "a"; the simple list is changed to an ordered list and the cursor is positioned at the start of the first list item. The contents of the first List Item will be removed, since the formatting of the List Item will automatically generate the ordered numbers which were just entered by the user. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
"Preceeding . . . "
[list form=simple]
[li]1*[/li] "1*"
[/list]
[p]Following paragraph text.[/p]
"Following . . . "
______________________________________
Example document section after execution of Active Intent Interpretation in response to typing a period ".":
______________________________________
[p]Preceeding paragraph text.[/p]
"Preceeding . . . "
[list form=ordered]
[li]*[/li] "1. *"
[/list]
[p]Following paragraph text.[/p]
"Following . . . "
______________________________________
In all other cases, the period is inserted into the document at the current cursor position. Logic Flow in Response to the Period Key If the current element is a List Item whose content consists of the single character "1", "A" or "a" and whose parent List element is of type Simple List consisting of only one List Item element: 1) Change the format of the parent List element from "Simple" list to "Ordered" list. 2) Delete the single character within the current List Item element. 3) Set the current document position to the document position which is between the List Item element begin and end tags. Character ")" If the current element is the only list item within a simple list and the close-parenthesis key is pressed so that a ")" character is typed as the second character and follows the character "1", "A" or "a"; the simple list is changed to an ordered list and the cursor is positioned at the start of the first list item. The contents of the first List Item will be removed, since the formatting of the List Item will automatically generate the ordered numbers which were just entered by the user. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
"Preceeding . . . "
[list form=simple]
[li]A*[/li] "A*"
[/list]
[p]Following paragraph text.[/p]
"Following . . . "
______________________________________
Example document section after execution of Active Intent Interpretation in response to typing the ")" character:
______________________________________
[p]Preceeding paragraph text.[/p]
"Preceeding . . . "
[list form=ordered]
[li]*[/li] "A.*"
[/list]
[p]Following paragraph text.[/p]
"Following . . . "
______________________________________
In all other cases, the ")" is inserted into the document at the current cursor position. Logic Flow in Response to the ")" Key If the current element is a List Item whose content consists of the single character "1", "A" or "a" and whose parent List element is of type Simple List consisting of only one List Item element: 1) Change the format of the parent List element from "Simple" list to "Ordered" list. 2) Delete the single character within the current List Item element. 3) Set the current document position to the document position which is between the List Item element begin and end tags. Characters "o", "*", "-", "+", and "]" If the current element is the only list item within a simple list and the lower case "o" key, the "*" asterisk key, the minus "-" key, the plus "+" key or the close-bracket "]" key is pressed so that the character is typed as the first character in this element, the simple list is changed to a bulleted list, the cursor is positioned at the start of the first list item. The contents of the first List Item will be removed, since the formatting of the List Item will automatically generate the bullets, the first of which was just entered by the user. Example document section before execution of Active Intent Interpretation:
______________________________________
[p]Preceeding paragraph text.[/p]
"Preceeding . . . "
[list form=simple]
[li]*[/li]
[/list]
[p]Following paragraph text.[/p]
"Following . . . "
______________________________________
Example document section after execution of Active Intent Interpretation in response to typing the minus "-" character:
______________________________________
[p]Preceeding paragraph text.[/p]
"Preceeding . . . "
[list form=unordered]
[li]*[/li] "-- *"
[/list]
[p]Following paragraph text.[/p]
"Following . . . "
______________________________________
In all other cases, the character is inserted into the document at the current cursor position. Logic Flow in Response to the "o," "*," "-," "+," or "]" Key If the current element is a List Item with no content whose parent List element is of type Simple List consisting of only one List Item element: 1) Change the format of the parent List element from "Simple" list to "Unordered" list. The resulting invention provides the ability to interpret a user's action based upon the current document position and environment, and to invoke an appropriate response to that action based on the user's intent given the current document position. Although a specific embodiment of the invention has been disclosed, it will be understood by those having skill in the art, that changes can be made to the specific embodiment without departing from the spirit and the scope of the invention. In the disclosed embodiment, a particular memory organization was described. However any memory organization is sufficient for the implementation of the invention.
|
Same subclass Same class Consider this |
||||||||||
