|
@@ -8,8 +8,43 @@
|
|
|
export default class DataController {
|
|
export default class DataController {
|
|
|
constructor( modelDocument, dataProcessor ) {
|
|
constructor( modelDocument, dataProcessor ) {
|
|
|
this.model = modelDocument;
|
|
this.model = modelDocument;
|
|
|
- this.processor = dataProcessor;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ this.mapper = new Mapper();
|
|
|
|
|
+ this.writer = new Writer();
|
|
|
|
|
+
|
|
|
|
|
+ this.toView = new ModelConversionDispatcher( {
|
|
|
|
|
+ writer: this.writer,
|
|
|
|
|
+ mapper: this.mapper
|
|
|
|
|
+ } );
|
|
|
|
|
+
|
|
|
|
|
+ this.domConverter = new DomConverter();
|
|
|
|
|
+ this.dataProcessor = dataProcessor;
|
|
|
|
|
+
|
|
|
|
|
+ toView.on( 'insert:text', insertText() );
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- destroy() {}
|
|
|
|
|
|
|
+ getData( rootName ) {
|
|
|
|
|
+ // Get model range
|
|
|
|
|
+ const modelRootElement = this.model.getRoot( rootName );
|
|
|
|
|
+ const modelRange = ModelRange.createFromElement( rootElement );
|
|
|
|
|
+
|
|
|
|
|
+ // model -> view
|
|
|
|
|
+ const viewElement = new ViewElement(); // ViewDocumentFragment?
|
|
|
|
|
+ this.mapper.bindElements( modelRootElement, viewElement );
|
|
|
|
|
+
|
|
|
|
|
+ this.toView.convertInsert( modelRange );
|
|
|
|
|
+
|
|
|
|
|
+ this.mapper.unbindElements( modelRootElement, viewElement );
|
|
|
|
|
+
|
|
|
|
|
+ // view -> DOM
|
|
|
|
|
+ const domElement = domConverter.viewToDom( viewElement, document ); // TODO new document
|
|
|
|
|
+
|
|
|
|
|
+ domDocumentFragment = domElement; // TODO
|
|
|
|
|
+
|
|
|
|
|
+ // DOM -> data
|
|
|
|
|
+ return dataProcessor.toData( domDocumentFragment );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ setData( data, rootName ) {
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|