<commit_before>//
//  DHTableViewController.swift
//  DHBW Stuttgart
//
//  Created by <NAME> on 08.11.16.
//  Copyright © 2016 <NAME>. All rights reserved.
//

#if os(iOS)
    import UIKit
    
    public class DHTableViewController: UITableViewController {
        var tableViewSetup : UITableView! = nil
        var navigationTitle: String? = nil {
            didSet {
                if let navigationTitle = navigationTitle {
                    navigationItem.title = navigationTitle
                } else {
                    navigationItem.title = ""
                }
            }
        }
        public func runTableViewSetup() {
            fatalError("Function must be overwritten")
        }
        override public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return dhTableView(tableView as! DHTableView, numberOfRowsInSection: section)
        }
        
        override public func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
            return dhTableView(tableView as! DHTableView, titleForHeaderInSection: section)
        }
        
        override public init(style: UITableViewStyle) {
            super.init(style: style)
            tableView = DHTableView()
            tableView.delegate = self
            tableView.dataSource = self
            //viewDidLoad()
        }
        
        override public func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
            return dhTableView(tableView as! DHTableView, estimatedHeightForRowAt: indexPath)
        }
        
        override public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
            dhTableView(tableView as! DHTableView, didSelectRowAt: indexPath)
        }
        
        override public init(nibName: String?, bundle: Bundle?) {
            super.init(nibName: nil, bundle: nil)
            tableView = DHTableView()
            tableView.delegate = self
            tableView.dataSource = self
            viewDidLoad()
        }
        
        required public init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
        }
        
        override public func numberOfSections(in tableView: UITableView) -> Int {
            return numberOfSections(in: tableView as! DHTableView)
        }
        
        override public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            return dhTableView(tableView as! DHTableView, cellForRowAt: indexPath)
        }
    }
#elseif os(OSX)
    import Cocoa
    public class DHTableViewController: DHViewController, NSTableViewDataSource, NSTableViewDelegate {
        var tableViewSetup : NSTableView! = nil
        /*public var navigationTitle: String? = nil {
            didSet {
                /*if view.window == nil { return }
                if let navigationTitle = navigationTitle {
                    view.window?.title = navigationTitle
                } else {
                    view.window?.title = ""
                }*/
            }
        }*/
        public func runTableViewSetup() {
            fatalError("Function must be overwritten")
        }
        public override func viewDidLoad() {
            super.viewDidLoad()
        }
        public func numberOfRows(in tableView: NSTableView) -> Int {
            let secs = numberOfSections(in: tableView as! DHTableView)
            var count = 0
            for sec in 1...secs {
                count += dhTableView(tableView as! DHTableView, numberOfRowsInSection: sec - 1)
                if let _ = dhTableView(tableView as! DHTableView, titleForHeaderInSection: sec - 1) {
                    count += 1
                }
            }
            return count
        }
        override public func viewWillAppear() {
            super.viewWillAppear()
            runTableViewSetup()
            tableViewSetup.doubleAction = #selector(DHTableViewController.tvDoubleClicked)
            tableViewSetup.delegate = self
            tableViewSetup.dataSource = self
        }
        @objc private func tvDoubleClicked() {
            dhTableView(tableViewSetup as! DHTableView, didSelectRowAt: determineSection(tableView: tableViewSetup as! DHTableView, row: tableViewSetup.selectedRow))
        }
        public func tableView(_ tableView: NSTableView, heightOfRow row: Int) -> CGFloat {
            let indexPath = determineSection(tableView: tableView as! DHTableView, row: row)
            if indexPath.row == -1 {
                return 20
            }
            return dhTableView(tableView as! DHTableView, estimatedHeightForRowAt: indexPath)
        }
        private func determineSection(tableView: DHTableView, row: Int) -> IndexPath {
            var rowsIncluded = 0
            var section = -1
            while (row + 1) > rowsIncluded  {
                section += 1
                rowsIncluded += dhTableView(tableView, numberOfRowsInSection: section)
                if let _ = dhTableView(tableView, titleForHeaderInSection: section) {
                    rowsIncluded += 1
                }
            }
            let finalRow = row - rowsIncluded + dhTableView(tableView, numberOfRowsInSection: section)
           return IndexPath(item: finalRow, section: section)
        }
        public func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
            let indexPath = determineSection(tableView: tableView as! DHTableView, row: row)
            if indexPath.row == -1 {
                return determineTitle(tableView: tableView as! DHTableView, section: indexPath.section)
            }
            if let originalCell = dhTableView(tableView as! DHTableView, originalCellForRowAt: indexPath) {
                return originalCell
            }
            let baseCell = dhTableView(tableView as! DHTableView, cellForRowAt: indexPath)
            if baseCell.cellTitle == nil {<commit_msg>Disable clicking on section headers on macOS<commit_after>//
//  DHTableViewController.swift
//  DHBW Stuttgart
//
//  Created by <NAME> on 08.11.16.
//  Copyright © 2016 <NAME>. All rights reserved.
//

#if os(iOS)
    import UIKit
    
    public class DHTableViewController: UITableViewController {
        var tableViewSetup : UITableView! = nil
        var navigationTitle: String? = nil {
            didSet {
                if let navigationTitle = navigationTitle {
                    navigationItem.title = navigationTitle
                } else {
                    navigationItem.title = ""
                }
            }
        }
        public func runTableViewSetup() {
            fatalError("Function must be overwritten")
        }
        override public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return dhTableView(tableView as! DHTableView, numberOfRowsInSection: section)
        }
        
        override public func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
            return dhTableView(tableView as! DHTableView, titleForHeaderInSection: section)
        }
        
        override public init(style: UITableViewStyle) {
            super.init(style: style)
            tableView = DHTableView()
            tableView.delegate = self
            tableView.dataSource = self
            //viewDidLoad()
        }
        
        override public func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
            return dhTableView(tableView as! DHTableView, estimatedHeightForRowAt: indexPath)
        }
        
        override public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
            dhTableView(tableView as! DHTableView, didSelectRowAt: indexPath)
        }
        
        override public init(nibName: String?, bundle: Bundle?) {
            super.init(nibName: nil, bundle: nil)
            tableView = DHTableView()
            tableView.delegate = self
            tableView.dataSource = self
            viewDidLoad()
        }
        
        required public init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
        }
        
        override public func numberOfSections(in tableView: UITableView) -> Int {
            return numberOfSections(in: tableView as! DHTableView)
        }
        
        override public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            return dhTableView(tableView as! DHTableView, cellForRowAt: indexPath)
        }
    }
