瀏覽代碼

Aligned code to changes in DocumentSelection API.

Maciej Bukowski 7 年之前
父節點
當前提交
b48ecd50ca

+ 2 - 2
packages/ckeditor5-typing/src/deletecommand.js

@@ -104,7 +104,7 @@ export default class DeleteCommand extends Command {
 			model.deleteContent( selection, { doNotResetEntireContent } );
 			this._buffer.input( changeCount );
 
-			doc.selection.setRanges( selection.getRanges(), selection.isBackward );
+			writer.setSelection( selection );
 
 			this._buffer.unlock();
 		} );
@@ -178,6 +178,6 @@ export default class DeleteCommand extends Command {
 		writer.remove( Range.createIn( limitElement ) );
 		writer.insert( paragraph, limitElement );
 
-		selection.setCollapsedAt( paragraph );
+		writer.setSelection( paragraph );
 	}
 }

+ 2 - 2
packages/ckeditor5-typing/src/inputcommand.js

@@ -90,10 +90,10 @@ export default class InputCommand extends Command {
 			}
 
 			if ( resultRange ) {
-				doc.selection.setRanges( [ resultRange ] );
+				writer.setSelection( resultRange );
 			} else if ( isCollapsedRange ) {
 				// If range was collapsed just shift the selection by the number of inserted characters.
-				doc.selection.setCollapsedAt( range.start.getShiftedBy( textInsertions ) );
+				writer.setSelection( range.start.getShiftedBy( textInsertions ) );
 			}
 
 			this._buffer.unlock();

+ 42 - 42
packages/ckeditor5-typing/tests/input.js

