Mercurial > hg > aimmat
view aim-mat/tools/@parameter/get.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 source
% method of class @parameter % % (c) 2003-2008, University of Cambridge % Maintained by Tom Walters (tcw24@cam.ac.uk), written by Stefan Bleeck (stefan@bleeck.de) % http://www.pdn.cam.ac.uk/cnbh/aim2006/tools/parameter % $Date: 2008-06-10 18:00:16 +0100 (Tue, 10 Jun 2008) $ function val=get(param,text,panel) % returns the current value of the parameter cont=param.entries; nrent=length(cont); if nargin <2 % in case we want the whole stucture val=cont; return end if nargin<3 % search in all subsections panel='all'; end nr=getentrynumberbytext(param,text,panel); if nr>0 type=cont{nr}.type; handleb=gethandle(param,text,panel,1); if ~isequal(handleb,0) && ishandle(handleb) % yes, there is a screen representation if strcmp(get(handleb,'type'),'uipanel') && strcmp(type,'panel') val=getradiobutton(param,text); else strval=get(handleb,'string'); if strcmp(type,'pop-up menu') nrsel=get(handleb,'value'); val=strval{nrsel}; elseif strcmp(type,'radiobutton') val=get(handleb,'value'); elseif strcmp(type,'bool') val=get(handleb,'value'); elseif strcmp(type,'int') if strcmp(strval,'auto'); val=strval; else val=str2num(strval); end elseif strcmp(type,'float') unit=cont{nr}.orgunit; val=getas(param,text,unit,panel); %call new with unit else val=strval; end return end else % no screen representation if strcmp(type,'float') unit=cont{nr}.orgunit; val=getas(param,text,unit,panel); %call new with unit return elseif strcmp(type,'int') valf=cont{nr}.value; if ischar(valf) if strcmp(valf,'auto'); val=valf; else val=str2num(valf); end else val=valf; end elseif strcmp(type,'panel') val=getradiobutton(param,text); else val=cont{nr}.value; return end end else error('error, the entry does not exist'); % val=0; % we must return a logical value otherwise it can generate difficult errors end