annotate +util/ReplaceableString.m @ 229:af3bd542d550 feature/beams

Fixed some bugs.
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 01 Jul 2016 09:45:47 +0200
parents 26e047194383
children 09d964b850ee
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
131
26e047194383 ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents: 130
diff changeset
21 function appendFormat(obj, fmt)
26e047194383 ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents: 130
diff changeset
22 obj.fmt = [obj.fmt, fmt];
26e047194383 ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents: 130
diff changeset
23 end
26e047194383 ReplaceableString: Added .appendFormat()
Jonatan Werpers <jonatan@werpers.com>
parents: 130
diff changeset
24
130
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 function update(obj, fmt, varargin)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 obj.setFormat(fmt);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 obj.param = varargin;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 obj.display();
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 function updateParam(obj, varargin)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 obj.param = varargin;
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 obj.display();
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36
229
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
37 function remove(obj)
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
38 obj.update('');
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
39 end
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
40
130
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 function display(obj)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 reverseStr = repmat(sprintf('\b'), 1, obj.n);
229
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
43 cleareStr = repmat(sprintf(' '), 1, obj.n);
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
44 newStr = sprintf(obj.fmt, obj.param{:});
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
45 fprintf([reverseStr, cleareStr, reverseStr, newStr]);
130
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 obj.n = length(newStr);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 function b = padStr(a, n)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 b = sprintf('%-*s', n, a);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 end