Interactive Constraint Conflict Resolution for UI Layouts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Designing user interfaces with constraints is challenging due to the difficulty in creating sets of constraints that are free of conflicts and redundancies, requiring expert knowledge and time-consuming trial and error to resolve conflicts at design time.

Innovation Solution

The system automatically detects incompatible constraints during design time, allowing designers to interactively explore and resolve conflicts by selecting incompatible constraints, viewing alternate layouts, and using animation to preview changes, with a heuristic constraint filter to show relevant replacement constraints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If constraint-based layout design is used to define user interface elements, then layout precision and design flexibility are improved, but constraint conflicts and redundancies increase complexity

Engineering Contradiction:
Improvelayout precisionVSAvoidconstraint conflict complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The system performs preliminary detection of constraint incompatibilities at design time before the application is executed. The constraint solver analyzes the set of constraints on user interface elements and identifies conflicts or redundancies in advance, allowing designers to resolve issues before deployment and avoiding runtime layout problems.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system provides feedback to designers by displaying visual indicators of incompatible constraints directly on the user interface elements. When a constraint conflict is detected, the system highlights the affected elements and offers suggestions for resolution, enabling designers to iteratively refine their layouts based on system feedback.

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If multiple layout constraints are applied to user interface elements, then design flexibility and adaptability are improved, but detection of incompatible constraints becomes more difficult

Engineering Contradiction:
Improvedesign flexibilityVSAvoidconstraint incompatibility detection
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The system replaces manual constraint validation with an automated constraint solver that uses computational algorithms to detect incompatibilities. The solver programmatically analyzes the mathematical relationships between constraints on user interface elements, identifying conflicts that would be difficult for designers to detect manually among multiple constraints.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The constraint solver acts as an intermediary between the designer's constraint specifications and the layout rendering system. It mediates by automatically analyzing constraint compatibility and providing guidance to designers, bridging the gap between design intent and implementable layouts.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If constraint conflicts are resolved at runtime, then layout adaptability is maintained, but user experience and responsiveness deteriorate

Engineering Contradiction:
Improvelayout adaptabilityVSAvoidlayout resolution speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The system resolves constraint conflicts at design time rather than runtime by detecting and notifying designers of incompatible constraints during the design phase. This preliminary resolution ensures that the constraint set is valid before the application is executed, eliminating the need for slow runtime conflict resolution and maintaining responsive user experience.

Inventive Principle:
Principle #10Preliminary action

4Manufacturing precision

If expert knowledge is required to create conflict-free constraint sets, then layout precision can be achieved, but ease of operation and accessibility are reduced

Engineering Contradiction:
Improvelayout precisionVSAvoidconstraint creation ease
Core Design Contradiction:
Manufacturing precisionVSEase of operation

Solution Approach 1:

The system enables self-service by automatically detecting and guiding resolution of constraint conflicts without requiring expert knowledge. The constraint solver analyzes incompatibilities and provides actionable suggestions to designers of any skill level, allowing them to create precise layouts through automated assistance rather than requiring specialized expertise.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system provides targeted feedback to designers by highlighting specific incompatible constraints and suggesting resolutions. This feedback mechanism guides designers through the constraint creation process, enabling non-experts to achieve precise layouts by following system recommendations rather than requiring advanced knowledge.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9128733B2Display and resolution of incompatible layout constraints
Publication Date: 2015.09.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9128733B2 patent drawing
  • US9128733B2 patent drawing
  • US9128733B2 patent drawing

AI summary

User interface layout is defined using constraints on the position and size of visual elements. Constraints may be explicit and/or implicit. Interactive design code helps designers create constraints without conflict or redundancy. The design code determines whether a proposed layout constraint is incompatible with established constraints, receives a designer's selection of an incompatible constraint, and displays user interface elements in previews of alternate layouts having different constraints. A designer can interactively explore possible resolutions of constraint incompatibilities as soon as the constraints are detectable. The design code animates a transition between possible layouts, highlights the incompatible constraints, and hides the compatible constraints. A subset of constraints may be shown, such as only the recently added constraints and closely related constraints.