# US 12,007,843 B2 · Configurable entity-based undo and redo operations

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,007,843 B2
- Document ID: US12007843B2
- Status: Granted
- Kind: B2
- Application number: 17/903,801
- Filed: 2022-09-06
- Published: 2024-03-07
- Granted: 2024-06-11
- Earliest claimed: 2022-09-06
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Satish Chandra Oruganti; Ganesh Kumar Gupta; Michael Patrick Rodgers
- Web page: https://patentgrep.com/patent/US12007843B2

## CPC

- G06F 9/44: Arrangements for executing specific programs
- G06F 11/1446: Point-in-time backing up or restoration of persistent data
- G06F 3/0481: based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F 3/0482: Interaction with lists of selectable items, e.g. menus
- G06F 3/04842: Selection of displayed objects or displayed text elements (G06F3/0482 takes precedence)
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 11/1471: involving logging of persistent data for recovery
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques for UNDO and REDO operations in a computer-user interface are disclosed. The techniques enables users to configure entities for UNDO and REDO operations. The techniques also enable users to roll back individual entity to an immediate previous state in one UNDO operation and subsequently to the other previous states. Other entities are not affected by the UNDO operations to the entity.

## Claims

### Claim 1

A non-transitory computer readable storage medium comprising instructions which, when executed by one or more hardware processors, causes performance of operations comprising:
logging, by an application, a plurality of operations that have been executed by the application, the plurality of operations being executed on at least one of a plurality of entities, the plurality of operations comprising:
a first operation executed, by the application, on a first entity of a plurality of entities; and
a second operation executed, by the application, on a second entity of the plurality of entities, wherein the second operation was executed subsequent to the first operation;
receiving, by the application, a first instruction that (a) specifies the first entity and (b) includes a command to perform a first undo operation in relation to the first entity; and
based on (a) the first instruction specifying the first entity and (b) including the command to perform the first undo operation in relation to the first entity:
identifying the first operation, stored in the operation log in association with the first entity, for performing the first undo operation; and
executing the first undo operation to undo the first operation without undoing the second operation that was executed by the application subsequent to the first operation.

### Claim 2 (depends on 1)

The medium of claim 1, wherein the first operation and the second operation are logged by the application in the same operation log.

### Claim 3 (depends on 1)

The medium of claim 1, wherein the first operation and the second operation are logged by the application in different stacks of the same operation log.

### Claim 4 (depends on 1)

The medium of claim 1, wherein executing the undo operation comprises:
searching for a latest-executed operation on the first entity in a set of log entries that include operations executed on the first entity and the second entity in a chronological order.

### Claim 5 (depends on 1)

The medium of claim 1, wherein:
prior to the logging the first operation, receiving by the application via a first interface a first command to execute the first operation, wherein the application executes the first operation in response to the first command; and
prior to logging the second operation, receiving by the application via the same first interface a second command to execute the second operation, wherein the application executes the second operation in response to the second command.

### Claim 6 (depends on 5)

The medium of claim 5, wherein the first command and the second command correspond to a same command with different parameter values corresponding respectively to the first entity and the second entity.

### Claim 7 (depends on 1)

The medium of claim 1, wherein:
the first instruction specifies the first operation to be undone; and
the operations further comprise:
based on (a) the first instruction and (b) the first operation and the second operation being executed by the application on different entities:
identifying a third operation, from the operation log, which was executed on the first entity and performed subsequent to the first operation on the first entity; and
executing a second undo operation to undo the third operation.

### Claim 8 (depends on 1)

The medium of claim 1, wherein the application maintains a plurality of operation logs respectively associated with the plurality of entities, and wherein maintaining the plurality of operations comprises:
responsive to detecting execution of each particular operation of the plurality of operations:
identifying a particular entity of the plurality of entities on which the particular operation has been executed; and
storing the particular operation in an operation log, of the plurality of operations logs, corresponding to the particular entity.

### Claim 9 (depends on 1)

