You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
3.0 KiB
101 lines
3.0 KiB
// |
|
// ShowNetworksViewController.swift |
|
// ZeroTier One |
|
// |
|
// Created by Grant Limberg on 5/14/16. |
|
// Copyright © 2016 ZeroTier, Inc. All rights reserved. |
|
// |
|
|
|
import Cocoa |
|
|
|
class ShowNetworksViewController: NSViewController, NSTableViewDelegate, NSTableViewDataSource { |
|
|
|
@IBOutlet var tableView: NSTableView? |
|
|
|
var networkList: [Network] = [Network]() |
|
var netMonitor: NetworkMonitor! |
|
|
|
override func viewDidLoad() { |
|
super.viewDidLoad() |
|
// Do view setup here. |
|
|
|
tableView?.setDelegate(self) |
|
tableView?.setDataSource(self) |
|
tableView?.backgroundColor = NSColor.clearColor() |
|
} |
|
|
|
private func dataFile() -> String { |
|
var appSupport = NSFileManager.defaultManager().URLsForDirectory(.ApplicationSupportDirectory, inDomains: .UserDomainMask)[0] |
|
appSupport = appSupport.URLByAppendingPathComponent("ZeroTier").URLByAppendingPathComponent("One").URLByAppendingPathComponent("networks.dat") |
|
return appSupport.path! |
|
} |
|
|
|
override func viewWillAppear() { |
|
super.viewWillAppear() |
|
} |
|
|
|
override func viewWillDisappear() { |
|
super.viewWillDisappear() |
|
|
|
let filePath = dataFile() |
|
NSKeyedArchiver.archiveRootObject(self.networkList, toFile: filePath) |
|
} |
|
|
|
func deleteNetworkFromList(nwid: String) { |
|
|
|
} |
|
|
|
|
|
func setNetworks(list: [Network]) { |
|
networkList = list |
|
tableView?.reloadData() |
|
} |
|
|
|
// NSTableViewDataSource |
|
|
|
func numberOfRowsInTableView(tableView: NSTableView) -> Int { |
|
return networkList.count |
|
} |
|
|
|
// end NSTableViewDataSource |
|
|
|
// NSTableViewDelegate |
|
|
|
func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? { |
|
if let cell = tableView.makeViewWithIdentifier("NetworkInfoCell", owner: nil) as? NetworkInfoCell { |
|
let network = networkList[row] |
|
cell.parent = self |
|
cell.networkIdField.stringValue = String(network.nwid, radix: 16) |
|
cell.networkNameField.stringValue = network.name |
|
|
|
cell.statusField.stringValue = network.status.description |
|
cell.typeField.stringValue = network.type.description |
|
cell.macField.stringValue = network.mac |
|
cell.mtuField.stringValue = String(network.mtu) |
|
cell.broadcastField.stringValue = network.broadcastEnabled ? "ENABLED" : "DISABLED" |
|
cell.bridgingField.stringValue = network.bridge ? "ENABLED" : "DISABLED" |
|
cell.deviceField.stringValue = network.portDeviceName |
|
|
|
|
|
cell.addressesField.stringValue = "" |
|
|
|
for nw in network.assignedAddresses { |
|
cell.addressesField.stringValue += nw |
|
cell.addressesField.stringValue += "\n" |
|
} |
|
|
|
if network.connected { |
|
cell.connectedCheckbox.state = NSOnState |
|
} |
|
else { |
|
cell.connectedCheckbox.state = NSOffState |
|
} |
|
|
|
return cell |
|
} |
|
|
|
return nil |
|
} |
|
|
|
// end NSTableViewDelegate |
|
}
|
|
|