             cell.setSelected(true, animated: true)
         }
     }
+    var currentSelectedTabIndex = 0;
+    var firstAutoHighLightCell:UITableViewCell?
+}
+fileprivate class DataTableBase : TableBase{
+    var tableData : TableData!
+    fileprivate override func rowCount(_ section: Int) -> Int {
+        return tableData.rowCount(section)
+    }
+    fileprivate override func rowHeight(_ indexPath: IndexPath) -> CGFloat {
+        return tableData.rowHeight(indexPath)
+    }
+    fileprivate override func cellAt(_ indexPath: IndexPath) -> UITableViewCell {
+        let ctype = tableData.cellTypeAt(indexPath)
+        let cell = dequeneCell(ctype, indexPath) as! CellBase
+        cell.load(tableData.getDataItem(indexPath))
+        return cell ;
+    }
+    
+   
 
 }
 

fileprivate class RightTable : RightTableWithData{
    override init(frame: CGRect, style: UITableViewStyle) {
        super.init(frame:frame,style:style)
        right = RightTableData()
        backgroundColor = UIColor.clear
        estimatedRowHeight=100;
        separatorStyle = .none;

        if currentTab == nil {
            currentTab = "all"
        }
        self.tableView.currentSelectedTabIndex = (tableView.tableData as! RightTableData).rightNodes.index { $0.nodeTab == currentTab }!
        
        self.backgroundImageView = UIImageView()
        self.backgroundImageView!.frame = self.view.frame
