annotate +util/ReplaceableString.m @ 130:9797a74a94ec

Added a class for replacable strings. Works with linebreaks.
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 04 Feb 2016 16:29:03 +0100
parents
children 26e047194383
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
130
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 classdef ReplaceableString < handle
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 properties
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 n
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 fmt
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 param
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 methods
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 function obj = ReplaceableString(fmt, varargin)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 default_arg('fmt', '');
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 obj.n = 0;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 obj.setFormat(fmt);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 obj.param = varargin;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 function setFormat(obj, fmt)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 obj.fmt = fmt;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 function update(obj, fmt, varargin)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 obj.setFormat(fmt);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 obj.param = varargin;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 obj.display();
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 function updateParam(obj, varargin)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 obj.param = varargin;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 obj.display();
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 function display(obj)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 reverseStr = repmat(sprintf('\b'), 1, obj.n);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 newStr = padStr(sprintf(obj.fmt, obj.param{:}),obj.n);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36 fprintf([reverseStr, newStr]);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38 obj.n = length(newStr);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
40 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 function b = padStr(a, n)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 b = sprintf('%-*s', n, a);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 end