// // TriggerSelectPopupView.m // kneet2 // // Created by Jason Lee on 11/23/15. // Copyright (c) 2015 ntels. All rights reserved. // #import "JDObject.h" #import "CustomLabel.h" #import "CustomButton.h" #import "TriggerSelectPopupView.h" #import "DeviceSelectPopupView.h" #import "DeviceNodePopupView.h" #import "TimePickerPopupView.h" #import "DaylightPopupView.h" @interface TriggerSelectPopupView () { NSMutableArray *_checkedItems; } @end @implementation TriggerSelectPopupView - (id)initFromNib { for (UIView *view in [CommonUtil nibViews:@"TriggerSelectPopupView"]) { if ([view isKindOfClass:[TriggerSelectPopupView class]]) { self = (TriggerSelectPopupView *)view; //XIB의 경우, 현재 화면 사이즈로 맞춰줘야 함. self.frame = [UIScreen mainScreen].bounds; [_lblTimer addTouchEventHandler:^(id label) { [self btnTimerTouched:nil]; }]; [_lblDaylight addTouchEventHandler:^(id label) { [self btnDaylightTouched:nil]; }]; [_lblHeat addTouchEventHandler:^(id label) { [self btnHeatTouched:nil]; }]; [_lblDevice addTouchEventHandler:^(id label) { [self btnDeviceTouched:nil]; }]; //Localization [self.btnConfirm setTitle:NSLocalizedString(@"확인", @"확인") forState:UIControlStateNormal]; [self.btnCancel setTitle:NSLocalizedString(@"취소", @"취소") forState:UIControlStateNormal]; } } return self; } - (void)didMoveToSuperview { } #pragma mark - Main Logic #pragma mark - UI Events - (IBAction)btnTimerTouched:(id)sender { ItemModel *trigger = _refTriggers && _refTriggers.count ? _refTriggers[0] : nil; BOOL isNewTrigger = !trigger.timers || !trigger.timers.count; ItemModel *timeTrigger = !isNewTrigger ? trigger : [[ItemModel alloc] init]; TimePickerPopupView *tpopup = [[TimePickerPopupView alloc] initFromNib]; tpopup.timeTrigger = timeTrigger; [tpopup showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) { if (buttonIndex == 0) {//OK if (isNewTrigger) { [_refTriggers addObject:timeTrigger]; [self btnConfirmTouched:nil]; } } }]; } - (IBAction)btnDaylightTouched:(id)sender { ItemModel *trigger = _refTriggers && _refTriggers.count ? _refTriggers[0] : nil; BOOL isNewTrigger = !trigger.daylights || !trigger.daylights.count; ItemModel *daylightTrigger = !isNewTrigger ? trigger : [[ItemModel alloc] init]; DaylightPopupView *dpopup = [[DaylightPopupView alloc] initFromNib]; dpopup.daylightTrigger = daylightTrigger; [dpopup showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) { if (buttonIndex == 0) {//OK if (isNewTrigger) { [_refTriggers addObject:daylightTrigger]; [self btnConfirmTouched:nil]; } } }]; } - (IBAction)btnHeatTouched:(id)sender { } - (IBAction)btnDeviceTouched:(id)sender { DeviceSelectPopupView *dpopup = [[DeviceSelectPopupView alloc] initFromNib]; dpopup.refDevices = _refDevices; dpopup.typeCode = ksItemTypeCodeTrigger; [dpopup showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) { if (buttonIndex == 0) {//ok DeviceNodePopupView *npopup = [[DeviceNodePopupView alloc] initFromNib]; npopup.refDevice = dpopup.selectedDevices[0]; npopup.typeCode = ksItemTypeCodeTrigger; [npopup showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) { //action add if (buttonIndex == 0) {//OK npopup.refDevice.itemName = @"장치 상태가 바뀔 때"; npopup.refDevice.itemSubTypeCode = ksItemSubTypeCodeDevice; //트리거 타입 설정 [_refTriggers addObject:npopup.refDevice]; [self btnConfirmTouched:nil]; } }]; } }]; } - (IBAction)btnConfirmTouched:(id)sender { //validate [super btnConfirmTouched:sender]; } @end