Przeglądaj źródła

Adjusted to changes made in engine view.

Szymon Kupś 8 lat temu
rodzic
commit
26c094213c

+ 11 - 7
packages/ckeditor5-widget/src/widget.js

@@ -42,7 +42,8 @@ export default class Widget extends Plugin {
 	 * @inheritDoc
 	 */
 	init() {
-		const viewDocument = this.editor.editing.view.document;
+		const view = this.editor.editing.view;
+		const viewDocument = view.document;
 
 		/**
 		 * Holds previously selected widgets.
@@ -58,7 +59,8 @@ export default class Widget extends Plugin {
 			// Remove selected class from previously selected widgets.
 			this._clearPreviouslySelectedWidgets();
 
-			const viewSelection = conversionApi.viewSelection;
+			const viewWriter = conversionApi.writer;
+			const viewSelection = viewWriter.document.selection;
 			const selectedElement = viewSelection.getSelectedElement();
 
 			for ( const range of viewSelection.getRanges() ) {
@@ -71,7 +73,7 @@ export default class Widget extends Plugin {
 
 						// Check if widget is a single element selected.
 						if ( node == selectedElement ) {
-							viewSelection.setFake( true, { label: getLabel( selectedElement ) } );
+							viewWriter.setFakeSelection( true, { label: getLabel( selectedElement ) } );
 						}
 					}
 				}
@@ -79,7 +81,7 @@ export default class Widget extends Plugin {
 		}, { priority: 'low' } );
 
 		// If mouse down is pressed on widget - create selection over whole widget.
-		viewDocument.addObserver( MouseObserver );
+		view.addObserver( MouseObserver );
 		this.listenTo( viewDocument, 'mousedown', ( ...args ) => this._onMousedown( ...args ) );
 
 		// Handle custom keydown behaviour.
@@ -103,7 +105,8 @@ export default class Widget extends Plugin {
 	 */
 	_onMousedown( eventInfo, domEventData ) {
 		const editor = this.editor;
-		const viewDocument = editor.editing.view;
+		const view = editor.editing.view;
+		const viewDocument = view.document;
 		let element = domEventData.target;
 
 		// Do nothing if inside nested editable.
@@ -124,7 +127,7 @@ export default class Widget extends Plugin {
 
 		// Focus editor if is not focused already.
 		if ( !viewDocument.isFocused ) {
-			viewDocument.focus();
+			view.focus();
 		}
 
 		// Create model selection over widget.
@@ -280,7 +283,8 @@ export default class Widget extends Plugin {
 	_selectAllContent() {
 		const model = this.editor.model;
 		const editing = this.editor.editing;
-		const viewDocument = editing.view;
+		const view = editing.view;
+		const viewDocument = view.document;
 		const viewSelection = viewDocument.selection;
 
 		const selectedElement = viewSelection.getSelectedElement();

+ 16 - 15
packages/ckeditor5-widget/tests/widget.js

@@ -20,14 +20,15 @@ import { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';
 /* global document */
 
 describe( 'Widget', () => {
-	let editor, model, viewDocument;
+	let editor, model, view, viewDocument;
 
 	beforeEach( () => {
 		return VirtualTestEditor.create( { plugins: [ Widget, Typing ] } )
 			.then( newEditor => {
 				editor = newEditor;
 				model = editor.model;
-				viewDocument = editor.editing.view;
+				view = editor.editing.view;
+				viewDocument = view.document;
 
 				model.schema.register( 'widget', {
 					inheritAllFrom: '$block',
@@ -114,7 +115,7 @@ describe( 'Widget', () => {
 	} );
 
 	it( 'should add MouseObserver', () => {
-		expect( editor.editing.view.getObserver( MouseObserver ) ).to.be.instanceof( MouseObserver );
+		expect( view.getObserver( MouseObserver ) ).to.be.instanceof( MouseObserver );
 	} );
 
 	it( 'should create selection over clicked widget', () => {
@@ -169,7 +170,7 @@ describe( 'Widget', () => {
 			preventDefault: sinon.spy()
 		};
 
-		viewDocument.focus();
+		view.focus();
 		viewDocument.fire( 'mousedown', domEventDataMock );
 
 		expect( getModelData( model ) ).to.equal( '<paragraph>[]foo bar</paragraph><widget></widget>' );
@@ -183,7 +184,7 @@ describe( 'Widget', () => {
 			target: widget,
 			preventDefault: sinon.spy()
 		};
-		const focusSpy = sinon.spy( viewDocument, 'focus' );
+		const focusSpy = sinon.spy( view, 'focus' );
 
 		viewDocument.isFocused = true;
 		viewDocument.fire( 'mousedown', domEventDataMock );
@@ -196,7 +197,7 @@ describe( 'Widget', () => {
 	it( 'should apply fake view selection if model selection is on widget element', () => {
 		setModelData( model, '[<widget>foo bar</widget>]' );
 
-		expect( getViewData( viewDocument ) ).to.equal(
+		expect( getViewData( view ) ).to.equal(
 			'[<div class="ck-widget ck-widget_selected" contenteditable="false">foo bar<b></b></div>]'
 		);
 		expect( viewDocument.selection.isFake ).to.be.true;
@@ -212,7 +213,7 @@ describe( 'Widget', () => {
 		setModelData( model, '[<paragraph>foo</paragraph><widget></widget><widget></widget>]' );
 
 		expect( viewDocument.selection.isFake ).to.be.false;
-		expect( getViewData( viewDocument ) ).to.equal(
+		expect( getViewData( view ) ).to.equal(
 			'[' +
 			'<p>foo</p>' +
 			'<div class="ck-widget ck-widget_selected" contenteditable="false"><b></b></div>' +
@@ -230,7 +231,7 @@ describe( 'Widget', () => {
 	it( 'should toggle selected class', () => {
 		setModelData( model, '<paragraph>foo</paragraph>[<widget>foo</widget>]' );
 
-		expect( getViewData( viewDocument ) ).to.equal(
+		expect( getViewData( view ) ).to.equal(
 			'<p>foo</p>[<div class="ck-widget ck-widget_selected" contenteditable="false">foo<b></b></div>]'
 		);
 
@@ -238,7 +239,7 @@ describe( 'Widget', () => {
 			writer.setSelection( null );
 		} );
 
-		expect( getViewData( viewDocument ) ).to.equal(
+		expect( getViewData( view ) ).to.equal(
 			'<p>{}foo</p><div class="ck-widget" contenteditable="false">foo<b></b></div>'
 		);
 	} );
@@ -246,7 +247,7 @@ describe( 'Widget', () => {
 	it( 'should do nothing when selection is placed in other editable', () => {
 		setModelData( model, '<widget><editable>foo bar</editable></widget><editable>[baz]</editable>' );
 
-		expect( getViewData( viewDocument ) ).to.equal(
+		expect( getViewData( view ) ).to.equal(
 			'<div class="ck-widget" contenteditable="false">' +
 				'<figcaption contenteditable="true">foo bar</figcaption>' +
 				'<b></b>' +
@@ -710,7 +711,7 @@ describe( 'Widget', () => {
 				expect( getModelData( model ) ).to.equal( expected );
 
 				if ( expectedView ) {
-					expect( getViewData( viewDocument ) ).to.equal( expectedView );
+					expect( getViewData( view ) ).to.equal( expectedView );
 				}
 			} );
 		}
@@ -720,7 +721,7 @@ describe( 'Widget', () => {
 		function test( name, input, direction, expected ) {
 			it( name, () => {
 				setModelData( model, input );
-				const scrollStub = sinon.stub( viewDocument, 'scrollToTheSelection' );
+				const scrollStub = sinon.stub( view, 'scrollToTheSelection' );
 				const domEventDataMock = {
 					keyCode: direction == 'backward' ? keyCodes.backspace : keyCodes.delete,
 				};
@@ -927,7 +928,7 @@ describe( 'Widget', () => {
 
 		it( 'should prevent default behaviour and stop event propagation', () => {
 			setModelData( model, '<paragraph>foo[]</paragraph><widget></widget>' );
-			const scrollStub = sinon.stub( viewDocument, 'scrollToTheSelection' );
+			const scrollStub = sinon.stub( view, 'scrollToTheSelection' );
 			const deleteSpy = sinon.spy();
 
 			viewDocument.on( 'delete', deleteSpy );
@@ -1073,7 +1074,7 @@ describe( 'Widget', () => {
 		);
 
 		it( 'does nothing when editor when read only mode is enabled (delete)', () => {
-			const scrollStub = sinon.stub( viewDocument, 'scrollToTheSelection' );
+			const scrollStub = sinon.stub( view, 'scrollToTheSelection' );
 			setModelData( model,
 				'<paragraph>foo</paragraph>' +
 				'<image></image>' +
@@ -1101,7 +1102,7 @@ describe( 'Widget', () => {
 		} );
 
 		it( 'does nothing when editor when read only mode is enabled (forward delete)', () => {
-			const scrollStub = sinon.stub( viewDocument, 'scrollToTheSelection' );
+			const scrollStub = sinon.stub( view, 'scrollToTheSelection' );
 			setModelData( model,
 				'<paragraph>foo</paragraph>' +
 				'<image></image>' +