Dynamic Console Menu Generation via External Definition Files

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing character-based data processing systems have static, hard-coded menus that are application-dependent and require extensive editing and recompilation for changes, limiting flexibility and compatibility with different applications.

Innovation Solution

A method for dynamically generating console menus that allows user interaction and modification without editing software code, enabling application-independent menus that can interact with external applications through listeners and a configuration tool, allowing for real-time changes and sub-menu management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If menus are hard-coded into application software, then menu functionality is stable and reliable, but any changes require editing and recompiling the entire application, which is time-consuming and expensive

Engineering Contradiction:
Improvemenu functionality stabilityVSAvoidtime for editing and recompiling application
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the menu system from the application code by introducing a separate menu definition file format. Menus are defined externally in a structured file format rather than being hard-coded, allowing the menu portion to be independently modified without touching the application binary. The application loader reads these external menu definitions and constructs the menu system at runtime, enabling changes to menus without recompiling the entire application.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts the menu definition data from the application code and places it in separate external files. This extraction allows menu content to be independently managed, edited, and updated without affecting the application executable. The menu definitions are stored in separate files that can be modified by end users or developers without requiring access to or modification of the compiled application code.

Inventive Principle:
Principle #2Taking out (Extraction)

2Stability of the object's composition

If menus are hard-coded into application software, then menu structure is fixed and reliable, but adapting menus to different applications or making modifications is difficult and expensive

Engineering Contradiction:
Improvemenu structure stabilityVSAvoidmenu adaptability to different applications
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal menu definition file format that can be used across different applications. The structured format with standardized elements (menu items, submenus, separators, indentation levels) allows the same file format to serve multiple applications and purposes. This universal format enables menus to be adapted to different applications without creating application-specific formats, providing both stability through consistency and versatility through broad applicability.

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

Solution Approach 2:

The patent introduces dynamic menu generation by loading menu definitions from external files at runtime rather than using fixed hard-coded structures. The menu system can dynamically construct menus based on the loaded definitions, allowing menu structures to be modified, added, or removed by simply changing the external definition files. This dynamic approach maintains structural stability through consistent formatting while enabling high adaptability to different applications and requirements.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If complex menus are hard-coded into application code, then menu functionality is complete, but the complexity of the application code increases and maintenance becomes more difficult

Engineering Contradiction:
Improvemenu functionality completenessVSAvoidapplication code complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts complex menu definition data from the application code and stores it in external files. This extraction removes the complexity of managing complex menu structures from the application binary, maintaining only a simple loader and renderer. The complex menu configurations, hierarchies, and structures are externalized, allowing complete menu functionality to be achieved without increasing application code complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent uses template-based menu definition files that can be copied and reused across different applications and contexts. Instead of hard-coding complex menu logic in each application, standardized menu definition templates are created once and can be replicated, modified, and reused. This copying approach provides complete menu functionality through reusable templates while keeping application code simple and maintenance-free.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS7523404B2System and method for generating complex character-based computing interfaces
Publication Date: 2009.04.21 SAP SE
  • US7523404B2 patent drawing
  • US7523404B2 patent drawing
  • US7523404B2 patent drawing

AI summary

A method for dynamically generating a console menu is described that involves displaying a console menu to a user that provides one or more menu options. Each of the one or more menu options is coupled to one or more respective console listeners such that there is at least one listener per menu option amongst the menu options. The method further includes waiting for the user to choose a selection from the menu options. Once a selection of a particular menu option is made, a least one of its associated one or more console listeners is notified. A new console menu is dynamically generated for the user based on the selection chosen by said user. The new console menu provides a new set of one or more options which may be selected by said user.