+
+panel_hooks = {
+ load: function () {
+ var self = this;
+ var panel = self.contentDiv;
+
+ var textareaId = 'xmleditor-' + Math.ceil(Math.random() * 1000000000);
+ $('textarea', panel).attr('id', textareaId);
+
+ var texteditor = CodeMirror.fromTextArea(textareaId, {
+ parserfile: 'parsexml.js',
+ path: "{{STATIC_URL}}js/codemirror/",
+ stylesheet: "{{STATIC_URL}}css/xmlcolors.css",
+ parserConfig: {useHTMLKludges: false},
+ onChange: function() {
+ panel.trigger('panel:contentChanged', self);
+ },
+ initCallback: function(editor) {
+ // Editor is loaded
+ // Buttons are connected
+ // register callbacks for actions
+ $(document).bind("ui:action:INSERT_TAG", function(event, data) {
+ var tag = data;
+ var text = texteditor.selection();
+ editor.replaceSelection('<' + tag + '>' + text + '</' + tag + '>');
+ if (text.length == 0) {
+ var pos = texteditor.cursorPosition();
+ texteditor.selectLines(pos.line, pos.character + tag.length + 2);
+ }
+
+ $(document).trigger('panel:contentChanged', self);
+ });
+
+/* texteditor.grabKeys(function(event) {
+ if (keys[event.keyCode]) {
+ keys[event.keyCode]();
+ }
+ }, function(event) { return event.altKey && keys[event.keyCode]; }); */
+ }
+ })