Cross-view Undo Redo for Multi-View Editing

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveease of undo/redo operationVSAvoidloss of individual edit history
Core Design Contradiction:
Ease of operationVSLoss of information

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #7Nested doll (Nesting)

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

Engineering Contradiction:
Improvepreservation of individual edit historyVSAvoidcomplexity of undo/redo system
Core Design Contradiction:
Loss of informationVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improveefficiency of view switchingVSAvoidselective undo capability
Core Design Contradiction:
ProductivityVSEase of operation

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.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7979804B1Cross-view undo/redo for multi-view editing environments
Publication Date: 2011.07.12 ADOBE INC
  • US7979804B1 patent drawing
  • US7979804B1 patent drawing
  • US7979804B1 patent drawing

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.