GUI Builder Automates Event-Driven Code Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developing Graphical User Interfaces (GUIs) requires significant manual coding to manage state changes and event-driven interactions, leading to increased programming errors and development time.

Innovation Solution

A GUI development environment with a GUI builder and property interface that allows developers to visually create and bind interface components, automatically generating program code to effectuate property changes in response to detectable events during execution, minimizing manual coding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual coding is used to manage state changes and event-driven interactions in GUIs, then developers have full control over the code, but programming errors increase and development time increases

Engineering Contradiction:
Improveprogramming errorsVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces a GUI development environment as an intermediary between the developer and the final GUI application. This environment includes a visual editor that automatically generates event-driven code and state management code, reducing manual coding requirements while maintaining developer control through the visual interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary actions by automatically generating boilerplate code for event handling and state management before the developer needs to write it manually. The visual editor pre-configures event listeners, property bindings, and state change handlers, reducing both errors and development time.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If manual coding is used to create event-driven GUIs, then developers can implement complex interactions, but development time increases

Engineering Contradiction:
Improveevent-driven interactionsVSAvoiddevelopment time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The GUI development environment provides self-service by automatically generating the necessary event-driven code structures. The visual editor detects events and automatically creates the corresponding handlers and property bindings, allowing developers to implement complex interactions without manually writing repetitive code.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary action by pre-configuring event-driven frameworks and automatically generating event handler templates. This preliminary setup enables developers to focus on implementing complex interactions rather than writing basic event handling code from scratch.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If visual GUI builders are used to create interfaces, then development time is reduced, but control over generated code decreases

Engineering Contradiction:
Improvedevelopment timeVSAvoidcode management complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The GUI development environment implements feedback mechanisms that allow developers to review, edit, and debug the automatically generated code. The visual editor provides feedback on the generated code structure and allows iterative refinement, maintaining developer control while reducing development time.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system dynamically adapts between visual programming and code-based programming modes. Developers can switch between the visual editor for rapid interface creation and the code editor for fine-grained control, allowing the tool to adapt to different development needs and maintain both efficiency and control.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8943424B2Dynamic interface component control support
Publication Date: 2015.01.27 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8943424B2 patent drawing
  • US8943424B2 patent drawing
  • US8943424B2 patent drawing

AI summary

A system, computer program and method for developing a graphical user interface (GUI) in a computer program. The invention allows developers to control the properties of interface components according to the state of a program during execution. According to the invention, a GUI development environment may be configured to provide a GUI builder for creating the GUI, display an interface component with at least one interface component property to be instantiated in the GUI, display a property interface to input at least one value for the interface component property in response to an event detectable by the computer program during GUI program execution, and automatically generate GUI program code effectuating the value for the interface component property in response to the event detectable by the computer program during GUI program execution.