in code/debugger/src/main/kotlin/org/fbme/debugger/common/ui/DebuggerPanel.kt [219:252]
protected fun showExplanation(e: MouseEvent) {
val selectionPath = watchesTree
.selectionPath
?.path
?.toList()
?.map { it.toString() }
?.drop(1)
?.joinToString(".")
?.split(".")
?: return
val children = explanationProducer.getNodeOrPut(statesList.selectedIndex, selectionPath).children
var explanationText = ""
for (explanationNode in children) {
explanationText += "$explanationNode\n"
}
val selectedState = statesList.selectedValue?.state
val networkInspector = inspector as? NetworkInspector
if (selectedState != null && networkInspector != null) {
for (explanationNode in children) {
val port = ports.firstOrNull { it.second == explanationNode.path } ?: continue
val value = selectedState.resolveValue(port.second) ?: continue
networkInspector.setInspectionForPort(port.first, Inspection(value, MPSColors.RED, true))
}
}
val explanationPopup = GotItTooltip(UUID.randomUUID().toString(), explanationText, project)
explanationPopup.position = Balloon.Position.atLeft
explanationPopup.show(watchesTree) { component, _ ->
Point(component.x, e.y)
}
}