function varargout = Programm_GUI_Meta(varargin)
% PROGRAMM_GUI_META MATLAB code for Programm_GUI_Meta.fig
%      PROGRAMM_GUI_META, by itself, creates a new PROGRAMM_GUI_META or raises the existing
%      singleton*.
%
%      H = PROGRAMM_GUI_META returns the handle to a new PROGRAMM_GUI_META or the handle to
%      the existing singleton*.
%
%      PROGRAMM_GUI_META('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in PROGRAMM_GUI_META.M with the given input arguments.
%
%      PROGRAMM_GUI_META('Property','Value',...) creates a new PROGRAMM_GUI_META or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before Programm_GUI_Meta_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to Programm_GUI_Meta_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help Programm_GUI_Meta

% Last Modified by GUIDE v2.5 12-Feb-2014 19:46:04

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @Programm_GUI_Meta_OpeningFcn, ...
                   'gui_OutputFcn',  @Programm_GUI_Meta_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before Programm_GUI_Meta is made visible.
function Programm_GUI_Meta_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to Programm_GUI_Meta (see VARARGIN)

% Choose default command line output for Programm_GUI_Meta
handles.output = hObject;

GebTag = 1:31;
set(handles.GebTag, 'String', GebTag);

GebMonat = 'Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember';
set(handles.GebMonat, 'String', GebMonat);

GebJahr = 1900:2014;
set(handles.GebJahr, 'String', GebJahr);

Messnummer = 001:100;
set (handles.Messnummer, 'String', Messnummer);

MessTag = 1:31;
set(handles.MessTag, 'String', MessTag);

MessMonat = 'Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember';
set(handles.MessMonat, 'String', MessMonat);

MessJahr = 2010:2014;
set(handles.MessJahr, 'String', MessJahr);


% Update handles structure
guidata(hObject, handles);

% UIWAIT makes Programm_GUI_Meta wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = Programm_GUI_Meta_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% EditBox Nachname
function Nachname_Callback(hObject, eventdata, handles)
Nachname = get(hObject, 'String');
handles.Nachname = Nachname;
guidata(hObject, handles);


% --- Executes during object creation, after setting all properties.
function Nachname_CreateFcn(hObject, eventdata, handles)
% hObject    handle to Nachname (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% EditBox Vorname
function Vorname_Callback(hObject, eventdata, handles)
Vorname = get(hObject, 'String');
handles.Vorname = Vorname;
guidata(hObject, handles);


function Vorname_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% EditBox Adresse
function Adresse_Callback(hObject, eventdata, handles)
Adresse = get(hObject, 'String');
handles.Adresse = Adresse;
guidata(hObject, handles);


function Adresse_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% EditBox Telefonnummer
function Telefonnummer_Callback(hObject, eventdata, handles)
Telefonnummer = get(hObject, 'String');
handles.Telefonnummer = Telefonnummer;
guidata(hObject, handles);


function Telefonnummer_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% EditBox Mailadresse
function Mailadresse_Callback(hObject, eventdata, handles)
Mailadresse = get(hObject, 'String');
handles.Mailadresse = Mailadresse;
guidata(hObject, handles);


function Mailadresse_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% EditBox Groesse
function Groesse_Callback(hObject, eventdata, handles)
Groesse = get(hObject, 'String');
Groesse = str2double(Groesse);
handles.Groesse = Groesse;
guidata(hObject, handles);


function Groesse_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% EditBox Gewicht
function Gewicht_Callback(hObject, eventdata, handles)

Gewicht = get(hObject, 'String');
Gewicht = str2double(Gewicht);
handles.Gewicht = Gewicht;
guidata(hObject, handles);


function Gewicht_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% EditBox Schuhgroesse
function Schuhgroesse_Callback(hObject, eventdata, handles)

Schuhgroesse = get(hObject, 'String');
Schuhgroesse = str2double(Schuhgroesse);
handles.Schuhgroesse = Schuhgroesse;
guidata(hObject, handles);


function Schuhgroesse_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% EditBox Beinlaenge
function Beinlaenge_Callback(hObject, eventdata, handles)
Beinlaenge = get(hObject, 'String');
Beinlaenge = str2double(Beinlaenge);
handles.Beinlaenge = Beinlaenge;
guidata(hObject, handles);


function Beinlaenge_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



% PopupMenu GebTag
function GebTag_Callback(hObject, eventdata, handles)
contents = cellstr(get(hObject,'String'));
GebTag = contents{get(hObject,'Value')};
GebTag = str2double(GebTag);
handles.Geburtsdatum.GebTag = GebTag;
guidata(hObject, handles);


function GebTag_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



% Popupmenu GebMonat
function GebMonat_Callback(hObject, eventdata, handles)
contents = cellstr(get(hObject,'String'));
GebMonat = contents{get(hObject,'Value')};

if strcmp(GebMonat, 'Januar') == 1    
    GebMonat = 1;    
elseif strcmp(GebMonat, 'Februar') == 1    
    GebMonat = 2;    
elseif strcmp(GebMonat, 'März') == 1    
    GebMonat = 3;    
elseif strcmp(GebMonat, 'April') == 1    
    GebMonat = 4;    
elseif strcmp(GebMonat, 'Mai') == 1    
    GebMonat = 5;    
elseif strcmp(GebMonat, 'Juni') == 1    
    GebMonat = 6;    
elseif strcmp(GebMonat, 'Juli') == 1    
    GebMonat = 7;    
elseif strcmp(GebMonat, 'August') == 1    
    GebMonat = 8;    
elseif strcmp(GebMonat, 'September') == 1
    GebMonat = 9;    
elseif strcmp(GebMonat, 'Oktober') == 1    
    GebMonat = 10; 
elseif strcmp(GebMonat, 'November') == 1
    GebMonat = 11;
elseif strcmp(GebMonat, 'Dezember') == 1
    GebMonat = 12; 
end

handles.Geburtsdatum.GebMonat = GebMonat;
guidata(hObject, handles);


function GebMonat_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



% Popupmenu GebJahr
function GebJahr_Callback(hObject, eventdata, handles)
contents = cellstr(get(hObject,'String'));
GebJahr = contents{get(hObject,'Value')};
GebJahr = str2double(GebJahr);
handles.Geburtsdatum.GebJahr = GebJahr;
guidata(hObject, handles);


function GebJahr_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



% ButtonGroup Geschlecht
function ButtonGroupGeschlecht_SelectionChangeFcn(hObject, eventdata, handles)
switch get(eventdata.NewValue,'Tag')
    case 'maennlich'
        Geschlecht = 'maennlich';
    case 'weiblich'
        Geschlecht = 'weiblich'; 
end
handles.Geschlecht = Geschlecht;
guidata(hObject, handles);



% Popupmenu MessTag
function MessTag_Callback(hObject, eventdata, handles)
contents = cellstr(get(hObject,'String'));
MessTag = contents{get(hObject,'Value')};
MessTag = str2double(MessTag);
handles.Messdatum.MessTag = MessTag;
guidata(hObject, handles);


function MessTag_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



% Popupmenu MessMonat
function MessMonat_Callback(hObject, eventdata, handles)
contents = cellstr(get(hObject,'String'));
MessMonat = contents{get(hObject,'Value')};
if strcmp(MessMonat, 'Januar') == 1    
    MessMonat = 1;    
elseif strcmp(MessMonat, 'Februar') == 1    
    MessMonat = 2;    
elseif strcmp(MessMonat, 'März') == 1    
    MessMonat = 3;    
elseif strcmp(MessMonat, 'April') == 1    
    MessMonat = 4;    
elseif strcmp(MessMonat, 'Mai') == 1    
    MessMonat = 5;    
elseif strcmp(MessMonat, 'Juni') == 1    
    MessMonat = 6;    
elseif strcmp(MessMonat, 'Juli') == 1    
    MessMonat = 7;    
elseif strcmp(MessMonat, 'August') == 1    
    MessMonat = 8;    
elseif strcmp(MessMonat, 'September') == 1
    MessMonat = 9;    
elseif strcmp(MessMonat, 'Oktober') == 1    
    MessMonat = 10; 
elseif strcmp(MessMonat, 'November') == 1
    MessMonat = 11;
elseif strcmp(MessMonat, 'Dezember') == 1
    MessMonat = 12; 
end

handles.Messdatum.MessMonat = MessMonat;
guidata(hObject, handles);


function MessMonat_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



% Popupmenu MessJahr
function MessJahr_Callback(hObject, eventdata, handles)
contents = cellstr(get(hObject,'String'));
MessJahr = contents{get(hObject,'Value')};
MessJahr = str2double(MessJahr);
handles.Messdatum.MessJahr = MessJahr;
guidata(hObject, handles);


function MessJahr_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



% EditBox Messbetreuer
function Messbetreuer_Callback(hObject, eventdata, handles)
Betreuer = get(hObject, 'String');
handles.Betreuer = Betreuer;
guidata(hObject, handles);


function Messbetreuer_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



% Popupmenu Messnummer
function Messnummer_Callback(hObject, eventdata, handles)
global Messnummer;
contents = cellstr(get(hObject,'String'));
Messnummer = contents{get(hObject,'Value')};
Messnummer = str2double(Messnummer);
handles.Messnummer = Messnummer;
guidata(hObject, handles);


function Messnummer_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



% EditBox Bemerkung
function Bemerkung_Callback(hObject, eventdata, handles)
Bemerkung = get(hObject, 'String');
handles.Bemerkung = Bemerkung;
guidata(hObject, handles);


function Bemerkung_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



% PushButton Get LEA
function LEA_Daten_Callback(hObject, eventdata, handles)

LEAdaten = get(hObject, 'Value');
guidata(hObject, handles);

if LEAdaten == 1
    
    Programm_Daten_Import_LEA
    
elseif LEAdaten == 0
    
    LEA = ' ';
    
end



% PushButton Get Kistler
function Kistler_Daten_Callback(hObject, eventdata, handles)

Kistlerdaten = get(hObject, 'Value');
guidata(hObject, handles);

if Kistlerdaten == 1
    
    Programm_Daten_Import_Kistler
    
elseif Kistlerdaten == 0
    
    Kistler = ' ';
    
end



% PushButton Get Pedar
function Pedar_Daten_Callback(hObject, eventdata, handles)

Pedardaten = get(hObject, 'Value');
guidata(hObject, handles);

if Pedardaten == 1
    
    Programm_Daten_Import_Pedar
    
elseif Pedardaten == 0
    
    Pedar = ' ';
end



% PushButton Speichern
function Speichern_Callback(hObject, eventdata, handles)

Nachname = handles.Nachname;
Vorname = handles.Vorname;
Adresse = handles.Adresse;
Telefonnummer = handles.Telefonnummer;
Mailadresse = handles.Mailadresse;
Geburtsdatum = handles.Geburtsdatum;
Geschlecht = handles.Geschlecht;
Gewicht = handles.Gewicht;
Groesse = handles.Groesse;
Schuhgroesse = handles.Schuhgroesse;
Beinlaenge = handles.Beinlaenge;
Betreuer = handles.Betreuer;
Messdatum = handles.Messdatum;
Messnummer = handles.Messnummer;
Bemerkung = handles.Bemerkung;

MessTag = handles.Messdatum.MessTag;
MessMonat = handles.Messdatum.MessMonat;
MessJahr = handles.Messdatum.MessJahr;

assignin('base', 'Nachname', Nachname);
assignin('base', 'Vorname', Vorname);
assignin('base', 'Messnummer', Messnummer);
assignin('base', 'MessTag', MessTag);
assignin('base', 'MessMonat', MessMonat);
assignin('base', 'MessJahr', MessJahr);

Test = get(hObject, 'Value');
guidata(hObject, handles);

if Test == 1
    
    Person = struct('Nachname', Nachname, 'Vorname', Vorname, 'Adresse',...
        Adresse, 'Telefonnummer', Telefonnummer, 'Mailadresse',...
        Mailadresse);

    Physio = struct('Geburtsdatum', Geburtsdatum, 'Geschlecht',...
        Geschlecht, 'Groesse', Groesse, 'Gewicht', Gewicht,...
        'Schuhgroesse', Schuhgroesse, 'Beinlaenge', Beinlaenge);

    Proband = struct('Person', Person, 'Physio', Physio);

    Messung = struct('Messdatum', Messdatum, 'Messnummer', Messnummer, ...
        'Messbetreuer', Betreuer);

    Metadaten = struct('Proband', Proband, 'Messung', Messung, ...
        'Bemerkung', Bemerkung); 
    
    Messjahr = MessJahr;
    Messjahr = num2str(Messjahr);
    
    Messmonat = MessMonat;
    Messmonat = num2str(Messmonat);
    
    Messtag = MessTag;
    Messtag = num2str(Messtag);
    
    Messzahl = Messnummer;
    Messzahl = num2str(Messzahl);
    
    savefile = fullfile(Nachname, Vorname, Messjahr, Messmonat, Messtag, Messzahl);
    assignin('base', 'savefile', savefile);
    savefile = strrep(savefile, '\', '_');
    
    save(savefile, '-struct', 'Metadaten');
    close(handles.NeueDatei);
    
end
