Merge pull request #3010 from corda/pat/explorer-networkview-bugfix

[Bug fix] - explorer doesn't remove node from network view.
This commit is contained in:
Patrick Kuo 2018-04-26 16:52:21 +01:00 committed by GitHub
commit 99129c1141
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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)