blob: eb626dcd0c0a6cb314bb733faa03367b3035272c [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 }
41 ;
42
43 // create HTML Description List Element
hebasta4c92eec2018-06-29 10:11:15 +020044 var statDL = document.createElement('dl');
Akron2f979122018-07-25 17:00:23 +020045 statDL.classList.add("flex");
hebasta0f29e292018-07-24 11:42:25 +020046 var statistic = this._statistic;
hebastacf5f9b62018-06-29 14:27:50 +020047
hebasta0f29e292018-07-24 11:42:25 +020048 var keys = Object.keys(statistic);
49 for (i = 0; i < keys.length; i++) {
50 statSp = statDL.addE('div')
51 statDT = statSp.addE('dt');
52 var k = keys[i];
53 statDT.addT(k);
54 statDT.setAttribute('title', k);
55 statDD = statSp.addE('dd');
Akron2f979122018-07-25 17:00:23 +020056 statDD.addT(statistic[k].toLocaleString());
hebasta0f29e292018-07-24 11:42:25 +020057 }
58
59 this._element = statDL;
60 return this._element;
61 },
62
63 }
64
hebasta10e0c212018-06-19 17:09:08 +020065});