| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- import React from 'react';
- import PropTypes from 'prop-types';
- export default class AbstractEditor extends React.Component {
- constructor(props) {
- super(props);
- this.forceToFocus = this.forceToFocus.bind(this);
- this.setCaretLine = this.setCaretLine.bind(this);
- this.setScrollTopByLine = this.setScrollTopByLine.bind(this);
- this.getStrFromBol = this.getStrFromBol.bind(this);
- this.getStrToEol = this.getStrToEol.bind(this);
- this.insertText = this.insertText.bind(this);
- this.insertLinebreak = this.insertLinebreak.bind(this);
- this.dispatchSave = this.dispatchSave.bind(this);
- }
- forceToFocus() {
- }
- /**
- * set caret position of codemirror
- * @param {string} number
- */
- setCaretLine(line) {
- }
- /**
- * scroll
- * @param {number} line
- */
- setScrollTopByLine(line) {
- }
- /**
- * return strings from BOL(beginning of line) to current position
- */
- getStrFromBol() {
- throw new Error('this method should be impelemented in subclass');
- }
- /**
- * return strings from current position to EOL(end of line)
- */
- getStrToEol() {
- throw new Error('this method should be impelemented in subclass');
- }
- /**
- * replace Beggining Of Line to current position with param 'text'
- * @param {string} text
- */
- replaceBolToCurrentPos(text) {
- throw new Error('this method should be impelemented in subclass');
- }
- /**
- * insert text
- * @param {string} text
- */
- insertText(text) {
- }
- /**
- * insert line break to the current position
- */
- insertLinebreak() {
- this.insertText('\n');
- }
- /**
- * dispatch onSave event
- */
- dispatchSave() {
- if (this.props.onSave != null) {
- this.props.onSave();
- }
- }
- }
- AbstractEditor.propTypes = {
- value: PropTypes.string,
- editorOptions: PropTypes.object,
- onChange: PropTypes.func,
- onScroll: PropTypes.func,
- onScrollCursorIntoView: PropTypes.func,
- onSave: PropTypes.func,
- onPasteFiles: PropTypes.func,
- };
|