Die Profile

Beispielmodul: hellotypes, Property editabledata.

hasprofile:true auf einer Property ist der ertragreichste Mechanismus des Frameworks: ein einziges Boolean, und die Property gewinnt das Speichern/Laden einer benannten Konfiguration in der Datenbank, ohne eine einzige Zeile Code zu schreiben.

"editabledata": {
  "permission": 2,
  "hasprofile": true,
  "e": { "..." }
}

Was dieses Flag auslöst, vollständig automatisch

  • Speichern/Laden: ein Client sendet PS/PL mit einem Profilnamen; der Server baut einen auf die hasprofile:true-Properties beschränkten Snapshot und schreibt ihn in die Datenbank (oder liest ihn wieder ein). Bereits generisch vom Framework gehandhabt — nichts im Modul zu schreiben.
  • Auf der Oberfläche: die “Einstellungen”-Box eines Moduls listet nur die hasprofile:true-Properties auf; die Lade-/Speicherleiste für Profile erscheint nur, wenn mindestens eine davon existiert.
  • Zwei Wertelisten, ebenfalls automatisch: jedes Modul hat seine eigene Liste gespeicherter Profile (zu Beginn leer, bei jedem Speichervorgang aktualisiert), und der Controller führt zusätzlich eine nach Modultyp aggregierte Liste, die vom Profil-Auswähler der Oberfläche genutzt wird.
Fast alle realen Module nutzen es

Das ist der Standardmechanismus für jede Konfiguration, die der Benutzer benennen, wiederfinden und neu laden können soll — Kameraeinstellungen, Sequenzparameter, Autofokus-Profil… Ein Modul, das persönliche Einstellungen anbietet, sollte fast immer mindestens eine hasprofile:true-Property haben.