Home > functions > gui > project_mgr_dir > project_mgr_callback.m

project_mgr_callback

PURPOSE ^

callback function for project_mgr gui

SYNOPSIS ^

function project_mgr_callback(fig, hObj)

DESCRIPTION ^

 callback function for project_mgr gui
 [USAGE]
    project_mgr_callback(<fig>, <hObj>);
 [IN]
     fig : figure handle of project_mgr gui.
    hObj : event component handle.
 [OUT]
    none

 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 project_mgr_callback(fig, hObj)
0002 % callback function for project_mgr gui
0003 % [USAGE]
0004 %    project_mgr_callback(<fig>, <hObj>);
0005 % [IN]
0006 %     fig : figure handle of project_mgr gui.
0007 %    hObj : event component handle.
0008 % [OUT]
0009 %    none
0010 %
0011 % Copyright (C) 2011, ATR All Rights Reserved.
0012 % License : New BSD License(see VBMEG_LICENSE.txt)
0013 
0014 %
0015 % --- Previous check
0016 %
0017 if ~exist('fig', 'var') || isempty(fig) || ~ishandle(fig)
0018     error('invalid figure handle is specified.');
0019 end
0020 if ~exist('fig', 'var') || isempty(hObj)
0021     error('hObj is a required parameter.');
0022 end
0023 
0024 %
0025 % --- Main Procedure
0026 %
0027 
0028 % load data (@see project_mgr)
0029 data = guidata(fig);
0030 H = data.H; % component handles
0031 
0032 % % protect application screen
0033 % set(fig, 'HandleVisibility', 'off');
0034 
0035 switch(hObj)
0036     case H.history_listbox
0037         selected_line_no = get(H.history_listbox, 'Value');
0038         max_line_no = length(get(H.history_listbox, 'String'));
0039 
0040         % project is not loaded.
0041         if max_line_no == 0
0042             return;
0043         end
0044 
0045         % illigal selection check
0046         if (max_line_no < selected_line_no)
0047             selected_line_no = max_line_no;
0048         end
0049 
0050         % set parameter string
0051         [parm, parm_type] = project_file_mgr('get_parameter', selected_line_no);
0052         set(H.history_listbox, 'Value', selected_line_no);
0053         if isfield(parm, 'comment')
0054             set(H.comment_display_edit, 'String', parm.comment);
0055             parm = rmfield(parm, 'comment');
0056         else
0057             set(H.comment_display_edit, 'String', '');
0058         end
0059         set(H.parameter_display_edit, 'String', vb_struct2str(parm));
0060         
0061         % set parm info to gui of check model.
0062         parm_info = [parm.time_stamp, ' ', parm_type];
0063         switch(parm_type)
0064             case 'brain_parm'
0065                 set(H.brain_parm_edit, 'String', parm_info);
0066                 data = project_mgr_set_ix_for_check_model(data, ...
0067                                            'brain_parm', selected_line_no);
0068             case 'fmri_parm'
0069                 set(H.fmri_parm_edit, 'String', parm_info);
0070                 data = project_mgr_set_ix_for_check_model(data, ...
0071                                            'fmri_parm', selected_line_no);
0072             case 'meg_parm'
0073                 set(H.meg_parm_edit, 'String', parm_info);
0074                 data = project_mgr_set_ix_for_check_model(data, ...
0075                                            'meg_parm', selected_line_no);
0076         end
0077         project_mgr_contextmenu_open(data);
0078     case {H.check_brain_model_push, H.check_brain_inflate_model_push}
0079         ix = project_mgr_get_ix_for_check_model(fig, 'brain_parm');
0080         if ix == 0
0081             errordlg('brain_parm is not selected.', 'error');
0082         else
0083             proj_root = get(H.project_root_edit, 'String');
0084             brain_parm = project_file_mgr('get_parameter', ix);
0085 
0086             if hObj == H.check_brain_model_push
0087                 % Check brain model by 3D & MRI image
0088                 vb_check_brain_model(proj_root, brain_parm);
0089             else
0090                 % Plot Inflate model
0091                 vb_check_inflate_model(proj_root, brain_parm);
0092             end
0093         end
0094     case H.check_fmri_parm_push
0095         ix = project_mgr_get_ix_for_check_model(fig, 'fmri_parm');
0096         if ix == 0
0097             errordlg('fmri_parm is not selected.', 'error');
0098         else
0099             proj_root = get(H.project_root_edit, 'String');
0100             fmri_parm = project_file_mgr('get_parameter', ix);
0101             % Check fMRI activity
0102             vb_check_fmri(proj_root, fmri_parm);
0103         end
0104     case H.check_meg_parm_push
0105         ix_brain = project_mgr_get_ix_for_check_model(fig, 'brain_parm');
0106         ix_meg   = project_mgr_get_ix_for_check_model(fig, 'meg_parm');
0107         if ix_brain == 0
0108             errordlg('brain_parm is not selected.', 'error');
0109         elseif ix_meg == 0
0110             errordlg('meg_parm is not selected.', 'error');
0111         else
0112             proj_root = get(H.project_root_edit, 'String');
0113             brain_parm = project_file_mgr('get_parameter', ix_brain);
0114             meg_parm = project_file_mgr('get_parameter',   ix_meg);
0115             % Check position of sensor and brain
0116             vb_job_check_sensor_on_brain(proj_root, brain_parm, meg_parm);
0117         end
0118     case {H.parm_name_checkbox, H.func_name_checkbox}
0119         project_mgr_view_update(fig);
0120     case H.add_parm_to_builder_push
0121         % Add selected parameter to selected batch file builder
0122         selected = get(H.history_listbox, 'Value');
0123         if selected > 0
0124             data = project_mgr_builder_open(data);
0125             [parm, parm_type] = project_file_mgr('get_parameter', selected);
0126             vb_batch_list_add_item(data.batch_fig, parm, parm_type);
0127         end
0128     case H.add_builder_push
0129         [data, name] = project_mgr_builder_add(data);
0130         guidata(fig, data);
0131         % update screen
0132         project_mgr_view_update_builders(fig);
0133         msgbox(sprintf('''%s'' was added.', name), 'Notice');
0134     case H.copy_builder_push
0135         [data, new_name] = project_mgr_builder_copy(data);
0136         guidata(fig, data);
0137         % update screen
0138         project_mgr_view_update_builders(fig);
0139         msgbox(sprintf('''%s'' was added.', new_name), 'Notice');
0140     case H.remove_builder_push
0141         % Confirm remove builder?
0142         idx = get(H.builder_popup, 'Value');
0143         rbuilder = data.batch_builders{idx};
0144         name     = vb_batch_mgr_get_name(rbuilder);
0145         res = questdlg(sprintf('Remove ''%s''?', name), 'Confirm', ...
0146                        'Yes', 'No', 'No');
0147         if strcmpi(res, 'no'), return; end
0148         [data, name] = project_mgr_builder_remove(data);
0149         guidata(fig, data);
0150         % update screen
0151         project_mgr_view_update_builders(fig);
0152         msgbox(sprintf('''%s'' was removed.', name), 'Notice');
0153     case H.open_builder_push
0154         data = project_mgr_builder_open(data);
0155 end
0156 
0157 guidata(fig, data);
0158 
0159 % protect application screen end
0160 if ishandle(fig)
0161     set(fig, 'HandleVisibility', 'callback');
0162 end

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