0
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 1 % PLOT plot the outputs of the currently selected blocks.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 2 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 3 % CALL: wb.plot
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 4 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 5 % M Hewitson 13-11-08
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 6 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 7 % $Id: plot.m,v 1.8 2010/08/06 19:10:49 ingo Exp $
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 8 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 9 function plot(varargin)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 10
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 11 wb = varargin{1};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 12
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 13 % Get all selected blocks
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 14 sbs = awtinvoke(wb.mp, 'getSelectedBlocks');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 15
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 16 outvars = {};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 17 for ii=0:sbs.size()-1
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 18 block = sbs.get(ii);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 19
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 20 % if this is a MElementWithPorts
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 21 if isa(block, 'mpipeline.canvas.MElementWithPorts')
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 22
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 23 % loop over all outputs
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 24 outports = block.getOutputs();
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 25 for kk=0:outports.size()-1
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 26 op = outports.get(kk);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 27 % get variable name
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 28 outvar = LTPDAworkbench.getWS_VarName(wb.UUID, block, op.getNumber);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 29 outvars = [outvars {outvar}];
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 30 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 31 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 32 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 33
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 34 % Check if each var exists in the workspace, and then launch in
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 35 % ltpda_explorer
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 36
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 37 if ~isempty(outvars)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 38
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 39 cmd = 'iplot(';
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 40 for kk=1:numel(outvars)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 41
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 42 % Check if the user have execute the pipeline.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 43 if (evalin('base', ['exist(''' strtok(outvars{kk}, '.') ''')']) ~= 1) || ...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 44 isempty(evalin('base', strtok(outvars{kk}, '.')))
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 45 utils.helper.errorDlg('Unable to plot selected objects. Has the pipeline been executed?', 'Plot block outputs error');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 46 return
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 47 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 48
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 49 if isa(evalin('base', outvars{kk}), 'ao')
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 50 cmd = [cmd outvars{kk} ','];
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 51 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 52 utils.helper.errorDlg(sprintf('Please select only analysis objects (AOs) because you selected a %s object.', class(evalin('base', outvars{kk}))), 'Plot block outputs error');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 53 return
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 54 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 55 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 56
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 57 if cmd(end)==','
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 58 cmd = cmd(1:end-1);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 59 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 60 cmd = [cmd ')'];
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 61 try
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 62 evalin('base', cmd);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 63 catch
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 64 utils.helper.errorDlg('Unable to plot selected objects. Has the pipeline been executed?', 'Plot block outputs error');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 65 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 66 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 67
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 68 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 69