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/PLmit einem Profilnamen; der Server baut einen auf diehasprofile: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.