0001 function err = job_view_cortex_list( action, target1, target2, selected )
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 H = get( gcf, 'UserData' );
0018 data = get( getfield( H, [ target1 'data' ] ), 'UserData' );
0019
0020 switch action
0021
0022
0023 case 'add'
0024
0025 switch target2
0026 case 'plotted'
0027 added = setdiff( data.candidate(selected), data.plotted );
0028 if isempty( added ); err = 1; return; end;
0029 data.plotted = [ data.plotted, added ];
0030 case 'masking'
0031 added = setdiff( data.candidate(selected), data.masking );
0032 if isempty( added ); err = 1; return; end;
0033 data.masking = [ data.masking, added ];
0034 end
0035
0036
0037
0038 case 'delete'
0039
0040 switch target2
0041 case 'plotted'
0042 deleted = data.plotted( selected );
0043 if isempty( deleted ); err = 1; return; end;
0044 data.plotted = data.plotted( ~ismember( data.plotted, deleted ) );
0045 case 'masking'
0046 deleted = data.masking( selected );
0047 if isempty( deleted ); err = 1; return; end;
0048 data.masking = data.masking( ~ismember( data.masking, deleted ) );
0049 case 'candidate'
0050 if isempty( selected ); err = 1; return; end;
0051 if any( ismember( data.candidate(selected), data.plotted ) )
0052 data.plotted = data.plotted( ~ismember( data.plotted,...
0053 data.candidate(selected) ) );
0054 end
0055 if isfield( data, 'masking' ) &...
0056 any( ismember( data.candidate(selected), data.masking ) )
0057 data.masking = data.masking( ~ismember( data.masking,...
0058 data.candidate(selected) ) );
0059 end
0060 data.candidate = data.candidate( ~ismember( data.candidate,...
0061 data.candidate(selected) ) );
0062 end
0063
0064
0065
0066 case 'clear'
0067
0068 switch target2
0069 case 'plotted'
0070 data.plotted = [];
0071 case 'masking'
0072 data.masking = [];
0073 end
0074
0075 end
0076
0077
0078 set( getfield( H, [ target1, 'data' ] ), 'UserData', data );
0079
0080 err = 0;