// // orderTableController.m // ThePaperHD // // Created by scar1900 on 15/4/14. // Copyright (c) 2015年 scar1900. All rights reserved. // #import "orderTableController.h" #import "orderCenterCell.h" @interface orderTableController () @property(nonatomic, strong)NSMutableArray *orderedList; @end @implementation orderTableController @synthesize orderChildList = _orderChildList; @synthesize orderedBO = _orderedBO; @synthesize orderedList; @synthesize orderTableDelgate; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; } - (void)setOrderChildList:(NSMutableArray *)list { _orderChildList = list; } - (void)setOrderedBO:(nodeObjectBO *)ordered { _orderedBO = ordered; NSArray *childList = ordered.childNodeList; self.orderedList = [NSMutableArray array]; [childList enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { nodeObjectBO *node = setJsonDicToDataModel(obj, [nodeObjectBO class]); [self.orderedList addObject:node]; }]; [self.tableView reloadData]; } #pragma mark UITableViewDelegate and UITableViewDataSource - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.orderChildList?self.orderChildList.count:0; } - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 175/2; } - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return 0; } - (UITableViewCell *)tableView:(UITableView *)table cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString* orderCenterCellID = @"orderCenterCell cell"; orderCenterCell* cell = (orderCenterCell*)[table dequeueReusableCellWithIdentifier:orderCenterCellID]; if (nil == cell) { cell = [[orderCenterCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:orderCenterCellID]; } nodeObjectBO *nodeBO = self.orderChildList[indexPath.row]; cell.nodeBO = nodeBO; if (self.orderedList.count > 0) { __block BOOL isOrder = NO; [self.orderedList enumerateObjectsUsingBlock:^(nodeObjectBO* obj, NSUInteger idx, BOOL *stop) { if ([obj.nodeId intValue] == [nodeBO.nodeId intValue]) { isOrder = YES; *stop = YES; } }]; cell.isOrdered = isOrder; }else { cell.isOrdered = NO; } cell.delegate = self; return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; nodeObjectBO *nodeBO = self.orderChildList[indexPath.row]; if ([self.orderTableDelgate respondsToSelector:@selector(selectedNode:)]) { [self.orderTableDelgate selectedNode:nodeBO]; } } #pragma mark - cell delegate - (void)orderNode:(BOOL)isOrder nodeInfoBO:(nodeObjectBO *)nodeInfoBO { if (isOrder) { [self.orderedList addObject:nodeInfoBO]; }else { __block NSInteger index = -1; [self.orderedList enumerateObjectsUsingBlock:^(nodeObjectBO* obj, NSUInteger idx, BOOL *stop) { if ([obj.nodeId isEqualToString:nodeInfoBO.nodeId]) { index = idx; *stop = YES; } }]; if (index >= 0) { [self.orderedList removeObjectAtIndex:index]; } } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end