private void updateChangeHandler() {
        if (editor.isAttached() && addChangeHandler && !addedChangeHandler) {
            addedChangeHandler = true;
            editor.addOnChangeHandler(obj -> {
                // Only fire value change events for edits, not where setText() is called.
                if (!textDirty) {
                    ValueChangeEvent.fire(Editor.this, null);
                }
            });
            addChangeHandler = false;
        }
    }
@param lineNo One based
@param colNo  One based
stroom-core-client-widget/src/main/java/stroom/editor/client/view/Editor.java