Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:software:matlab:trepr:dev:gui-datenablage

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.

1)
Dieselben Parameter können noch einmal unter „control“ auftauchen, der Unterschied besteht darin, daß in „configure“ die Konfigurations- und damit Defaulteinstellungen abgelegt sind (wie sie evtl. einmal aus einer Konfigdatei geladen werden), in „control“ allerdings die gerade real verwendeten Werte.
2)
Wenn hier etwas steht, dann sollte die GUI vor dem Beenden nachfragen, ob der Nutzer die Modifikationen speichern möchte. Es wäre sogar möglich, hier auf Wunsch direkt anzuzeigen, was mit den Spektren alles gemacht wurde.
de/software/matlab/trepr/dev/gui-datenablage.txt · Zuletzt geändert: 2020/09/30 21:35 von 127.0.0.1