@@ -70,10 +70,10 @@ describe( 'Input feature', () => {
 	beforeEach( () => {
 		editor.setData( '<p>foobar</p>' );
 
-		model.change( () => {
-			model.document.selection.setRanges( [
+		model.change( writer => {
+			writer.setSelection(
 				ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 3, modelRoot.getChild( 0 ), 3 )
-			] );
+			);
 		} );
 	} );
 
@@ -271,7 +271,7 @@ describe( 'Input feature', () => {
 			// This test case emulates spellchecker correction.
 
 			const viewSelection = new ViewSelection();
-			viewSelection.setCollapsedAt( viewRoot.getChild( 0 ).getChild( 0 ), 6 );
+			viewSelection.setTo( viewRoot.getChild( 0 ).getChild( 0 ), 6 );
 
 			view.fire( 'mutations',
 				[ {
@@ -291,7 +291,7 @@ describe( 'Input feature', () => {
 			// This test case emulates spellchecker correction.
 
 			const viewSelection = new ViewSelection();
-			viewSelection.setCollapsedAt( viewRoot.getChild( 0 ).getChild( 0 ), 6 );
+			viewSelection.setTo( viewRoot.getChild( 0 ).getChild( 0 ), 6 );
 
 			testUtils.sinon.spy( Writer.prototype, 'insert' );
 			testUtils.sinon.spy( Writer.prototype, 'remove' );
@@ -315,7 +315,7 @@ describe( 'Input feature', () => {
 			editor.setData( '<p>Foo hous a</p>' );
 
 			const viewSelection = new ViewSelection();
-			viewSelection.setCollapsedAt( viewRoot.getChild( 0 ).getChild( 0 ), 9 );
+			viewSelection.setTo( viewRoot.getChild( 0 ).getChild( 0 ), 9 );
 
 			view.fire( 'mutations',
 				[ {
@@ -336,7 +336,7 @@ describe( 'Input feature', () => {
 			editor.setData( '<p>Bar athat foo</p>' );
 
 			const viewSelection = new ViewSelection();
-			viewSelection.setCollapsedAt( viewRoot.getChild( 0 ).getChild( 0 ), 8 );
+			viewSelection.setTo( viewRoot.getChild( 0 ).getChild( 0 ), 8 );
 
 			view.fire( 'mutations',
 				[ {
@@ -357,7 +357,7 @@ describe( 'Input feature', () => {
 			editor.setData( '<p>Foo hous e</p>' );
 
 			const viewSelection = new ViewSelection();
-			viewSelection.setCollapsedAt( viewRoot.getChild( 0 ).getChild( 0 ), 9 );
+			viewSelection.setTo( viewRoot.getChild( 0 ).getChild( 0 ), 9 );
 
 			view.fire( 'mutations',
 				[ {
@@ -377,8 +377,8 @@ describe( 'Input feature', () => {
 			editor.setData( '<p>Foo house</p>' );
 
 			const viewSelection = new ViewSelection();
-			viewSelection.setCollapsedAt( viewRoot.getChild( 0 ).getChild( 0 ), 8 );
-			viewSelection.moveFocusTo( viewRoot.getChild( 0 ).getChild( 0 ), 9 );
+			viewSelection.setTo( viewRoot.getChild( 0 ).getChild( 0 ), 8 );
+			viewSelection.setFocus( viewRoot.getChild( 0 ).getChild( 0 ), 9 );
 
 			view.fire( 'mutations',
 				[ {
@@ -395,10 +395,10 @@ describe( 'Input feature', () => {
 		} );
 
 		it( 'should replace last &nbsp; with space', () => {
-			model.change( () => {
-				model.document.selection.setRanges( [
+			model.change( writer => {
+				writer.setSelection(
 					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 6, modelRoot.getChild( 0 ), 6 )
-				] );
+				);
 			} );
 
 			view.fire( 'mutations', [
@@ -415,10 +415,10 @@ describe( 'Input feature', () => {
 		} );
 
 		it( 'should replace first &nbsp; with space', () => {
-			model.change( () => {
-				model.document.selection.setRanges( [
+			model.change( writer => {
+				writer.setSelection(
 					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 0, modelRoot.getChild( 0 ), 0 )
-				] );
+				);
 			} );
 
 			view.fire( 'mutations', [
@@ -435,10 +435,10 @@ describe( 'Input feature', () => {
 		} );
 
 		it( 'should replace all &nbsp; with spaces', () => {
-			model.change( () => {
-				model.document.selection.setRanges( [
+			model.change( writer => {
+				writer.setSelection(
 					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 6, modelRoot.getChild( 0 ), 6 )
-				] );
+				);
 			} );
 
 			view.fire( 'mutations', [
@@ -457,9 +457,9 @@ describe( 'Input feature', () => {
 
 	describe( 'keystroke handling', () => {
 		it( 'should remove contents', () => {
-			model.change( () => {
-				model.document.selection.setRanges( [
-					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) ] );
+			model.change( writer => {
+				writer.setSelection(
+					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) );
 			} );
 
 			listenter.listenTo( view, 'keydown', () => {
@@ -491,9 +491,9 @@ describe( 'Input feature', () => {
 		} );
 
 		it( 'should do nothing on arrow key', () => {
-			model.change( () => {
-				model.document.selection.setRanges( [
-					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) ] );
+			model.change( writer => {
+				writer.setSelection(
+					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) );
 			} );
 
 			view.fire( 'keydown', { keyCode: getCode( 'arrowdown' ) } );
@@ -502,9 +502,9 @@ describe( 'Input feature', () => {
 		} );
 
 		it( 'should do nothing on ctrl combinations', () => {
-			model.change( () => {
-				model.document.selection.setRanges( [
-					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) ] );
+			model.change( writer => {
+				writer.setSelection(
+					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) );
 			} );
 
 			view.fire( 'keydown', { ctrlKey: true, keyCode: getCode( 'c' ) } );
@@ -513,9 +513,9 @@ describe( 'Input feature', () => {
 		} );
 
 		it( 'should do nothing on non printable keys', () => {
-			model.change( () => {
-				model.document.selection.setRanges( [
-					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) ] );
+			model.change( writer => {
+				writer.setSelection(
+					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) );
 			} );
 
 			view.fire( 'keydown', { keyCode: 16 } ); // Shift
@@ -527,9 +527,9 @@ describe( 'Input feature', () => {
 
 		// #69
 		it( 'should do nothing on tab key', () => {
-			model.change( () => {
-				model.document.selection.setRanges( [
-					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) ] );
+			model.change( writer => {
+				writer.setSelection(
+					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) );
 			} );
 
 			view.fire( 'keydown', { keyCode: 9 } ); // Tab
@@ -539,9 +539,9 @@ describe( 'Input feature', () => {
 
 		// #82
 		it( 'should do nothing on composition start key', () => {
-			model.change( () => {
-				model.document.selection.setRanges( [
-					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) ] );
+			model.change( writer => {
+				writer.setSelection(
+					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) );
 			} );
 
 			view.fire( 'keydown', { keyCode: 229 } );
@@ -560,9 +560,9 @@ describe( 'Input feature', () => {
 			const lockSpy = testUtils.sinon.spy( buffer, 'lock' );
 			const unlockSpy = testUtils.sinon.spy( buffer, 'unlock' );
 
-			model.change( () => {
-				model.document.selection.setRanges( [
-					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) ] );
+			model.change( writer => {
+				writer.setSelection(
+					ModelRange.createFromParentsAndOffsets( modelRoot.getChild( 0 ), 2, modelRoot.getChild( 0 ), 4 ) );
 			} );
 
 			view.fire( 'keydown', { keyCode: getCode( 'y' ) } );
@@ -995,7 +995,7 @@ describe( 'Input feature', () => {
 			const paragraph = viewRoot.getChild( 0 );
 			const strong = paragraph.getChild( 0 );
 			const viewSelection = new ViewSelection();
-			viewSelection.setCollapsedAt( paragraph, 0 );
+			viewSelection.setTo( paragraph, 0 );
 
 			// Simulate mutations and DOM change.
 			domRoot.childNodes[ 0 ].innerHTML = '<b>textx</b>';
@@ -1020,7 +1020,7 @@ describe( 'Input feature', () => {
 			const paragraph = viewRoot.getChild( 0 );
 			const strong = paragraph.getChild( 0 );
 			const viewSelection = new ViewSelection();
-			viewSelection.setCollapsedAt( paragraph, 0 );
+			viewSelection.setTo( paragraph );
 
 			// Simulate mutations and DOM change.
 			domRoot.childNodes[ 0 ].innerHTML = '<strong>Foo bar </strong><b>apple</b>';

+ 3 - 1
packages/ckeditor5-typing/tests/inputcommand-integration.js

@@ -73,7 +73,9 @@ describe( 'Typing – InputCommand integration', () => {
 	}
 
 	function setSelection( pathA, pathB ) {
-		doc.selection.setRanges( [ new Range( new Position( doc.getRoot(), pathA ), new Position( doc.getRoot(), pathB ) ) ] );
+		model.change( writer => {
+			writer.setSelection( new Range( new Position( doc.getRoot(), pathA ), new Position( doc.getRoot(), pathB ) ) );
+		} );
 	}
 
 	describe( 'InputCommand integration', () => {

+ 4 - 4
packages/ckeditor5-typing/tests/spellchecking.js

@@ -236,7 +236,7 @@ function emulateSpellcheckerMutation( editor, nodeIndex, resultPositionIndex, ol
 	const viewRoot = view.getRoot();
 	const viewSelection = new ViewSelection();
 
-	viewSelection.setCollapsedAt( viewRoot.getChild( nodeIndex ).getChild( 0 ), resultPositionIndex );
+	viewSelection.setTo( viewRoot.getChild( nodeIndex ).getChild( 0 ), resultPositionIndex );
 
 	view.fire( 'mutations',
 		[ {
@@ -256,10 +256,10 @@ function emulateSpellcheckerInsertText( editor, nodeIndex, rangeStart, rangeEnd,
 	window.focus();
 	editor.editing.view.focus();
 
-	model.change( () => {
-		model.document.selection.setRanges( [
+	model.change( writer => {
+		writer.setSelection(
 			ModelRange.createFromParentsAndOffsets( modelRoot.getChild( nodeIndex ), rangeStart, modelRoot.getChild( nodeIndex ), rangeEnd )
-		] );
+		);
 	} );
 
 	model.document.once( 'change', () => {