Controller Family Edit Screen - cressie176/Load64 GitHub Wiki

Primary Purpose

Create a new controller family template, or rename an existing one.

Main Screen Design

When adding a new family:

┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR                                                                      │
│  Controller Families > Add                                                   │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  ┌────────────────────────────────────────────────────────────────────────┐  │
│  │ _                                                                      │  │
│  └────────────────────────────────────────────────────────────────────────┘  │
│                                                                              │
│  [Save]   [Cancel]                                                           │
│                                                                              │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
└──────────────────────────────────────────────────────────────────────────────┘

When renaming an existing family:

┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR                                                                      │
│  Controller Family > Logitech                                                │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  ┌────────────────────────────────────────────────────────────────────────┐  │
│  │ Logitech_                                                              │  │
│  └────────────────────────────────────────────────────────────────────────┘  │
│                                                                              │
│  [Save]   [Cancel]                                                           │
│                                                                              │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
└──────────────────────────────────────────────────────────────────────────────┘

TOP BAR

Focusable: No
Interactive: No
Purpose: Identify whether a new family is being created or an existing one renamed

NAME INPUT

Type: Text input
Focusable: Yes (primary focus region)
Interactive: Yes
Purpose: Enter or edit the family name

[Save] / [Cancel]

  • [Save] validates and saves the name. On success, navigates to the Control List screen for the new family (when adding) or returns to the Controller Family List screen (when renaming).
  • [Cancel] discards changes and returns to the previous screen.

BOTTOM BAR

Focusable: No
Interactive: No
Purpose: Display validation errors

After a validation error:

├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
│  <Error message>                                                             │
└──────────────────────────────────────────────────────────────────────────────┘

Behaviour

  • When adding: input is empty on entry.
  • When renaming: input is pre-populated with the current name.
  • If validation fails, the error is shown in the bottom bar and the form remains open.

Validation Rules

Name Type Required Notes
Family Name String Yes Must not be empty and must not duplicate an existing family name
⚠️ **GitHub.com Fallback** ⚠️