+ var old_callback = options.callback;
+ options.callback = function(){
+ var self = this;
+
+ this.codemirror = CodeMirror.fromTextArea('codemirror_placeholder', {
+ parserfile: 'parsexml.js',
+ path: STATIC_URL + "js/lib/codemirror/",
+ stylesheet: STATIC_URL + "css/xmlcolors_15032010.css",
+ parserConfig: {
+ useHTMLKludges: false
+ },
+ iframeClass: 'xml-iframe',
+ textWrapping: true,
+ lineNumbers: false,
+ width: "100%",
+ tabMode: 'spaces',
+ indentUnit: 0,
+ initCallback: function(){
+ $('#source-editor .toolbar button').click(function(event){
+ event.preventDefault();
+ var params = eval("(" + $(this).attr('data-ui-action-params') + ")");
+ scriptletCenter.scriptlets[$(this).attr('data-ui-action')](self.codemirror, params);
+ });
+
+ $('.toolbar select').change(function(event){
+ var slug = $(this).val();
+
+ $('.toolbar-buttons-container').hide().filter('[data-group=' + slug + ']').show();
+ $(window).resize();
+ });
+
+ $('.toolbar-buttons-container').hide();
+ $('.toolbar select').change();
+
+ console.log("Initialized CodeMirror");
+ // textarea is no longer needed
+ $('codemirror_placeholder').remove();
+ old_callback.call(self);
+ }
+ });
+ };