}
this.colorSyntax = colorSyntax;
this.wrapText = wrapText;
this.showLineNumbers = showLineNumbers;
this.useSpellChecker = useSpellChecker;
CodeMirrorOptions opts = CodeMirrorOptions.newInstance();
JsArrayString parser = (JsArrayString) JsArrayString.createArray();
opts.setParserFile(parser);
opts.setPath("/codemirror/js/");
if (colorSyntax) {
opts.setStylesheet("/codemirror/css/latexcolors.css");
parser.push("parselatex.js");
} else {
opts.setStylesheet("/codemirror/css/nocolors.css");
parser.push("parsedummy.js");
}
opts.setWidth("100%");
opts.setHeight("100%");
opts.setLineNumbers(showLineNumbers);
opts.setTextWrapping(wrapText);
opts.setDisableSpellcheck(!useSpellChecker);
opts.setLineNumberDelay(0);
opts.setControlCallback(controlCallback);
opts.setClickCallback(new Runnable() {
@Override
public void run() {
for (ClickHandler handler : clickHandlers) {
handler.onClick(null);
}
}
});
opts.setFocusCallback(new Runnable() {
@Override
public void run() {
for (FocusHandler handler : focusHandlers) {
handler.onFocus(null);
}
}
});
opts.setChangeCallback(new Runnable() {
@Override
public void run() {
for (ChangeHandler handler : changeHandlers) {
handler.onChange(null);
}
}
});
opts.setInitCallback(new Runnable() {
@Override
public void run() {
for (LoadHandler handler : loadHandlers) {
handler.onLoad(null);
}