in SasquatchMac/SasquatchMac/ViewControllers/TransmissionViewController.swift [222:350]
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
// Target properties section
if(tableView.tag == Section.TargetProperties.rawValue) {
guard let identifier = tableColumn?.identifier else {
return nil
}
let view = tableView.makeView(withIdentifier: identifier, owner: nil)
if (identifier.rawValue == "value") {
let eventProperties = arrayController.content as! [EventProperty]
updateValue(property: eventProperties[row], cell: view as! NSTableCellView)
}
return view
}
tableView.headerView = nil
// Common schema properties section
if(tableView.tag == Section.CommonSchemaProperties.rawValue) {
if let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "property"), owner: nil) as? NSTableCellView {
let property = propertyAtRow(row: row)
switch (row) {
case kDeviceIdRow:
let key: NSTextField = cell.subviews[cellSubviews.key.rawValue] as! NSTextField
key.stringValue = property.key
let value: NSButton = cell.subviews[cellSubviews.valueCheck.rawValue] as! NSButton
let selectedTarget = selectedTransmissionTarget(commonSelector)
value.state = collectDeviceIdStates[selectedTarget!]! ? .on : .off
value.isEnabled = !((value.state as NSNumber).boolValue)
value.target = self
value.action = #selector(collectDeviceIdSwitchCellEnabled)
cell.subviews[cellSubviews.valueCheck.rawValue].isHidden = false
cell.subviews[cellSubviews.valueText.rawValue].isHidden = true
return cell
case kAppNameRow:
let key: NSTextField = cell.subviews[cellSubviews.key.rawValue] as! NSTextField
key.stringValue = property.key
let value: NSTextField = cell.subviews[cellSubviews.valueText.rawValue] as! NSTextField
value.stringValue = property.value
value.delegate = self
cell.subviews[cellSubviews.valueCheck.rawValue].isHidden = true
cell.subviews[cellSubviews.valueText.rawValue].isHidden = false
return cell
case kAppVersionRow:
let key: NSTextField = cell.subviews[cellSubviews.key.rawValue] as! NSTextField
key.stringValue = property.key
let value: NSTextField = cell.subviews[cellSubviews.valueText.rawValue] as! NSTextField
value.stringValue = property.value
value.delegate = self
cell.subviews[cellSubviews.valueCheck.rawValue].isHidden = true
cell.subviews[cellSubviews.valueText.rawValue].isHidden = false
return cell
case kAppLocaleRow:
let key: NSTextField = cell.subviews[cellSubviews.key.rawValue] as! NSTextField
key.stringValue = property.key
let value: NSTextField = cell.subviews[cellSubviews.valueText.rawValue] as! NSTextField
value.stringValue = property.value
value.delegate = self
cell.subviews[cellSubviews.valueCheck.rawValue].isHidden = true
cell.subviews[cellSubviews.valueText.rawValue].isHidden = false
return cell
case kUserIdRow:
let key: NSTextField = cell.subviews[cellSubviews.key.rawValue] as! NSTextField
key.stringValue = property.key
let value: NSTextField = cell.subviews[cellSubviews.valueText.rawValue] as! NSTextField
value.stringValue = property.value
value.delegate = self
cell.subviews[cellSubviews.valueCheck.rawValue].isHidden = true
cell.subviews[cellSubviews.valueText.rawValue].isHidden = false
return cell
default:
return nil
}
}
return nil
}
// Transmission target section
if let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "target"), owner: nil) as? NSTableCellView {
for subview in cell.subviews {
subview.isHidden = true
}
let section = transmissionTargetSections![tableView.tag]
switch (row) {
case kEnabledCellRowIndex:
let key: NSTextField = cell.subviews[cellSubviews.key.rawValue] as! NSTextField
key.isHidden = false
key.stringValue = "Set Enabled"
let value: NSButton = cell.subviews[cellSubviews.valueCheck.rawValue] as! NSButton
value.isHidden = false
value.state = section.isTransmissionTargetEnabled() ? .on : .off
value.isEnabled = tableView.tag != Section.Default.rawValue
value.target = self
value.action = #selector(targetEnabledSwitchValueChanged)
return cell
case kAnalyticsCellRowIndex:
let key: NSTextField = cell.subviews[cellSubviews.key.rawValue] as! NSTextField
key.isHidden = false
key.stringValue = "Analytics Events"
let value: NSButton = cell.subviews[cellSubviews.valueCheck.rawValue] as! NSButton
value.isHidden = false
value.state = section.shouldSendAnalytics() ? .on : .off
value.target = self
value.action = #selector(targetShouldSendAnalyticsSwitchValueChanged)
return cell
case kTokenCellRowIndex:
let key: NSTextField = cell.subviews[cellSubviews.key.rawValue] as! NSTextField
key.isHidden = false
key.stringValue = "Token"
let value: NSTextField = cell.subviews[cellSubviews.valueText.rawValue] as! NSTextField
value.isHidden = false
value.stringValue = section.token!
return cell
case kPauseCellRowIndex:
let pause: NSButton = cell.subviews[cellSubviews.pause.rawValue] as! NSButton
pause.isHidden = false
pause.target = self
pause.action = #selector(TransmissionViewController.pause)
let resume: NSButton = cell.subviews[cellSubviews.resume.rawValue] as! NSButton
resume.isHidden = false
resume.target = self
resume.action = #selector(TransmissionViewController.resume)
return cell
default:
return nil
}
}
return nil
}