Home > functions > gui > bayes_parm_editor_dir > bayes_parm_gui_util.m

bayes_parm_gui_util

PURPOSE ^

This is a utility function for bayes parameter editor.

SYNOPSIS ^

function varargout = bayes_parm_gui_util(varargin)

DESCRIPTION ^

 This is a utility function for bayes parameter editor.

 Usage: [out1, out2, ...] = bayes_parm_gui_util(command, arg1, arg2,...)

 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:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function varargout = bayes_parm_gui_util(varargin)
0002 % This is a utility function for bayes parameter editor.
0003 %
0004 % Usage: [out1, out2, ...] = bayes_parm_gui_util(command, arg1, arg2,...)
0005 %
0006 % Copyright (C) 2011, ATR All Rights Reserved.
0007 % License : New BSD License(see VBMEG_LICENSE.txt)
0008 
0009 key = varargin{1};
0010 
0011 switch(key)
0012     case 'filedlg'
0013         % see function filedlg in this file.
0014         extensions = varargin{2};
0015         save_mode  = varargin{3};
0016         opening_dir = varargin{4};
0017 
0018         [dirname, filename, flg] = filedlg(extensions,...
0019                                             save_mode,...
0020                                             opening_dir);
0021         varargout{1} = dirname;
0022         varargout{2} = filename;
0023         varargout{3} = flg;
0024     case 'filedlg_relative'
0025         % see function filedlg_relative in this file.
0026         extensions = varargin{2};
0027         save_mode  = varargin{3};
0028         base_dir   = varargin{4};
0029         if nargin >= 5
0030             caption    = varargin{5};
0031         else
0032             caption = '';
0033         end
0034 
0035         [dirname, filename, flg] = filedlg_relative(extensions,...
0036                                             save_mode,...
0037                                             base_dir, ...
0038                                             caption);
0039         varargout{1} = dirname;
0040         varargout{2} = filename;
0041         varargout{3} = flg;
0042     case 'comma_text'
0043         % see function comma_text in this file.
0044         text = varargin{2};
0045         [c_text] = comma_text(text);
0046         varargout{1} = c_text;
0047 end
0048 
0049 function [dirname, filename, flg] = filedlg(extensions,...
0050                                             save_mode,...
0051                                             opening_dir, ...
0052                                             caption);
0053 % This function opens file dialog.
0054 % File dialog returns absolute path.
0055 % [IN] extensions  : selection file extension
0056 %      save_mode   : 0:load mode, 1:save mode
0057 %      opening_dir : default directory
0058 %        caption   : dialog title
0059 % [OUT]dirname     : absolute path
0060 %      filename    : selected filenames(cell array)
0061 %      flg         : dialog end flag(0:cancel, 1:selected)
0062 
0063     persistent last_access_dir;
0064     persistent history_dir;
0065 
0066     % Default
0067     if nargin < 3
0068         % set opening directory
0069         if length(last_access_dir)
0070             opening_dir = last_access_dir;
0071         else
0072             opening_dir = pwd;
0073         end
0074     end
0075     if nargin < 2
0076         save_mode = 0;
0077     end
0078     if nargin < 1
0079         extensions = [];
0080     end
0081     if ~exist('caption', 'var'), caption = ''; end
0082 
0083     h = file_dialog;
0084     h.save_mode = save_mode; 
0085     h.file_extensions = extensions;
0086 
0087     % set directory history.
0088     hist_num = length(history_dir);
0089     if ~isempty(history_dir)
0090         h = set(h, 'hist_dir', history_dir);
0091     end
0092     
0093     % set dialog title
0094     h = set(h, 'dialog_title', caption);
0095 
0096     % dialog open
0097     h = set(h, 'current_dir', opening_dir);
0098     [dirname, filename] = visible(h);
0099 
0100     if isempty(dirname)
0101         %cancel
0102         flg = 0;
0103     else
0104         %selected
0105         flg = 1;
0106         last_access_dir = dirname;
0107     end
0108 
0109     % save history
0110     if ~isempty(dirname)
0111         % check not to duplicate
0112         idx = strmatch(dirname, history_dir);
0113         if isempty(idx)
0114             history_dir{hist_num+1} = dirname;
0115         end
0116     end
0117 
0118 function [dirname, filename, flg] = filedlg_relative(extensions,...
0119                                             save_mode,...
0120                                             base_dir, ...
0121                                             caption)
0122 
0123 % This function opens file dialog.
0124 % File dialog returns relative path.
0125 %
0126 % [IN] extensions  : selection file extension
0127 %      save_mode   : 0:load mode, 1:save mode
0128 %      base_dir    : opening directory
0129 %       caption    : dialog title
0130 % [OUT]dirname     : relative path from base_dir
0131 %      filename    : selected filenames(cell array)
0132 %      flg         : dialog end flag(0:cancel, 1:selected)
0133     if ~exist('caption', 'var'), caption = ''; end
0134     [dirname, filename, flg] = filedlg(extensions,...
0135                                                 save_mode,...
0136                                                 base_dir, ...
0137                                                 caption);
0138 
0139 
0140     % change path from absolute to relative from base_dir
0141     if ~isempty(dirname) & ~isempty(base_dir) 
0142         dirname = vb_relativepath(dirname, base_dir);
0143         dirname = dirname(1:length(dirname)-1);
0144     end
0145 
0146 function [c_text] = comma_text(text)
0147 % This function makes a comma text.
0148 % text should be (1xn) matrix
0149 %
0150 % [IN]
0151 %    text : 1xn (ex. [5,6,7])
0152 % [OUT]
0153 %    c_text : comma text(ex. '5,6,7')
0154 
0155     c_text = [];
0156     len = length(text);
0157 
0158     for k=1:len
0159         if k == len
0160             c_text = [c_text, sprintf('%.2f', text(k))];
0161         else
0162             c_text = [c_text, sprintf('%.2f,', text(k))];
0163         end
0164     end

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