Home > functions > gui > preAnalysis > trial_extractor > vb_trial_extractor_update_screen.m

vb_trial_extractor_update_screen

PURPOSE ^

GUI update

SYNOPSIS ^

function [data] = vb_trial_extractor_update_screen(data)

DESCRIPTION ^

 GUI update

 [USAGE]
    data = vb_trial_extractor_update_screen(data);

 [IN]
    data : The application data.
 [OUT]
    data : The updated application data.

 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 [data] = vb_trial_extractor_update_screen(data)
0002 % GUI update
0003 %
0004 % [USAGE]
0005 %    data = vb_trial_extractor_update_screen(data);
0006 %
0007 % [IN]
0008 %    data : The application data.
0009 % [OUT]
0010 %    data : The updated application data.
0011 %
0012 % Copyright (C) 2011, ATR All Rights Reserved.
0013 % License : New BSD License(see VBMEG_LICENSE.txt)
0014 
0015 %
0016 % --- Previous check
0017 %
0018 if ~exist('data', 'var')
0019     error('data is a required parameter.');
0020 end
0021 
0022 %
0023 % --- Main Procedure
0024 %
0025 H    = data.H;
0026 
0027 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0028 % Update file parameter
0029 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0030 if ~isempty(data.continuous_file)
0031     set(H.continuous_file_edit, 'String', vb_continuous_file_get_filename(data.continuous_file));
0032     ch_list = vb_continuous_file_get_ch_list(data.continuous_file, 'EXTRA');
0033     set(H.trigger_channel_listbox, 'String', sort(ch_list));
0034     freq = vb_continuous_file_get_sample_freq(data.continuous_file);
0035     set(H.sample_freq_text, 'String', num2str(freq));
0036 
0037     selected = get(H.trigger_channel_listbox, 'Value');
0038     if length(ch_list) < selected
0039         set(H.trigger_channel_listbox, 'Value', 1);
0040     end
0041 else
0042     set(H.sample_freq_text, 'String', '');
0043     set(H.trigger_channel_listbox, 'String', '');
0044 end
0045 
0046 % Trial Length
0047 trial_setting = data.trial_setting;
0048 pretrigger_ms  = trial_setting.pretrigger_ms;
0049 posttrigger_ms = trial_setting.posttrigger_ms;
0050 minimum_distance_ms = trial_setting.minimum_distance_ms;
0051 
0052 if pretrigger_ms
0053     set(H.pretrigger_length_edit, 'String', num2str(pretrigger_ms));
0054 else
0055     set(H.pretrigger_length_edit, 'String', '');
0056 end
0057 if posttrigger_ms
0058     set(H.posttrigger_length_edit, 'String', num2str(posttrigger_ms));
0059 else
0060     set(H.posttrigger_length_edit, 'String', '');
0061 end
0062 if minimum_distance_ms >= 0
0063     set(H.minimum_distance_edit, 'String', num2str(minimum_distance_ms));
0064 else
0065     set(H.minimum_distance_edit, 'String', '');
0066 end
0067 
0068 
0069 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0070 % Update Trigger list
0071 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0072 % Selected trigger type
0073 type_selected = get(H.trigger_type_popup, 'Value');
0074 type_items    = get(H.trigger_type_popup, 'String');
0075 trig_type = type_items{type_selected};
0076 
0077 % Trigger channel
0078 ch_name_list    = get(H.trigger_channel_listbox, 'String');
0079 selected_row    = length(get(H.trigger_channel_listbox, 'Value'));
0080 if isempty(ch_name_list) || ...
0081    selected_row == 0
0082     set(H.trigger_add_push, 'Enable', 'off');
0083     set(H.trigger_view_push, 'Enable', 'off');
0084 else
0085     set(H.trigger_add_push, 'Enable', 'on');
0086     set(H.trigger_view_push, 'Enable', 'on');
0087     if selected_row >= 2 && ~strcmp(trig_type, 'multi channel pattern')
0088         set(H.trigger_add_push, 'Enable', 'off');
0089     end
0090 end
0091 
0092 % Default off
0093 set([H.analog_level_edit, H.integer_level_edit, ...
0094      H.bit_level_edit, H.trigger_level_text, ...
0095      H.flag_pattern_push], ...
0096      'Visible', 'off');
0097 set([H.optional_parm_push, H.advanced_parm_push], 'Enable', 'off');
0098 switch(trig_type)
0099     case 'analog'
0100         set(H.trigger_slope_popup, 'Enable', 'on');
0101         set(H.trigger_slope_popup, 'String', {'low_to_high', 'high_to_low'});
0102         set(H.trigger_level_text, 'String', 'Level[0-1]', 'Visible', 'on');
0103         set(H.analog_level_edit, 'Visible', 'on');
0104     case 'voice'
0105         set(H.trigger_slope_popup, 'Enable', 'off');
0106         set(H.trigger_level_text, 'String', 'Level[0-1]');
0107         set(H.optional_parm_push, 'Enable', 'on');
0108         set(H.advanced_parm_push, 'Enable', 'on');
0109     case 'emg'
0110         set(H.trigger_slope_popup, 'Enable', 'off');
0111         set(H.trigger_level_text, 'String', 'Level[0-1]');
0112         set(H.optional_parm_push, 'Enable', 'on');
0113         set(H.advanced_parm_push, 'Enable', 'on');
0114     case 'integer'
0115         set(H.trigger_slope_popup, 'Enable', 'on');
0116         set(H.trigger_slope_popup, 'String', {'const_start', 'const_end'});
0117         set(H.trigger_level_text, 'String', 'Bit pattern(H>L)', 'Visible', 'on');
0118         set(H.integer_level_edit, 'Visible', 'on');
0119         set(H.optional_parm_push, 'Enable', 'on');
0120     case 'bit'
0121         set(H.trigger_slope_popup, 'Enable', 'on');
0122         set(H.trigger_slope_popup, 'String', {'low_to_high', 'high_to_low'});
0123         set(H.trigger_level_text, 'String', 'Bit number', 'Visible', 'on');
0124         set(H.bit_level_edit, 'Visible', 'on');
0125         set(H.optional_parm_push, 'Enable', 'on');
0126     case 'multi channel pattern'
0127         set(H.trigger_slope_popup, 'Enable', 'on');
0128         set(H.trigger_slope_popup, 'String', {'const_start', 'const_end'});
0129         set(H.trigger_level_text, 'String', 'Channel pattern', 'Visible', 'on');
0130         set(H.flag_pattern_push, 'Visible', 'on');
0131 end
0132 
0133 Ntrigger = length(data.trigger_list);
0134 trig_list_str = cell(0);
0135 for k=1:Ntrigger
0136     % get brief explantion of trigger
0137     trig_list_str{k} = [sprintf('TRIGGER%d:', k), ...
0138                         vb_trigger_get_brief_str(data.trigger_list{k})];
0139 end
0140 set(H.trigger_list_listbox, 'String', trig_list_str);
0141 if Ntrigger
0142     set(H.trigger_list_remove_push, 'Enable', 'on');
0143     set(H.trigger_list_view_push, 'Enable', 'on');
0144     set(H.trigger_edit_push,   'Enable', 'on');
0145 
0146 else
0147     set(H.trigger_list_remove_push, 'Enable', 'off');
0148     set(H.trigger_list_view_push, 'Enable', 'off');
0149     set(H.trigger_edit_push,   'Enable', 'off');
0150 end
0151 
0152 % Trial extraction push button status
0153 if isnumeric(pretrigger_ms) && ...
0154    pretrigger_ms > 0 && ...
0155    isnumeric(posttrigger_ms) && ...
0156    posttrigger_ms > 0 && ...
0157    Ntrigger > 0
0158    set(H.trigger_detect_push, 'Enable', 'on');
0159 else
0160    set(H.trigger_detect_push, 'Enable', 'off');
0161 end
0162 
0163 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0164 %  Update Extracted trial list
0165 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0166 
0167 % TAGS
0168 Ntags = length(data.label_list);
0169 tag_name_list = cell(0);
0170 if Ntags
0171     for k=1:Ntags
0172         tag_name_list{k} = vb_tag_get_tag_name(data.label_list{k});
0173     end
0174     set(H.tag_remove_push, 'Enable', 'on');
0175     set(H.add_to_output_list_button, 'Enable', 'on');
0176     set(H.channel_selection_push, 'Enable', 'on');
0177 else
0178     set(H.tag_listbox, 'Value', 1);
0179     set(H.add_to_output_list_button, 'Enable', 'off');
0180     set(H.tag_remove_push, 'Enable', 'off');
0181     set(H.channel_selection_push, 'Enable', 'off');
0182 end
0183 set(H.tag_listbox, 'String', tag_name_list);
0184 
0185 % Show trial according to selected tag
0186 data = vb_trial_extractor_show_tag_trial(data);
0187 
0188 % Selected labels
0189 Nselected_label = size(get(H.tag_listbox, 'Value'), 2);
0190 if isempty(get(H.tag_listbox, 'String'))
0191     Nselected_label = 0;
0192 end
0193 % Selected trials
0194 Nselected_trials = size(get(H.trial_set_listbox, 'Value'), 2);
0195 if isempty(get(H.trial_set_listbox, 'String'))
0196     Nselected_trials = 0;
0197 end
0198 % Trial add/edit/remove section state
0199 set(H.trial_add_push, 'Enable', 'off');
0200 set(H.trial_edit_push, 'Enable', 'off');
0201 set(H.trial_remove_push, 'Enable', 'off');
0202 if Nselected_label == 1
0203     set(H.trial_add_push, 'Enable', 'on');
0204 end
0205 if Nselected_label == 1 && Nselected_trials == 1
0206     set(H.trial_edit_push, 'Enable', 'on');
0207 end
0208 if Nselected_label == 1 && Nselected_trials >= 1
0209     set(H.trial_remove_push, 'Enable', 'on');
0210 end
0211     
0212 
0213 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0214 % Update Output file list
0215 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0216 output_file_list = cell(0);
0217 Nfile = length(data.output_file);
0218 for k=1:Nfile
0219     output_file_list{k} = data.output_file{k}.output_file;
0220 end
0221 set(H.output_listbox, 'String', output_file_list);
0222 if Nfile
0223     set(H.output_settings_push, 'Enable', 'on');
0224     set(H.output_file_remove_push, 'Enable', 'on');
0225     set(H.output_file_push, 'Enable', 'on');
0226 else
0227     set(H.output_settings_push, 'Enable', 'off');
0228     set(H.output_listbox, 'String', '');
0229     set(H.output_file_remove_push, 'Enable', 'off');
0230     set(H.output_file_push, 'Enable', 'off');
0231 end
0232 
0233 %
0234 % --- After check
0235 %
0236 if nargout ~= 1
0237     error('function caller should receive an application data.');
0238 end

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