Mercurial > hg > ltpda
diff m-toolbox/classes/@ltpda_uoh/viewHistory.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/classes/@ltpda_uoh/viewHistory.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,161 @@ +% VIEWHISTORY Displays the history of an object as a dot-view or a MATLAB figure. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% DESCRIPTION: VIEWHISTORY Displays the history of an object depending of +% the parameter values as a dot-view or a MATLAB history +% figure. +% +% CALL: viewHistory(obj); +% viewHistory(obj, pl); +% +% INPUTS: obj: Single object with history +% pl: parameter list with different parameters. +% +% <a href="matlab:utils.helper.displayMethodInfo('ltpda_uoh', 'viewHistory')">Parameters Description</a> +% +% VERSION: $Id: viewHistory.m,v 1.9 2011/04/08 08:56:30 hewitson Exp $ +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +function varargout = viewHistory(varargin) + + % Check if this is a call for parameters + if utils.helper.isinfocall(varargin{:}) + varargout{1} = getInfo(varargin{3}); + return + end + + % Collect all AOs + obj = utils.helper.collect_objects(varargin(:), ''); + pl = utils.helper.collect_objects(varargin(:), 'plist'); + + % Check that the input object is only a single object + if numel(obj) ~= 1 + error('### This methods works only with one single object'); + end + + % Check that the input object effectively contains history information + if isempty(obj.hist) + warning('### The object has no history!'); + else + % be sure that pl is a single plist. + pl = combine(pl, plist()); + + app = pl.find('application'); + if isempty(app) + app = 'default'; + end + + % Combine input plist with dedfault plist + pl = combine(pl, getDefaultPlist(app)); + + switch lower(pl.find('application')) + case 'dot view' + try + dotview(obj.hist, pl); + catch err + warning('### The DOT view fails. Using the MATLAB view'); + plot(obj.hist); + end + case 'matlab plot' + plot(obj.hist, pl); + otherwise + error('### Unknown application to show the history [%s]', pl.find('application')); + end + end +end + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Local Functions % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% FUNCTION: getInfo +% +% DESCRIPTION: Get Info Object +% +% HISTORY: 11-07-07 M Hewitson +% Creation. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +function ii = getInfo(varargin) + if nargin == 1 && strcmpi(varargin{1}, 'None') + sets = {}; + pls = []; + elseif nargin == 1 && ~isempty(varargin{1}) && ischar(varargin{1}) + sets{1} = varargin{1}; + pls = getDefaultPlist(sets{1}); + else + sets = {... + 'Default', ... + 'DOT View', ... + 'MATLAB plot'}; + + pls = []; + for kk=1:numel(sets) + pls = [pls getDefaultPlist(sets{kk})]; + end + end + % Build info object + ii = minfo(mfilename, 'ltpda_uoh', 'ltpda', utils.const.categories.output, '$Id: viewHistory.m,v 1.9 2011/04/08 08:56:30 hewitson Exp $', sets, pls); + ii.setModifier(false); + ii.setOutmin(0); +end + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% FUNCTION: getDefaultPlist +% +% DESCRIPTION: Get Default Plist +% +% HISTORY: 11-07-07 M Hewitson +% Creation. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +function plout = getDefaultPlist(set) + persistent pl; + persistent lastset; + if exist('pl', 'var')==0 || isempty(pl) || ~strcmp(lastset, set) + pl = buildplist(set); + lastset = set; + end + plout = pl; +end + +function pl = buildplist(set) + + pl = plist(); + + p = param({'application', 'Application which should display the history'}, {1, {'DOT View', 'MATLAB plot'}, paramValue.SINGLE}); + pl.append(p); + + switch lower(set) + case 'default' + pl = getDefaultPlist('dot view'); + + case 'dot view' + pl.setDefaultForParam('application', 'dot view'); + + p = param({'filename', ''}, paramValue.EMPTY_STRING); + pl.append(p); + + p = param({'view', ''}, paramValue.TRUE_FALSE); + pl.append(p); + + p = param({'format', ''}, paramValue.STRING_VALUE('pdf')); + pl.append(p); + + case 'matlab plot' + pl.setDefaultForParam('application', 'matlab plot'); + + p = param({'stop_option','Stop option'}, {1, {'full', 'File', 'Repo', 'File Repo', 1, 2, 3, 4}, paramValue.SINGLE}); + pl.append(p); + + otherwise + error('### Unknown parameter set [%s].', set); + end +end +