Skip to main content

UI data-driven, pages, tables et prefabs By Module

Rôle

L'UI By Module est générée à partir de module_pages.json, des pages_settings et des données runtime du TeamModuleTypeData. La structure visuelle n'est donc pas entièrement codée en dur dans les prefabs.

Hiérarchie UI

flowchart TD
M[TeamModuleControl] --> PAGE[ModulePageControlBase]
PAGE --> TABLE[ModulePageTableControlBase]
TABLE --> SEC[Section / EditableSection]
SEC --> ROW[Row / EditableRow]
ROW --> CELL[CellControlBase]
CELL --> INPUT[InputControlBase]
INPUT --> TEXT[TextInput]
INPUT --> DROP[Dropdown / AutoComplete]
INPUT --> CHECK[Checkbox / Toggle]

Classes structurantes

ResponsabilitéClasses
Liste/modulesTeamModuleListControl, TeamModuleItemControl, TeamModuleControl, TeamModuleMenuControl
PagesModulePageControlBase, ModulePageInputsControl, ModulePageTableControl*
Tables data-drivenDataDrivenTableControl, DataDrivenSectionControl, DataDrivenRowControl, DataDrivenInputsControl
Rows/sections dynamiquesEditableRowControlBase, EditableSectionControlBase, CustomRowControl
InputsInputControlBase, InputCellControl, TextInputControl, DropdownInputControl, autocomplete, checkbox
CorrectionCorrectedTeamModuleWindowControl, ModuleErrorsPopupControl, CellErrorButtonControl

Types de pages

Le modèle Unity expose plusieurs classes de données : ModulePageDataInputs, ModulePageDataTable, ModulePageDataTableWithInputs, ModulePageDataTableWithDropdown, etc. Le type configuré dans la static data détermine quel contrôle Unity est utilisé.

Pages Accounting spécialisées

En plus du moteur générique, le dossier Assets/Src/UI/SimByModule/UI/ contient les vues spécialisées : trial balance, balance sheet, income statement, statement of equity, bank reconciliation, formulaires de taxes, reports d'employés, immobilisations, contrats, bills et autres documents.

Frontend JSON → runtime

flowchart LR
MP[module_pages.json] --> SD[StaticDataByModule]
PS[pages_settings.json] --> SD
SD --> PC[ModulePageControl]
TM[TeamModuleTypeData.pagesData] --> PC
PC --> INPUTS[Rows / Cells / Inputs]
INPUTS --> CTRL[TeamByModuleController]
CTRL --> SERVER[Custom Command]

Quand modifier quoi

  • Structure d'une page : module_pages.json.
  • Comportement dynamique/validation : pages_settings.json et definitions associées.
  • Nouveau rendu visuel réutilisable : classe/prefab sous SimByModule/UI.
  • Donnée persistée : modèle DataDriven* + custom command serveur.
  • Nouvelle page Accounting réellement spécialisée : ajouter le contrôle dédié et le brancher dans le système de page correspondant.