|
//
// 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 ()<orderCenterCellDelegate>
@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
|