| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /**
- * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
- */
- /* globals console, document */
- import View from '../../../src/view/view';
- import DomEventObserver from '../../../src/view/observer/domeventobserver';
- import createViewRoot from '../_utils/createroot';
- import { StylesProcessor } from '../../../src/view/stylesmap';
- const view = new View( new StylesProcessor() );
- const viewDocument = view.document;
- // Disable rendering for this example, because it re-enables all observers each time view is rendered.
- view.render = () => {};
- class ClickObserver1 extends DomEventObserver {
- constructor( view ) {
- super( view );
- this.id = 1;
- this.domEventType = 'click';
- }
- onDomEvent( domEvt ) {
- this.fire( 'click', domEvt, { id: this.id } );
- }
- }
- class ClickObserver2 extends DomEventObserver {
- constructor( view ) {
- super( view );
- this.id = 2;
- this.domEventType = 'click';
- }
- onDomEvent( domEvt ) {
- this.fire( 'click', domEvt, { id: this.id } );
- }
- }
- viewDocument.on( 'click', ( evt, evtData ) => console.log( 'click', evtData.id, evtData.domTarget.id ) );
- // Random order.
- view.addObserver( ClickObserver1 );
- createViewRoot( viewDocument, 'div', 'clickerA' );
- view.attachDomRoot( document.getElementById( 'clickerA' ), 'clickerA' );
- view.addObserver( ClickObserver2 );
- createViewRoot( viewDocument, 'div', 'clickerB' );
- view.attachDomRoot( document.getElementById( 'clickerB' ), 'clickerB' );
- document.getElementById( 'enable1' ).addEventListener( 'click', () => view.getObserver( ClickObserver1 ).enable() );
- document.getElementById( 'disable1' ).addEventListener( 'click', () => view.getObserver( ClickObserver1 ).disable() );
|