|
|
@@ -0,0 +1,35 @@
|
|
|
+/**
|
|
|
+ * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
|
|
|
+ * For licensing, see LICENSE.md.
|
|
|
+ */
|
|
|
+
|
|
|
+'use strict';
|
|
|
+
|
|
|
+export default class EditableController {
|
|
|
+ constructor( modelDocument ) {
|
|
|
+ this.model = modelDocument;
|
|
|
+
|
|
|
+ this.mapper = new Mapper();
|
|
|
+ this.view = new TreeView();
|
|
|
+
|
|
|
+ this.toView = new ModelConversionDispatcher( {
|
|
|
+ writer: this.view.writer,
|
|
|
+ mapper: this.mapper
|
|
|
+ } );
|
|
|
+
|
|
|
+ this.model.on( 'change', ( evt, type, changeInfo ) => {
|
|
|
+ this.toView.convertChange( type, changeInfo );
|
|
|
+ } );
|
|
|
+
|
|
|
+ toView.on( 'insert:text', insertText() );
|
|
|
+ toView.on( 'remove', remove() );
|
|
|
+ toView.on( 'move', move() );
|
|
|
+ }
|
|
|
+
|
|
|
+ createRoot( element, name ) {
|
|
|
+ const viewRoot = this.view.createRoot( element, name );
|
|
|
+ const modelRoot = this.model.createRoot( name );
|
|
|
+
|
|
|
+ this.mapper.bindElements( modelRoot, viewRoot );
|
|
|
+ }
|
|
|
+}
|