Undo System with Session-Based Object and Document Reversion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing content generation and editing software programs face user frustration due to the limitation of undoing changes in a linear reverse order, which can lead to dissatisfaction as users cannot selectively undo or redo specific actions on documents or objects.
Innovation Solution
Implementing a system that supports both document-based and object-based undo operations by storing sessions in a last in first out (LIFO) manner, allowing users to selectively undo and redo actions on documents or specific objects within the content, using an undo record and a redo record with percolation of session information.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a linear reverse order undo system is used, then the system structure is simple, but the user flexibility and satisfaction deteriorate
Solution Approach 1:
The patent segments the undo history into individual session records, each representing a discrete user action or group of related actions. This segmentation allows the system to treat each session as an independent unit that can be individually managed, enabling selective undo operations while maintaining a structured organization of the undo history.
Solution Approach 2:
The patent introduces a new dimension to the traditional linear undo stack by adding session-based organization. Instead of a simple one-dimensional stack, the system creates a two-dimensional structure where sessions are organized chronologically but can also be accessed and manipulated as discrete units, allowing users to navigate and undo specific sessions rather than being forced to undo in strict reverse order.
2Ease of operation
If all changes are undone in reverse order, then the undo record management is simple, but the user control over specific actions is lost
Solution Approach 1:
The patent implements dynamic session management where the undo record can be actively manipulated. Sessions can be percolated (moved) to different positions in the undo stack based on user selection, and the system dynamically adjusts the undo history as sessions are added, removed, or repositioned. This dynamic behavior enables flexible user control while the underlying data structure manages the complexity of these operations.
Solution Approach 2:
The patent introduces session records as intermediary elements between user actions and the underlying undo stack. These session records act as mediators that group related actions, provide a layer of abstraction for user interaction, and enable selective manipulation of multiple actions as a single unit. The session structure serves as an intermediary that simplifies user control while managing the complexity of individual action tracking.
3Adaptability or versatility
If selective undo operations are enabled, then user satisfaction improves, but the system complexity increases
Solution Approach 1:
The patent implements a universal session-based undo framework that supports multiple types of undo operations through a single unified structure. The same session record system handles both document-level undo (affecting entire documents) and object-level undo (affecting specific elements), as well as selective undo of individual sessions. This multi-functional approach enables versatile undo capabilities while avoiding the need for separate specialized systems for each operation type.
Data Source
AI summary
During operation of a program, various different editing actions can be performed on data (e.g., image or video data) in a document. The data includes multiple objects, each of which is a user-selectable element of the data, such as a line, a shape, or a filter applied to the data. A record of actions taken on objects in the data is maintained, and the actions can be undone. A document-based undo operation can be performed, which undoes the last action performed in the document. An object-based undo can also be performed, which undoes the last action performed on a selected one or more objects in the document. A document-based redo operation can be performed, which redoes the last action undone in the document. An object-based redo can also be performed, which redoes the last action undone on a selected one or more objects in the document.


