editingcontroller.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /**
  2. * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. import EditingController from '/ckeditor5/engine/editingcontroller.js';
  6. import Document from '/ckeditor5/engine/model/document.js';
  7. import ModelRange from '/ckeditor5/engine/model/range.js';
  8. import { setData } from '/tests/engine/_utils/model.js';
  9. import buildModelConverter from '/ckeditor5/engine/conversion/buildmodelconverter.js';
  10. const model = new Document();
  11. model.createRoot();
  12. const editing = new EditingController( model );
  13. editing.createRoot( document.getElementById( 'editor' ) );
  14. model.schema.registerItem( 'paragraph', '$block' );
  15. buildModelConverter().for( editing.modelToView ).fromElement( 'paragraph' ).toElement( 'p' );
  16. setData( model,
  17. '<paragraph>foo</paragraph>' +
  18. '<paragraph></paragraph>' +
  19. '<paragraph>bar</paragraph>' );
  20. editing.view.focus();
  21. // enter
  22. editing.view.on( 'keydown', ( evt, data ) => {
  23. if ( data.keyCode == 13 ) {
  24. model.enqueueChanges( () => {
  25. model.batch().split( model.selection.getFirstPosition() );
  26. } );
  27. }
  28. } );
  29. // delete
  30. editing.view.on( 'keydown', ( evt, data ) => {
  31. if ( data.keyCode == 46 ) {
  32. model.enqueueChanges( () => {
  33. model.batch().remove( ModelRange.createFromPositionAndShift( model.selection.getFirstPosition(), 1 ) );
  34. } );
  35. }
  36. } );