The medium of claim 1, wherein the application maintains a single operation log to store operations executed on any of the plurality of entities, wherein maintaining the plurality of operations comprises:
responsive to detecting execution of each particular operation of the plurality of operations:
identifying a particular entity of the plurality of entities on which the particular operation has been executed; and
storing the particular operation, in the single operation log, with an identification of the particular entity on which the particular operation was executed.

### Claim 10 (depends on 1)

The medium of claim 1, wherein the operations further comprise:
determining, by the application, that a candidate operation executed by the application, wherein the candidate operation is not executed on any of the plurality of entities; and
responsive to determining that the candidate operation has not been executed on any of the plurality of entities, refraining from logging the candidate operation in a same manner as the plurality of operations.

### Claim 11 (depends on 1)

The medium of claim 1, wherein the plurality of entities correspond respectively to a plurality of sections of a same file.

### Claim 12 (depends on 1)

The medium of claim 1, wherein the plurality of entities correspond respectively to a plurality of files that are modified using the same application.

### Claim 13

A method comprising:
logging, by an application, a plurality of operations that have been executed by the application, the plurality of operations being executed on at least one of a plurality of entities, the plurality of operations comprising:
a first operation executed, by the application, on a first entity of a plurality of entities; and
a second operation executed, by the application, on a second entity of the plurality of entities, wherein the second operation was executed subsequent to the first operation;
receiving, by the application, a first instruction that (a) specifies the first entity and (b) includes a command to perform a first undo operation in relation to the first entity; and
based on (a) the first instruction specifying the first entity and (b) including the command to perform the first undo operation in relation to the first entity:
identifying the first operation, stored in the operation log in association with the first entity, for performing the first undo operation; and
executing the first undo operation to undo the first operation without undoing the second operation that was executed by the application subsequent to the first operation,
wherein the method is performed by at least one device comprising a hardware computer processor.

### Claim 14 (depends on 13)

The method of claim 13, wherein the first operation and the second operation are logged by the application in the same operation log.

### Claim 15 (depends on 13)

The method of claim 13, wherein the first operation and the second operation are logged by the application in different stacks of the same operation log.

### Claim 16 (depends on 13)

The method of claim 13, wherein executing the undo operation comprises:
searching for a latest-executed operation on the first entity in a set of log entries that include operations executed on the first entity and the second entity in a chronological order.

### Claim 17 (depends on 13)

The method of claim 13, wherein:
prior to the logging the first operation, receiving by the application via a first interface a first command to execute the first operation, wherein the application executes the first operation in response to the first command; and
prior to logging the second operation, receiving by the application via the same first interface a second command to execute the second operation, wherein the application executes the second operation in response to the second command.

### Claim 18 (depends on 17)

The method of claim 17, wherein the first command and the second command correspond to a same command with different parameter values corresponding respectively to the first entity and the second entity.

### Claim 19 (depends on 13)

The method of claim 13, wherein:
the first instruction specifies the first operation to be undone; and
the operations further comprise:
based on (a) the first instruction and (b) the first operation and the second operation being executed by the application on different entities:
identifying a third operation, from the operation log, which was executed on the first entity and performed subsequent to the first operation on the first entity; and
executing a second undo operation to undo the third operation.

### Claim 20 (depends on 13)

The method of claim 13, wherein the application maintains a plurality of operation logs respectively associated with the plurality of entities, and wherein maintaining the plurality of operations comprises:
responsive to detecting execution of each particular operation of the plurality of operations:
identifying a particular entity of the plurality of entities on which the particular operation has been executed; and
storing the particular operation in an operation log, of the plurality of operations logs, corresponding to the particular entity.

### Claim 21 (depends on 13)

The method of claim 13, wherein the application maintains a single operation log to store operations executed on any of the plurality of entities, wherein maintaining the plurality of operations comprises:
responsive to detecting execution of each particular operation of the plurality of operations:
identifying a particular entity of the plurality of entities on which the particular operation has been executed; and
storing the particular operation, in the single operation log, with an identification of the particular entity on which the particular operation was executed.

### Claim 22 (depends on 13)

The method of claim 13, wherein the operations further comprise:
determining, by the application, that a candidate operation executed by the application, wherein the candidate operation is not executed on any of the plurality of entities; and
responsive to determining that the candidate operation has not been executed on any of the plurality of entities, refraining from logging the candidate operation in a same manner as the plurality of operations.

