ActionDeviceCommandPopupView.m 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. //
  2. // ActionDeviceCommandPopupView.m
  3. // OneCable
  4. //
  5. // Created by ncomz on 2017. 6. 9..
  6. // Copyright © 2017년 ntels. All rights reserved.
  7. //
  8. #import "ActionDeviceCommandPopupView.h"
  9. @interface ActionDeviceCommandPopupView()
  10. @property (weak, nonatomic) IBOutlet UIView *viewValve;
  11. @property (weak, nonatomic) IBOutlet UIView *viewPlug;
  12. @property (weak, nonatomic) IBOutlet UIButton *btnValveControl;
  13. @property (weak, nonatomic) IBOutlet CustomButton *btnValveClose;
  14. @property (weak, nonatomic) IBOutlet UIButton *btnPlugControl;
  15. @property (weak, nonatomic) IBOutlet CustomButton *btnPlugOn;
  16. @property (weak, nonatomic) IBOutlet CustomButton *btnPlugOff;
  17. @property BOOL isShowValve; //
  18. @end
  19. @implementation ActionDeviceCommandPopupView
  20. - (id)initFromNib {
  21. NSLog(@"common : %@", [CommonUtil nibViews:@"ActionDeviceCommandPopupView"]);
  22. for (UIView *view in [CommonUtil nibViews:@"ActionDeviceCommandPopupView"]) {
  23. NSLog(@"view : %@", view);
  24. if ([view isKindOfClass:[ActionDeviceCommandPopupView class]]) {
  25. self = (ActionDeviceCommandPopupView *)view;
  26. //XIB의 경우, 현재 화면 사이즈로 맞춰줘야 함.
  27. self.frame = [UIScreen mainScreen].bounds;
  28. [self.imgTitleBar setImage:[UIImage imageNamed:@"img_popup_bg_head"]inset:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  29. [self.btnValveClose setBackgroundImage:[UIImage imageNamed:@"img_input_round_bg_default"] forState:UIControlStateNormal capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  30. [self.btnValveClose setBackgroundImage:[UIImage imageNamed:@"img_input_round_bg_default"] forState:UIControlStateHighlighted capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  31. [self.btnValveClose setBackgroundImage:[UIImage imageNamed:@"img_btn_common2_active"] forState:UIControlStateSelected capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  32. [self.btnPlugOn setBackgroundImage:[UIImage imageNamed:@"common_toggle_right"] forState:UIControlStateNormal capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  33. [self.btnPlugOn setBackgroundImage:[UIImage imageNamed:@"common_toggle_right"] forState:UIControlStateHighlighted capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  34. [self.btnPlugOn setBackgroundImage:[UIImage imageNamed:@"common_toggle_right_select"] forState:UIControlStateSelected capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  35. [self.btnPlugOff setBackgroundImage:[UIImage imageNamed:@"common_toggle_left"] forState:UIControlStateNormal capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  36. [self.btnPlugOff setBackgroundImage:[UIImage imageNamed:@"common_toggle_left"] forState:UIControlStateHighlighted capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  37. [self.btnPlugOff setBackgroundImage:[UIImage imageNamed:@"common_toggle_left_select"] forState:UIControlStateSelected capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  38. [self.btnConfirm setBackgroundImage:[UIImage imageNamed:@"img_popup_btn_right"] forState:UIControlStateNormal capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  39. [self.btnConfirm setBackgroundImage:[UIImage imageNamed:@"img_popup_btn_right_press"] forState:UIControlStateHighlighted capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  40. [self.btnCancel setBackgroundImage:[UIImage imageNamed:@"img_popup_btn_left"] forState:UIControlStateNormal capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  41. [self.btnCancel setBackgroundImage:[UIImage imageNamed:@"img_popup_btn_left_press"] forState:UIControlStateHighlighted capInsets:UIEdgeInsetsMake(kfTopInset,kfRightInset,kfBottomInset,kfLeftInset)];
  42. //Localization
  43. [self.btnConfirm setTitle:NSLocalizedString(@"확인", @"확인") forState:UIControlStateNormal];
  44. [self.btnCancel setTitle:NSLocalizedString(@"취소", @"취소") forState:UIControlStateNormal];
  45. }
  46. }
  47. return self;
  48. }
  49. - (void)didMoveToSuperview {
  50. }
  51. - (void)setCmdclsCode:(NSString *)cmdclsCode {
  52. _cmdclsCode = cmdclsCode;
  53. //NSLog(@"cmdclsCode : %@", cmdclsCode);
  54. _isShowValve = _cmdclsCode != nil && EQUALS(_cmdclsCode, ksCmdClassTypeValve);
  55. _viewPlug.hidden = _isShowValve;
  56. _viewValve.hidden = !_isShowValve;
  57. }
  58. - (void)setRefDevice:(ItemModel *)refDevice {
  59. _refDevice = [ItemModel new];
  60. _refDevice = refDevice;
  61. //NSLog(@"refDevice : %@", refDevice);
  62. self.lblTitle.text = _refDevice.sourceName;
  63. ItemSubModel *subModel = [_refDevice.subItems objectAtIndex:0];
  64. if (_isShowValve && subModel.cmdclsValueList.count > 0) {
  65. CmdClsValueModel *cmdModel = [subModel.cmdclsValueList objectAtIndex:0];
  66. _btnValveClose.value = cmdModel;
  67. _btnValveClose.selected = _btnValveControl.selected = cmdModel.isSelected;
  68. }
  69. else if (subModel.cmdclsValueList.count > 1){
  70. CmdClsValueModel *cmdOffModel = [subModel.cmdclsValueList objectAtIndex:0];
  71. CmdClsValueModel *cmdOnModel = [subModel.cmdclsValueList objectAtIndex:1];
  72. _btnPlugOff.value = cmdOffModel;
  73. _btnPlugOn.value = cmdOnModel;
  74. _btnPlugOff.selected = cmdOffModel.isSelected;
  75. _btnPlugOn.selected = cmdOnModel.isSelected;
  76. _btnPlugControl.selected = _btnPlugOn.selected || _btnPlugOff.selected;
  77. }
  78. }
  79. - (ItemSubModel *)selectedNode {
  80. return [_refDevice.subItems objectAtIndex:0];
  81. }
  82. #pragma mark - User Action
  83. //제어
  84. - (IBAction)control:(id)sender {
  85. UIButton *btn = sender;
  86. btn.selected = YES;
  87. }
  88. //끄기켜기 - 플러그
  89. - (IBAction)onOffPlug:(id)sender {
  90. if (_btnPlugControl.selected) {
  91. BOOL isOff = [_btnPlugOff isEqual:sender];
  92. _btnPlugOn.selected = !isOff;
  93. _btnPlugOff.selected = isOff;
  94. if (_btnPlugOn.value != nil && _btnPlugOff.value != nil) {
  95. ((CmdClsValueModel*)(_btnPlugOn.value)).isSelected = !isOff;
  96. ((CmdClsValueModel*)(_btnPlugOff.value)).isSelected = isOff;
  97. }
  98. }
  99. }
  100. //잠그기 - 벨브
  101. - (IBAction)closeValve:(id)sender {
  102. if (_btnValveControl.selected) {
  103. _btnValveClose.selected = YES;
  104. if (_btnValveClose.value != nil) {
  105. ((CmdClsValueModel*)(_btnValveClose.value)).isSelected = YES;
  106. }
  107. }
  108. }
  109. - (IBAction)confirm:(id)sender {
  110. NSMutableArray<ItemModel> *checkedItems = (NSMutableArray<ItemModel> *)[_refDevice.subItems matchedArrayByObjectName:ksCustomCheckBoxStatus condition:YES];
  111. NSLog(@"checkedItems : %@", checkedItems);
  112. ItemSubModel *subModel = [_refDevice.subItems objectAtIndex:0];
  113. NSLog(@"subModel : %@", subModel);
  114. // if (!_checkedItems || !_checkedItems.count) {
  115. // [[JDFacade facade] alert:NSLocalizedString(@"선택된 항목이 없습니다", @"선택된 항목이 없습니다")];
  116. // return;
  117. // }
  118. BOOL confirmValve = _isShowValve && _btnValveControl.selected && _btnValveClose.selected;
  119. BOOL confirmPlug = !_isShowValve && _btnPlugControl.selected && (_btnPlugOn.selected || _btnPlugOff.selected);
  120. if (confirmValve || confirmPlug) {
  121. for (CmdClsValueModel *cmdclsValue in subModel.cmdclsValueList) {
  122. if (cmdclsValue.isSelected) {
  123. subModel.cmdclsValue = cmdclsValue.cmdclsValue;
  124. subModel.cmdclsValueMsg = cmdclsValue.cmdclsValueMsg;
  125. }
  126. }
  127. }
  128. [super btnConfirmTouched:sender];
  129. }
  130. @end