File size: 1,547 Bytes
fe66731
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/**
 * Contains the logic for the pause and resume button.
 *
 * @param graph the associated webvowl graph
 * @returns {{}}
 */
module.exports = function ( graph ){
  
  var pauseMenu = {},
    pauseButton;
  
  
  /**
   * Adds the pause button to the website.
   */
  pauseMenu.setup = function (){
    var menuEntry = d3.select("#pauseOption");
    menuEntry.on("mouseover", function (){
      var searchMenu = graph.options().searchMenu();
      searchMenu.hideSearchEntries();
    });
    pauseButton = d3.select("#pause-button")
      .datum({ paused: false })
      .on("click", function ( d ){
        graph.paused(!d.paused);
        d.paused = !d.paused;
        updatePauseButton();
        pauseButton.classed("highlighted", d.paused);
      });
    // Set these properties the first time manually
    updatePauseButton();
  };
  
  pauseMenu.setPauseValue = function ( value ){
    pauseButton.datum().paused = value;
    graph.paused(value);
    pauseButton.classed("highlighted", value);
    updatePauseButton();
  };
  
  function updatePauseButton(){
    updatePauseButtonClass();
    updatePauseButtonText();
  }
  
  function updatePauseButtonClass(){
    pauseButton.classed("paused", function ( d ){
      return d.paused;
    });
  }
  
  function updatePauseButtonText(){
    if ( pauseButton.datum().paused ) {
      pauseButton.text("Resume");
    } else {
      pauseButton.text("Pause");
    }
  }
  
  pauseMenu.reset = function (){
    // resuming
    pauseMenu.setPauseValue(false);
  };
  
  
  return pauseMenu;
};