Home > m > gui > ltpdv > callbacks > ltpdv_fcn_run.m

ltpdv_fcn_run

PURPOSE ^

LTPDV_FCN_RUN runs the command on the selected panel

SYNOPSIS ^

function ltpdv_fcn_run(varargin)

DESCRIPTION ^

 LTPDV_FCN_RUN runs the command on the selected panel

 M Hewitson 23-04-08

 $Id: ltpdv_fcn_run.m,v 1.2 2008/08/17 10:51:14 hewitson Exp $

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function ltpdv_fcn_run(varargin)
0002   % LTPDV_FCN_RUN runs the command on the selected panel
0003   %
0004   % M Hewitson 23-04-08
0005   %
0006   % $Id: ltpdv_fcn_run.m,v 1.2 2008/08/17 10:51:14 hewitson Exp $
0007   %
0008 
0009   % Get handles
0010   myh     = varargin{1};
0011   tag     = varargin{end-2};
0012   panH    = varargin{end-1};
0013   mainfig = varargin{end};
0014 
0015   % Get function
0016   switch tag
0017     case 'preproc'
0018       listtag = 'LTPDVpreprocfcnlist';
0019       ptag    = 'LTPDVpreprocparampan';
0020     case 'spectral'
0021       listtag = 'LTPDVspectralfcnlist';
0022       ptag    = 'LTPDVspectralparampan';
0023     otherwise
0024       error('### Unknown function set');
0025   end
0026   fcnh = findobj(panH, 'Tag', listtag);
0027   val  = get(fcnh, 'Value');
0028   strs = get(fcnh, 'String');
0029   fcn  = strs{val};
0030 
0031   % Get params
0032   parampanh = findobj(panH, 'Tag', ptag);
0033   pancomps  = getappdata(parampanh, 'pancomps');
0034 
0035   % loop over params
0036   pl = plist();
0037   for j=1:size(pancomps,1)
0038 
0039     % handles
0040     keyf = pancomps{j,1};
0041     valf = pancomps{j,2};
0042     actf = pancomps{j,3};
0043 
0044     % Get activate status
0045     if get(actf, 'Value')
0046       % Get key name
0047       key = get(keyf, 'String');
0048 
0049       % Get param value
0050       valclass = getappdata(valf, 'valClass');
0051 
0052       switch valclass
0053         case 'char'
0054           val = get(valf, 'String');
0055         case 'double'
0056           val = get(valf, 'String');
0057           try
0058             val = eval(val);
0059           end
0060         case 'specwin'
0061           strs = get(valf, 'String');
0062           idx  = get(valf, 'Value');
0063           val  = strs{idx};
0064           if strcmp(val, 'Kaiser')
0065             val = specwin(val, 10, 150);
0066           else
0067             val = specwin(val, 10);
0068           end
0069         otherwise
0070           error(['### Unsupported value class: ' valclass]);
0071       end
0072 
0073       % Add to plist
0074       pl = append(pl, key, val);
0075 
0076     end
0077   end
0078 
0079   % Get selected objects
0080   objs = ltpdv_get_selected_objs(mainfig);
0081 
0082   % Collect AOs
0083   as = [];
0084   for j=1:numel(objs)
0085     obj = objs{j};
0086     if isa(obj, 'ao')
0087       as = [as obj];
0088     else
0089       warning('!!! Skipping object %s - it''s not an AO', obj.name);
0090     end
0091   end
0092 
0093   % Evaluate fcn
0094   res = feval(fcn, as, pl);
0095 
0096   % Add result to object list
0097   for j=1:numel(res)
0098     objs = getappdata(mainfig, 'LTPDAobjects');
0099     setappdata(mainfig, 'LTPDAobjects', [objs {res(j)}]);
0100   end
0101   % Refresh object list
0102   ltpdv_refresh_object_list(mainfig);
0103 
0104 end
0105 
0106   % END

Generated on Mon 25-Aug-2008 22:39:29 by m2html © 2003