All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jbpm.designer.public.js.cmdialog.js Maven / Gradle / Ivy

// Open simple dialogs on top of an editor. Relies on dialog.css.

(function() {
  function dialogDiv(cm, template) {
    var wrap = cm.getWrapperElement();
    var dialog = wrap.insertBefore(document.createElement("div"), wrap.firstChild);
    dialog.className = "CodeMirror-dialog";
    dialog.innerHTML = '
' + template + '
'; return dialog; } CodeMirror.defineExtension("openDialog", function(template, callback) { var dialog = dialogDiv(this, template); var closed = false, me = this; function close() { if (closed) return; closed = true; dialog.parentNode.removeChild(dialog); } var inp = dialog.getElementsByTagName("input")[0], button; if (inp) { CodeMirror.connect(inp, "keydown", function(e) { if (e.keyCode == 13 || e.keyCode == 27) { CodeMirror.e_stop(e); close(); me.focus(); if (e.keyCode == 13) callback(inp.value); } }); inp.focus(); CodeMirror.connect(inp, "blur", close); } else if (button = dialog.getElementsByTagName("button")[0]) { CodeMirror.connect(button, "click", close); button.focus(); CodeMirror.connect(button, "blur", close); } return close; }); CodeMirror.defineExtension("openConfirm", function(template, callbacks) { var dialog = dialogDiv(this, template); var buttons = dialog.getElementsByTagName("button"); var closed = false, me = this, blurring = 1; function close() { if (closed) return; closed = true; dialog.parentNode.removeChild(dialog); me.focus(); } buttons[0].focus(); for (var i = 0; i < buttons.length; ++i) { var b = buttons[i]; (function(callback) { CodeMirror.connect(b, "click", function(e) { CodeMirror.e_preventDefault(e); close(); if (callback) callback(me); }); })(callbacks[i]); CodeMirror.connect(b, "blur", function() { --blurring; setTimeout(function() { if (blurring <= 0) close(); }, 200); }); CodeMirror.connect(b, "focus", function() { ++blurring; }); } }); })();




© 2015 - 2025 Weber Informatics LLC | Privacy Policy