[Bug fix] - explorer doesn't remove node from network view. (#779)

(cherry picked from commit eb5b03e)
This commit is contained in:
Patrick Kuo 2018-04-26 13:19:06 +01:00
parent 72bd530b11
commit 1b31574512
2 changed files with 13 additions and 2 deletions

View File

@ -26,7 +26,9 @@ class NetworkIdentityModel {
else -> false
}
}
list.addAll(update.node)
if(update is MapChange.Modified || update is MapChange.Added){
list.addAll(update.node)
}
}
private val rpcProxy by observableValue(NodeMonitorModel::proxyObservable)

View File

@ -8,6 +8,7 @@ import javafx.beans.binding.Bindings
import javafx.beans.property.SimpleObjectProperty
import javafx.beans.value.ObservableValue
import javafx.collections.FXCollections
import javafx.collections.ListChangeListener
import javafx.geometry.Bounds
import javafx.geometry.Insets
import javafx.geometry.Point2D
@ -69,7 +70,15 @@ class Network : CordaView() {
private val notaryButtons = notaryComponents.map { it.button }
private val peerComponents = peers.map { it.render() }
private val peerButtons = peerComponents.filtered { myIdentity.value !in it.nodeInfo.legalIdentitiesAndCerts.map { it.party } }.map { it.button }
private val allComponents = FXCollections.observableArrayList(notaryComponents, peerComponents).concatenate()
private val allComponents = FXCollections.observableArrayList(notaryComponents, peerComponents).concatenate().apply {
addListener(ListChangeListener {
if(it.next()){
it.removed.forEach {
mapPane.children.remove(it.label)
}
}
})
}
private val mapLabels = allComponents.map { it.label }
private data class MapViewComponents(val nodeInfo: NodeInfo, val button: Button, val label: Label)