/** * Handle the destroy event. * * @param event The destroy event. */ @Override public void onEvent(Event event) { if (component == event.getTarget()) { removeReference(); if (onDestroy != null) { onDestroy.accept(event.getTarget()); } } }
/** * Sets the referenced component, removing any previous reference. * * @param component The referenced component. * @return True if the referenced component changed. */ public boolean setReference(T component) { if (component != this.component) { if (component != null) { component.validatePage(BaseComponent.this.page); component.addEventListener("destroy", this); } removeReference(); this.component = component; return true; } return false; }
@Override protected void finalize() { removeReference(); }