0001 function varargout = current_gui(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052 fig = varargin{1};
0053 key = varargin{2};
0054 data = guidata(fig);
0055
0056 switch(key)
0057
0058
0059
0060
0061 case 'set_parm'
0062 current_parm = varargin{3};
0063 data = set_parm_gui(data, current_parm);
0064 data.current_parm = current_parm;
0065 case 'get_parm'
0066 varargout{1} = data.current_parm(data);
0067
0068
0069
0070
0071
0072 case 'callback'
0073 hObj = varargin{3};
0074 data = callback(data.H, hObj, data);
0075 current_parm = get_parm_gui(data);
0076 guidata(fig, data);
0077 current_gui(fig, 'merge_parm', current_parm);
0078 case 'merge_parm'
0079 merge_parm = varargin{3};
0080 parm_names = fieldnames(merge_parm);
0081 for k=1:length(parm_names)
0082 data.current_parm.(parm_names{k}) = merge_parm.(parm_names{k});
0083 end
0084 end
0085
0086
0087 guidata(fig, data);
0088
0089 function [data] = set_parm_gui(data, current_parm)
0090
0091
0092
0093
0094
0095
0096
0097 H = data.H;
0098
0099
0100 if isempty(current_parm) || ~exist('current_parm', 'var')
0101 current_parm = vb_set_current_parm;
0102 end
0103
0104
0105 if isfield(current_parm, 'bayesfile') && ~isempty(current_parm.bayesfile)
0106 proj_root = get(H.proj_root_edit, 'String');
0107 if isfield(current_parm, 'megfile')
0108 megfile = current_parm.megfile;
0109 else
0110 megfile = [];
0111 end
0112 [err, t_parm] = set_result_file(H, proj_root, current_parm.bayesfile, megfile);
0113 if ~err, data.time_parm = t_parm; end
0114 end
0115
0116
0117 if isfield(current_parm, 'currfile') && ~isempty(current_parm.currfile)
0118 [path_name, file_name, ext] = fileparts(current_parm.currfile);
0119 set(H.save_directory_edit, 'String', path_name);
0120 set(H.current_file_edit, 'String', current_parm.currfile);
0121 update_output_filename(H);
0122 end
0123
0124
0125 if isfield(current_parm, 'trial_average') && ~isempty(current_parm.trial_average)
0126 if current_parm.trial_average == ON
0127 change_trial_average(H, ON);
0128 else
0129 change_trial_average(H, OFF);
0130 end
0131 end
0132
0133
0134 if isfield(current_parm, 'tsubsmpl') && ~isempty(current_parm.tsubsmpl)
0135 tsubsmpl = current_parm.tsubsmpl;
0136 twin_msec = [];
0137 twin_meg = [];
0138 step_time = data_len_to_time_len(...
0139 tsubsmpl(2) - tsubsmpl(1), ...
0140 data.time_parm);
0141 Nsample = length(tsubsmpl);
0142
0143 [twin_meg(1), err, err_msg] = ...
0144 subsmpl_index_to_index(tsubsmpl(1), data.time_parm);
0145 [twin_msec(1), err, err_msg] = ...
0146 vb_index_to_time(twin_meg(1), data.time_parm);
0147 [twin_meg(2), err, err_msg] = ...
0148 subsmpl_index_to_index(tsubsmpl(Nsample), data.time_parm);
0149 [twin_msec(2), err, err_msg] = ...
0150 vb_index_to_time(twin_meg(2), data.time_parm);
0151
0152 set(H.time_window_from_edit, 'String', sprintf('%.2f', twin_msec(1)));
0153 set(H.time_window_to_edit, 'String', sprintf('%.2f', twin_msec(2)));
0154 set(H.time_step_edit, 'String', sprintf('%.2f', step_time));
0155 end
0156
0157
0158 if isfield(current_parm, 'jactdir') && ~isempty(current_parm.jactdir)
0159 if ~isempty(current_parm.jactdir)
0160 set(H.jact_directory_edit, 'String', current_parm.jactdir);
0161 change_save_mode(H, SAVE_MODE_MULTIPLE);
0162 end
0163 end
0164
0165
0166 if isfield(current_parm, 'areafile') && ~isempty(current_parm.areafile)
0167 if isfield(current_parm, 'area_key')
0168 reload_gui_area_file(H, current_parm.areafile, current_parm.area_key);
0169 else
0170 reload_gui_area_file(H, current_parm.areafile);
0171 end
0172 end
0173
0174
0175 current_parm.flag = 0;
0176
0177
0178 if isfield(current_parm, 'comment')
0179 set(H.comment_edit, 'String', current_parm.comment);
0180 end
0181
0182 update_exec_button_state(H);
0183
0184
0185
0186 function current_parm = get_parm_gui(data)
0187
0188
0189
0190
0191
0192
0193 H = data.H;
0194
0195 current_parm = struct;
0196
0197
0198 current_parm.bayesfile = get(H.result_file_edit, 'String');
0199
0200
0201 meg_file = get(H.meg_file_edit, 'String');
0202 if ~isempty(meg_file)
0203 current_parm.megfile = meg_file;
0204 end
0205
0206
0207 current_file = get(H.current_file_edit, 'String');
0208 current_parm.currfile = current_file;
0209
0210
0211 if get(H.trial_average_on_button, 'Value') == 1
0212 current_parm.trial_average = ON;
0213 else
0214 current_parm.trial_average = OFF;
0215 end
0216
0217
0218 twin_subsmple = [];
0219 twin_meg = [];
0220 step_size_str = get(H.time_step_edit, 'String');
0221 twin_from_str = get(H.time_window_from_edit, 'String');
0222 twin_to_str = get(H.time_window_to_edit, 'String');
0223
0224 if ~isempty(data.time_parm)
0225
0226 step_size = time_len_to_data_len(...
0227 str2double(step_size_str),...
0228 data.time_parm);
0229
0230 [twin_meg(1), err, err_msg] = ...
0231 vb_time_to_index(str2double(twin_from_str), data.time_parm);
0232 [twin_meg(2), err, err_msg] = ...
0233 vb_time_to_index(str2double(twin_to_str), data.time_parm);
0234 [twin_subsmple(1), err, err_msg] = ...
0235 index_to_subsmpl_index(twin_meg(1), data.time_parm);
0236 [twin_subsmple(2), err, err_msg] = ...
0237 index_to_subsmpl_index(twin_meg(2), data.time_parm);
0238
0239 current_parm.tsubsmpl = [twin_subsmple(1):step_size:twin_subsmple(2)];
0240 end
0241
0242
0243 if get(H.save_file_multiple_button, 'Value') == 1
0244 current_parm.jactdir = get(H.jact_directory_edit, 'String');
0245 if isempty(current_parm.jactdir)
0246 current_parm.jactdir = '.';
0247 end
0248 end
0249
0250
0251 current_parm.areafile = get(H.area_file_edit, 'String');
0252 area_keys = get(H.area_key_listbox, 'String');
0253 if ischar(area_keys)
0254 current_parm.area_key = area_keys;
0255 else
0256 current_parm.area_key = area_keys{get(H.area_key_listbox, 'Value')};
0257 end
0258
0259
0260 current_parm.flag = 0;
0261
0262
0263 current_parm.comment = get(H.comment_edit, 'String');
0264
0265
0266
0267 function [err] = exec(H, data)
0268
0269
0270
0271
0272
0273
0274 err = false;
0275
0276 proj_root = get(H.proj_root_edit, 'String');
0277 current_parm = get_parm_gui(data);
0278
0279 str = get(H.exec_push, 'String');
0280 set(H.exec_push, 'String', 'Processing...');
0281 drawnow;
0282
0283 vb_job_current(proj_root, current_parm);
0284 set(H.exec_push, 'String', 'Exec');
0285
0286
0287
0288 function [data] = callback(H, hObj, data)
0289
0290
0291
0292
0293
0294
0295
0296
0297
0298 global vbmeg_inst;
0299 define = vbmeg_inst.const;
0300
0301 switch(hObj)
0302 case H.proj_root_push
0303 dir_name = dir_dialog(get(H.proj_root_edit, 'String'));
0304 if dir_name ~= 0
0305 set(H.proj_root_edit, 'String', dir_name);
0306 end
0307 case H.result_file_push
0308 proj_root = get(H.proj_root_edit, 'String');
0309 [dirname, fnames, cancelled] = pa_prjfile_select(proj_root, ...
0310 {define.BAYES_EXTENSION}, ...
0311 'Select current variance file');
0312 if ~cancelled
0313 result_file = [dirname, '/', fnames{1}];
0314 [err, time_parm] = set_result_file(H, proj_root, result_file);
0315 if ~err
0316 data.time_parm = time_parm;
0317 end
0318
0319 [p_, f_, e_] = vb_get_file_parts(result_file);
0320 ix = find(f_ == '.');
0321 if ~isempty(ix)
0322 set(H.current_file_edit, 'String', ...
0323 [f_(1:ix(1)-1), define.CURRENT_EXTENSION]);
0324 end
0325 update_output_filename(H);
0326 end
0327 case H.meg_file_push
0328 proj_root = get(H.proj_root_edit, 'String');
0329 [dir fname] = pa_prjfile_select(proj_root, ...
0330 {define.MEG2_EXTENSION, define.EEG_EXTENSION}, ...
0331 'Select MEG/EEG file');
0332 if ~isempty(dir)
0333 meg_file = [dir, filesep, fname{1}];
0334 set(H.meg_file_edit, 'String', meg_file);
0335 result_file = get(H.result_file_edit, 'String');
0336 [err, time_parm] = set_result_file(H, proj_root, result_file, meg_file);
0337 if ~err
0338 data.time_parm = time_parm;
0339 end
0340 end
0341 case {H.trial_average_on_button, H.trial_average_off_button}
0342 if hObj == H.trial_average_on_button
0343 if get(H.save_file_multiple_button, 'Value')
0344 change_trial_average(H, OFF);
0345 uiwait(...
0346 msgbox(['Set "Save file = single file " '...
0347 'before trial average switch ON.'],...
0348 'message', 'modal'));
0349 else
0350 change_trial_average(H, ON);
0351 end
0352 else
0353 change_trial_average(H, OFF);
0354 end
0355 case {H.time_window_from_edit, H.time_window_to_edit}
0356 time_value = str2double(get(hObj, 'String'));
0357 time_index = vb_time_to_index(time_value, data.time_parm);
0358 time_value = vb_index_to_time(time_index, data.time_parm);
0359 set(hObj, 'String', sprintf('%.2f', time_value));
0360 case H.select_time_window_push
0361 time_parm = data.time_parm;
0362 if isempty(time_parm)
0363 errordlg('first, set result file.', 'error');
0364 else
0365 select_time_window_time_course(H, time_parm);
0366 end
0367 case H.time_step_edit
0368 [time_len] = str2double(get(hObj, 'String'));
0369 if time_len <= 0
0370 errordlg('Time step should be positive value.', 'error');
0371 return;
0372 else
0373
0374
0375 [data_len] = time_len_to_data_len(time_len, data.time_parm);
0376 [time_len] = data_len_to_time_len(data_len, data.time_parm);
0377 set(hObj, 'String', sprintf('%.2f', time_len));
0378 end
0379 case H.area_file_push
0380 proj_root = get(H.proj_root_edit, 'String');
0381 [dirname, fnames, cancelled] = pa_prjfile_select(...
0382 proj_root, ...
0383 {define.AREA_EXTENSION}, ...
0384 'Select cortical area file');
0385 if ~cancelled
0386 area_file = [dirname '/' fnames{1}];
0387 reload_gui_area_file(H, area_file);
0388 end
0389 case H.area_file_reset_push
0390 set(H.area_file_edit, 'String', []);
0391 set(H.area_key_listbox, 'String', []);
0392 set(H.area_key_listbox, 'Value', 1);
0393 case {H.save_file_single_button, H.save_file_multiple_button}
0394 if hObj == H.save_file_single_button
0395
0396 change_save_mode(H, SAVE_MODE_SINGLE);
0397 else
0398
0399 if get(H.trial_average_on_button, 'Value')
0400 change_save_mode(H, SAVE_MODE_SINGLE);
0401 uiwait(...
0402 msgbox(['Set "trial average = OFF" ' ...
0403 'before save file multiple mode.'] ,...
0404 'message', 'modal'));
0405 else
0406 change_save_mode(H, SAVE_MODE_MULTIPLE);
0407 end
0408 end
0409 case H.save_directory_push
0410 proj_root = get(H.proj_root_edit, 'String');
0411 [dirname, cancelled] = pa_prjdir_select(proj_root);
0412 if ~cancelled
0413 set(H.save_directory_edit, 'String', dirname);
0414 update_output_filename(H);
0415 end
0416 case H.exec_push
0417 err = exec(H, data);
0418 case H.advanced_parameter_push
0419 this = data.H.figure;
0420 if ishandle(data.adv_fig)
0421 figure(data.adv_fig);
0422 else
0423 data.adv_fig = current_gui_advanced_new(this, data.current_parm);
0424 end
0425 end
0426
0427 update_exec_button_state(H);
0428
0429
0430
0431 function update_exec_button_state(H)
0432
0433
0434
0435 button_state = 'off';
0436 if ~isempty(get(H.result_file_edit, 'String')) & ...
0437 ~isempty(get(H.time_window_from_edit, 'String')) & ...
0438 ~isempty(get(H.time_window_to_edit, 'String')) & ...
0439 ~isempty(get(H.time_step_edit, 'String')) & ...
0440 ~isempty(get(H.save_directory_edit, 'String')) & ...
0441 ~isempty(get(H.current_file_edit, 'String'))
0442
0443 button_state = 'on';
0444
0445
0446
0447
0448
0449
0450
0451
0452
0453 end
0454
0455 set(H.exec_push, 'Enable', button_state);
0456
0457
0458
0459
0460
0461
0462
0463
0464
0465 function [time, err, err_msg] = vb_index_to_time(index, time_parm)
0466
0467
0468
0469
0470
0471
0472
0473
0474
0475
0476
0477
0478 time = [];
0479 err = false;
0480 err_msg = [];
0481
0482 if isempty(time_parm)
0483 err = true;
0484 err_msg = 'result file is not specified.';
0485 return;
0486 end
0487
0488 if ~( (time_parm.twin_meg(1) <= index) && (index <= time_parm.twin_meg(2)) )
0489 error('vb_index_to_time : inputted index is out of range.');
0490 end
0491
0492 time = (index - time_parm.pretrigger - 1) * (1000/time_parm.sample_freq);
0493
0494
0495
0496 function [index, err, err_msg] = vb_time_to_index(time, time_parm)
0497
0498
0499
0500
0501
0502
0503
0504
0505
0506
0507 index = [];
0508 err = false;
0509 err_msg = [];
0510
0511 if isempty(time_parm)
0512 err = true;
0513 err_msg = 'result file is not specified.';
0514 return;
0515 end
0516
0517 index = round(time * (time_parm.sample_freq/1000) + time_parm.pretrigger + 1);
0518
0519
0520 if index < time_parm.twin_meg(1), index = time_parm.twin_meg(1); end;
0521 if time_parm.twin_meg(2) < index, index = time_parm.twin_meg(2); end;
0522
0523
0524
0525 function [data_len, err, err_msg] = time_len_to_data_len(time_len, time_parm)
0526
0527
0528
0529
0530
0531
0532
0533
0534
0535 data_len = [];
0536 err = false;
0537 err_msg = [];
0538
0539 if time_len <= 0;
0540 err = true;
0541 err_msg = 'Time length should be positive value.';
0542 return;
0543 end
0544 if isempty(time_parm)
0545 err = true;
0546 err_msg = 'result file is not specified.';
0547 return;
0548 end
0549
0550 data_len = ceil(time_len * (time_parm.sample_freq/1000));
0551 twin_meg = time_parm.twin_meg;
0552
0553
0554
0555 function [time_len, err, err_msg] = data_len_to_time_len(data_len, time_parm)
0556
0557
0558
0559
0560
0561
0562
0563
0564
0565
0566
0567
0568 time_len = [];
0569 err = false;
0570 err_msg = [];
0571
0572 data_len_int = double(int64(data_len));
0573 if( data_len <=0 || (data_len - data_len_int) > 0 )
0574 error('data_len_to_time_len : data_len should be positive integer.');
0575 end
0576 if isempty(time_parm)
0577 err = true;
0578 err_msg = 'result file is not specified.';
0579 return;
0580 end
0581
0582 data_len = ceil(data_len);
0583 time_len = data_len * (1000/time_parm.sample_freq);
0584
0585
0586
0587 function [subsmpl_index, err, err_msg] = index_to_subsmpl_index(index, time_parm)
0588
0589
0590
0591
0592
0593
0594
0595
0596
0597
0598
0599
0600 subsmpl_index = [];
0601 err = false;
0602 err_msg = [];
0603
0604 index_int = double(int64(index));
0605 if( index <= 0 || (index_int - index) > 0 )
0606 error('index_to_subsmpl_index : index should be positive integer.');
0607 end
0608 if isempty(time_parm)
0609 err = true;
0610 err_msg = 'result file is not specified.';
0611 return;
0612 end
0613
0614 if ~( (time_parm.twin_meg(1) <= index) && (index <= time_parm.twin_meg(2)) )
0615 error('index_to_subsmpl_index : inputted index is out of range.');
0616 end
0617 subsmpl_index = index - time_parm.twin_meg(1) + 1;
0618
0619
0620
0621 function [index, err, err_msg] = subsmpl_index_to_index(subsmpl_index, time_parm);
0622
0623
0624
0625
0626
0627
0628
0629
0630
0631
0632
0633
0634 index = [];
0635 err = false;
0636 err_msg = [];
0637
0638 subsmpl_int = double(int64(subsmpl_index));
0639 if( subsmpl_index <= 0 || (subsmpl_index - subsmpl_int) > 0 )
0640 error('subsmpl_index_to_index : subsmple_index should be positive integer.');
0641 end
0642 if isempty(time_parm)
0643 err = true;
0644 err_msg = 'result file is not specified.';
0645 return;
0646 end
0647
0648 index = ceil(subsmpl_index) + time_parm.twin_meg(1) - 1;
0649 if ~( (time_parm.twin_meg(1) <= index) && (index <= time_parm.twin_meg(2)) )
0650 error('subsmpl_index_to_index : inputted subsmpl_index is out of range.');
0651 end
0652
0653
0654
0655 function [err, time_parm] = set_result_file(H, proj_root, result_file, meg_file)
0656
0657
0658
0659
0660
0661
0662
0663
0664
0665
0666
0667 err = false;
0668
0669
0670 if ~exist('meg_file', 'var')
0671 meg_file = [];
0672 end
0673 [time_parm, err, err_msg] = read_time_parameters(proj_root, result_file, meg_file);
0674 if err
0675 errordlg(['result file read error occured -- detail :' err_msg], 'error');
0676 else
0677
0678
0679
0680
0681
0682 set(H.result_file_edit, 'String', result_file);
0683
0684
0685 [time] = vb_index_to_time(time_parm.twin_meg(1), time_parm);
0686 set(H.time_window_from_edit, 'String', sprintf('%.2f', time));
0687 [time] = vb_index_to_time(time_parm.twin_meg(2), time_parm);
0688 set(H.time_window_to_edit, 'String', sprintf('%.2f', time));
0689
0690
0691 [time_len] = data_len_to_time_len(1, time_parm);
0692 set(H.time_step_edit, 'String', num2str(time_len-0.001));
0693
0694
0695 set(H.meg_file_edit, 'String', time_parm.meg_file);
0696 set(H.meg_file_edit, 'Enable', 'on');
0697 set(H.meg_file_push, 'Enable', 'on');
0698 end
0699
0700
0701
0702 function [time_parm, err, err_msg] = read_time_parameters(proj_root, result_file, meg_file)
0703
0704
0705
0706
0707
0708
0709
0710
0711
0712
0713
0714 time_parm = [];
0715 err = false;
0716 err_msg = [];
0717 if ~exist('meg_file', 'var')
0718 meg_file = [];
0719 end
0720
0721
0722 result_file = [proj_root, '/', result_file];
0723
0724 if ~exist(result_file, 'file'),
0725 err = true;
0726 err_msg = 'result file does not exist.';
0727 return;
0728 end;
0729 load(result_file, 'bayes_parm');
0730
0731
0732 if isempty(meg_file)
0733 meg_file = bayes_parm.megfile{1};
0734 end
0735
0736
0737 meg_file_abs = [proj_root, '/', meg_file];
0738 if ~exist(meg_file_abs, 'file')
0739 err = true;
0740 err_msg = 'megfile does not exist.';
0741 return;
0742 end
0743 [MEGinfo] = vb_load_meg_info(meg_file_abs);
0744
0745
0746 time_parm = struct;
0747 time_parm.meg_file = meg_file;
0748 time_parm.pretrigger = vb_meginfo_get_pre_trigger(MEGinfo);
0749 time_parm.sample_freq = vb_meginfo_get_sampling_frequency(MEGinfo);
0750 time_parm.Nsample = vb_meginfo_get_sample_number(MEGinfo);
0751 time_parm.twin_meg = bayes_parm.twin_meg;
0752
0753
0754
0755 function change_save_mode(H, mode)
0756
0757
0758
0759
0760
0761 switch(mode)
0762 case SAVE_MODE_SINGLE
0763 set(H.save_file_single_button, 'Value', 1);
0764 set(H.save_file_multiple_button, 'Value', 0);
0765 set(H.jact_directory_text, 'Visible', 'off');
0766 set(H.jact_directory_text2, 'Visible', 'off');
0767 set(H.jact_directory_edit, 'Visible', 'off');
0768 case SAVE_MODE_MULTIPLE
0769 set(H.save_file_single_button, 'Value', 0);
0770 set(H.save_file_multiple_button, 'Value', 1);
0771
0772 set(H.jact_directory_text, 'Visible', 'on');
0773 set(H.jact_directory_text2, 'Visible', 'on');
0774 set(H.jact_directory_edit, 'Visible', 'on');
0775 end
0776
0777
0778
0779 function update_output_filename(H)
0780
0781
0782
0783
0784 save_dir = get(H.save_directory_edit, 'String');
0785
0786 current_file_edit = get(H.current_file_edit, 'String');
0787 jact_dir_edit = get(H.jact_directory_edit, 'String');
0788
0789
0790
0791 [path_name, current_file, ext_cur] = vb_get_file_parts(current_file_edit);
0792 [path_name, jact_dir] = vb_get_file_parts(jact_dir_edit);
0793
0794 set(H.current_file_edit, 'String', [save_dir, '/', current_file, ext_cur]);
0795
0796
0797
0798
0799 function change_trial_average(H, mode)
0800
0801
0802
0803
0804
0805 switch(mode)
0806 case ON
0807 set(H.trial_average_on_button, 'Value', 1);
0808 set(H.trial_average_off_button, 'Value', 0);
0809 case OFF
0810 set(H.trial_average_on_button, 'Value', 0);
0811 set(H.trial_average_off_button, 'Value', 1);
0812 end
0813
0814
0815
0816 function select_time_window_time_course(H, time_parm)
0817
0818
0819
0820
0821
0822
0823
0824 twin_ini = [];
0825 [twin_ini(1)] = vb_time_to_index(...
0826 str2double(get(H.time_window_from_edit, 'String')), time_parm);
0827 [twin_ini(2)] = vb_time_to_index(...
0828 str2double(get(H.time_window_to_edit, 'String')), time_parm);
0829
0830
0831
0832
0833
0834
0835 gui_cancelled = true;
0836 set(H.figure, 'HandleVisibility', 'off');
0837 try
0838 proj_root = get(H.proj_root_edit, 'String');
0839 meg_file = [proj_root, '/', time_parm.meg_file];
0840 [twin_meg, gui_cancelled] = ...
0841 job_plot_meg(meg_file, ...
0842 2, ...
0843 time_parm.twin_meg, ...
0844 twin_ini);
0845 catch
0846 [last_msg, last_id] = lasterr;
0847 errordlg(last_msg, 'error');
0848 end
0849 set(H.figure, 'HandleVisibility', 'on');
0850
0851 if ~gui_cancelled
0852 [time] = vb_index_to_time(twin_meg(1), time_parm);
0853 set(H.time_window_from_edit, 'String', sprintf('%.2f', time));
0854 [time] = vb_index_to_time(twin_meg(2), time_parm);
0855 set(H.time_window_to_edit, 'String', sprintf('%.2f', time));
0856 end
0857
0858
0859
0860 function reload_gui_area_file(H, area_file, area_key)
0861
0862
0863
0864
0865
0866
0867
0868
0869
0870 set(H.area_file_edit, 'String', area_file);
0871
0872
0873 keys = {};
0874 proj_root = get(H.proj_root_edit, 'String');
0875 area_file = [proj_root '/' area_file];
0876
0877 if exist(area_file, 'file') ~= 2
0878 return;
0879 end
0880
0881 load(area_file, 'Area');
0882 for n = 1 : length(Area)
0883 keys{n} = Area{n}.key;
0884 end
0885
0886
0887 if exist('area_key', 'var')
0888 focus_line = strmatch(area_key, keys, 'exact');
0889 if isempty(focus_line), focus_line = 1; end;
0890 else
0891 focus_line = 1;
0892 end
0893
0894
0895 set(H.area_key_listbox, 'String', keys);
0896 set(H.area_key_listbox, 'Value', focus_line);
0897
0898
0899
0900
0901
0902
0903 function v = DEFAULT_CURRENT_FNAME
0904 v = 'current.curr.mat';
0905 function v = SAVE_MODE_SINGLE
0906 v = 1;
0907 function v = SAVE_MODE_MULTIPLE
0908 v = 2;
0909 function v = OVERLAPPED_MODE
0910 v = 1;
0911 function v = CONCATENATE_MODE
0912 v = 2;
0913 function v = APPLICATION_NAME
0914 v = 'Current estimation';