#elseif os(OSX)
    import Cocoa
    public class DHTableViewController: DHViewController, NSTableViewDataSource, NSTableViewDelegate {
        var tableViewSetup : NSTableView! = nil
        /*public var navigationTitle: String? = nil {
            didSet {
                /*if view.window == nil { return }
                if let navigationTitle = navigationTitle {
                    view.window?.title = navigationTitle
                } else {
                    view.window?.title = ""
                }*/
            }
        }*/
        public func runTableViewSetup() {
            fatalError("Function must be overwritten")
        }
        public override func viewDidLoad() {
            super.viewDidLoad()
        }
        public func numberOfRows(in tableView: NSTableView) -> Int {
            let secs = numberOfSections(in: tableView as! DHTableView)
            var count = 0
            for sec in 1...secs {
                count += dhTableView(tableView as! DHTableView, numberOfRowsInSection: sec - 1)
                if let _ = dhTableView(tableView as! DHTableView, titleForHeaderInSection: sec - 1) {
                    count += 1
                }
            }
            return count
        }
        override public func viewWillAppear() {
            super.viewWillAppear()
            runTableViewSetup()
            tableViewSetup.doubleAction = #selector(DHTableViewController.tvDoubleClicked)
            tableViewSetup.delegate = self
            tableViewSetup.dataSource = self
        }
        @objc private func tvDoubleClicked() {
            dhTableView(tableViewSetup as! DHTableView, didSelectRowAt: determineSection(tableView: tableViewSetup as! DHTableView, row: tableViewSetup.selectedRow))
        }
        public func tableView(_ tableView: NSTableView, shouldSelectRow row: Int) -> Bool {
            return determineSection(tableView: tableView as! DHTableView, row: row).row > -1
        }
        public func tableView(_ tableView: NSTableView, heightOfRow row: Int) -> CGFloat {
            let indexPath = determineSection(tableView: tableView as! DHTableView, row: row)
            if indexPath.row == -1 {
                return 20
            }
            return dhTableView(tableView as! DHTableView, estimatedHeightForRowAt: indexPath)
        }
        private func determineSection(tableView: DHTableView, row: Int) -> IndexPath {
            var rowsIncluded = 0
            var section = -1
            while (row + 1) > rowsIncluded  {
                section += 1
                rowsIncluded += dhTableView(tableView, numberOfRowsInSection: section)
                if let _ = dhTableView(tableView, titleForHeaderInSection: section) {
                    rowsIncluded += 1
                }
            }
            let finalRow = row - rowsIncluded + dhTableView(tableView, numberOfRowsInSection: section)
           return IndexPath(item: finalRow, section: section)
        }
        public func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
            let indexPath = determineSection(tableView: tableView as! DHTableView, row: row)
            if indexPath.row == -1 {
                return determineTitle(tableView: tableView as! DHTableView, section: indexPath.section)
            }
            if let originalCell = dhTableView(tableView as! DHTableView, originalCellForRowAt: indexPath) {
                return originalCell
            }
            let baseCell = dhTableView(tableView as! DHTableView, cellForRowAt: indexPath)
            if baseCell.cellTitle == nil {
{'fraction_non_alphanumeric': 0.07495548000647563, 'fraction_numerical': 0.003966326695807026, 'mean_word_length': 1.9663865546218486, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 29, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2213299', 'n_tokens_mistral': 3317, 'n_tokens_neox': 3081, 'n_words': 827}