macOS: Manage tunnels: Tunnel detail view

Signed-off-by: Roopesh Chander <roop@roopc.net>
This commit is contained in:
Roopesh Chander
2019-01-03 01:16:27 +05:30
parent c946c0ea48
commit ada7db3dca
6 changed files with 273 additions and 7 deletions
@@ -3,9 +3,15 @@
import Cocoa
protocol TunnelsListTableViewControllerDelegate: class {
func tunnelSelected(tunnel: TunnelContainer)
func tunnelListEmpty()
}
class TunnelsListTableViewController: NSViewController {
let tunnelsManager: TunnelsManager
weak var delegate: TunnelsListTableViewControllerDelegate?
let tableView: NSTableView = {
let tableView = NSTableView()
@@ -148,6 +154,17 @@ extension TunnelsListTableViewController: NSTableViewDelegate {
cell.tunnel = tunnelsManager.tunnel(at: row)
return cell
}
func tableViewSelectionDidChange(_ notification: Notification) {
guard tableView.selectedRow >= 0 else {
if tunnelsManager.numberOfTunnels() == 0 {
delegate?.tunnelListEmpty()
}
return
}
let selectedTunnel = tunnelsManager.tunnel(at: tableView.selectedRow)
delegate?.tunnelSelected(tunnel: selectedTunnel)
}
}
class FillerButton: NSButton {