Display and resolution of incompatible layout constraints
First Claim
1. A computer-readable storage medium configured with data and with instructions that when executed by at least one processor causes the processor(s) to perform a process of facilitating user interface design, the process comprising the steps of:
- automatically determining during a design time phase that a proposed constraint on user interface element(s) is incompatible with a set of established constraint(s);
receiving during the design time phase a designer'"'"'s selection of a selected constraint of the set of established constraint(s), the proposed constraint being determined by use of a constraint solver to be incompatible with the selected constraint, the determination made by using at least one of the following;
a linear algebraic constraint solver, a linear optimization constraint solver, a nonlinear constraint solver, a logic-based constraint solver, a graph-based constraint solver;
highlighting at least two recently added valid replacement constraints, namely, at least two constraints which (a) are capable of being replaced by the proposed constraint such that a valid layout solution is achieved, and (b) are among the ten most recently established constraints; and
displaying the user interface element(s) to the designer in at least one alternate layout scenario in which the selected constraint is removed and the proposed constraint is added.
2 Assignments
0 Petitions
Accused Products
Abstract
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.
48 Citations
20 Claims
-
1. A computer-readable storage medium configured with data and with instructions that when executed by at least one processor causes the processor(s) to perform a process of facilitating user interface design, the process comprising the steps of:
-
automatically determining during a design time phase that a proposed constraint on user interface element(s) is incompatible with a set of established constraint(s); receiving during the design time phase a designer'"'"'s selection of a selected constraint of the set of established constraint(s), the proposed constraint being determined by use of a constraint solver to be incompatible with the selected constraint, the determination made by using at least one of the following;
a linear algebraic constraint solver, a linear optimization constraint solver, a nonlinear constraint solver, a logic-based constraint solver, a graph-based constraint solver;highlighting at least two recently added valid replacement constraints, namely, at least two constraints which (a) are capable of being replaced by the proposed constraint such that a valid layout solution is achieved, and (b) are among the ten most recently established constraints; and displaying the user interface element(s) to the designer in at least one alternate layout scenario in which the selected constraint is removed and the proposed constraint is added. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A process of user interface design, the process comprising the following steps performed at design time:
-
adding user interface elements to a layout; establishing layout constraint(s) on the user interface elements; proposing another layout constraint, hereby designated the “
proposed constraint”
, which is incompatible with the established constraint(s);seeing incompatible established constraints highlighted in the layout, namely, seeing established constraints which are incompatible with the proposed constraint highlighted in the layout; seeing at least two recently added valid replacement constraints highlighted, namely, at least two constraints which (a) are capable of being replaced by the proposed constraint such that a valid solution is achieved in the layout, and (b) were each established in the last five minutes; selecting one of the incompatible established constraints, hereby designated the “
selected constraint”
;hiding compatible constraint(s) from view, thereby changing which constraint(s) are visible, not which constraints are imposed on the user interface element(s); and viewing in response to the selection an alternate layout scenario in which the selected constraint is removed and the proposed constraint is added. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A computer system comprising:
-
a logical processor; a memory in operable communication with the logical processor; user interface elements residing in the memory; constraints on the user interface elements, also residing in the memory; an interactive design code residing in the memory and having data and instructions configured to cause processor(s) to determine whether a proposed constraint on user interface element(s) is incompatible with a set of established constraint(s), to receive a designer'"'"'s selection of an incompatible established constraint, and to display the user interface element(s) to the designer in at least one alternate layout scenario in which the selected incompatible established constraint is removed and the proposed constraint is added, and to highlight recently added valid replacement constraints, namely, constraints which are capable of being replaced by the proposed constraint such that a valid layout solution is achieved, and wherein each highlighted recently added valid replacement constraint X also satisfies at least one of the following criteria;
X is among the ten most recently established constraints, X became an established constraint within the last five minutes, or X became an established constraint after the most recent time an alternate layout scenario was saved;wherein the design code includes at least one of the following;
a linear algebraic constraint solver, a linear optimization constraint solver, a nonlinear constraint solver, a logic-based constraint solver, a graph-based constraint solver. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification