source: trunk/src/fill_GUI.m @ 380

Last change on this file since 380 was 380, checked in by sommeria, 9 years ago

reading of civ data, new format, improved: bugs for reading u and v repairedd

File size: 2.2 KB
Line 
1%'fill_GUI': fill a GUI with handles 'handles' from input data Param
2% -----------------------------------------------------------------------
3function errormsg=fill_GUI(Param,handles)
4%------------------------------------------------------------------------
5errormsg='';
6fields=fieldnames(Param);
7for ifield=1:numel(fields)
8    if isstruct(Param.(fields{ifield}))
9        if isfield(handles,fields{ifield})
10            set(handles.(fields{ifield}),'Visible','on')
11            children=get(handles.(fields{ifield}),'children');
12            for ichild=1:numel(children)
13                hchild.(get(children(ichild),'tag'))=children(ichild);
14            end
15            errormsg=fill_GUI(Param.(fields{ifield}),hchild);
16        end
17    else
18        hh=[];
19        input_data=Param.(fields{ifield});
20        check_done=0;
21        if isfield(handles,fields{ifield})
22            hh=handles.(fields{ifield});
23            if strcmp(get(hh,'Type'),'uitable')
24                set(hh,'Visible','on')
25                set(hh,'Data',input_data)
26                check_done=1;
27            end
28        elseif isnumeric(input_data) && isfield(handles,['num_' fields{ifield}])
29            hh=handles.(['num_' fields{ifield}]);
30        end
31        if ~isempty(hh)&& ~check_done
32            set(hh,'Visible','on')
33%             input_data
34            switch get(hh,'Style')
35                case {'checkbox','radiobutton','togglebutton'}
36                    if isnumeric(input_data)
37                        set(hh,'Value',input_data)
38                    end
39                case 'edit'
40                    if isnumeric(input_data)
41                        input_data=num2str(input_data);
42                    end
43                    set(hh,'String',input_data)
44                case{'Listbox','popupmenu'}
45                    if isnumeric(input_data)
46                        input_data=num2str(input_data);
47                    end
48                    menu=get(hh,'String');
49                    iline=find(strcmp(input_data,menu));
50                    if isempty(iline)
51                        iline=numel(menu)+1;
52                        set(hh,'String',[menu;{input_data}])
53                    end
54                    set(hh,'Value',iline)
55            end
56        end
57    end
58end
59 
Note: See TracBrowser for help on using the repository browser.