Mercurial > hg > aimmat
view aim-mat/tools/@parameter/setas.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 param=setas(param,text,value,unit,inbox) %% sets the parameter value in the parameter "text" in the panel "inbox" to %% the value "value". % param must be of type float or slider if nargin<5 inbox='all'; end % cont=param.entries; nr=getentrynumberbytext(param,text,inbox); if nr>0 if isequal(value,'auto'); param.entries{nr}.rawvalue=value; param.entries{nr}.stringvalue=value; % set the string value else if ~ischar(value) unittype=param.entries{nr}.unittype; if ~isa(unittype,'unit_none') rawval=fromunits(unittype,value,unit); else rawval=value; end param.entries{nr}.rawvalue=rawval; % set the value in the class structure with the raw value param.entries{nr}.stringvalue=num2str(rawval); % set the string value else param.entries{nr}.stringvalue=value; % set the string value param.entries{nr}.rawvalue=str2num(value); end end if isfield(param.entries{nr},'handle') && ishandle(param.entries{nr}.handle{1}) % and set in the gui as well if strcmp(param.entries{nr}.type,'float') hand=param.entries{nr}.handle{1}; if isequal(value,'auto'); set(hand,'String',value); % set the string as given else if ~ischar(value) if length(value)==1 set(hand,'String',num2str(value)); % translate to string else set(hand,'String',param.entries{nr}.stringvalue); % set the string as given end if ~isa(unittype,'unit_none') unitnr=findunit(unittype,unit); set(param.entries{nr}.handle{2},'value',unitnr); % set the unit to the given one end else % its a string format set(hand,'String',value); % set the string as given end end else % it must be a slider secombi=param.entries{nr}.slidereditcombi; if ~isa(unittype,'unit_none') unitnr=findunit(unittype,unit); set(param.entries{nr}.handle{2},'value',unitnr); % set the unit to the given one editscaler=tounits(unittype,1,unit); secombi.editscaler=editscaler; end secombi=slidereditcontrol_set_raweditvalue(secombi,value); param.entries{nr}.slidereditcontrol=secombi; end return end else error('setvalue::error, the entry does not exist'); end