0
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 1 % CB_TABLE show the outputs of the currently selected blocks in a table.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 2 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 3 % CALL: LTPDAworkbench.cb_table
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: cb_table.m,v 1.4 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 cb_table(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 failed = false;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 17 skipped = 0;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 18 for ii=0:sbs.size()-1
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 19 block = sbs.get(ii);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 20
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 21 % if this is a MElementWithPorts
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 22 if isa(block, 'mpipeline.canvas.MElementWithPorts')
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 23
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 24 % loop over all outputs
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 25 outports = block.getOutputs();
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 26 for kk=0:outports.size()-1
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 27 op = outports.get(kk);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 28 % get variable name
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 29 outvar = LTPDAworkbench.getWS_VarName(wb.UUID, block, op.getNumber);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 30
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 31 % Check if the user have execute the pipeline.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 32 if (evalin('base', ['exist(''' strtok(outvar, '.') ''')']) ~= 1) || ...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 33 isempty(evalin('base', strtok(outvar, '.')))
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 34 utils.helper.errorDlg('Failed to show one or more of the selected objects in tables. Has the pipeline been executed?', 'Table block outputs error');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 35 return
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 36 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 37
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 38 if evalin('base', ['isa(' outvar ', ''ao'')'])
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 39 try
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 40 cmd = ['table(' outvar ')'];
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 41 evalin('base', cmd);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 42 catch
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 43 failed = true;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 44 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 45 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 46 warning('!!! Skipping block output [%s] since it''s not an AO', outvar);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 47 skipped = skipped + 1;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 48 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 49 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 50 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 51 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 52
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 53 if failed
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 54 utils.helper.errorDlg('Failed to show one or more of the selected objects in tables. Has the pipeline been executed?', 'Table block outputs error');
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 skipped > 0
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 58 utils.helper.warnDlg('Not all selected blocks could be tabulated. Check the MATLAB terminal for further warnings.');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 59 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 60
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 61 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 62