Skip to content

Commit

Permalink
Changing CITreeView Class For Manul Adding
Browse files Browse the repository at this point in the history
  • Loading branch information
cenksk committed Feb 1, 2018
1 parent 26743d4 commit 909273c
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 21 deletions.
35 changes: 19 additions & 16 deletions CITreeViewClasses/CITreeView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import UIKit

protocol CITreeViewDataSource {
func treeView(_ treeView:CITreeView, atIndexPath indexPath:IndexPath, withTreeViewNode treeViewNode:CITreeViewNode) -> UITableViewCell
func treeViewSelectedNodeChildren(for treeViewNodeItem:AnyObject) -> [AnyObject]
func treeViewDataArray() -> [AnyObject]
func treeViewSelectedNodeChildren(for treeViewNodeItem:Any) -> [Any]
func treeViewDataArray() -> [Any]
}

protocol CITreeViewDelegate {
Expand Down Expand Up @@ -68,18 +68,20 @@ class CITreeView: UITableView {
self.endUpdates()
}

fileprivate func collapseRows(for treeViewNode: CITreeViewNode, atIndexPath indexPath: IndexPath) {
fileprivate func collapseRows(for treeViewNode: CITreeViewNode, atIndexPath indexPath: IndexPath ,completion: @escaping () -> Void) {

if #available(iOS 11.0, *) {
self.performBatchUpdates({
deleteRows()
}, completion: { (complete) in
self.treeViewDelegate?.didCollapseTreeViewNode(treeViewNode: treeViewNode, atIndexPath:indexPath)
completion()
})
} else {
CATransaction.begin()
CATransaction.setCompletionBlock({
self.treeViewDelegate?.didCollapseTreeViewNode(treeViewNode: treeViewNode, atIndexPath: indexPath)
completion()
})
deleteRows()
CATransaction.commit()
Expand Down Expand Up @@ -126,25 +128,26 @@ extension CITreeView : UITableViewDelegate {
var willExpandIndexPath = indexPath
if (selectedTreeViewNode?.expand)! {
treeViewController.collapseRows(for: selectedTreeViewNode!, atIndexPath: indexPath)
collapseRows(for: self.selectedTreeViewNode!, atIndexPath: indexPath)
collapseRows(for: self.selectedTreeViewNode!, atIndexPath: indexPath){}
}
else
{
if collapseNoneSelectedRows, selectedTreeViewNode?.level == 0 {
if let collapsedTreeViewNode = treeViewController.collapseAllRows() {
if treeViewController.indexPathsArray.count > 0 {
collapseRows(for: collapsedTreeViewNode, atIndexPath: indexPath)
for (index, treeViewNode) in mainDataArray.enumerated() {
if treeViewNode == selectedTreeViewNode {
willExpandIndexPath.row = index
}
if collapseNoneSelectedRows, selectedTreeViewNode?.level == 0, let collapsedTreeViewNode = treeViewController.collapseAllRows(), treeViewController.indexPathsArray.count > 0 {

collapseRows(for: collapsedTreeViewNode, atIndexPath: indexPath){
for (index, treeViewNode) in self.mainDataArray.enumerated() {
if treeViewNode == self.selectedTreeViewNode {
willExpandIndexPath.row = index
}
}
self.treeViewController.expandRows(atIndexPath: willExpandIndexPath, with: self.selectedTreeViewNode!)
self.expandRows(for: self.selectedTreeViewNode!, withSelected: indexPath)
}

}else{
treeViewController.expandRows(atIndexPath: willExpandIndexPath, with: selectedTreeViewNode!)
expandRows(for: self.selectedTreeViewNode!, withSelected: indexPath)
}
treeViewController.expandRows(atIndexPath: willExpandIndexPath, with: selectedTreeViewNode!)

expandRows(for: self.selectedTreeViewNode!, withSelected: indexPath)
}
}
}
Expand All @@ -169,7 +172,7 @@ extension CITreeView : UITableViewDataSource {
}

extension CITreeView : CITreeViewControllerDelegate {
func getChildren(forTreeViewNodeItem item: AnyObject, with indexPath: IndexPath) -> [AnyObject] {
func getChildren(forTreeViewNodeItem item: Any, with indexPath: IndexPath) -> [Any] {
return (self.treeViewDataSource?.treeViewSelectedNodeChildren(for: item))!
}

Expand Down
6 changes: 3 additions & 3 deletions CITreeViewClasses/CITreeViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import UIKit

protocol CITreeViewControllerDelegate : NSObjectProtocol {
func getChildren(forTreeViewNodeItem item:AnyObject, with indexPath:IndexPath) -> [AnyObject]
func getChildren(forTreeViewNodeItem item:Any, with indexPath:IndexPath) -> [Any]
func willExpandTreeViewNode(treeViewNode:CITreeViewNode, atIndexPath: IndexPath)
func willCollapseTreeViewNode(treeViewNode:CITreeViewNode, atIndexPath: IndexPath)
}
Expand All @@ -25,7 +25,7 @@ class CITreeViewController:NSObject {
}

//MARK: Tree View Nodes Functions
func addTreeViewNode(with item:AnyObject){
func addTreeViewNode(with item:Any){
let treeViewNode = CITreeViewNode(item: item)
let hasNodeBefore = treeViewNodes.filter{$0 == treeViewNode}

Expand All @@ -39,7 +39,7 @@ class CITreeViewController:NSObject {
return treeViewNodes[index]
}

func insertTreeViewNode(with item:AnyObject, to index : Int)
func insertTreeViewNode(with item:Any, to index : Int)
{
let treeViewNode = CITreeViewNode(item: item)
treeViewNodes.insert(treeViewNode, at: index)
Expand Down
4 changes: 2 additions & 2 deletions CITreeViewClasses/CITreeViewNode.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import UIKit
class CITreeViewNode: NSObject {
var expand:Bool = false
var level:Int = 0
var item:AnyObject
var item:Any

init(item:AnyObject) {
init(item:Any) {
self.item = item
}
}

0 comments on commit 909273c

Please sign in to comment.