~jstys-z/helioviewer.org/timeline

« back to all changes in this revision

Viewing changes to timeline/Highstock-1.3.10/exporting-server/java/highcharts-export/highcharts-export-web/src/main/webapp/resources/lib/codemirror/util/dialog.js

  • Committer: Jeff Stys
  • Date: 2014-04-21 12:46:26 UTC
  • Revision ID: jstys@sesda3.com-20140421124626-2332pb2dyjc33jxi
Proof-of-concept version of Data Coverage Timeline using Highchart/Highstock javascript library.  Changes to getDataCoverage API in order to feed the necessary data to the Timeline

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Open simple dialogs on top of an editor. Relies on dialog.css.
 
2
 
 
3
(function() {
 
4
  function dialogDiv(cm, template) {
 
5
    var wrap = cm.getWrapperElement();
 
6
    var dialog = wrap.insertBefore(document.createElement("div"), wrap.firstChild);
 
7
    dialog.className = "CodeMirror-dialog";
 
8
    dialog.innerHTML = '<div>' + template + '</div>';
 
9
    return dialog;
 
10
  }
 
11
 
 
12
  CodeMirror.defineExtension("openDialog", function(template, callback) {
 
13
    var dialog = dialogDiv(this, template);
 
14
    var closed = false, me = this;
 
15
    function close() {
 
16
      if (closed) return;
 
17
      closed = true;
 
18
      dialog.parentNode.removeChild(dialog);
 
19
    }
 
20
    var inp = dialog.getElementsByTagName("input")[0], button;
 
21
    if (inp) {
 
22
      CodeMirror.connect(inp, "keydown", function(e) {
 
23
        if (e.keyCode == 13 || e.keyCode == 27) {
 
24
          CodeMirror.e_stop(e);
 
25
          close();
 
26
          me.focus();
 
27
          if (e.keyCode == 13) callback(inp.value);
 
28
        }
 
29
      });
 
30
      inp.focus();
 
31
      CodeMirror.connect(inp, "blur", close);
 
32
    } else if (button = dialog.getElementsByTagName("button")[0]) {
 
33
      CodeMirror.connect(button, "click", function() {
 
34
        close();
 
35
        me.focus();
 
36
      });
 
37
      button.focus();
 
38
      CodeMirror.connect(button, "blur", close);
 
39
    }
 
40
    return close;
 
41
  });
 
42
 
 
43
  CodeMirror.defineExtension("openConfirm", function(template, callbacks) {
 
44
    var dialog = dialogDiv(this, template);
 
45
    var buttons = dialog.getElementsByTagName("button");
 
46
    var closed = false, me = this, blurring = 1;
 
47
    function close() {
 
48
      if (closed) return;
 
49
      closed = true;
 
50
      dialog.parentNode.removeChild(dialog);
 
51
      me.focus();
 
52
    }
 
53
    buttons[0].focus();
 
54
    for (var i = 0; i < buttons.length; ++i) {
 
55
      var b = buttons[i];
 
56
      (function(callback) {
 
57
        CodeMirror.connect(b, "click", function(e) {
 
58
          CodeMirror.e_preventDefault(e);
 
59
          close();
 
60
          if (callback) callback(me);
 
61
        });
 
62
      })(callbacks[i]);
 
63
      CodeMirror.connect(b, "blur", function() {
 
64
        --blurring;
 
65
        setTimeout(function() { if (blurring <= 0) close(); }, 200);
 
66
      });
 
67
      CodeMirror.connect(b, "focus", function() { ++blurring; });
 
68
    }
 
69
  });
 
70
})();