comparison +util/ReplaceableString.m @ 167:15baeb35f74e feature/grids

Merge in changes from default.
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 23 Feb 2016 13:25:43 +0100
parents 26e047194383
children af3bd542d550
comparison
equal deleted inserted replaced
166:7cb97c1988d9 167:15baeb35f74e
1 classdef ReplaceableString < handle
2 properties
3 n
4 fmt
5 param
6 end
7
8 methods
9 function obj = ReplaceableString(fmt, varargin)
10 default_arg('fmt', '');
11 obj.n = 0;
12
13 obj.setFormat(fmt);
14 obj.param = varargin;
15 end
16
17 function setFormat(obj, fmt)
18 obj.fmt = fmt;
19 end
20
21 function appendFormat(obj, fmt)
22 obj.fmt = [obj.fmt, fmt];
23 end
24
25 function update(obj, fmt, varargin)
26 obj.setFormat(fmt);
27 obj.param = varargin;
28
29 obj.display();
30 end
31
32 function updateParam(obj, varargin)
33 obj.param = varargin;
34 obj.display();
35 end
36
37 function display(obj)
38 reverseStr = repmat(sprintf('\b'), 1, obj.n);
39 newStr = padStr(sprintf(obj.fmt, obj.param{:}),obj.n);
40 fprintf([reverseStr, newStr]);
41
42 obj.n = length(newStr);
43 end
44 end
45
46 end
47
48 function b = padStr(a, n)
49 b = sprintf('%-*s', n, a);
50 end