0001 function project_mgr_uimenu_file_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 switch(hObj)
0033 case H.load_project_menu
0034 h = file_dialog;
0035 current_dir = get(H.project_root_edit, 'String');
0036 if isempty(current_dir)
0037 current_dir = pwd;
0038 end
0039 h = set(h, 'current_dir', current_dir);
0040 h = set(h, 'file_extensions', {'.prj.mat'});
0041 h = set(h, 'dialog_title', 'Select project file');
0042 [dir_name, fnames] = visible(h);
0043 if ~isempty(dir_name) && ~isempty(fnames{1})
0044 project_file = [dir_name, filesep, fnames{1}];
0045 data = project_mgr_load_project_file(project_file, data, fig);
0046 end
0047 case H.new_project_menu
0048 [cancelled, err, project_file] = create_new_project;
0049 if ~cancelled && ~err
0050 data = project_mgr_load_project_file(project_file, data, fig);
0051 end
0052 case H.output_history_menu
0053 project_mgr_output_history(fig);
0054 end