Преглед на файлове

First batch of changes updating schema use to match the new API.

Piotrek Koszuliński преди 8 години
родител
ревизия
0b4a9e0002
променени са 2 файла, в които са добавени 38 реда и са изтрити 27 реда
  1. 4 4
      packages/ckeditor5-widget/src/widget.js
  2. 34 23
      packages/ckeditor5-widget/tests/widget.js

+ 4 - 4
packages/ckeditor5-widget/src/widget.js

@@ -216,8 +216,8 @@ export default class Widget extends Plugin {
 		const modelSelection = modelDocument.selection;
 		const objectElement = modelSelection.getSelectedElement();
 
-		// if object element is selected.
-		if ( objectElement && schema.objects.has( objectElement.name ) ) {
+		// If object element is selected.
+		if ( objectElement && schema.isObject( objectElement.name ) ) {
 			const position = isForward ? modelSelection.getLastPosition() : modelSelection.getFirstPosition();
 			const newRange = modelDocument.getNearestSelectionRange( position, isForward ? 'forward' : 'backward' );
 
@@ -238,7 +238,7 @@ export default class Widget extends Plugin {
 
 		const objectElement2 = this._getObjectElementNextToSelection( isForward );
 
-		if ( objectElement2 instanceof ModelElement && schema.objects.has( objectElement2.name ) ) {
+		if ( objectElement2 instanceof ModelElement && schema.isObject( objectElement2.name ) ) {
 			model.change( () => {
 				this._setSelectionOverElement( objectElement2 );
 			} );
@@ -331,7 +331,7 @@ export default class Widget extends Plugin {
 		model.modifySelection( probe, { direction: forward ? 'forward' : 'backward' } );
 		const objectElement = forward ? probe.focus.nodeBefore : probe.focus.nodeAfter;
 
-		if ( objectElement instanceof ModelElement && schema.objects.has( objectElement.name ) ) {
+		if ( objectElement instanceof ModelElement && schema.isObject( objectElement.name ) ) {
 			return objectElement;
 		}
 

+ 34 - 23
packages/ckeditor5-widget/tests/widget.js

@@ -30,35 +30,46 @@ describe( 'Widget', () => {
 				doc = model.document;
 				viewDocument = editor.editing.view;
 
-				model.schema.registerItem( 'widget', '$block' );
-				model.schema.objects.add( 'widget' );
-				model.schema.registerItem( 'paragraph', '$block' );
-				model.schema.registerItem( 'inline', '$inline' );
-				model.schema.objects.add( 'inline' );
-				model.schema.registerItem( 'nested' );
-				model.schema.limits.add( 'nested' );
-				model.schema.allow( { name: '$inline', inside: 'nested' } );
-				model.schema.allow( { name: 'nested', inside: 'widget' } );
-				model.schema.registerItem( 'editable' );
-				model.schema.allow( { name: '$inline', inside: 'editable' } );
-				model.schema.allow( { name: 'editable', inside: 'widget' } );
-				model.schema.allow( { name: 'editable', inside: '$root' } );
+				model.schema.register( 'widget', {
+					inheritAllFrom: '$block',
+					isObject: true
+				} );
+				model.schema.register( 'paragraph', {
+					inheritAllFrom: '$block',
+					allowIn: 'div'
+				} );
+				model.schema.register( 'inline', {
+					allowWhere: '$text',
+					isObject: true
+				} );
+				model.schema.register( 'nested', {
+					allowIn: 'widget',
+					isLimit: true
+				} );
+				model.schema.extend( '$text', {
+					allowIn: [ 'nested', 'editable' ]
+				} );
+				model.schema.register( 'editable', {
+					allowIn: [ 'widget', '$root' ]
+				} );
 
 				// Image feature.
-				model.schema.registerItem( 'image' );
-				model.schema.allow( { name: 'image', inside: '$root' } );
-				model.schema.objects.add( 'image' );
+				model.schema.register( 'image', {
+					allowIn: '$root',
+					isObject: true,
+					isBlock: true
+				} );
 
 				// Block-quote feature.
-				model.schema.registerItem( 'blockQuote' );
-				model.schema.allow( { name: 'blockQuote', inside: '$root' } );
-				model.schema.allow( { name: '$block', inside: 'blockQuote' } );
+				model.schema.register( 'blockQuote', {
+					allowIn: '$root'
+				} );
+				model.schema.extend( '$block', { allowIn: 'blockQuote' } );
 
 				// Div element which helps nesting elements.
-				model.schema.registerItem( 'div' );
-				model.schema.allow( { name: 'div', inside: 'blockQuote' } );
-				model.schema.allow( { name: 'div', inside: 'div' } );
-				model.schema.allow( { name: 'paragraph', inside: 'div' } );
+				model.schema.register( 'div', {
+					allowIn: [ 'blockQuote', 'div' ]
+				} );
 
 				buildModelConverter().for( editor.editing.modelToView )
 					.fromElement( 'paragraph' )