sclass JCalculatedComponent extends SingleComponentPanel is ChangeTriggerable { settable IF0 makeComponent; *(IF0 *makeComponent) {} transient ReliableSingleThread rstMakeComponent = new(-> { setComponent(makeComponent?!); }); { bindToComponent(this, -> { /*if (!hasComponent())*/ rstMakeComponent.trigger(); }, null); } public void change { rstMakeComponent.trigger(); } void reactToChangesIn(IHasChangeListeners source) { bindHasChangeListenersToComponent(this, source, l0 change); } }