0001 function project_mgr_callback(fig, hObj)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
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
0026
0027
0028
0029 data = guidata(fig);
0030 H = data.H;
0031
0032
0033
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
0041 if max_line_no == 0
0042 return;
0043 end
0044
0045
0046 if (max_line_no < selected_line_no)
0047 selected_line_no = max_line_no;
0048 end
0049
0050
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
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
0088 vb_check_brain_model(proj_root, brain_parm);
0089 else
0090
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
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
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
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
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
0138 project_mgr_view_update_builders(fig);
0139 msgbox(sprintf('''%s'' was added.', new_name), 'Notice');
0140 case H.remove_builder_push
0141
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
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
0160 if ishandle(fig)
0161 set(fig, 'HandleVisibility', 'callback');
0162 end