Universal Undo Mechanism for Client Interface Controls

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional undo techniques in client-server applications are limited, only allowing undo functionality for text fields and only while the input focus is on the text field, failing to provide comprehensive undo capabilities for various control types and after focus has shifted.

Innovation Solution

Implementing an undo mechanism that stores and restores the state of multiple control types, including text fields, radio buttons, tables, and menus, allowing undo and redo operations regardless of focus, with the ability to distinguish between data and view state changes, and extending to new controls without additional coding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional undo techniques are used, then undo functionality is available for text fields, but it is limited to text fields only and only while input focus remains on the text field

Engineering Contradiction:
Improveundo functionality availabilityVSAvoidimplementation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The undo mechanism is designed to work across multiple control types (text fields, radio buttons, tables, trays, menus) rather than being control-specific. The system captures state changes for any control type and restores them upon undo requests, making the undo functionality universal across the entire user interface without requiring separate undo implementations for each control type.

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

Solution Approach 2:

The invention introduces an intermediary undo mechanism that sits between the controls and the user. This mediator captures state changes from any control, maintains undo history, and processes undo requests independently of which control currently has focus. The intermediary layer abstracts the complexity of tracking state changes across different control types.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If undo functionality is implemented for multiple control types, then comprehensive undo capability is achieved, but the system complexity increases

Engineering Contradiction:
Improvecontrol type coverageVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

A single undo mechanism handles multiple control types by capturing their state changes through a unified approach. The system monitors state changes for any control type and stores them in a consistent manner, allowing one undo system to serve all controls without requiring separate specialized undo mechanisms for each control type.

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

Solution Approach 2:

The system creates a copy of the control state (view state and data state) before changes occur. This state snapshot is stored in the undo history, allowing the original state to be restored without affecting the current state. The copying approach enables undo functionality for any control type using the same mechanism.

Inventive Principle:
Principle #26Copying

3Ease of operation

If undo operations are allowed after focus shifts, then user convenience is improved, but the difficulty of tracking state changes increases

Engineering Contradiction:
Improveuser convenienceVSAvoidstate change tracking
Core Design Contradiction:
Ease of operationVSDifficulty of detecting and measuring

Solution Approach 1:

The undo mechanism acts as an intermediary that continuously monitors state changes regardless of which control has focus. This mediator maintains an independent record of state changes in the undo history, decoupling the undo functionality from the current focus state. The intermediary ensures that undo operations can be performed at any time without requiring the user to maintain focus on the modified control.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system maintains continuous monitoring of state changes across all controls, ensuring that undo history is always updated regardless of focus shifts. The useful action of tracking state changes continues uninterrupted as the user moves focus between controls, ensuring that undo functionality remains available and accurate at all times.

Inventive Principle:
Principle #20Continuity of useful action

4Measurement precision

If the undo mechanism distinguishes between data state and view state changes, then precision of undo operations is improved, but the complexity of state management increases

Engineering Contradiction:
Improvestate change detection precisionVSAvoidstate management complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The state management system is segmented into two distinct components: view state (visual appearance) and data state (actual data values). The undo mechanism tracks and stores these separately, allowing precise control over what is undone. This segmentation enables the system to distinguish between cosmetic changes and actual data modifications, applying undo logic appropriately to each type.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different quality levels of state information are maintained locally for different control types. The system captures both view state and data state for controls where data persistence is important, while potentially only capturing view state for purely visual controls. This local quality approach allows precise undo operations where needed without unnecessarily complicating state management for all controls uniformly.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS7818718B2Undoing user actions in a client program
Publication Date: 2010.10.19 SAP SE
  • US7818718B2 patent drawing
  • US7818718B2 patent drawing
  • US7818718B2 patent drawing

AI summary

Methods and apparatus, including computer program products, implementing techniques for undoing user actions in a client program. The techniques include displaying a user interface in a client program, the user interface having a plurality of controls, the plurality of controls including multiple types of controls, each control having a state; for each control in the plurality of controls, storing the state of the control as a first state for the control; receiving user input comprising a change to the state of a control in the plurality of controls; updating the state of the control based on the user input; storing the updated state of the control as a second state for the control; receiving user input comprising a request to undo the change; and restoring the state of the control to reflect the first state for the control.