annotate +util/ReplaceableString.m @ 1037:2d7ba44340d0 feature/burgers1d

Pass scheme specific parameters as cell array. This will enabale constructDiffOps to be more general. In addition, allow for schemes returning function handles as diffOps, which is currently how non-linear schemes such as Burgers1d are implemented.
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Fri, 18 Jan 2019 09:02:02 +0100
parents f30eafd6d4dc
children
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
241
09d964b850ee ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents: 229
diff changeset
37 function show(obj, varargin)
09d964b850ee ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents: 229
diff changeset
38 obj.param = varargin;
09d964b850ee ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents: 229
diff changeset
39 obj.display();
09d964b850ee ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents: 229
diff changeset
40 end
09d964b850ee ReplacableString: Added a more intuitive function name.
Jonatan Werpers <jonatan@werpers.com>
parents: 229
diff changeset
41
229
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
42 function remove(obj)
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
43 obj.update('');
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
44 end
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
45
130
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 function display(obj)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47 reverseStr = repmat(sprintf('\b'), 1, obj.n);
229
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
48 cleareStr = repmat(sprintf(' '), 1, obj.n);
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
49 newStr = sprintf(obj.fmt, obj.param{:});
af3bd542d550 Fixed some bugs.
Jonatan Werpers <jonatan@werpers.com>
parents: 131
diff changeset
50 fprintf([reverseStr, cleareStr, reverseStr, newStr]);
130
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 obj.n = length(newStr);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56 end
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 function b = padStr(a, n)
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59 b = sprintf('%-*s', n, a);
9797a74a94ec Added a class for replacable strings. Works with linebreaks.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 end
894
f30eafd6d4dc Add new formatting method to TextTable
Jonatan Werpers <jonatan@werpers.com>
parents: 241
diff changeset
61
f30eafd6d4dc Add new formatting method to TextTable
Jonatan Werpers <jonatan@werpers.com>
parents: 241
diff changeset
62 % TODO: Add a debug mode which prints without replacing?