feat: added grid chart to the network popup for connectivity history (#1397)

This commit is contained in:
Serhiy Mytrovtsiy
2023-04-11 21:51:03 +02:00
parent b6bba2d2cc
commit efdbff5424

View File

@@ -54,6 +54,7 @@ internal class Popup: PopupWrapper {
private var connectionInitialized: Bool = false
private var chart: NetworkChartView? = nil
private var connectivityChart: GridChartView? = nil
private var processes: [NetworkProcessView] = []
private var base: DataSizeBase {
@@ -104,6 +105,7 @@ internal class Popup: PopupWrapper {
self.addArrangedSubview(self.initDashboard())
self.addArrangedSubview(self.initChart())
self.addArrangedSubview(self.initConnectivityChart())
self.addArrangedSubview(self.initDetails())
self.addArrangedSubview(self.initPublicIP())
self.addArrangedSubview(self.initProcesses())
@@ -173,6 +175,25 @@ internal class Popup: PopupWrapper {
return view
}
private func initConnectivityChart() -> NSView {
let view: NSView = NSView(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: 30 + Constants.Popup.separatorHeight))
view.heightAnchor.constraint(equalToConstant: view.bounds.height).isActive = true
let separator = separatorView(localizedString("Connectivity history"), origin: NSPoint(x: 0, y: 30), width: self.frame.width)
let container: NSView = NSView(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: separator.frame.origin.y))
container.wantsLayer = true
container.layer?.backgroundColor = NSColor.lightGray.withAlphaComponent(0.1).cgColor
container.layer?.cornerRadius = 3
let chart = GridChartView(frame: NSRect(x: 0, y: 1, width: container.frame.width, height: container.frame.height - 2), grid: (30, 3))
container.addSubview(chart)
self.connectivityChart = chart
view.addSubview(separator)
view.addSubview(container)
return view
}
private func initDetails() -> NSView {
let view: NSView = NSView(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: 0))
let container: NSStackView = NSStackView(frame: NSRect(x: 0, y: 0, width: view.frame.width, height: 0))
@@ -406,6 +427,10 @@ internal class Popup: PopupWrapper {
self.connectivityField?.stringValue = localizedString(text)
self.connectionInitialized = true
}
if let value, let chart = self.connectivityChart {
chart.addValue(value)
}
})
}