8
0

clickobserver.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /**
  2. * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. /* global console:false */
  6. 'use strict';
  7. import Document from '/ckeditor5/engine/treeview/document.js';
  8. import DomEventObserver from '/ckeditor5/engine/treeview/observer/domeventobserver.js';
  9. const viewDocument = new Document();
  10. let observer1, observer2;
  11. class ClickObserver1 extends DomEventObserver {
  12. constructor( viewDocument ) {
  13. super( viewDocument );
  14. this.id = 1;
  15. this.domEventType = 'click';
  16. observer1 = this;
  17. }
  18. onDomEvent( domEvt ) {
  19. this.fire( 'click', this.id, domEvt.target.id );
  20. }
  21. }
  22. class ClickObserver2 extends DomEventObserver {
  23. constructor( viewDocument ) {
  24. super( viewDocument );
  25. this.id = 2;
  26. this.domEventType = 'click';
  27. observer2 = this;
  28. }
  29. onDomEvent( domEvt ) {
  30. this.fire( 'click', this.id, domEvt.target.id );
  31. }
  32. }
  33. viewDocument.on( 'click', ( evt, eventId, elementId ) => console.log( 'click', eventId, elementId ) );
  34. document.getElementById( 'enable1' ).addEventListener( 'click', () => observer1.enable() );
  35. document.getElementById( 'disable1' ).addEventListener( 'click', () => observer1.disable() );
  36. // Random order.
  37. viewDocument.addObserver( ClickObserver1 );
  38. viewDocument.createRoot( document.getElementById( 'clickerA' ), 'clickerA' );
  39. viewDocument.addObserver( ClickObserver2 );
  40. viewDocument.createRoot( document.getElementById( 'clickerB' ), 'clickerB' );