2017-08-17 41 views
0

如果我有一個JavaFX的財產,我從這個屬性創建事件流:如何通過訂閱事件流來獲取屬性的來源?

EventStreams.nonNullValuesOf(node.boundsInParentProperty()) 

有沒有在創建時設置源(在這種情況下,「節點」)或獲取該對象的可能性後來在訂閱?

例如:

EventStream<...> stream = EventStreams.nonNullValuesOf(node.boundsInParentProperty()); 

... 
stream.subscribe((node, bounds) -> ...); 

或創建時間:

EventStream<...> stream = EventStreams.valueAndSource(node.boundsInParentProperty(), node); 

回答

1

好,我得到了我想要有:

EventStreams.nonNullValuesOf(node.boundsInParentProperty()).map(bounds -> ...) 

我的問題是,我有一個列表在迭代時間可達的N個節點對象。解決了我的問題,例如:

EventStream<Tuple2<Node, Bounds>> eventStream = nodes.stream(). 
map(node -> EventStreams.nonNullValuesOf(node.boundsInParentProperty()).map(bounds -> Tuples.t(node, bounds))). 
reduce((es, esAccu) -> EventStreams.merge(es, esAccu)). 
orElse(EventStreams.never()); 
相關問題