@Override public Connection atPrio (int priority) { for (Connection c : conns) c.atPrio(priority); return this; } @Override public Connection holdWeakly () {
protected void disconnect () { if (_conn != null) { _conn.close(); _conn = null; } }
@Override public Connection once () { for (Connection c : conns) c.once(); return this; } @Override public Connection atPrio (int priority) {
@Override protected Connection connect () { Connection[] conns = new Connection[values.size()]; Iterator<? extends ValueView<Boolean>> iter = values.iterator(); for (int ii = 0; ii < conns.length; ii++) conns[ii] = iter.next().connect(_trigger); return Connection.join(conns); }
@Override public Connection holdWeakly () { for (Connection c : conns) c.holdWeakly(); return this; } };
@Override protected Connection connect () { Connection[] conns = new Connection[values.size()]; Iterator<? extends ValueView<Boolean>> iter = values.iterator(); for (int ii = 0; ii < conns.length; ii++) conns[ii] = iter.next().connect(_trigger); return Connection.join(conns); }
@Override public Connection holdWeakly () { for (Connection c : conns) c.holdWeakly(); return this; } };
@Override public void close () { for (Connection c : conns) c.close(); } @Override public Connection once () {
@Override public Connection atPrio (int priority) { for (Connection c : conns) c.atPrio(priority); return this; } @Override public Connection holdWeakly () {
@Override public Connection once () { for (Connection c : conns) c.once(); return this; } @Override public Connection atPrio (int priority) {
@Override protected Connection connect () { return Connection.join(a.connect(_trigger), b.connect(_trigger)); } protected final UnitSlot _trigger = new UnitSlot() {
protected void disconnect () { if (_conn != null) { _conn.close(); _conn = null; } }
public Default (Platform plat) { this.plat = plat; plat.frame.connect(new Slot<Object>() { public void onEmit (Object unused) { dispatch(); } }).atPrio(Short.MAX_VALUE); }
@Override public void onEmit (Menu event) { // due to animations, deactivation can happen during layout, so do it next frame iface.frame.connect(cleanup).once(); } });
@Override protected Connection connect () { return Connection.join(a.connect(_trigger), b.connect(_trigger)); } protected final UnitSlot _trigger = new UnitSlot() {
@Override public void close () { for (Connection c : conns) c.close(); } @Override public Connection once () {
public Default (Platform plat) { this.plat = plat; plat.frame.connect(new Slot<Object>() { public void onEmit (Object unused) { dispatch(); } }).atPrio(Short.MAX_VALUE); }
@Override public RFuture<T> next () { final RPromise<T> result = RPromise.create(); connect(result.succeeder()).once(); return result; }
@Override protected Connection connect () { return Connection.join( a.connect(_trigger), b.connect(_trigger), c.connect(_trigger)); } protected final UnitSlot _trigger = new UnitSlot() {
/** @deprecated Call {@link #close} instead. */ @Deprecated public void disconnect () { close(); }