#1107 closed todo (done)

Resolve UI Location

Reported by: Ichthyostega Owned by: Ichthyostega
Priority: normal Milestone: 0integration
Component: lumieraGui Keywords: gui architecture design interfaces
Sub Tickets: #1108, #1117, #1128 Parent Tickets: #1104, #1105, #1106, #1127, #1144

Description

Define a Resolver component to serve as anchor for generic UI-Coordinates.

The resolver allows to treat "UI Location" in an uniform way and abstracts away the intricacies of navigating widgets with the help of the concrete UI toolkit. It has in turn to rely on a command-and-query interface, which also needs to be defined to accomplish this task

Change history (10)

comment:1 by Ichthyostega, at 2017-10-13T20:47:27Z

blockedby: 1108

comment:2 by Ichthyostega, at 2017-10-13T22:04:34Z

blocking: 1106, 1105, 11041104, 1105, 1106
Status: newaccepted

comment:3 by Ichthyostega, at 2017-10-20T23:53:48Z

obviously, we get a trivial case, when the path is explicit,
and we need a tricky full blown resolution with backtracking
when forced to interpolate wildcards to cover a given UICoord
spec against the actual UI topology.

Do we need it?

  • actually not right now
  • but already a complete implementation of the ViewSpec concept requires such a resolution

comment:4 by Ichthyostega, at 2017-11-17T19:40:43Z

blockedby: 11081108, 1117

comment:5 by Ichthyostega, at 2017-12-17T23:57:16Z

...so this caused an extended digression, where I've investigated iterative exploring of tree-shaped structures.
As a result of #1117, we're now able to address the generic case in a clean and succinct way. I consider this digression justified, since we've encountered similar challenges several times now, and "ad hoc" solutions tend to be rather messy for that

comment:6 by Ichthyostega, at 2018-01-10T03:47:17Z

Resolution: done
Status: acceptedclosed

Based on this new framework, it was rather straight-forward to implement a full-blown resolver for partially specified UI paths,
including backtracking and best match. Since this whole topic is rather technically involved, I've added extensive unit test coverage;
to allow for such, a dummy implementation of the LocationQuery interface was used, based on a hard wired GenNode tree.
This dummy implementation was also used to verify the design of the tree navigation helper.

The actual implementation of LocationQuery will have to wait for a more complete implementation of our UI, including the
handling of panels, creation and access to view components within these.

comment:7 by Ichthyostega, at 2018-02-01T18:46:18Z

blocking: 1104, 1105, 11061104, 1105, 1106, 1127

comment:8 by Ichthyostega, at 2018-02-01T18:55:55Z

blockedby: 1108, 11171108, 1117, 1128

comment:9 by Ichthyostega, at 2018-06-17T12:51:31Z

blocking: 1104, 1105, 1106, 11271104, 1105, 1106, 1127, 1144

comment:10 by Undercover Agent, at 2025-12-25T00:00:00Z

blockedby: 1108, 1117, 1128
blocking: 1104, 1105, 1106, 1127, 1144
Parent Tickets: 1104, 1105, 1106, 1127, 1144
Sub Tickets: 1108, 1117, 1128

Migration MasterTickets ⟼ Subtickets-plugin

Note: See TracTickets for help on using tickets.