Home > functions > job > job_view_cortex_dir > job_view_cortex_list.m

job_view_cortex_list

PURPOSE ^

err = job_view_cortex_list( action, target1, target2, selected )

SYNOPSIS ^

function err = job_view_cortex_list( action, target1, target2, selected )

DESCRIPTION ^

 err = job_view_cortex_list( action, target1, target2, selected )

  リストの操作ルーチン ( リストの追加, 削除, クリア )

 action : 'add', 'delete', or 'clear'
 target1 : 'act' or 'area'
 target2 : 'candidate', 'plotted' or 'masking'
 selected : 対象リスト中の選択されたアイテムのindex (オブジェクトから直接取得)


 Copyright (C) 2011, ATR All Rights Reserved.
 License : New BSD License(see VBMEG_LICENSE.txt)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function err = job_view_cortex_list( action, target1, target2, selected )
0002 % err = job_view_cortex_list( action, target1, target2, selected )
0003 %
0004 %  リストの操作ルーチン ( リストの追加, 削除, クリア )
0005 %
0006 % action : 'add', 'delete', or 'clear'
0007 % target1 : 'act' or 'area'
0008 % target2 : 'candidate', 'plotted' or 'masking'
0009 % selected : 対象リスト中の選択されたアイテムのindex (オブジェクトから直接取得)
0010 %
0011 %
0012 % Copyright (C) 2011, ATR All Rights Reserved.
0013 % License : New BSD License(see VBMEG_LICENSE.txt)
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;

Generated on Tue 27-Aug-2013 11:46:04 by m2html © 2005