### Claim 23 (depends on 13)

The method of claim 13, wherein the plurality of entities correspond respectively to a plurality of sections of a same file.

### Claim 24 (depends on 13)

The method of claim 13, wherein the plurality of entities correspond respectively to a plurality of files that are modified using the same application.

### Claim 25

A system comprising a hardware processor;
a non-transitory computer readable storage medium comprising program instructions which, when executed by the hardware processors, causes performance of operations comprising:
logging, by an application, a plurality of operations that have been executed by the application, the plurality of operations being executed on at least one of a plurality of entities, the plurality of operations comprising:
a first operation executed, by the application, on a first entity of a plurality of entities; and
a second operation executed, by the application, on a second entity of the plurality of entities, wherein the second operation was executed subsequent to the first operation;
receiving, by the application, a first instruction that (a) specifies the first entity and (b) includes a command to perform a first undo operation in relation to the first entity; and
based on (a) the first instruction specifying the first entity and (b) including the command to perform the first undo operation in relation to the first entity:
identifying the first operation, stored in the operation log in association with the first entity, for performing the first undo operation; and
executing the first undo operation to undo the first operation without undoing the second operation that was executed by the application subsequent to the first operation.

### Claim 26 (depends on 25)

The system of claim 25, wherein the first operation and the second operation are logged by the application in the same operation log.

### Claim 27 (depends on 25)

The system of claim 25, wherein the first operation and the second operation are logged by the application in different stacks of the same operation log.

### Claim 28 (depends on 25)

The system of claim 25, wherein executing the undo operation comprises:
searching for a latest-executed operation on the first entity in a set of log entries that include operations executed on the first entity and the second entity in a chronological order.

### Claim 29 (depends on 25)

The system of claim 25, wherein:
prior to the logging the first operation, receiving by the application via a first interface a first command to execute the first operation, wherein the application executes the first operation in response to the first command; and
prior to logging the second operation, receiving by the application via the same first interface a second command to execute the second operation, wherein the application executes the second operation in response to the second command.

### Claim 30 (depends on 29)

The system of claim 29, wherein the first command and the second command correspond to a same command with different parameter values corresponding respectively to the first entity and the second entity.

### Claim 31 (depends on 25)

The system of claim 25, wherein:
the first instruction specifies the first operation to be undone; and
the operations further comprise:
based on (a) the first instruction and (b) the first operation and the second operation being executed by the application on different entities:
identifying a third operation, from the operation log, which was executed on the first entity and performed subsequent to the first operation on the first entity; and
executing a second undo operation to undo the third operation.

### Claim 32 (depends on 25)

The system of claim 25, wherein the application maintains a plurality of operation logs respectively associated with the plurality of entities, and wherein maintaining the plurality of operations comprises:
responsive to detecting execution of each particular operation of the plurality of operations:
identifying a particular entity of the plurality of entities on which the particular operation has been executed; and
storing the particular operation in an operation log, of the plurality of operations logs, corresponding to the particular entity.

### Claim 33 (depends on 25)

The system of claim 25, wherein the application maintains a single operation log to store operations executed on any of the plurality of entities, wherein maintaining the plurality of operations comprises:
responsive to detecting execution of each particular operation of the plurality of operations:
identifying a particular entity of the plurality of entities on which the particular operation has been executed; and
storing the particular operation, in the single operation log, with an identification of the particular entity on which the particular operation was executed.

### Claim 34 (depends on 25)

The system of claim 25, wherein the operations further comprise:
determining, by the application, that a candidate operation executed by the application, wherein the candidate operation is not executed on any of the plurality of entities; and
responsive to determining that the candidate operation has not been executed on any of the plurality of entities, refraining from logging the candidate operation in a same manner as the plurality of operations.

### Claim 35 (depends on 25)

The system of claim 25, wherein the plurality of entities correspond respectively to a plurality of sections of a same file.

### Claim 36 (depends on 25)

The system of claim 25, wherein the plurality of entities correspond respectively to a plurality of files that are modified using the same application.
