blob: dd955b7a70d4615683abcaf2091f38e292b09a0c [file] [log] [blame]
hebasta10e0c212018-06-19 17:09:08 +02001/**
2 *
3 * Creates and displays corpus statistic
4 *
5 * @author Helge Stallkamp
6 *
7 */
hebasta10e0c212018-06-19 17:09:08 +02008
hebasta0f29e292018-07-24 11:42:25 +02009define([ 'util' ], function() {
hebasta10e0c212018-06-19 17:09:08 +020010
hebasta0f29e292018-07-24 11:42:25 +020011 return {
12
13 /**
14 * Create new statistic object
15 */
16 create : function(statistic) {
17 return Object.create(this)._init(statistic);
18 },
19
20 /**
21 * Initialize statistic object
22 */
23 _init : function(statistic) {
24 if (statistic === undefined) {
25 throw new Error("Missing parameter");
26 } else {
27 this._statistic = statistic;
28 return this;
29 }
30 },
31
32 /**
33 * Display statistic object as HTML Description List Element
34 */
35 element : function() {
36
37 // if this._element already exists return without doing something
38 if (this._element !== undefined) {
39 return this._element;
40 }
hebasta0f29e292018-07-24 11:42:25 +020041
42 // create HTML Description List Element
hebasta4c92eec2018-06-29 10:11:15 +020043 var statDL = document.createElement('dl');
Akron2f979122018-07-25 17:00:23 +020044 statDL.classList.add("flex");
hebasta0f29e292018-07-24 11:42:25 +020045 var statistic = this._statistic;
hebastacf5f9b62018-06-29 14:27:50 +020046
hebasta0f29e292018-07-24 11:42:25 +020047 var keys = Object.keys(statistic);
48 for (i = 0; i < keys.length; i++) {
49 statSp = statDL.addE('div')
50 statDT = statSp.addE('dt');
51 var k = keys[i];
52 statDT.addT(k);
53 statDT.setAttribute('title', k);
54 statDD = statSp.addE('dd');
Akron2f979122018-07-25 17:00:23 +020055 statDD.addT(statistic[k].toLocaleString());
hebasta0f29e292018-07-24 11:42:25 +020056 }
57
58 this._element = statDL;
59 return this._element;
60 },
61
62 }
63
hebasta10e0c212018-06-19 17:09:08 +020064});