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