فهرست منبع

[WallPadSecurity]
1. 연동설정 화면 개선
- 일괄소등 사용하지 않는 경우, 일괄소등 선택 목록 안보이도록 수정

Changwoo Nam 4 سال پیش
والد
کامیت
f276164e35
1فایلهای تغییر یافته به همراه575 افزوده شده و 573 حذف شده
  1. 575 573
      WallPadSecurity/src/main/java/kr/co/icontrols/wallpadsecurity/screen/SetLinkCtrlMainScreen.java

+ 575 - 573
WallPadSecurity/src/main/java/kr/co/icontrols/wallpadsecurity/screen/SetLinkCtrlMainScreen.java

@@ -1,573 +1,575 @@
-package kr.co.icontrols.wallpadsecurity.screen;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.artncore.WallPadDataMgr.WallpadDeviceSet;
-import com.artncore.WallPadDataMgr.WallpadStatusData;
-import com.artncore.wallpadapi.WallPadAPI;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.util.Log;
-import android.view.Gravity;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.RelativeLayout;
-
-import kr.co.icontrols.wallpadsecurity.MainActivity;
-import kr.co.icontrols.wallpadsecurity.R;
-import kr.co.icontrols.wallpadsecurity.declare.Common;
-import kr.co.icontrols.wallpadsecurity.declare.Common.MODE_TEXT;
-import kr.co.icontrols.wallpadsecurity.declare.ID;
-import kr.co.icontrols.wallpadsecurity.declare.ID.*;
-import kr.co.icontrols.wallpadsupport.Version;
-import kr.co.icontrols.wallpadsupport.WpadImageView;
-import kr.co.icontrols.wallpadsupport.WpadScreen;
-import kr.co.icontrols.wallpadsupport.WpadTextView;
-import kr.co.icontrols.wallpadsupport.WpadImageView.TOUCH_KIND;
-import kr.co.icontrols.wallpadsupport.WpadSound.SND;
-
-import static com.artncore.WallPadDataMgr.WallpadDeviceSet.ELEVATOR_NONE;
-
-
-public class SetLinkCtrlMainScreen extends WpadScreen{
-
-	String TAG = "SetLinkCtrlMainScreen";
-	private final int ContentsFontSize = Common.fontsize._36;
-	private final int TitleFontSize = Common.fontsize._36;
-	
-	// [View]
-	WpadImageView Background;
-	WpadImageView BgLeft;
-	WpadImageView BgRight;
-	
-	// Left BG Menu
-	WpadImageView [] LeftBgArray = new WpadImageView [6];
-	WpadImageView [] RightBAgrray = new WpadImageView [6];
-
-		
-	WpadTextView Title_Left;
-	WpadTextView Title_Right;
-	
-	private OutModeComponent [] m_OutModeCheckBox = new OutModeComponent[6];
-	private String [] mOutModeTextContents = null; 
-	
-	private OutModeComponent [] m_CombackHomeCheckBox = new OutModeComponent[6];
-	private String [] mCombackHomeTextContents = null; 
-
-	private Context m_Context;
-	private WallPadAPI m_wAPI;
-	
-	public class OutModeComponent {
-		private WpadImageView CheckBox;
-		private WpadImageView SetBtn;
-		private WpadTextView OutText;
-		
-		private final int IMG_CHECKBOX_WIDTH = 88;
-		private final int IMG_CHECKBOX_HEIGHT = 88;
-		private final int RECT_TEXT_HEIGHT = 88;
-		private final int TEXT_AND_CHECKBOX_GAP = 88;
-		
-		private int CheckBoxUseIdx;
-		private int CheckBoxNotUseIdx;
-		private boolean CheckBoxState;
-				
-		public OutModeComponent(Context context, RelativeLayout layout, String CheckBoxText, int PosX, int PosY, int rectTextSize, int IDimgCheck, int IDtext, boolean initState) {
-			try {
-				this.CheckBoxUseIdx = R.drawable.but_check_checked;
-				this.CheckBoxNotUseIdx =  R.drawable.but_check_default;
-
-				CheckBox = new WpadImageView(context, TOUCH_KIND.BUTTON_M, IMG_CHECKBOX_WIDTH, IMG_CHECKBOX_HEIGHT, CheckBoxUseIdx, CheckBoxNotUseIdx, IDimgCheck);
-				ViewRegistration(layout, CheckBox, PosX, PosY);
-
-				OutText = new WpadTextView(context, false, rectTextSize, RECT_TEXT_HEIGHT, Gravity.CENTER, Color.WHITE, ContentsFontSize, true, IDtext);
-				ViewRegistration(layout, OutText, PosX + TEXT_AND_CHECKBOX_GAP, PosY);
-				OutText.setText(CheckBoxText);
-
-				if (initState == true) {
-					CheckBoxState = true;
-					CheckBox.setImageResource(CheckBoxUseIdx);
-				}
-				else {
-					CheckBoxState = false;
-					CheckBox.setImageResource(CheckBoxNotUseIdx);
-				}
-			} catch (Exception e) {
-				Log.e(TAG, "[Exception] OutModeComponent(Context context, RelativeLayout layout, String CheckBoxText, int PosX, int PosY, int rectTextSize, int IDimgCheck, int IDtext, boolean initState)");
-				e.printStackTrace();
-			}
-		}
-
-		public OutModeComponent(Context context, RelativeLayout layout, String CheckBoxText, int PosX, int PosY, int rectTextSize, int IDimgCheck, int IDtext, int IDsetBtn, boolean initState) {
-			try {
-				this.CheckBoxUseIdx = R.drawable.but_check_checked;
-				this.CheckBoxNotUseIdx =  R.drawable.but_check_default;
-
-				CheckBox = new WpadImageView(context, TOUCH_KIND.BUTTON_M, IMG_CHECKBOX_WIDTH, IMG_CHECKBOX_HEIGHT, CheckBoxUseIdx, CheckBoxNotUseIdx, IDimgCheck);
-				ViewRegistration(layout, CheckBox, PosX, PosY);
-
-				OutText = new WpadTextView(context, false, rectTextSize , RECT_TEXT_HEIGHT, Gravity.CENTER, Color.WHITE, ContentsFontSize, true, IDtext);
-				ViewRegistration(layout, OutText, PosX + TEXT_AND_CHECKBOX_GAP - 50, PosY);
-				OutText.setText(CheckBoxText);
-
-				// 웰컴조명 설정 버튼 추가하기
-				// ~~~~~~~~~~~~~
-				SetBtn = new WpadImageView(context, TOUCH_KIND.BUTTON, 90, 54, R.drawable.btn_set_normal, R.drawable.btn_set_pressed, IDsetBtn);
-				ViewRegistration(layout, SetBtn, PosX + TEXT_AND_CHECKBOX_GAP + 200, PosY + 16);
-
-
-				if (initState == true) {
-					CheckBoxState = true;
-					CheckBox.setImageResource(CheckBoxUseIdx);
-				}
-				else {
-					CheckBoxState = false;
-					CheckBox.setImageResource(CheckBoxNotUseIdx);
-				}
-			} catch (Exception e) {
-				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)");
-				e.printStackTrace();
-			}
-		}
-
-		public boolean GetCheckBoxState() {
-			return this.CheckBoxState;
-		}
-
-		public void ChangeCheckBox(boolean Use) {
-			try {
-				if (CheckBoxUseIdx > 0 && CheckBoxNotUseIdx > 0) {
-					if (Use == true) {
-						CheckBoxState = true;
-						CheckBox.setImageResource(CheckBoxUseIdx);
-					}
-					else {
-						CheckBoxState = false;
-						CheckBox.setImageResource(CheckBoxNotUseIdx);
-					}
-				}
-				else {
-					Log.d(TAG, "Image Resource not registeration ");
-				}
-			} catch (Exception e) {
-				Log.e(TAG, "[Exception] ChangeCheckBox(boolean Use)");
-				e.printStackTrace();
-			}
-		}
-	}
-	
-	private int GetOutModeLinkCount() {
-		return mOutModeTextContents.length;
-	}
-	
-	private int GetInModeLinkCount() {
-		return mCombackHomeTextContents.length;
-	}
-	
-	/////// 연동기기 리스트 목록을 만들도록 한다.
-	private void makeLinkControlList() {
-		try {
-			WallpadDeviceSet devSet = new WallpadDeviceSet(this.getContext());
-			int[] BatchInfo = devSet.Get_BatchSW_Info();
-			int retGasInt = devSet.Get_GAS_Info();
-			int[] VentiInfo = devSet.Get_Ventil_Info();
-			int nDistributionPanelType = devSet.Get_DistributionPannelType_Info();
-			boolean cooktopConcentUse = devSet.Get_CookTopConcent_Use();
-			int nElevInfo = devSet.Get_Elevator_Info();
-			devSet.closeDB();
-			
-			List<String> OutModeList = new ArrayList<String>();
-			List<String> ComeBackList = new ArrayList<String>();
-			
-			WallpadStatusData wdb = new WallpadStatusData(this.getContext());
-			if (wdb != null) {
-				// 방범센서설정 체크
-				if (Version.getModelType() != Version.MODEL_TYPE.IHN_1020GL) {
-					if (Version.getModelType() == Version.MODEL_TYPE.IHN_D101 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I
-							|| Version.getModelType() == Version.MODEL_TYPE.IHN_D101K || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K_I
-							|| Version.getModelType() == Version.MODEL_TYPE.IHN_1010GL || Version.getModelType() == Version.MODEL_TYPE.IHN_1010GL_I) {
-						if (BatchInfo[0] == 1 && BatchInfo[1] == WallpadDeviceSet.BATCH_TYPE_HDC_LCD_SMART) {
-							OutModeList.add(MODE_TEXT.OUT_GUARD);
-							ComeBackList.add(MODE_TEXT.RELEASE_GUARD);
-						}
-					}
-					else {
-						if (BatchInfo[0] == 1 && BatchInfo[1] == WallpadDeviceSet.BATCH_TYPE_SMART) {
-							OutModeList.add(MODE_TEXT.OUT_GUARD);
-							ComeBackList.add(MODE_TEXT.RELEASE_GUARD);
-						}
-						else if (Version.getModelType() == Version.MODEL_TYPE.IHN_1020SA_A) {
-							OutModeList.add(MODE_TEXT.OUT_GUARD);
-							ComeBackList.add(MODE_TEXT.RELEASE_GUARD);
-						}
-					}
-				}
-
-				// 엘리베이터 체크
-				if (nElevInfo == WallpadDeviceSet.ELEVATOR_SIMPLE || nElevInfo == WallpadDeviceSet.ELEVATOR_FLOOR) OutModeList.add(MODE_TEXT.CALL_ELEVATOR);
-
-				// 일괄소등
-				OutModeList.add(MODE_TEXT.IGAL_RUN);
-				ComeBackList.add(MODE_TEXT.IGAL_RELEASE);
-				
-				// 가스닫기
-				if (retGasInt == 1) {
-					OutModeList.add(MODE_TEXT.GAS_STOP);
-				}
-				else {
-					if (cooktopConcentUse) {
-						OutModeList.add(MODE_TEXT.COOKTOP_CONCENT_CUTOFF);	// 쿡탑콘센트
-					}
-				}
-
-				if (Version.getGatewayUsage()) {
-					//난방일시정지
-					OutModeList.add(MODE_TEXT.HEATING_STOP);
-					ComeBackList.add(MODE_TEXT.HEATING_STOP_RELEASE);
-				}
-				else {
-					int HeatingKind = m_wAPI.GetHeatingKind();
-					
-					if (HeatingKind == 1) {
-						//1 이면 V1
-						//난방일시정지
-						OutModeList.add(MODE_TEXT.HEATING_STOP);
-						ComeBackList.add(MODE_TEXT.HEATING_STOP_RELEASE);
-					}
-					else {
-						// 2이면 V2
-						OutModeList.add(MODE_TEXT.HEATING_OUT);
-						ComeBackList.add(MODE_TEXT.HEATING_OUT_Release);
-					}
-				}
-				
-				if (VentiInfo[0] == 1) {
-				    //환기끄기
-	                OutModeList.add(MODE_TEXT.CHANGE_AIR_STOP);
-	                ComeBackList.add(MODE_TEXT.CHANGE_AIR_RUN);	                    
-				}
-
-				// 웰컴조명
-				if ((nDistributionPanelType == Version.DISTRIBUTION_MODEL.SMART_DIST)
-						&& (Version.getModelType() == Version.MODEL_TYPE.IHN_D101 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I
-						|| Version.getModelType() == Version.MODEL_TYPE.IHN_D101K || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K_I)) {
-					ComeBackList.add(MODE_TEXT.WELCOME_LIGHT_D101);
-				}
-				
-				wdb.closeDB();
-				mOutModeTextContents = new String[OutModeList.size() ];
-				for (int i = 0; i < OutModeList.size(); i++) {
-					mOutModeTextContents[i] = OutModeList.get(i);
-				}
-				
-				mCombackHomeTextContents = new String[ComeBackList.size() ];
-				for (int i = 0; i < ComeBackList.size(); i++) {
-					mCombackHomeTextContents[i] = ComeBackList.get(i);
-				}
-			}
-		} catch (Exception e) {
-			Log.e(TAG, "[Exception] makeLinkControlList()");
-			e.printStackTrace();
-		}
-	}
-
-	private boolean initInfo() {
-		try {
-			// DB에 변경된 패스워드를 저장하도록 한다.
-			String strOutModeLinkDevice = "";
-			String strComeBackLinkDevice ="";
-			boolean bSensorCheck = true;
-
-			try {
-				// DB 에서 현재 설정된 패스워드를 얻어오도록 한다.
-				WallpadStatusData wdb = new WallpadStatusData(this.getContext());
-				if (wdb != null) {
-					strOutModeLinkDevice = wdb.GetOutModeLinkDevice();
-					strComeBackLinkDevice = wdb.GetComeBackLinkDevice();
-					bSensorCheck = wdb.GetUseGuardSensorCheck();
-					wdb.closeDB();
-					Log.d(TAG, "[DB SAVE]-WallpadStatusData.GUARD_IN");
-				}
-			} catch (Exception e) {
-				Log.e(TAG, "[Exception]-" + e.toString());
-				e.printStackTrace();
-			}
-
-			Log.d(TAG, "[Load strOutModeLinkDevice] " + strOutModeLinkDevice);
-			Log.d(TAG, "[Load strComeBackLinkDevice] " + strComeBackLinkDevice);
-
-			for (int i = 0; i < mOutModeTextContents.length; i++) {
-				// 485 스마트 스위치 연동 대외현장
-				if (i == 0 && mOutModeTextContents[0].equals(MODE_TEXT.OUT_GUARD)) {
-					if (bSensorCheck == true) m_OutModeCheckBox[i].ChangeCheckBox(true);
-					else m_OutModeCheckBox[i].ChangeCheckBox(false);
-				}
-				else {
-					if (strOutModeLinkDevice.indexOf(mOutModeTextContents[i]) >= 0) {
-						m_OutModeCheckBox[i].ChangeCheckBox(true);
-					}
-					else {
-						m_OutModeCheckBox[i].ChangeCheckBox(false);
-					}
-				}
-			}
-
-			for (int i = 0; i < mCombackHomeTextContents.length; i++) {
-				if (i == 0 && mCombackHomeTextContents[0].equals(MODE_TEXT.RELEASE_GUARD)) {
-					// 무조건 사용으로 설정
-					m_CombackHomeCheckBox[i].ChangeCheckBox(true);
-				}
-				else {
-					if (strComeBackLinkDevice.indexOf(mCombackHomeTextContents[i]) >= 0) {
-						m_CombackHomeCheckBox[i].ChangeCheckBox(true);
-					}
-					else {
-						m_CombackHomeCheckBox[i].ChangeCheckBox(false);
-					}
-				}
-			}
-			return true;
-		} catch (Exception e) {
-			Log.e(TAG, "[Exception] initInfo()");
-			e.printStackTrace();
-			return false;
-		}
-	}
-	
-	private boolean saveLinkDevice() {
-		try {
-			String strOutModeLinkDevice = "";
-			String strComeBackLinkDevice ="";
-
-			boolean bUseSensorCheck = false;
-			for (int i = 0; i < mOutModeTextContents.length; i++) {
-				if (m_OutModeCheckBox[i].GetCheckBoxState() == true) {
-					strOutModeLinkDevice += mOutModeTextContents[i] + "/" ;
-					if (mOutModeTextContents[i].equals(MODE_TEXT.OUT_GUARD)) {
-						bUseSensorCheck = true;
-					}
-				}
-			}
-
-			for (int i = 0; i < mCombackHomeTextContents.length; i++) {
-				if (m_CombackHomeCheckBox[i].GetCheckBoxState() == true) {
-					strComeBackLinkDevice += mCombackHomeTextContents[i] + "/" ;
-				}
-			}
-
-			Log.d(TAG, "[Save saveLinkDevice] strOutModeLinkDevice: " + strOutModeLinkDevice + ", strComeBackLinkDevice: " + strComeBackLinkDevice);
-			try {
-				// DB 에서 현재 설정된 패스워드를 얻어오도록 한다.
-				WallpadStatusData wdb = new WallpadStatusData(this.getContext());
-				if (wdb!= null) {
-					//GetDB().GetOutModeLinkDevice()
-					wdb.SetOutModeLinkDevice(strOutModeLinkDevice);
-					wdb.SetComeBackLinkDevice(strComeBackLinkDevice);
-					wdb.SetUseGuardSensorCheck(bUseSensorCheck);
-					wdb.closeDB();
-					Log.d(TAG, "[DB SAVE]-WallpadStatusData.GUARD_IN -- bUseSensorCheck : " + bUseSensorCheck);
-				}
-			} catch (Exception e) {
-				Log.d(TAG, "[Exception] saveLinkDevice() -> DB");
-				e.printStackTrace();
-				return false;
-			}
-			return true;
-		} catch (Exception e) {
-			Log.e(TAG, "[Exception] saveLinkDevice()");
-			e.printStackTrace();
-			return false;
-		}
-	}
-	
-	public SetLinkCtrlMainScreen(Context context, RelativeLayout layout, WallPadAPI wpapi, int operationMode) {
-		super(context, layout);
-		try {
-			m_Context = context;
-			m_wAPI = wpapi;
-			makeLinkControlList();
-
-			((MainActivity) m_Context).setManualBtnVisible(((MainActivity) m_Context).getManualUse(), 1019);
-
-			Log.d(TAG, "[START - Screen] --------------------------------------------");
-			Background = new WpadImageView(context, TOUCH_KIND.NONE, 1280, 690, R.drawable.bg_body, 0, LinkCtrlMainID.image.BACKGROUND);
-			ViewRegistration(layout, Background, 0,0);
-
-			BgLeft = new WpadImageView(context, TOUCH_KIND.NONE, 477, 622, R.drawable.guard_link_box_bgr, 0, LinkCtrlMainID.image.BG_LEFT);
-			ViewRegistration(layout, BgLeft, Common.ImgPosion.GetX(142), Common.ImgPosion.GetY(110));
-
-			BgRight = new WpadImageView(context, TOUCH_KIND.NONE, 477, 622, R.drawable.guard_link_box_bgr, 0, LinkCtrlMainID.image.BG_RIGHT);
-			ViewRegistration(layout, BgRight, Common.ImgPosion.GetX(661), Common.ImgPosion.GetY(110));
-
-			Title_Left = new WpadTextView(context, false, 477, 84, Gravity.CENTER, Color.BLACK, TitleFontSize, true, LinkCtrlMainID.text.TITLE_L);
-			ViewRegistration(layout, Title_Left, Common.ImgPosion.GetX(142), Common.ImgPosion.GetY(110));
-			Title_Left.setText("외출");
-
-			Title_Right = new WpadTextView(context, false, 477, 84, Gravity.CENTER, Color.BLACK, TitleFontSize, true, LinkCtrlMainID.text.TITLE_L);
-			ViewRegistration(layout, Title_Right, Common.ImgPosion.GetX(661), Common.ImgPosion.GetY(110));
-			Title_Right.setText("복귀");
-
-			for (int i = 0; i < GetOutModeLinkCount(); i++) {
-				//LeftBgArray[i] = new WpadImageView(context, TOUCH_KIND.BUTTON_M, 477, 2, R.drawable.line_2px, 0, LinkCtrlMainID.image.LINE_L_BG_01 + i);
-				//ViewRegistration(layout, LeftBgArray[i], Common.ImgPosion.GetX(142), Common.ImgPosion.GetY(282 + 90*i));
-				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);
-			}
-
-			for (int i = 0; i < GetInModeLinkCount(); i++) {
-				//RightBAgrray[i] = new WpadImageView(context, TOUCH_KIND.BUTTON_M, 477, 2, R.drawable.line_2px, 0, LinkCtrlMainID.image.LINE_R_BG_01 + i);
-				//ViewRegistration(layout, RightBAgrray[i], Common.ImgPosion.GetX(661), ImgPosion.GetY(282 + 90*i));
-				if (mCombackHomeTextContents[i].equals(MODE_TEXT.WELCOME_LIGHT_D101)) {
-					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);
-				}
-				else {
-					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);
-				}
-			}
-			initInfo();
-		} catch (Exception e) {
-			Log.e(TAG, "[Exception] SetLinkCtrlMainScreen(Context context, RelativeLayout layout, WallPadAPI wpapi, int operationMode)");
-			e.printStackTrace();
-		}
-	}
-	
-	@Override
-	protected void onClose() {
-		// TODO Auto-generated method stub
-		super.onClose();
-		Log.d(TAG, "[onClose - Screen] --------------------------------------------");
-	}
-
-	@Override
-	public void Close() {
-		// TODO Auto-generated method stub
-		super.Close();
-		Log.d(TAG, "[Close - Screen] --------------------------------------------");
-	}
-
-	@Override
-	protected void onTouchEvent(View v, MotionEvent event) {
-		// TODO Auto-generated method stub
-		super.onTouchEvent(v, event);
-		try {
-			int TargetId = v.getId();
-			int MoveEvent = event.getAction();
-
-			if (MoveEvent == MotionEvent.ACTION_DOWN) {
-
-			}
-			else if (MoveEvent == MotionEvent.ACTION_UP) {
-				if (true) {
-					Sound().Play(SND.effect.TOUCH_LATCHED);
-				}
-				Log.d(TAG, "BUTTON ACTION_UP : " + TargetId);
-
-				boolean bChangeCheckBox = false;
-
-				// 자측 체크박스 처리
-				if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_01 || TargetId == LinkCtrlMainID.image.LINE_L_BG_01) {
-					if (m_OutModeCheckBox[0].GetCheckBoxState() == true) {
-						m_OutModeCheckBox[0].ChangeCheckBox(false);
-					}
-					else {
-						m_OutModeCheckBox[0].ChangeCheckBox(true);
-					}
-					bChangeCheckBox = true;
-				}
-				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_02 || TargetId == LinkCtrlMainID.image.LINE_L_BG_02) {
-					if (m_OutModeCheckBox[1].GetCheckBoxState() == true) m_OutModeCheckBox[1].ChangeCheckBox(false);
-					else m_OutModeCheckBox[1].ChangeCheckBox(true);
-					bChangeCheckBox = true;
-				}
-				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_03 || TargetId == LinkCtrlMainID.image.LINE_L_BG_03) {
-					if (m_OutModeCheckBox[2].GetCheckBoxState() == true) m_OutModeCheckBox[2].ChangeCheckBox(false);
-					else m_OutModeCheckBox[2].ChangeCheckBox(true);
-					bChangeCheckBox = true;
-				}
-				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_04 || TargetId == LinkCtrlMainID.image.LINE_L_BG_04) {
-					if (m_OutModeCheckBox[3].GetCheckBoxState() == true) m_OutModeCheckBox[3].ChangeCheckBox(false);
-					else m_OutModeCheckBox[3].ChangeCheckBox(true);
-					bChangeCheckBox = true;
-				}
-				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_05 || TargetId == LinkCtrlMainID.image.LINE_L_BG_05) {
-					if (m_OutModeCheckBox[4].GetCheckBoxState() == true) m_OutModeCheckBox[4].ChangeCheckBox(false);
-					else m_OutModeCheckBox[4].ChangeCheckBox(true);
-					bChangeCheckBox = true;
-				}
-				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_06 || TargetId == LinkCtrlMainID.image.LINE_L_BG_06) {
-					if (m_OutModeCheckBox[5].GetCheckBoxState() == true) m_OutModeCheckBox[5].ChangeCheckBox(false);
-					else m_OutModeCheckBox[5].ChangeCheckBox(true);
-					bChangeCheckBox = true;
-				}
-				// 우측 체크 박스 처리
-				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_01 || TargetId == LinkCtrlMainID.image.LINE_R_BG_01) {
-					if (mCombackHomeTextContents[0].equals(MODE_TEXT.RELEASE_GUARD)) {
-
-					}
-					else {
-						if (m_CombackHomeCheckBox[0].GetCheckBoxState() == true) m_CombackHomeCheckBox[0].ChangeCheckBox(false);
-						else m_CombackHomeCheckBox[0].ChangeCheckBox(true);
-						bChangeCheckBox = true;
-					}
-				}
-				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_02 || TargetId == LinkCtrlMainID.image.LINE_R_BG_02) {
-					if (m_CombackHomeCheckBox[1].GetCheckBoxState() == true) m_CombackHomeCheckBox[1].ChangeCheckBox(false);
-					else m_CombackHomeCheckBox[1].ChangeCheckBox(true);
-					bChangeCheckBox = true;
-				}
-				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_03 || TargetId == LinkCtrlMainID.image.LINE_R_BG_03) {
-					if (m_CombackHomeCheckBox[2].GetCheckBoxState() == true) m_CombackHomeCheckBox[2].ChangeCheckBox(false);
-					else m_CombackHomeCheckBox[2].ChangeCheckBox(true);
-					bChangeCheckBox = true;
-				}
-				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_04 || TargetId == LinkCtrlMainID.image.LINE_R_BG_04) {
-					if (m_CombackHomeCheckBox[3].GetCheckBoxState() == true) m_CombackHomeCheckBox[3].ChangeCheckBox(false);
-					else m_CombackHomeCheckBox[3].ChangeCheckBox(true);
-					bChangeCheckBox = true;
-				}
-				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_05 || TargetId == LinkCtrlMainID.image.LINE_R_BG_05) {
-					if (m_CombackHomeCheckBox[4].GetCheckBoxState() == true) m_CombackHomeCheckBox[4].ChangeCheckBox(false);
-					else m_CombackHomeCheckBox[4].ChangeCheckBox(true);
-					bChangeCheckBox = true;
-				}
-				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_05 || TargetId == LinkCtrlMainID.image.LINE_R_BG_05) {
-					if (m_CombackHomeCheckBox[5].GetCheckBoxState() == true) m_CombackHomeCheckBox[5].ChangeCheckBox(false);
-					else m_CombackHomeCheckBox[5].ChangeCheckBox(true);
-					bChangeCheckBox = true;
-				}
-				else if (TargetId == LinkCtrlMainID.button.SETBTN_R_01) {
-					// 웰컴조명 설정 버튼
-					((MainActivity)(getContext())).StartPopup(ID.screen.PopupWelcomeLightSelect);
-				}
-
-				if (bChangeCheckBox == true) {
-					saveLinkDevice();
-				}
-			}
-		} catch (Exception e) {
-			Log.e(TAG, "[Exception] onTouchEvent(View v, MotionEvent event)");
-			e.printStackTrace();
-		}
-	}
-
-	
-	@Override
-	public void ViewRegistration(RelativeLayout ParentsLayout,
-			WpadImageView nImageView, int MarginLeft, int MarginTop) {
-		// TODO Auto-generated method stub
-		super.ViewRegistration(ParentsLayout, nImageView, MarginLeft, MarginTop);
-	}
-
-	@Override
-	public void ViewRegistration(RelativeLayout ParentsLayout,
-			WpadTextView nTextView, int MarginLeft, int MarginTop) {
-		// TODO Auto-generated method stub
-		super.ViewRegistration(ParentsLayout, nTextView, MarginLeft, MarginTop);
-	}
-
-	
-	/////////////////////////////////////// 테스트 코드 
-	
-	
-
-}
+package kr.co.icontrols.wallpadsecurity.screen;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.artncore.WallPadDataMgr.WallpadDeviceSet;
+import com.artncore.WallPadDataMgr.WallpadStatusData;
+import com.artncore.wallpadapi.WallPadAPI;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.RelativeLayout;
+
+import kr.co.icontrols.wallpadsecurity.MainActivity;
+import kr.co.icontrols.wallpadsecurity.R;
+import kr.co.icontrols.wallpadsecurity.declare.Common;
+import kr.co.icontrols.wallpadsecurity.declare.Common.MODE_TEXT;
+import kr.co.icontrols.wallpadsecurity.declare.ID;
+import kr.co.icontrols.wallpadsecurity.declare.ID.*;
+import kr.co.icontrols.wallpadsupport.Version;
+import kr.co.icontrols.wallpadsupport.WpadImageView;
+import kr.co.icontrols.wallpadsupport.WpadScreen;
+import kr.co.icontrols.wallpadsupport.WpadTextView;
+import kr.co.icontrols.wallpadsupport.WpadImageView.TOUCH_KIND;
+import kr.co.icontrols.wallpadsupport.WpadSound.SND;
+
+import static com.artncore.WallPadDataMgr.WallpadDeviceSet.ELEVATOR_NONE;
+
+
+public class SetLinkCtrlMainScreen extends WpadScreen{
+
+	String TAG = "SetLinkCtrlMainScreen";
+	private final int ContentsFontSize = Common.fontsize._36;
+	private final int TitleFontSize = Common.fontsize._36;
+	
+	// [View]
+	WpadImageView Background;
+	WpadImageView BgLeft;
+	WpadImageView BgRight;
+	
+	// Left BG Menu
+	WpadImageView [] LeftBgArray = new WpadImageView [6];
+	WpadImageView [] RightBAgrray = new WpadImageView [6];
+
+		
+	WpadTextView Title_Left;
+	WpadTextView Title_Right;
+	
+	private OutModeComponent [] m_OutModeCheckBox = new OutModeComponent[6];
+	private String [] mOutModeTextContents = null; 
+	
+	private OutModeComponent [] m_CombackHomeCheckBox = new OutModeComponent[6];
+	private String [] mCombackHomeTextContents = null; 
+
+	private Context m_Context;
+	private WallPadAPI m_wAPI;
+	
+	public class OutModeComponent {
+		private WpadImageView CheckBox;
+		private WpadImageView SetBtn;
+		private WpadTextView OutText;
+		
+		private final int IMG_CHECKBOX_WIDTH = 88;
+		private final int IMG_CHECKBOX_HEIGHT = 88;
+		private final int RECT_TEXT_HEIGHT = 88;
+		private final int TEXT_AND_CHECKBOX_GAP = 88;
+		
+		private int CheckBoxUseIdx;
+		private int CheckBoxNotUseIdx;
+		private boolean CheckBoxState;
+				
+		public OutModeComponent(Context context, RelativeLayout layout, String CheckBoxText, int PosX, int PosY, int rectTextSize, int IDimgCheck, int IDtext, boolean initState) {
+			try {
+				this.CheckBoxUseIdx = R.drawable.but_check_checked;
+				this.CheckBoxNotUseIdx =  R.drawable.but_check_default;
+
+				CheckBox = new WpadImageView(context, TOUCH_KIND.BUTTON_M, IMG_CHECKBOX_WIDTH, IMG_CHECKBOX_HEIGHT, CheckBoxUseIdx, CheckBoxNotUseIdx, IDimgCheck);
+				ViewRegistration(layout, CheckBox, PosX, PosY);
+
+				OutText = new WpadTextView(context, false, rectTextSize, RECT_TEXT_HEIGHT, Gravity.CENTER, Color.WHITE, ContentsFontSize, true, IDtext);
+				ViewRegistration(layout, OutText, PosX + TEXT_AND_CHECKBOX_GAP, PosY);
+				OutText.setText(CheckBoxText);
+
+				if (initState == true) {
+					CheckBoxState = true;
+					CheckBox.setImageResource(CheckBoxUseIdx);
+				}
+				else {
+					CheckBoxState = false;
+					CheckBox.setImageResource(CheckBoxNotUseIdx);
+				}
+			} catch (Exception e) {
+				Log.e(TAG, "[Exception] OutModeComponent(Context context, RelativeLayout layout, String CheckBoxText, int PosX, int PosY, int rectTextSize, int IDimgCheck, int IDtext, boolean initState)");
+				e.printStackTrace();
+			}
+		}
+
+		public OutModeComponent(Context context, RelativeLayout layout, String CheckBoxText, int PosX, int PosY, int rectTextSize, int IDimgCheck, int IDtext, int IDsetBtn, boolean initState) {
+			try {
+				this.CheckBoxUseIdx = R.drawable.but_check_checked;
+				this.CheckBoxNotUseIdx =  R.drawable.but_check_default;
+
+				CheckBox = new WpadImageView(context, TOUCH_KIND.BUTTON_M, IMG_CHECKBOX_WIDTH, IMG_CHECKBOX_HEIGHT, CheckBoxUseIdx, CheckBoxNotUseIdx, IDimgCheck);
+				ViewRegistration(layout, CheckBox, PosX, PosY);
+
+				OutText = new WpadTextView(context, false, rectTextSize , RECT_TEXT_HEIGHT, Gravity.CENTER, Color.WHITE, ContentsFontSize, true, IDtext);
+				ViewRegistration(layout, OutText, PosX + TEXT_AND_CHECKBOX_GAP - 50, PosY);
+				OutText.setText(CheckBoxText);
+
+				// 웰컴조명 설정 버튼 추가하기
+				// ~~~~~~~~~~~~~
+				SetBtn = new WpadImageView(context, TOUCH_KIND.BUTTON, 90, 54, R.drawable.btn_set_normal, R.drawable.btn_set_pressed, IDsetBtn);
+				ViewRegistration(layout, SetBtn, PosX + TEXT_AND_CHECKBOX_GAP + 200, PosY + 16);
+
+
+				if (initState == true) {
+					CheckBoxState = true;
+					CheckBox.setImageResource(CheckBoxUseIdx);
+				}
+				else {
+					CheckBoxState = false;
+					CheckBox.setImageResource(CheckBoxNotUseIdx);
+				}
+			} catch (Exception e) {
+				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)");
+				e.printStackTrace();
+			}
+		}
+
+		public boolean GetCheckBoxState() {
+			return this.CheckBoxState;
+		}
+
+		public void ChangeCheckBox(boolean Use) {
+			try {
+				if (CheckBoxUseIdx > 0 && CheckBoxNotUseIdx > 0) {
+					if (Use == true) {
+						CheckBoxState = true;
+						CheckBox.setImageResource(CheckBoxUseIdx);
+					}
+					else {
+						CheckBoxState = false;
+						CheckBox.setImageResource(CheckBoxNotUseIdx);
+					}
+				}
+				else {
+					Log.d(TAG, "Image Resource not registeration ");
+				}
+			} catch (Exception e) {
+				Log.e(TAG, "[Exception] ChangeCheckBox(boolean Use)");
+				e.printStackTrace();
+			}
+		}
+	}
+	
+	private int GetOutModeLinkCount() {
+		return mOutModeTextContents.length;
+	}
+	
+	private int GetInModeLinkCount() {
+		return mCombackHomeTextContents.length;
+	}
+	
+	/////// 연동기기 리스트 목록을 만들도록 한다.
+	private void makeLinkControlList() {
+		try {
+			WallpadDeviceSet devSet = new WallpadDeviceSet(this.getContext());
+			int[] BatchInfo = devSet.Get_BatchSW_Info();
+			int retGasInt = devSet.Get_GAS_Info();
+			int[] VentiInfo = devSet.Get_Ventil_Info();
+			int nDistributionPanelType = devSet.Get_DistributionPannelType_Info();
+			boolean cooktopConcentUse = devSet.Get_CookTopConcent_Use();
+			int nElevInfo = devSet.Get_Elevator_Info();
+			devSet.closeDB();
+			
+			List<String> OutModeList = new ArrayList<String>();
+			List<String> ComeBackList = new ArrayList<String>();
+			
+			WallpadStatusData wdb = new WallpadStatusData(this.getContext());
+			if (wdb != null) {
+				// 방범센서설정 체크
+				if (Version.getModelType() != Version.MODEL_TYPE.IHN_1020GL) {
+					if (Version.getModelType() == Version.MODEL_TYPE.IHN_D101 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I
+							|| Version.getModelType() == Version.MODEL_TYPE.IHN_D101K || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K_I
+							|| Version.getModelType() == Version.MODEL_TYPE.IHN_1010GL || Version.getModelType() == Version.MODEL_TYPE.IHN_1010GL_I) {
+						if (BatchInfo[0] == WallpadDeviceSet.DO_USE && BatchInfo[1] == WallpadDeviceSet.BATCH_TYPE_HDC_LCD_SMART) {
+							OutModeList.add(MODE_TEXT.OUT_GUARD);
+							ComeBackList.add(MODE_TEXT.RELEASE_GUARD);
+						}
+					}
+					else {
+						if (BatchInfo[0] == WallpadDeviceSet.DO_USE && BatchInfo[1] == WallpadDeviceSet.BATCH_TYPE_SMART) {
+							OutModeList.add(MODE_TEXT.OUT_GUARD);
+							ComeBackList.add(MODE_TEXT.RELEASE_GUARD);
+						}
+						else if (Version.getModelType() == Version.MODEL_TYPE.IHN_1020SA_A) {
+							OutModeList.add(MODE_TEXT.OUT_GUARD);
+							ComeBackList.add(MODE_TEXT.RELEASE_GUARD);
+						}
+					}
+				}
+
+				// 엘리베이터 체크
+				if (nElevInfo == WallpadDeviceSet.ELEVATOR_SIMPLE || nElevInfo == WallpadDeviceSet.ELEVATOR_FLOOR) OutModeList.add(MODE_TEXT.CALL_ELEVATOR);
+
+				// 일괄소등
+				if (BatchInfo[0] == WallpadDeviceSet.DO_USE) {
+					OutModeList.add(MODE_TEXT.IGAL_RUN);
+					ComeBackList.add(MODE_TEXT.IGAL_RELEASE);
+				}
+				
+				// 가스닫기
+				if (retGasInt == 1) {
+					OutModeList.add(MODE_TEXT.GAS_STOP);
+				}
+				else {
+					if (cooktopConcentUse) {
+						OutModeList.add(MODE_TEXT.COOKTOP_CONCENT_CUTOFF);	// 쿡탑콘센트
+					}
+				}
+
+				if (Version.getGatewayUsage()) {
+					//난방일시정지
+					OutModeList.add(MODE_TEXT.HEATING_STOP);
+					ComeBackList.add(MODE_TEXT.HEATING_STOP_RELEASE);
+				}
+				else {
+					int HeatingKind = m_wAPI.GetHeatingKind();
+					
+					if (HeatingKind == 1) {
+						//1 이면 V1
+						//난방일시정지
+						OutModeList.add(MODE_TEXT.HEATING_STOP);
+						ComeBackList.add(MODE_TEXT.HEATING_STOP_RELEASE);
+					}
+					else {
+						// 2이면 V2
+						OutModeList.add(MODE_TEXT.HEATING_OUT);
+						ComeBackList.add(MODE_TEXT.HEATING_OUT_Release);
+					}
+				}
+				
+				if (VentiInfo[0] == 1) {
+				    //환기끄기
+	                OutModeList.add(MODE_TEXT.CHANGE_AIR_STOP);
+	                ComeBackList.add(MODE_TEXT.CHANGE_AIR_RUN);	                    
+				}
+
+				// 웰컴조명
+				if ((nDistributionPanelType == Version.DISTRIBUTION_MODEL.SMART_DIST)
+						&& (Version.getModelType() == Version.MODEL_TYPE.IHN_D101 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I
+						|| Version.getModelType() == Version.MODEL_TYPE.IHN_D101K || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K_I)) {
+					ComeBackList.add(MODE_TEXT.WELCOME_LIGHT_D101);
+				}
+				
+				wdb.closeDB();
+				mOutModeTextContents = new String[OutModeList.size() ];
+				for (int i = 0; i < OutModeList.size(); i++) {
+					mOutModeTextContents[i] = OutModeList.get(i);
+				}
+				
+				mCombackHomeTextContents = new String[ComeBackList.size() ];
+				for (int i = 0; i < ComeBackList.size(); i++) {
+					mCombackHomeTextContents[i] = ComeBackList.get(i);
+				}
+			}
+		} catch (Exception e) {
+			Log.e(TAG, "[Exception] makeLinkControlList()");
+			e.printStackTrace();
+		}
+	}
+
+	private boolean initInfo() {
+		try {
+			// DB에 변경된 패스워드를 저장하도록 한다.
+			String strOutModeLinkDevice = "";
+			String strComeBackLinkDevice ="";
+			boolean bSensorCheck = true;
+
+			try {
+				// DB 에서 현재 설정된 패스워드를 얻어오도록 한다.
+				WallpadStatusData wdb = new WallpadStatusData(this.getContext());
+				if (wdb != null) {
+					strOutModeLinkDevice = wdb.GetOutModeLinkDevice();
+					strComeBackLinkDevice = wdb.GetComeBackLinkDevice();
+					bSensorCheck = wdb.GetUseGuardSensorCheck();
+					wdb.closeDB();
+					Log.d(TAG, "[DB SAVE]-WallpadStatusData.GUARD_IN");
+				}
+			} catch (Exception e) {
+				Log.e(TAG, "[Exception]-" + e.toString());
+				e.printStackTrace();
+			}
+
+			Log.d(TAG, "[Load strOutModeLinkDevice] " + strOutModeLinkDevice);
+			Log.d(TAG, "[Load strComeBackLinkDevice] " + strComeBackLinkDevice);
+
+			for (int i = 0; i < mOutModeTextContents.length; i++) {
+				// 485 스마트 스위치 연동 대외현장
+				if (i == 0 && mOutModeTextContents[0].equals(MODE_TEXT.OUT_GUARD)) {
+					if (bSensorCheck == true) m_OutModeCheckBox[i].ChangeCheckBox(true);
+					else m_OutModeCheckBox[i].ChangeCheckBox(false);
+				}
+				else {
+					if (strOutModeLinkDevice.indexOf(mOutModeTextContents[i]) >= 0) {
+						m_OutModeCheckBox[i].ChangeCheckBox(true);
+					}
+					else {
+						m_OutModeCheckBox[i].ChangeCheckBox(false);
+					}
+				}
+			}
+
+			for (int i = 0; i < mCombackHomeTextContents.length; i++) {
+				if (i == 0 && mCombackHomeTextContents[0].equals(MODE_TEXT.RELEASE_GUARD)) {
+					// 무조건 사용으로 설정
+					m_CombackHomeCheckBox[i].ChangeCheckBox(true);
+				}
+				else {
+					if (strComeBackLinkDevice.indexOf(mCombackHomeTextContents[i]) >= 0) {
+						m_CombackHomeCheckBox[i].ChangeCheckBox(true);
+					}
+					else {
+						m_CombackHomeCheckBox[i].ChangeCheckBox(false);
+					}
+				}
+			}
+			return true;
+		} catch (Exception e) {
+			Log.e(TAG, "[Exception] initInfo()");
+			e.printStackTrace();
+			return false;
+		}
+	}
+	
+	private boolean saveLinkDevice() {
+		try {
+			String strOutModeLinkDevice = "";
+			String strComeBackLinkDevice ="";
+
+			boolean bUseSensorCheck = false;
+			for (int i = 0; i < mOutModeTextContents.length; i++) {
+				if (m_OutModeCheckBox[i].GetCheckBoxState() == true) {
+					strOutModeLinkDevice += mOutModeTextContents[i] + "/" ;
+					if (mOutModeTextContents[i].equals(MODE_TEXT.OUT_GUARD)) {
+						bUseSensorCheck = true;
+					}
+				}
+			}
+
+			for (int i = 0; i < mCombackHomeTextContents.length; i++) {
+				if (m_CombackHomeCheckBox[i].GetCheckBoxState() == true) {
+					strComeBackLinkDevice += mCombackHomeTextContents[i] + "/" ;
+				}
+			}
+
+			Log.d(TAG, "[Save saveLinkDevice] strOutModeLinkDevice: " + strOutModeLinkDevice + ", strComeBackLinkDevice: " + strComeBackLinkDevice);
+			try {
+				// DB 에서 현재 설정된 패스워드를 얻어오도록 한다.
+				WallpadStatusData wdb = new WallpadStatusData(this.getContext());
+				if (wdb!= null) {
+					//GetDB().GetOutModeLinkDevice()
+					wdb.SetOutModeLinkDevice(strOutModeLinkDevice);
+					wdb.SetComeBackLinkDevice(strComeBackLinkDevice);
+					wdb.SetUseGuardSensorCheck(bUseSensorCheck);
+					wdb.closeDB();
+					Log.d(TAG, "[DB SAVE]-WallpadStatusData.GUARD_IN -- bUseSensorCheck : " + bUseSensorCheck);
+				}
+			} catch (Exception e) {
+				Log.d(TAG, "[Exception] saveLinkDevice() -> DB");
+				e.printStackTrace();
+				return false;
+			}
+			return true;
+		} catch (Exception e) {
+			Log.e(TAG, "[Exception] saveLinkDevice()");
+			e.printStackTrace();
+			return false;
+		}
+	}
+	
+	public SetLinkCtrlMainScreen(Context context, RelativeLayout layout, WallPadAPI wpapi, int operationMode) {
+		super(context, layout);
+		try {
+			m_Context = context;
+			m_wAPI = wpapi;
+			makeLinkControlList();
+
+			((MainActivity) m_Context).setManualBtnVisible(((MainActivity) m_Context).getManualUse(), 1019);
+
+			Log.d(TAG, "[START - Screen] --------------------------------------------");
+			Background = new WpadImageView(context, TOUCH_KIND.NONE, 1280, 690, R.drawable.bg_body, 0, LinkCtrlMainID.image.BACKGROUND);
+			ViewRegistration(layout, Background, 0,0);
+
+			BgLeft = new WpadImageView(context, TOUCH_KIND.NONE, 477, 622, R.drawable.guard_link_box_bgr, 0, LinkCtrlMainID.image.BG_LEFT);
+			ViewRegistration(layout, BgLeft, Common.ImgPosion.GetX(142), Common.ImgPosion.GetY(110));
+
+			BgRight = new WpadImageView(context, TOUCH_KIND.NONE, 477, 622, R.drawable.guard_link_box_bgr, 0, LinkCtrlMainID.image.BG_RIGHT);
+			ViewRegistration(layout, BgRight, Common.ImgPosion.GetX(661), Common.ImgPosion.GetY(110));
+
+			Title_Left = new WpadTextView(context, false, 477, 84, Gravity.CENTER, Color.BLACK, TitleFontSize, true, LinkCtrlMainID.text.TITLE_L);
+			ViewRegistration(layout, Title_Left, Common.ImgPosion.GetX(142), Common.ImgPosion.GetY(110));
+			Title_Left.setText("외출");
+
+			Title_Right = new WpadTextView(context, false, 477, 84, Gravity.CENTER, Color.BLACK, TitleFontSize, true, LinkCtrlMainID.text.TITLE_L);
+			ViewRegistration(layout, Title_Right, Common.ImgPosion.GetX(661), Common.ImgPosion.GetY(110));
+			Title_Right.setText("복귀");
+
+			for (int i = 0; i < GetOutModeLinkCount(); i++) {
+				//LeftBgArray[i] = new WpadImageView(context, TOUCH_KIND.BUTTON_M, 477, 2, R.drawable.line_2px, 0, LinkCtrlMainID.image.LINE_L_BG_01 + i);
+				//ViewRegistration(layout, LeftBgArray[i], Common.ImgPosion.GetX(142), Common.ImgPosion.GetY(282 + 90*i));
+				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);
+			}
+
+			for (int i = 0; i < GetInModeLinkCount(); i++) {
+				//RightBAgrray[i] = new WpadImageView(context, TOUCH_KIND.BUTTON_M, 477, 2, R.drawable.line_2px, 0, LinkCtrlMainID.image.LINE_R_BG_01 + i);
+				//ViewRegistration(layout, RightBAgrray[i], Common.ImgPosion.GetX(661), ImgPosion.GetY(282 + 90*i));
+				if (mCombackHomeTextContents[i].equals(MODE_TEXT.WELCOME_LIGHT_D101)) {
+					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);
+				}
+				else {
+					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);
+				}
+			}
+			initInfo();
+		} catch (Exception e) {
+			Log.e(TAG, "[Exception] SetLinkCtrlMainScreen(Context context, RelativeLayout layout, WallPadAPI wpapi, int operationMode)");
+			e.printStackTrace();
+		}
+	}
+	
+	@Override
+	protected void onClose() {
+		// TODO Auto-generated method stub
+		super.onClose();
+		Log.d(TAG, "[onClose - Screen] --------------------------------------------");
+	}
+
+	@Override
+	public void Close() {
+		// TODO Auto-generated method stub
+		super.Close();
+		Log.d(TAG, "[Close - Screen] --------------------------------------------");
+	}
+
+	@Override
+	protected void onTouchEvent(View v, MotionEvent event) {
+		// TODO Auto-generated method stub
+		super.onTouchEvent(v, event);
+		try {
+			int TargetId = v.getId();
+			int MoveEvent = event.getAction();
+
+			if (MoveEvent == MotionEvent.ACTION_DOWN) {
+
+			}
+			else if (MoveEvent == MotionEvent.ACTION_UP) {
+				if (true) {
+					Sound().Play(SND.effect.TOUCH_LATCHED);
+				}
+				Log.d(TAG, "BUTTON ACTION_UP : " + TargetId);
+
+				boolean bChangeCheckBox = false;
+
+				// 자측 체크박스 처리
+				if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_01 || TargetId == LinkCtrlMainID.image.LINE_L_BG_01) {
+					if (m_OutModeCheckBox[0].GetCheckBoxState() == true) {
+						m_OutModeCheckBox[0].ChangeCheckBox(false);
+					}
+					else {
+						m_OutModeCheckBox[0].ChangeCheckBox(true);
+					}
+					bChangeCheckBox = true;
+				}
+				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_02 || TargetId == LinkCtrlMainID.image.LINE_L_BG_02) {
+					if (m_OutModeCheckBox[1].GetCheckBoxState() == true) m_OutModeCheckBox[1].ChangeCheckBox(false);
+					else m_OutModeCheckBox[1].ChangeCheckBox(true);
+					bChangeCheckBox = true;
+				}
+				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_03 || TargetId == LinkCtrlMainID.image.LINE_L_BG_03) {
+					if (m_OutModeCheckBox[2].GetCheckBoxState() == true) m_OutModeCheckBox[2].ChangeCheckBox(false);
+					else m_OutModeCheckBox[2].ChangeCheckBox(true);
+					bChangeCheckBox = true;
+				}
+				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_04 || TargetId == LinkCtrlMainID.image.LINE_L_BG_04) {
+					if (m_OutModeCheckBox[3].GetCheckBoxState() == true) m_OutModeCheckBox[3].ChangeCheckBox(false);
+					else m_OutModeCheckBox[3].ChangeCheckBox(true);
+					bChangeCheckBox = true;
+				}
+				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_05 || TargetId == LinkCtrlMainID.image.LINE_L_BG_05) {
+					if (m_OutModeCheckBox[4].GetCheckBoxState() == true) m_OutModeCheckBox[4].ChangeCheckBox(false);
+					else m_OutModeCheckBox[4].ChangeCheckBox(true);
+					bChangeCheckBox = true;
+				}
+				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_L_06 || TargetId == LinkCtrlMainID.image.LINE_L_BG_06) {
+					if (m_OutModeCheckBox[5].GetCheckBoxState() == true) m_OutModeCheckBox[5].ChangeCheckBox(false);
+					else m_OutModeCheckBox[5].ChangeCheckBox(true);
+					bChangeCheckBox = true;
+				}
+				// 우측 체크 박스 처리
+				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_01 || TargetId == LinkCtrlMainID.image.LINE_R_BG_01) {
+					if (mCombackHomeTextContents[0].equals(MODE_TEXT.RELEASE_GUARD)) {
+
+					}
+					else {
+						if (m_CombackHomeCheckBox[0].GetCheckBoxState() == true) m_CombackHomeCheckBox[0].ChangeCheckBox(false);
+						else m_CombackHomeCheckBox[0].ChangeCheckBox(true);
+						bChangeCheckBox = true;
+					}
+				}
+				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_02 || TargetId == LinkCtrlMainID.image.LINE_R_BG_02) {
+					if (m_CombackHomeCheckBox[1].GetCheckBoxState() == true) m_CombackHomeCheckBox[1].ChangeCheckBox(false);
+					else m_CombackHomeCheckBox[1].ChangeCheckBox(true);
+					bChangeCheckBox = true;
+				}
+				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_03 || TargetId == LinkCtrlMainID.image.LINE_R_BG_03) {
+					if (m_CombackHomeCheckBox[2].GetCheckBoxState() == true) m_CombackHomeCheckBox[2].ChangeCheckBox(false);
+					else m_CombackHomeCheckBox[2].ChangeCheckBox(true);
+					bChangeCheckBox = true;
+				}
+				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_04 || TargetId == LinkCtrlMainID.image.LINE_R_BG_04) {
+					if (m_CombackHomeCheckBox[3].GetCheckBoxState() == true) m_CombackHomeCheckBox[3].ChangeCheckBox(false);
+					else m_CombackHomeCheckBox[3].ChangeCheckBox(true);
+					bChangeCheckBox = true;
+				}
+				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_05 || TargetId == LinkCtrlMainID.image.LINE_R_BG_05) {
+					if (m_CombackHomeCheckBox[4].GetCheckBoxState() == true) m_CombackHomeCheckBox[4].ChangeCheckBox(false);
+					else m_CombackHomeCheckBox[4].ChangeCheckBox(true);
+					bChangeCheckBox = true;
+				}
+				else if (TargetId == LinkCtrlMainID.button.CHECKBOX_R_05 || TargetId == LinkCtrlMainID.image.LINE_R_BG_05) {
+					if (m_CombackHomeCheckBox[5].GetCheckBoxState() == true) m_CombackHomeCheckBox[5].ChangeCheckBox(false);
+					else m_CombackHomeCheckBox[5].ChangeCheckBox(true);
+					bChangeCheckBox = true;
+				}
+				else if (TargetId == LinkCtrlMainID.button.SETBTN_R_01) {
+					// 웰컴조명 설정 버튼
+					((MainActivity)(getContext())).StartPopup(ID.screen.PopupWelcomeLightSelect);
+				}
+
+				if (bChangeCheckBox == true) {
+					saveLinkDevice();
+				}
+			}
+		} catch (Exception e) {
+			Log.e(TAG, "[Exception] onTouchEvent(View v, MotionEvent event)");
+			e.printStackTrace();
+		}
+	}
+
+	
+	@Override
+	public void ViewRegistration(RelativeLayout ParentsLayout,
+			WpadImageView nImageView, int MarginLeft, int MarginTop) {
+		// TODO Auto-generated method stub
+		super.ViewRegistration(ParentsLayout, nImageView, MarginLeft, MarginTop);
+	}
+
+	@Override
+	public void ViewRegistration(RelativeLayout ParentsLayout,
+			WpadTextView nTextView, int MarginLeft, int MarginTop) {
+		// TODO Auto-generated method stub
+		super.ViewRegistration(ParentsLayout, nTextView, MarginLeft, MarginTop);
+	}
+
+	
+	/////////////////////////////////////// 테스트 코드 
+	
+	
+
+}