Inhaltsverzeichnis
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- „Originaldaten“ in dem Sinne als sie aus der Datei geladen wurden
- hilfreich/notwendig für eine Undo-Funktion
- 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 Spektren2)
- 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)- displayType - string, 2D, B0, t
- grid - struct
- x - string, {„major“,„minor“,„off“}
- y - string, {„major“,„minor“,„off“}
- zero - boolean
- legend
- location
- highlight
- method
- value
- labels
- x
- measure
- unit
- y
- measure
- unit
- z
- measure
- unit
- limits
- auto - boolean
- x
- min
- max
- y
- min
- max
- z
- min
- max
- normalisation
- enable - boolean
- dimension - string
- type - string
- stdev - boolean
- onlyActive - boolean
- zoom
- enable - boolean
- x - vector 1×2
- y - vector 1×2
- z - vector 1×2
- sim - boolean
- system
- username - string
- platform - string
- matlab - string
- trEPR - string
- dirs
- lastLoad - string
- lastSave - string
- lastFigSave - string
- lastExport - string
- lastSnapshot - string
- messages
- debug
- level - string
- display
- level - string
- 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- wird im Statusfenster (
trEPRgui_statuswindow
) angezeigt
Datenstruktur (data)
- ein cell-Array, in dem alle Daten drinliegen
- Kontrolle über für die GUI wesentliche Aspekte (sichtbar, verändert) über die
control
-Struktur
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.