Cross-view Undo Redo for Multi-View Editing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing multi-view editing environments lose individual edit history when switching between code and design views, as they typically merge or dispose of the undo/redo stacks, making it difficult for users to selectively undo or redo edits made in the code view.
Innovation Solution
Implementing a system where each edit in the code view is represented as an object that can be individually managed and executed within the design view's undo/redo stacks, allowing for the preservation and re-execution of specific code view edits when switching between views.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If the editing environment merges or disposes of undo/redo stacks when switching between code view and design view, then the system complexity is reduced and operation is simplified, but the individual edit history is lost and users cannot selectively undo or redo specific edits
Solution Approach 1:
The patent segments the undo/redo functionality by maintaining separate undo stacks for code view and design view, allowing independent tracking of edits in each view. This segmentation enables selective undo/redo operations without merging the stacks, thus preserving individual edit history while maintaining ease of operation in each specific view.
Solution Approach 2:
The patent implements a nested structure where the overall undo/redo system contains both code view undo stack and design view undo stack as nested components. Each view's undo stack is nested within the broader editing environment, allowing the system to maintain multiple levels of undo history simultaneously without increasing operational complexity for the user.
2Loss of information
If the editing environment maintains separate undo/redo stacks for code view and design view, then individual edit history is preserved, but the system complexity increases
Solution Approach 1:
The patent applies universality by creating a unified undo/redo framework that handles both code view and design view operations through a common interface and data structure. This multi-functional system manages multiple undo stacks using the same underlying mechanisms, thereby preserving individual edit history without proportionally increasing system complexity.
3Productivity
If the editing environment converts multiple code view edits into a single design view undo stack entry, then synchronization between views is simplified, but the ability to selectively undo individual code view edits is lost
Solution Approach 1:
The patent implements dynamic behavior where the undo stack entries adapt based on the current view. When in code view, individual code edits are tracked separately in the code view undo stack. When switching to design view, the system dynamically presents appropriate undo options, allowing users to selectively undo individual code edits even after view switching, thus maintaining both efficiency and selective undo capability.
Data Source
AI summary
An editing environment is disclosed having both a design and code views, each with its own undo/redo stacks. The editing environment includes logic to form an object that encapsulates the edits and changes made during a code view editing session. The object is associated or pointed to an element in the design view undo/redo stack. When the editing environment receives an undo/redo command in which a code view edit block is to be undone, the design view takes the specific object, which is then translated back into the proper format for code view execution. The code view then executes the undo/redo entries and returns any remaining code view edits that were not undone or redone, to the design view to place back into a code view edit block in either of the design view undo/redo stacks, along with the new related object.


