Daten innerhalb der GUI speichern und verwalten
<note important>Diese Datenmodell ist nach wie vor im Laufe der weiteren Entwicklung Änderungen unterworfen, auch wenn es sich mittlerweile eher um Ergänzungen denn um grundlegende Umgestaltungen handelt.</note>
Idee: „application data“ von Matlab für diesen Zweck verwenden
Routinen:
setappdata
getappdata
isappdata
rmappdata
Wird normalerweise mit der obersten „figure“ verknüpft, bei „nested functions“ zumindest innerhalb der GUI von allen Funktionen zugreifbar.
Codeschnipsel
Setzen der (noch leeren) appdata-Strukturen in der OpeningFcn
:
% Set application data
data = struct();
configuration = struct();
setappdata(handles.figure1,'data',data);
setappdata(handles.figure1,'configuration',configuration);
Abfragen der appdata aus dem Matlab-Workspace:
h = trEPR;
appdata = getappdata(h);
appdata.data
appdata.configuration
Hinweis: In der applicationdata-Struktur ist noch eine Reihe anderer (Matlab-interner) Dinge gespeichert.
Struktur
data - cell-Array
speichert die Spektren nebst zugehörigen Informationen
origdata - cell-Array
speichert die Spektren nebst zugehörigen Informationen
configuration - struct
speichert die aktuellen Konfigurationseinstellungen1)
display - struct
highlight - struct
method - string (color, linewidth, marker, style, none)
Methode, wie das aktuelle Spektrum in der Anzeige hervorgehoben wird
value - string/scalar/vector (je nach dem Wert von „method“)
control - struct
speichert für den aktuellen Betriebsablauf wichtige Informationen, z.B. das aktuell gewählte Spektrum
data - struct, Informationen über die gegenwärtig geladenen Spektren
active - integer, Referenz auf data (wenn cell-Array)
visible - vector, enthält die Positionen im cell-array data
für die sichtbaren Spektren
invisible - s.o. bei „visible“, wäre eigentlich nicht notwendig, erleichtert aber den Zugriff
modified - s.o. bei „visible“, Referenz auf die nach dem Laden modifizierten Spektren
2)
missing - s.o. bei „visible“, Referenz auf die Spektren, bei denen unmittelbar nach dem Laden noch Parameter fehlen, die bei späteren Operationen von entscheidender Bedeutung sind
measure - struct
point
x1val
y1val
x1ind
y1ind
axis - struct
Informationen über das „axis-Handle“ (Anzeige der Spektren)
system
username - string
platform - string
matlab - string
trEPR - string
dirs
lastLoad - string
lastSave - string
lastFigSave - string
lastExport - string
lastSnapshot - string
messages
mode - string
cmd
history - cell array
historypos - scalar
historysave - boolean
historyfile - string
format
name - string
version - string
status
code - string
messages - cell array
Statusmeldungen seit dem Start der GUI
Datenstruktur (data)
Rückgabe der generalisierten Lesefunktion, mit Erweiterungen für das Handling u.a. der Bearbeitungshistorie innerhalb der GUI
Für eine Beschreibung der Felder siehe die Dokumentation des Toolbox-Datenformates.