util.js revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5cr.define('media', function() {
6  'use strict';
7
8  /**
9   * The width and height of a bar drawn on a file canvas in pixels.
10   */
11  var BAR_WIDTH = 500;
12  var BAR_HEIGHT = 16;
13
14  /**
15   * Draws a 1px white horizontal line across |context|.
16   */
17  function drawLine(context, top) {
18    context.moveTo(0, top);
19    context.lineTo(BAR_WIDTH, top);
20    context.strokeStyle = '#fff';
21    context.stroke();
22  }
23
24  /**
25   * Creates an HTMLElement of type |type| with textContent |content|.
26   * @param {string} type The type of element to create.
27   * @param {string} content The content to place in the element.
28   * @return {HTMLElement} A newly initialized element.
29   */
30  function makeElement(type, content) {
31    var element = document.createElement(type);
32    element.textContent = content;
33    return element;
34  }
35
36  /**
37   * Creates a new <li> containing a <details> with a <summary> and sets
38   * properties to reference them.
39   * @return {Object} The new <li>.
40   */
41  function createDetailsLi() {
42    var li = document.createElement('li');
43    li.details = document.createElement('details');
44    li.summary = document.createElement('summary');
45    li.appendChild(li.details);
46    li.details.appendChild(li.summary);
47    return li
48  }
49
50  /**
51   * Appends each key-value pair in a dictionary to a row in a table.
52   * @param {Object} dict The dictionary to append.
53   * @param {HTMLElement} table The <table> element to append to.
54   */
55  function appendDictionaryToTable(dict, table) {
56    table.textContent = '';
57    for (var key in dict) {
58      var tr = document.createElement('tr');
59      tr.appendChild(makeElement('td', key + ':'));
60      tr.appendChild(makeElement('td', dict[key]));
61      table.appendChild(tr);
62    }
63    return table;
64  }
65
66  return {
67    BAR_WIDTH: BAR_WIDTH,
68    BAR_HEIGHT: BAR_HEIGHT,
69    drawLine: drawLine,
70    makeElement: makeElement,
71    createDetailsLi: createDetailsLi,
72    appendDictionaryToTable: appendDictionaryToTable
73  };
74});
75