SetLinkCtrlMainScreen.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622
  1. package kr.co.icontrols.wallpadsecurity.screen;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import com.artncore.WallPadDataMgr.WallpadDeviceSet;
  5. import com.artncore.WallPadDataMgr.WallpadStatusData;
  6. import com.artncore.wallpadapi.WallPadAPI;
  7. import android.content.Context;
  8. import android.graphics.Color;
  9. import android.util.Log;
  10. import android.view.Gravity;
  11. import android.view.MotionEvent;
  12. import android.view.View;
  13. import android.widget.RelativeLayout;
  14. import kr.co.icontrols.wallpadsecurity.MainActivity;
  15. import kr.co.icontrols.wallpadsecurity.R;
  16. import kr.co.icontrols.wallpadsecurity.declare.Common;
  17. import kr.co.icontrols.wallpadsecurity.declare.Common.MODE_TEXT;
  18. import kr.co.icontrols.wallpadsecurity.declare.ID;
  19. import kr.co.icontrols.wallpadsecurity.declare.ID.*;
  20. import kr.co.icontrols.wallpadsupport.Version;
  21. import kr.co.icontrols.wallpadsupport.WpadImageView;
  22. import kr.co.icontrols.wallpadsupport.WpadScreen;
  23. import kr.co.icontrols.wallpadsupport.WpadTextView;
  24. import kr.co.icontrols.wallpadsupport.WpadImageView.TOUCH_KIND;
  25. import kr.co.icontrols.wallpadsupport.WpadSound.SND;
  26. import static com.artncore.WallPadDataMgr.WallpadDeviceSet.ELEVATOR_NONE;
  27. import com.util.LogUtil;
  28. public class SetLinkCtrlMainScreen extends WpadScreen{
  29. String TAG = "SetLinkCtrlMainScreen";
  30. private final int ContentsFontSize = Common.fontsize._36;
  31. private final int TitleFontSize = Common.fontsize._36;
  32. // [View]
  33. WpadImageView Background;
  34. WpadImageView BgLeft;
  35. WpadImageView BgRight;
  36. // Left BG Menu
  37. WpadImageView [] LeftBgArray = new WpadImageView [6];
  38. WpadImageView [] RightBAgrray = new WpadImageView [6];
  39. WpadTextView Title_Left;
  40. WpadTextView Title_Right;
  41. private OutModeComponent [] m_OutModeCheckBox = new OutModeComponent[6];
  42. private String [] mOutModeTextContents = null;
  43. private OutModeComponent [] m_CombackHomeCheckBox = new OutModeComponent[6];
  44. private String [] mCombackHomeTextContents = null;
  45. private Context m_Context;
  46. private WallPadAPI m_wAPI;
  47. public class OutModeComponent {
  48. private WpadImageView CheckBox;
  49. private WpadImageView SetBtn;
  50. private WpadTextView OutText;
  51. private final int IMG_CHECKBOX_WIDTH = 88;
  52. private final int IMG_CHECKBOX_HEIGHT = 88;
  53. private final int RECT_TEXT_HEIGHT = 88;
  54. private final int TEXT_AND_CHECKBOX_GAP = 88;
  55. private int CheckBoxUseIdx;
  56. private int CheckBoxNotUseIdx;
  57. private boolean CheckBoxState;
  58. public OutModeComponent(Context context, RelativeLayout layout, String CheckBoxText, int PosX, int PosY, int rectTextSize, int IDimgCheck, int IDtext, boolean initState) {
  59. try {
  60. this.CheckBoxUseIdx = R.drawable.but_check_checked;
  61. this.CheckBoxNotUseIdx = R.drawable.but_check_default;
  62. CheckBox = new WpadImageView(context, TOUCH_KIND.BUTTON_M, IMG_CHECKBOX_WIDTH, IMG_CHECKBOX_HEIGHT, CheckBoxUseIdx, CheckBoxNotUseIdx, IDimgCheck);
  63. ViewRegistration(layout, CheckBox, PosX, PosY);
  64. OutText = new WpadTextView(context, false, rectTextSize, RECT_TEXT_HEIGHT, Gravity.CENTER, Color.WHITE, ContentsFontSize, true, IDtext);
  65. ViewRegistration(layout, OutText, PosX + TEXT_AND_CHECKBOX_GAP, PosY);
  66. OutText.setText(CheckBoxText);
  67. if (initState == true) {
  68. CheckBoxState = true;
  69. CheckBox.setImageResource(CheckBoxUseIdx);
  70. }
  71. else {
  72. CheckBoxState = false;
  73. CheckBox.setImageResource(CheckBoxNotUseIdx);
  74. }
  75. } catch (RuntimeException re) {
  76. LogUtil.errorLogInfo("", TAG, re);
  77. }
  78. catch (Exception e) {
  79. Log.e(TAG, "[Exception] OutModeComponent(Context context, RelativeLayout layout, String CheckBoxText, int PosX, int PosY, int rectTextSize, int IDimgCheck, int IDtext, boolean initState)");
  80. //e.printStackTrace();
  81. LogUtil.errorLogInfo("", TAG, e);
  82. }
  83. }
  84. public OutModeComponent(Context context, RelativeLayout layout, String CheckBoxText, int PosX, int PosY, int rectTextSize, int IDimgCheck, int IDtext, int IDsetBtn, boolean initState) {
  85. try {
  86. this.CheckBoxUseIdx = R.drawable.but_check_checked;
  87. this.CheckBoxNotUseIdx = R.drawable.but_check_default;
  88. CheckBox = new WpadImageView(context, TOUCH_KIND.BUTTON_M, IMG_CHECKBOX_WIDTH, IMG_CHECKBOX_HEIGHT, CheckBoxUseIdx, CheckBoxNotUseIdx, IDimgCheck);
  89. ViewRegistration(layout, CheckBox, PosX, PosY);
  90. OutText = new WpadTextView(context, false, rectTextSize , RECT_TEXT_HEIGHT, Gravity.CENTER, Color.WHITE, ContentsFontSize, true, IDtext);
  91. ViewRegistration(layout, OutText, PosX + TEXT_AND_CHECKBOX_GAP - 50, PosY);
  92. OutText.setText(CheckBoxText);
  93. // 웰컴조명 설정 버튼 추가하기
  94. // ~~~~~~~~~~~~~
  95. SetBtn = new WpadImageView(context, TOUCH_KIND.BUTTON, 90, 54, R.drawable.btn_set_normal, R.drawable.btn_set_pressed, IDsetBtn);
  96. ViewRegistration(layout, SetBtn, PosX + TEXT_AND_CHECKBOX_GAP + 200, PosY + 16);
  97. if (initState == true) {
  98. CheckBoxState = true;
  99. CheckBox.setImageResource(CheckBoxUseIdx);
  100. }
  101. else {
  102. CheckBoxState = false;
  103. CheckBox.setImageResource(CheckBoxNotUseIdx);
  104. }
  105. } catch (RuntimeException re) {
  106. LogUtil.errorLogInfo("", TAG, re);
  107. }
  108. catch (Exception e) {
  109. Log.e(TAG, "[Exception] OutModeComponent(Context context, RelativeLayout layout, String CheckBoxText, int PosX, int PosY, int rectTextSize, int IDimgCheck, int IDtext, int IDsetBtn, boolean initState)");
  110. //e.printStackTrace();
  111. LogUtil.errorLogInfo("", TAG, e);
  112. }
  113. }
  114. public boolean GetCheckBoxState() {
  115. return this.CheckBoxState;
  116. }
  117. public void ChangeCheckBox(boolean Use) {
  118. try {
  119. if (CheckBoxUseIdx > 0 && CheckBoxNotUseIdx > 0) {
  120. if (Use == true) {
  121. CheckBoxState = true;
  122. CheckBox.setImageResource(CheckBoxUseIdx);
  123. }
  124. else {
  125. CheckBoxState = false;
  126. CheckBox.setImageResource(CheckBoxNotUseIdx);
  127. }
  128. }
  129. else {
  130. Log.d(TAG, "Image Resource not registeration ");
  131. }
  132. } catch (RuntimeException re) {
  133. LogUtil.errorLogInfo("", TAG, re);
  134. }
  135. catch (Exception e) {
  136. Log.e(TAG, "[Exception] ChangeCheckBox(boolean Use)");
  137. //e.printStackTrace();
  138. LogUtil.errorLogInfo("", TAG, e);
  139. }
  140. }
  141. }
  142. private int GetOutModeLinkCount() {
  143. return mOutModeTextContents.length;
  144. }
  145. private int GetInModeLinkCount() {
  146. return mCombackHomeTextContents.length;
  147. }
  148. /////// 연동기기 리스트 목록을 만들도록 한다.
  149. private void makeLinkControlList() {
  150. try {
  151. WallpadDeviceSet devSet = new WallpadDeviceSet(this.getContext());
  152. int[] naAllLightOffEnable = devSet.Get_BatchSW_Info();
  153. int[] BatchInfo = devSet.Get_BatchSW_Info();
  154. int retGasInt = devSet.Get_GAS_Info();
  155. int[] VentiInfo = devSet.Get_Ventil_Info();
  156. int nDistributionPanelType = devSet.Get_DistributionPannelType_Info();
  157. boolean cooktopConcentUse = devSet.Get_CookTopConcent_Use();
  158. int nElevInfo = devSet.Get_Elevator_Info();
  159. devSet.closeDB();
  160. List<String> OutModeList = new ArrayList<String>();
  161. List<String> ComeBackList = new ArrayList<String>();
  162. WallpadStatusData wdb = new WallpadStatusData(this.getContext());
  163. if (wdb != null) {
  164. // 방범센서설정 체크
  165. if (Version.getModelType() != Version.MODEL_TYPE.IHN_1020GL) {
  166. if (Version.getModelType() == Version.MODEL_TYPE.IHN_D101 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I
  167. || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K_I
  168. || Version.getModelType() == Version.MODEL_TYPE.IHN_1010GL || Version.getModelType() == Version.MODEL_TYPE.IHN_1010GL_I
  169. || Version.getModelType() == Version.MODEL_TYPE.IHN_1010GL_I_2443 || Version.getModelType() == Version.MODEL_TYPE.IHN_1010GL_I_6410
  170. || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I_OCF) {
  171. if (BatchInfo[0] == 1 && BatchInfo[1] == WallpadDeviceSet.BATCH_TYPE_HDC_LCD_SMART) {
  172. OutModeList.add(MODE_TEXT.OUT_GUARD);
  173. ComeBackList.add(MODE_TEXT.RELEASE_GUARD);
  174. }
  175. }
  176. else {
  177. if (BatchInfo[0] == 1 && BatchInfo[1] == WallpadDeviceSet.BATCH_TYPE_SMART) {
  178. OutModeList.add(MODE_TEXT.OUT_GUARD);
  179. ComeBackList.add(MODE_TEXT.RELEASE_GUARD);
  180. }
  181. else if (Version.getModelType() == Version.MODEL_TYPE.IHN_1020SA_A) {
  182. OutModeList.add(MODE_TEXT.OUT_GUARD);
  183. ComeBackList.add(MODE_TEXT.RELEASE_GUARD);
  184. }
  185. }
  186. }
  187. // 엘리베이터 체크
  188. if (nElevInfo == WallpadDeviceSet.ELEVATOR_SIMPLE || nElevInfo == WallpadDeviceSet.ELEVATOR_FLOOR) OutModeList.add(MODE_TEXT.CALL_ELEVATOR);
  189. // 일괄소등
  190. // 여기에 일괄소등을 사용할 경우만 넣도록 수정
  191. if (naAllLightOffEnable[0] == WallpadDeviceSet.DO_USE) {
  192. OutModeList.add(MODE_TEXT.IGAL_RUN);
  193. ComeBackList.add(MODE_TEXT.IGAL_RELEASE);
  194. }
  195. // 가스닫기
  196. if (retGasInt == 1) {
  197. OutModeList.add(MODE_TEXT.GAS_STOP);
  198. }
  199. else {
  200. if (cooktopConcentUse) {
  201. OutModeList.add(MODE_TEXT.COOKTOP_CONCENT_CUTOFF); // 쿡탑콘센트
  202. }
  203. }
  204. if (Version.getGatewayUsage()) {
  205. //난방일시정지
  206. OutModeList.add(MODE_TEXT.HEATING_STOP);
  207. ComeBackList.add(MODE_TEXT.HEATING_STOP_RELEASE);
  208. }
  209. else {
  210. int HeatingKind = m_wAPI.GetHeatingKind();
  211. if (HeatingKind == 1) {
  212. //1 이면 V1
  213. //난방일시정지
  214. OutModeList.add(MODE_TEXT.HEATING_STOP);
  215. ComeBackList.add(MODE_TEXT.HEATING_STOP_RELEASE);
  216. }
  217. else {
  218. // 2이면 V2
  219. OutModeList.add(MODE_TEXT.HEATING_OUT);
  220. ComeBackList.add(MODE_TEXT.HEATING_OUT_Release);
  221. }
  222. }
  223. if (VentiInfo[0] == 1) {
  224. //환기끄기
  225. OutModeList.add(MODE_TEXT.CHANGE_AIR_STOP);
  226. ComeBackList.add(MODE_TEXT.CHANGE_AIR_RUN);
  227. }
  228. // 웰컴조명
  229. if ((nDistributionPanelType == Version.DISTRIBUTION_MODEL.SMART_DIST)
  230. && (Version.getModelType() == Version.MODEL_TYPE.IHN_D101 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I
  231. || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K_I
  232. || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I_OCF)) {
  233. ComeBackList.add(MODE_TEXT.WELCOME_LIGHT_D101);
  234. }
  235. wdb.closeDB();
  236. mOutModeTextContents = new String[OutModeList.size() ];
  237. for (int i = 0; i < OutModeList.size(); i++) {
  238. mOutModeTextContents[i] = OutModeList.get(i);
  239. }
  240. mCombackHomeTextContents = new String[ComeBackList.size() ];
  241. for (int i = 0; i < ComeBackList.size(); i++) {
  242. mCombackHomeTextContents[i] = ComeBackList.get(i);
  243. }
  244. }
  245. } catch (RuntimeException re) {
  246. LogUtil.errorLogInfo("", TAG, re);
  247. }
  248. catch (Exception e) {
  249. Log.e(TAG, "[Exception] makeLinkControlList()");
  250. //e.printStackTrace();
  251. LogUtil.errorLogInfo("", TAG, e);
  252. }
  253. }
  254. private boolean initInfo() {
  255. try {
  256. // DB에 변경된 패스워드를 저장하도록 한다.
  257. String strOutModeLinkDevice = "";
  258. String strComeBackLinkDevice ="";
  259. boolean bSensorCheck = true;
  260. try {
  261. // DB 에서 현재 설정된 패스워드를 얻어오도록 한다.
  262. WallpadStatusData wdb = new WallpadStatusData(this.getContext());
  263. if (wdb != null) {
  264. strOutModeLinkDevice = wdb.GetOutModeLinkDevice();
  265. strComeBackLinkDevice = wdb.GetComeBackLinkDevice();
  266. bSensorCheck = wdb.GetUseGuardSensorCheck();
  267. wdb.closeDB();
  268. Log.d(TAG, "[DB SAVE]-WallpadStatusData.GUARD_IN");
  269. }
  270. } catch (RuntimeException re) {
  271. LogUtil.errorLogInfo("", TAG, re);
  272. }
  273. catch (Exception e) {
  274. Log.e(TAG, "[Exception]-" + e.toString());
  275. //e.printStackTrace();
  276. LogUtil.errorLogInfo("", TAG, e);
  277. }
  278. Log.d(TAG, "[Load strOutModeLinkDevice] " + strOutModeLinkDevice);
  279. Log.d(TAG, "[Load strComeBackLinkDevice] " + strComeBackLinkDevice);
  280. for (int i = 0; i < mOutModeTextContents.length; i++) {
  281. // 485 스마트 스위치 연동 대외현장
  282. if (i == 0 && mOutModeTextContents[0].equals(MODE_TEXT.OUT_GUARD)) {
  283. if (bSensorCheck == true) m_OutModeCheckBox[i].ChangeCheckBox(true);
  284. else m_OutModeCheckBox[i].ChangeCheckBox(false);
  285. }
  286. else {
  287. if (strOutModeLinkDevice.indexOf(mOutModeTextContents[i]) >= 0) {
  288. m_OutModeCheckBox[i].ChangeCheckBox(true);
  289. }
  290. else {
  291. m_OutModeCheckBox[i].ChangeCheckBox(false);
  292. }
  293. }
  294. }
  295. for (int i = 0; i < mCombackHomeTextContents.length; i++) {
  296. if (i == 0 && mCombackHomeTextContents[0].equals(MODE_TEXT.RELEASE_GUARD)) {
  297. // 무조건 사용으로 설정
  298. m_CombackHomeCheckBox[i].ChangeCheckBox(true);
  299. }
  300. else {
  301. if (strComeBackLinkDevice.indexOf(mCombackHomeTextContents[i]) >= 0) {
  302. m_CombackHomeCheckBox[i].ChangeCheckBox(true);
  303. }
  304. else {
  305. m_CombackHomeCheckBox[i].ChangeCheckBox(false);
  306. }
  307. }
  308. }
  309. return true;
  310. } catch (RuntimeException re) {
  311. LogUtil.errorLogInfo("", TAG, re);
  312. return false;
  313. }
  314. catch (Exception e) {
  315. Log.e(TAG, "[Exception] initInfo()");
  316. //e.printStackTrace();
  317. LogUtil.errorLogInfo("", TAG, e);
  318. return false;
  319. }
  320. }
  321. private boolean saveLinkDevice() {
  322. try {
  323. String strOutModeLinkDevice = "";
  324. String strComeBackLinkDevice ="";
  325. boolean bUseSensorCheck = false;
  326. for (int i = 0; i < mOutModeTextContents.length; i++) {
  327. if (m_OutModeCheckBox[i].GetCheckBoxState() == true) {
  328. strOutModeLinkDevice += mOutModeTextContents[i] + "/" ;
  329. if (mOutModeTextContents[i].equals(MODE_TEXT.OUT_GUARD)) {
  330. bUseSensorCheck = true;
  331. }
  332. }
  333. }
  334. for (int i = 0; i < mCombackHomeTextContents.length; i++) {
  335. if (m_CombackHomeCheckBox[i].GetCheckBoxState() == true) {
  336. strComeBackLinkDevice += mCombackHomeTextContents[i] + "/" ;
  337. }
  338. }
  339. Log.d(TAG, "[Save saveLinkDevice] strOutModeLinkDevice: " + strOutModeLinkDevice + ", strComeBackLinkDevice: " + strComeBackLinkDevice);
  340. try {
  341. // DB 에서 현재 설정된 패스워드를 얻어오도록 한다.
  342. WallpadStatusData wdb = new WallpadStatusData(this.getContext());
  343. if (wdb!= null) {
  344. //GetDB().GetOutModeLinkDevice()
  345. wdb.SetOutModeLinkDevice(strOutModeLinkDevice);
  346. wdb.SetComeBackLinkDevice(strComeBackLinkDevice);
  347. wdb.SetUseGuardSensorCheck(bUseSensorCheck);
  348. wdb.closeDB();
  349. Log.d(TAG, "[DB SAVE]-WallpadStatusData.GUARD_IN -- bUseSensorCheck : " + bUseSensorCheck);
  350. }
  351. } catch (RuntimeException re) {
  352. LogUtil.errorLogInfo("", TAG, re);
  353. return false;
  354. }
  355. catch (Exception e) {
  356. Log.d(TAG, "[Exception] saveLinkDevice() -> DB");
  357. //e.printStackTrace();
  358. LogUtil.errorLogInfo("", TAG, e);
  359. return false;
  360. }
  361. return true;
  362. } catch (RuntimeException re) {
  363. LogUtil.errorLogInfo("", TAG, re);
  364. return false;
  365. }
  366. catch (Exception e) {
  367. Log.e(TAG, "[Exception] saveLinkDevice()");
  368. //e.printStackTrace();
  369. LogUtil.errorLogInfo("", TAG, e);
  370. return false;
  371. }
  372. }
  373. public SetLinkCtrlMainScreen(Context context, RelativeLayout layout, WallPadAPI wpapi, int operationMode) {
  374. super(context, layout);
  375. try {
  376. m_Context = context;
  377. m_wAPI = wpapi;
  378. makeLinkControlList();
  379. ((MainActivity) m_Context).setManualBtnVisible(((MainActivity) m_Context).getManualUse(), 1019);
  380. Log.d(TAG, "[START - Screen] --------------------------------------------");
  381. Background = new WpadImageView(context, TOUCH_KIND.NONE, 1280, 690, R.drawable.bg_body, 0, LinkCtrlMainID.image.BACKGROUND);
  382. ViewRegistration(layout, Background, 0,0);
  383. BgLeft = new WpadImageView(context, TOUCH_KIND.NONE, 477, 622, R.drawable.guard_link_box_bgr, 0, LinkCtrlMainID.image.BG_LEFT);
  384. ViewRegistration(layout, BgLeft, Common.ImgPosion.GetX(142), Common.ImgPosion.GetY(110));
  385. BgRight = new WpadImageView(context, TOUCH_KIND.NONE, 477, 622, R.drawable.guard_link_box_bgr, 0, LinkCtrlMainID.image.BG_RIGHT);
  386. ViewRegistration(layout, BgRight, Common.ImgPosion.GetX(661), Common.ImgPosion.GetY(110));
  387. Title_Left = new WpadTextView(context, false, 477, 84, Gravity.CENTER, Color.BLACK, TitleFontSize, true, LinkCtrlMainID.text.TITLE_L);
  388. ViewRegistration(layout, Title_Left, Common.ImgPosion.GetX(142), Common.ImgPosion.GetY(110));
  389. Title_Left.setText("외출");
  390. Title_Right = new WpadTextView(context, false, 477, 84, Gravity.CENTER, Color.BLACK, TitleFontSize, true, LinkCtrlMainID.text.TITLE_L);
  391. ViewRegistration(layout, Title_Right, Common.ImgPosion.GetX(661), Common.ImgPosion.GetY(110));
  392. Title_Right.setText("복귀");
  393. for (int i = 0; i < GetOutModeLinkCount(); i++) {
  394. //LeftBgArray[i] = new WpadImageView(context, TOUCH_KIND.BUTTON_M, 477, 2, R.drawable.line_2px, 0, LinkCtrlMainID.image.LINE_L_BG_01 + i);
  395. //ViewRegistration(layout, LeftBgArray[i], Common.ImgPosion.GetX(142), Common.ImgPosion.GetY(282 + 90*i));
  396. m_OutModeCheckBox[i] = new OutModeComponent(context , layout , mOutModeTextContents[i] , Common.ImgPosion.GetX(182) , Common.ImgPosion.GetY(194 + 90*i) , 274 , LinkCtrlMainID.button.CHECKBOX_L_01 + i , LinkCtrlMainID.text.LINE_L_01 + i , true);
  397. }
  398. for (int i = 0; i < GetInModeLinkCount(); i++) {
  399. //RightBAgrray[i] = new WpadImageView(context, TOUCH_KIND.BUTTON_M, 477, 2, R.drawable.line_2px, 0, LinkCtrlMainID.image.LINE_R_BG_01 + i);
  400. //ViewRegistration(layout, RightBAgrray[i], Common.ImgPosion.GetX(661), ImgPosion.GetY(282 + 90*i));
  401. if (mCombackHomeTextContents[i].equals(MODE_TEXT.WELCOME_LIGHT_D101)) {
  402. m_CombackHomeCheckBox[i] = new OutModeComponent(context , layout , mCombackHomeTextContents[i] , Common.ImgPosion.GetX(701) , Common.ImgPosion.GetY(194 + 90*i) , 274 , LinkCtrlMainID.button.CHECKBOX_R_01 + i , LinkCtrlMainID.text.LINE_R_01 + i , LinkCtrlMainID.button.SETBTN_R_01, true);
  403. }
  404. else {
  405. m_CombackHomeCheckBox[i] = new OutModeComponent(context , layout , mCombackHomeTextContents[i] , Common.ImgPosion.GetX(701) , Common.ImgPosion.GetY(194 + 90*i) , 274 , LinkCtrlMainID.button.CHECKBOX_R_01 + i , LinkCtrlMainID.text.LINE_R_01 + i , true);
  406. }
  407. }
  408. initInfo();
  409. } catch (RuntimeException re) {
  410. LogUtil.errorLogInfo("", TAG, re);
  411. }
  412. catch (Exception e) {
  413. Log.e(TAG, "[Exception] SetLinkCtrlMainScreen(Context context, RelativeLayout layout, WallPadAPI wpapi, int operationMode)");
  414. //e.printStackTrace();
  415. LogUtil.errorLogInfo("", TAG, e);
  416. }
  417. }
  418. @Override
  419. protected void onClose() {
  420. // TODO Auto-generated method stub
  421. super.onClose();
  422. Log.d(TAG, "[onClose - Screen] --------------------------------------------");
  423. }
  424. @Override
  425. public void Close() {
  426. // TODO Auto-generated method stub
  427. super.Close();
  428. Log.d(TAG, "[Close - Screen] --------------------------------------------");
  429. }
  430. @Override
  431. protected void onTouchEvent(View v, MotionEvent event) {
  432. // TODO Auto-generated method stub
  433. super.onTouchEvent(v, event);
  434. try {
  435. int TargetId = v.getId();
  436. int MoveEvent = event.getAction();
  437. if (MoveEvent == MotionEvent.ACTION_DOWN) {
  438. }
  439. else if (MoveEvent == MotionEvent.ACTION_UP) {
  440. if (true) {
  441. Sound().Play(SND.effect.TOUCH_LATCHED);
  442. }
  443. Log.d(TAG, "BUTTON ACTION_UP : " + TargetId);
  444. boolean bChangeCheckBox = false;
  445. // 자측 체크박스 처리
  446. if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_01 || TargetId == LinkCtrlMainID.image.LINE_L_BG_01) {
  447. if (m_OutModeCheckBox[0].GetCheckBoxState() == true) {
  448. m_OutModeCheckBox[0].ChangeCheckBox(false);
  449. }
  450. else {
  451. m_OutModeCheckBox[0].ChangeCheckBox(true);
  452. }
  453. bChangeCheckBox = true;
  454. }
  455. else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_02 || TargetId == LinkCtrlMainID.image.LINE_L_BG_02) {
  456. if (m_OutModeCheckBox[1].GetCheckBoxState() == true) m_OutModeCheckBox[1].ChangeCheckBox(false);
  457. else m_OutModeCheckBox[1].ChangeCheckBox(true);
  458. bChangeCheckBox = true;
  459. }
  460. else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_03 || TargetId == LinkCtrlMainID.image.LINE_L_BG_03) {
  461. if (m_OutModeCheckBox[2].GetCheckBoxState() == true) m_OutModeCheckBox[2].ChangeCheckBox(false);
  462. else m_OutModeCheckBox[2].ChangeCheckBox(true);
  463. bChangeCheckBox = true;
  464. }
  465. else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_04 || TargetId == LinkCtrlMainID.image.LINE_L_BG_04) {
  466. if (m_OutModeCheckBox[3].GetCheckBoxState() == true) m_OutModeCheckBox[3].ChangeCheckBox(false);
  467. else m_OutModeCheckBox[3].ChangeCheckBox(true);
  468. bChangeCheckBox = true;
  469. }
  470. else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_05 || TargetId == LinkCtrlMainID.image.LINE_L_BG_05) {
  471. if (m_OutModeCheckBox[4].GetCheckBoxState() == true) m_OutModeCheckBox[4].ChangeCheckBox(false);
  472. else m_OutModeCheckBox[4].ChangeCheckBox(true);
  473. bChangeCheckBox = true;
  474. }
  475. else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_06 || TargetId == LinkCtrlMainID.image.LINE_L_BG_06) {
  476. if (m_OutModeCheckBox[5].GetCheckBoxState() == true) m_OutModeCheckBox[5].ChangeCheckBox(false);
  477. else m_OutModeCheckBox[5].ChangeCheckBox(true);
  478. bChangeCheckBox = true;
  479. }
  480. // 우측 체크 박스 처리
  481. else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_01 || TargetId == LinkCtrlMainID.image.LINE_R_BG_01) {
  482. if (mCombackHomeTextContents[0].equals(MODE_TEXT.RELEASE_GUARD)) {
  483. }
  484. else {
  485. if (m_CombackHomeCheckBox[0].GetCheckBoxState() == true) m_CombackHomeCheckBox[0].ChangeCheckBox(false);
  486. else m_CombackHomeCheckBox[0].ChangeCheckBox(true);
  487. bChangeCheckBox = true;
  488. }
  489. }
  490. else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_02 || TargetId == LinkCtrlMainID.image.LINE_R_BG_02) {
  491. if (m_CombackHomeCheckBox[1].GetCheckBoxState() == true) m_CombackHomeCheckBox[1].ChangeCheckBox(false);
  492. else m_CombackHomeCheckBox[1].ChangeCheckBox(true);
  493. bChangeCheckBox = true;
  494. }
  495. else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_03 || TargetId == LinkCtrlMainID.image.LINE_R_BG_03) {
  496. if (m_CombackHomeCheckBox[2].GetCheckBoxState() == true) m_CombackHomeCheckBox[2].ChangeCheckBox(false);
  497. else m_CombackHomeCheckBox[2].ChangeCheckBox(true);
  498. bChangeCheckBox = true;
  499. }
  500. else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_04 || TargetId == LinkCtrlMainID.image.LINE_R_BG_04) {
  501. if (m_CombackHomeCheckBox[3].GetCheckBoxState() == true) m_CombackHomeCheckBox[3].ChangeCheckBox(false);
  502. else m_CombackHomeCheckBox[3].ChangeCheckBox(true);
  503. bChangeCheckBox = true;
  504. }
  505. else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_05 || TargetId == LinkCtrlMainID.image.LINE_R_BG_05) {
  506. if (m_CombackHomeCheckBox[4].GetCheckBoxState() == true) m_CombackHomeCheckBox[4].ChangeCheckBox(false);
  507. else m_CombackHomeCheckBox[4].ChangeCheckBox(true);
  508. bChangeCheckBox = true;
  509. }
  510. else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_05 || TargetId == LinkCtrlMainID.image.LINE_R_BG_05) {
  511. if (m_CombackHomeCheckBox[5].GetCheckBoxState() == true) m_CombackHomeCheckBox[5].ChangeCheckBox(false);
  512. else m_CombackHomeCheckBox[5].ChangeCheckBox(true);
  513. bChangeCheckBox = true;
  514. }
  515. else if (TargetId == LinkCtrlMainID.button.SETBTN_R_01) {
  516. // 웰컴조명 설정 버튼
  517. ((MainActivity)(getContext())).StartPopup(ID.screen.PopupWelcomeLightSelect);
  518. }
  519. if (bChangeCheckBox == true) {
  520. saveLinkDevice();
  521. }
  522. }
  523. } catch (RuntimeException re) {
  524. LogUtil.errorLogInfo("", TAG, re);
  525. }
  526. catch (Exception e) {
  527. Log.e(TAG, "[Exception] onTouchEvent(View v, MotionEvent event)");
  528. //e.printStackTrace();
  529. LogUtil.errorLogInfo("", TAG, e);
  530. }
  531. }
  532. @Override
  533. public void ViewRegistration(RelativeLayout ParentsLayout,
  534. WpadImageView nImageView, int MarginLeft, int MarginTop) {
  535. // TODO Auto-generated method stub
  536. super.ViewRegistration(ParentsLayout, nImageView, MarginLeft, MarginTop);
  537. }
  538. @Override
  539. public void ViewRegistration(RelativeLayout ParentsLayout,
  540. WpadTextView nTextView, int MarginLeft, int MarginTop) {
  541. // TODO Auto-generated method stub
  542. super.ViewRegistration(ParentsLayout, nTextView, MarginLeft, MarginTop);
  543. }
  544. /////////////////////////////////////// 테스트 코드
  545. }