Mercurial > hg > aimmat
diff aim-mat/gui/loadallparameterfiles.m @ 0:74dedb26614d
Initial checkin of AIM-MAT version 1.5 (6.4.2011).
author | tomwalters |
---|---|
date | Fri, 20 May 2011 12:32:31 +0100 |
parents | |
children | 20ada0af3d7d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/aim-mat/gui/loadallparameterfiles.m Fri May 20 12:32:31 2011 +0100 @@ -0,0 +1,114 @@ +% procedure for 'aim-mat' +% +% INPUT VALUES: +% +% RETURN VALUE: +% +% +% (c) 2011, University of Southampton +% Maintained and written by Stefan Bleeck (bleec@gmail.com) +% http://www.soton.ac.uk/aim + + +function handles=loadallparameterfiles(handles) +% go through all directories and call the single module-parameterfiles + +% first find the directory, where all modules are saved. This directory +% should usually be next to the \aim\matlab - directory: \aim\ +% find a module, that is always there: +fpa=which('gen_gtfb'); +[a,b,c]=fileparts(fpa); +where=strfind(a,'modules'); +if isempty(where) + str=sprintf('loadallparameterfiles: Cant locate the module path (file gen_gtfb not found)'); + disp(str); + % TODO: a better solution for this. + er=errordlg(str,'File Error'); + set(er,'WindowStyle','modal'); + handles.error=1; + return +end +columnpath=fpa(1:where+7); +handles.info.columnpath=columnpath; % save it for later + +% save these for later, all other are overwritten +addsig=0; +if isfield(handles,'all_options') + if isfield(handles.all_options,'signal') + addsig=1; + signaloptions=handles.all_options.signal; + end +end +% now go recurse through all directories in columnpath +allcols=dir(columnpath); +nr_files=size(allcols); +completepath=path; +olddir=pwd; +for i=3:nr_files + current_column_name=allcols(i).name; + if ~strcmpi(current_column_name(1),'.') % we dont want hidden files + current_column_path=[columnpath current_column_name]; + allmodules=dir(current_column_path); + nr_modules=size(allmodules); + if ~strcmp(current_column_name,'signal') + % cd(current_module_path) + for j=3:nr_modules + current_module_name=lower(allmodules(j).name); + if ~strcmpi(current_module_name(1),'.') + current_module_path=fullfile(current_column_path,current_module_name); + + % if the path is not in the matlab search path, add it + % to it and print a notice! + if isempty(strfind(completepath,current_module_path)) % the module is not in the path + addpath(current_module_path); + disp(sprintf('Directory %s was added to the path!',current_module_path)); + end + + cd(current_module_path) + try + eval('parameters'); % call the standart parameters. Then we have a struct + str=sprintf('all_options.%s.%s=%s;',current_column_name,current_module_name,current_module_name); + eval(str); + cstr=sprintf('allo=all_options.%s.%s;',current_column_name,current_module_name); + eval(cstr); + if isfield(allo,'displayfunction')==1 + dstr=sprintf('all_options.%s.%s.displayfunction=''%s'';',current_column_name,current_module_name,allo.displayfunction); + eval(dstr); + else if strcmp(current_column_name,'usermodule') && ~strcmp(current_column_name,'graphics') + dstr=sprintf('all_options.%s.%s.displayfunction='''';',current_column_name,current_module_name); + eval(dstr); + end + end + + eval(sprintf('clear %s',current_module_name)); + catch + % either pop up a window +% str=sprintf('The parameter file for the module: %s produced errors!',current_module_path); +% er=errordlg(str,'File Error'); +% set(er,'WindowStyle','modal'); + % or just plot a warning message on the screen + str=sprintf('The parameter file for the module: %s produced errors!',current_module_path); + disp(str); + +% stop program +% handles.error=1; +% cd(olddir); +% return +% +% or continue: + end + end + end + end + end +end +cd(olddir); +handles.all_options=all_options; +if addsig==1 + handles.all_options.signal=signaloptions; +end + + +% save the new path +allpath=path; +path(allpath);