private void removeAllListenerRegistrations() { if (listenOnAttachListenerRegistration != null) { listenOnAttachListenerRegistration.remove(); listenOnAttachListenerRegistration = null; } removeListenerRegistration(); listenOnComponent = null; }
private void registerLifecycleOwner(Component owner) { assert owner != null; lifecycleOwner = owner; // since we are attached, UI should be available Registration attachRegistration = owner.addAttachListener(e -> queueBeforeExecutionCallback()); // remove shortcut listener when detached Registration detachRegistration = owner.addDetachListener(e -> removeListenerRegistration()); lifecycleRegistration = new CompoundRegistration(attachRegistration, detachRegistration); }
private void registerOwnerListener() { assert listenOnSupplier != null; listenOnComponent = listenOnSupplier.get(); if (listenOnComponent == null) { throw new IllegalStateException( String.format("Could register shortcut listener for %s. " + "%s<%s> supplied a null value.", this.toString(), SerializableSupplier.class.getSimpleName(), Component.class.getSimpleName())); } if (!(listenOnComponent instanceof UI)) { listenOnAttachListenerRegistration = new CompoundRegistration(); listenOnAttachListenerRegistration.addRegistration( listenOnComponent.addAttachListener( attachEvent -> updateHandlerListenerRegistration())); listenOnAttachListenerRegistration.addRegistration( listenOnComponent.addDetachListener( detachEvent -> removeListenerRegistration())); } // either the scope is an active UI, or the component is attached to an // active UI - in either case, we want to update dom registration if (listenOnComponent.getUI().isPresent()) { updateHandlerListenerRegistration(); } }