8
0
Просмотр исходного кода

Removed view selection from conversionApi, it can be accessed by writer now.

Szymon Kupś 8 лет назад
Родитель
Сommit
3ed8001606

+ 1 - 2
packages/ckeditor5-engine/src/controller/editingcontroller.js

@@ -79,8 +79,7 @@ export default class EditingController {
 		 * @member {module:engine/conversion/modelconversiondispatcher~ModelConversionDispatcher} #modelToView
 		 */
 		this.modelToView = new ModelConversionDispatcher( this.model, {
-			mapper: this.mapper,
-			viewSelection: this.view.document.selection
+			mapper: this.mapper
 		} );
 
 		const doc = this.model.document;

+ 10 - 6
packages/ckeditor5-engine/src/conversion/model-selection-to-view-converters.js

@@ -39,7 +39,7 @@ export function convertRangeSelection() {
 			viewRanges.push( viewRange );
 		}
 
-		conversionApi.viewSelection._setTo( viewRanges, selection.isBackward );
+		conversionApi.writer.setSelection( viewRanges, selection.isBackward );
 	};
 }
 
@@ -77,11 +77,12 @@ export function convertCollapsedSelection() {
 			return;
 		}
 
+		const writer = conversionApi.writer;
 		const modelPosition = selection.getFirstPosition();
 		const viewPosition = conversionApi.mapper.toViewPosition( modelPosition );
-		const brokenPosition = conversionApi.writer.breakAttributes( viewPosition );
+		const brokenPosition = writer.breakAttributes( viewPosition );
 
-		conversionApi.viewSelection._setTo( brokenPosition );
+		writer.setSelection( brokenPosition );
 	};
 }
 
@@ -111,7 +112,10 @@ export function convertCollapsedSelection() {
  */
 export function clearAttributes() {
 	return ( evt, data, consumable, conversionApi ) => {
-		for ( const range of conversionApi.viewSelection.getRanges() ) {
+		const writer = conversionApi.writer;
+		const viewSelection = writer.document.selection;
+
+		for ( const range of viewSelection.getRanges() ) {
 			// Not collapsed selection should not have artifacts.
 			if ( range.isCollapsed ) {
 				// Position might be in the node removed by the view writer.
@@ -120,7 +124,7 @@ export function clearAttributes() {
 				}
 			}
 		}
-		conversionApi.viewSelection._setTo( null );
+		writer.setSelection( null );
 	};
 }
 
@@ -129,5 +133,5 @@ export function clearAttributes() {
  * {@link module:engine/model/selection~Selection model selection} conversion.
  */
 export function clearFakeSelection() {
-	return ( evt, data, consumable, conversionApi ) => conversionApi.viewSelection._setFake( false );
+	return ( evt, data, consumable, conversionApi ) => conversionApi.writer.setFakeSelection( false );
 }

+ 4 - 2
packages/ckeditor5-engine/src/conversion/model-to-view-converters.js

@@ -332,10 +332,11 @@ export function wrap( elementCreator ) {
 		}
 
 		const viewWriter = conversionApi.writer;
+		const viewSelection = viewWriter.document.selection;
 
 		if ( data.item instanceof ModelSelection || data.item instanceof DocumentSelection ) {
 			// Selection attribute conversion.
-			viewWriter.wrap( conversionApi.viewSelection.getFirstRange(), newViewElement, conversionApi.viewSelection );
+			viewWriter.wrap( viewSelection.getFirstRange(), newViewElement, viewSelection );
 		} else {
 			// Node attribute conversion.
 			let viewRange = conversionApi.mapper.toViewRange( data.range );
@@ -389,9 +390,10 @@ export function highlightText( highlightDescriptor ) {
 
 		const viewElement = createViewElementFromHighlightDescriptor( descriptor );
 		const viewWriter = conversionApi.writer;
+		const viewSelection = viewWriter.document.selection;
 
 		if ( data.item instanceof ModelSelection || data.item instanceof DocumentSelection ) {
-			viewWriter.wrap( conversionApi.viewSelection.getFirstRange(), viewElement, conversionApi.viewSelection );
+			viewWriter.wrap( viewSelection.getFirstRange(), viewElement, viewSelection );
 		} else {
 			const viewRange = conversionApi.mapper.toViewRange( data.range );
 			viewWriter.wrap( viewRange, viewElement );

+ 5 - 6
packages/ckeditor5-engine/src/dev-utils/model.js

@@ -21,10 +21,8 @@ import ModelSelection from '../model/selection';
 import ModelDocumentFragment from '../model/documentfragment';
 import DocumentSelection from '../model/documentselection';
 
-import ViewWriter from '../view/writer';
-import ViewDocument from '../view/document';
+import View from '../view/view';
 import ViewConversionDispatcher from '../conversion/viewconversiondispatcher';
-import ViewSelection from '../view/selection';
 import ViewDocumentFragment from '../view/documentfragment';
 import ViewContainerElement from '../view/containerelement';
 import ViewAttributeElement from '../view/attributeelement';
@@ -194,8 +192,9 @@ export function stringify( node, selectionOrPositionOrRange = null ) {
 
 	// Setup model to view converter.
 	const viewDocumentFragment = new ViewDocumentFragment();
-	const viewSelection = new ViewSelection();
-	const modelToView = new ModelConversionDispatcher( model, { mapper, viewSelection } );
+	const view = new View();
+	const viewSelection = view.document.selection;
+	const modelToView = new ModelConversionDispatcher( model, { mapper } );
 
 	// Bind root elements.
 	mapper.bindElements( node.root, viewDocumentFragment );
@@ -216,7 +215,7 @@ export function stringify( node, selectionOrPositionOrRange = null ) {
 	modelToView.on( 'selection', convertCollapsedSelection() );
 
 	// Convert model to view.
-	const writer = new ViewWriter( new ViewDocument() );
+	const writer = view._writer;
 	modelToView.convertInsert( range, writer );
 
 	// Convert model selection to view selection.