in model/src/main/java/jetbrains/jetpad/model/property/Properties.java [586:615]
public static <ItemT> ReadableProperty<Boolean> empty(final ObservableCollection<ItemT> collection) {
return new BaseDerivedProperty<Boolean>(collection.isEmpty()) {
private Registration myCollectionRegistration;
@Override
protected void doAddListeners() {
myCollectionRegistration = collection.addListener(Properties.simpleAdapter(new Runnable() {
@Override
public void run() {
somethingChanged();
}
}));
}
@Override
protected void doRemoveListeners() {
myCollectionRegistration.remove();
}
@Override
protected Boolean doGet() {
return collection.isEmpty();
}
@Override
public String getPropExpr() {
return "empty(" + collection + ")";
}
};
}