Changeset 606 for trunk/src/fill_GUI.m


Ignore:
Timestamp:
Apr 7, 2013, 10:14:45 AM (8 years ago)
Author:
sommeria
Message:

bug on compilation solved (still to test with transform_field fct). faster browser inrtroduced. Various bug corrections

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/fill_GUI.m

    r603 r606  
    2828        if isfield(handles,fields{ifield})
    2929            set(handles.(fields{ifield}),'Visible','on')
    30 %             children=get(handles.(fields{ifield}),'children');
    31 %             for ichild=1:numel(children)
    32 %                 hchild.(get(children(ichild),'tag'))=children(ichild);
    33 %             end
    34          %   errormsg=fill_GUI(Param.(fields{ifield}),hchild);% apply the function to the substructure
    35          errormsg=fill_GUI(Param.(fields{ifield}),handles.(fields{ifield}));% apply the function to the substructure
    36            % if the input sub-structure fits with a tag name of the GUI and a
    37          % substructure of UserData
     30            %             children=get(handles.(fields{ifield}),'children');
     31            %             for ichild=1:numel(children)
     32            %                 hchild.(get(children(ichild),'tag'))=children(ichild);
     33            %             end
     34            %   errormsg=fill_GUI(Param.(fields{ifield}),hchild);% apply the function to the substructure
     35            errormsg=fill_GUI(Param.(fields{ifield}),handles.(fields{ifield}));% apply the function to the substructure
     36            % if the input sub-structure fits with a tag name of the GUI and a
     37            % substructure of UserData
    3838        elseif isfield(UserData,fields{ifield})&& isfield(handles,fields{ifield})&&isfield(Param.(fields{ifield}),'Name')
    3939            UserData.(fields{ifield})=Param.(fields{ifield});
    40             set(handles.(fields{ifield}),'String',Param.(fields{ifield}).Name) 
     40            set(handles.(fields{ifield}),'String',Param.(fields{ifield}).Name)
    4141        end
    42     % case of an element
     42        % case of an element
    4343    else
    4444        hh=[];
     
    5555                check_done=1;
    5656            end
    57         elseif isnumeric(input_data) 
    58             if numel(input_data)>1 
     57        elseif isnumeric(input_data)
     58            if numel(input_data)>1
    5959                %deals with array displayed in multiple boxes labeled by an index
    6060                for ibox=1:numel(input_data)
     
    6464                end
    6565            else % single box (usual case)
    66                if isfield(handles,['num_' fields{ifield}])
    67                    hh=handles.(['num_' fields{ifield}]);
    68                end
     66                if isfield(handles,['num_' fields{ifield}])
     67                    hh=handles.(['num_' fields{ifield}]);
     68                end
    6969            end
    7070        end
    7171        for ibox=1:numel(hh)
    72         if ~isempty(hh(ibox))&& ~check_done
    73             set(hh(ibox),'Visible','on')
    74 %             input_data
    75             switch get(hh(ibox),'Style')
    76                 case {'checkbox','radiobutton','togglebutton'}
    77                     if isnumeric(input_data)
    78                         set(hh(ibox),'Value',input_data(ibox))
     72            if ~isempty(hh(ibox))&& ~check_done
     73                set(hh(ibox),'Visible','on')
     74                %             input_data
     75                if isfield(hh(ibox),'Style')
     76                    switch get(hh(ibox),'Style')
     77                        case {'checkbox','radiobutton','togglebutton'}
     78                            if isnumeric(input_data)
     79                                set(hh(ibox),'Value',input_data(ibox))
     80                            end
     81                        case 'edit'
     82                            input_string='';
     83                            if isnumeric(input_data)
     84                                if numel(input_data)>0
     85                                    input_string=num2str(input_data(ibox));
     86                                end
     87                            else
     88                                input_string=input_data;
     89                            end
     90                            set(hh(ibox),'String',input_string)
     91                        case{'listbox','popupmenu'}
     92                            if isnumeric(input_data)
     93                                input_data=num2str(input_data);
     94                            end
     95                            menu=get(hh(ibox),'String');
     96                            if ischar(input_data)
     97                                input_data={input_data};
     98                            end
     99                            values=zeros(size(input_data));
     100                            for idata=1:numel(input_data)
     101                                iline=find(strcmp(input_data{idata},menu));
     102                                if isempty(iline)
     103                                    values(idata)=1;
     104                                    menu=[input_data(idata);menu];
     105                                else
     106                                    values(idata)=iline(1);
     107                                end
     108                            end
     109                            set(hh(ibox),'String',menu)
     110                            set(hh(ibox),'Value',values)
    79111                    end
    80                 case 'edit'
    81                     input_string='';
    82                     if isnumeric(input_data)
    83                         if numel(input_data)>0
    84                         input_string=num2str(input_data(ibox));
    85                         end
    86                     else
    87                         input_string=input_data;
    88                     end
    89                     set(hh(ibox),'String',input_string)
    90                 case{'listbox','popupmenu'}
    91                     if isnumeric(input_data)
    92                         input_data=num2str(input_data);
    93                     end
    94                     menu=get(hh(ibox),'String');
    95                     if ischar(input_data)
    96                         input_data={input_data};
    97                     end
    98                     values=zeros(size(input_data));
    99                     for idata=1:numel(input_data)
    100                         iline=find(strcmp(input_data{idata},menu));
    101                         if isempty(iline)
    102                             values(idata)=1;
    103                             menu=[input_data(idata);menu];
    104                         else
    105                             values(idata)=iline(1);
    106                         end
    107                     end
    108                     set(hh(ibox),'String',menu)
    109                     set(hh(ibox),'Value',values)
     112                end
    110113            end
    111         end
    112114        end
    113115    end
Note: See TracChangeset for help on using the changeset viewer.