Skip to content

Improve UX for mutex groups #407

Description

@mxgrey

#350 introduces basic support for mutex groups as a "location tag". This requires users to change anchors into locations and then add a mutex group tag to the new location in order to set mutex groups. This is many manual steps that require very targeted clicking just to add one property to an anchor, especially for the mutex group property which users will often want to apply to many elements at once.

We should consider ways to improve this experience for users. Here are some ideas to start the brainstorming:

  • Have a tool in the toolbar at the top that lets users select lanes and anchors with the mouse to apply a mutex group to. The tool can have a drop-down widget that lets the user fill in the name of the mutex group before applying it.
  • Have an + Add button in the mutex group inspector widget that enters the above lane and anchor selection mode.
  • When an anchor or lane is selected, spawn billboards next to it that users can click on to make it a location and add various location properties to it.

These ideas are not mutually exclusive, so we could do any number of them.

Here are some other technical debt and quality of life issues that currently exist for mutex groups:

  • Lanes do not give a visual indication that they have a mutex group assigned. We should update the lane shader to render padlocks somewhere along the lane, similar to the one we put on the location billboard.
  • We currently only allow one mutex group to be assigned to a location or lane. This aligns well with the current generation of Open-RMF, but we may want to support multiple mutex groups per element in the next generation.
  • The Affiliation component for lanes and locations is being used exclusively for mutex groups. This blocks us from using Affiliation for anything else for these element types. We should try to generalize the way relationships are structured in the site format.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions