8
0

editablecontroller.js 848 B

1234567891011121314151617181920212223242526272829303132333435
  1. /**
  2. * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. 'use strict';
  6. export default class EditableController {
  7. constructor( modelDocument ) {
  8. this.model = modelDocument;
  9. this.mapper = new Mapper();
  10. this.view = new TreeView();
  11. this.toView = new ModelConversionDispatcher( {
  12. writer: this.view.writer,
  13. mapper: this.mapper
  14. } );
  15. this.model.on( 'change', ( evt, type, changeInfo ) => {
  16. this.toView.convertChange( type, changeInfo );
  17. } );
  18. toView.on( 'insert:text', insertText() );
  19. toView.on( 'remove', remove() );
  20. toView.on( 'move', move() );
  21. }
  22. createRoot( element, name ) {
  23. const viewRoot = this.view.createRoot( element, name );
  24. const modelRoot = this.model.createRoot( name );
  25. this.mapper.bindElements( modelRoot, viewRoot );
  26. }
  27. }