package kr.co.icontrols.ilp300_700.screen;

import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.widget.RelativeLayout;

import kr.co.icontrols.ilp300_700.MainActivity;
import kr.co.icontrols.ilp300_700.R;
import kr.co.icontrols.ilp300_700.global.Configure.ConfigValue;
import kr.co.icontrols.ilp300_700.global.DataClasses.POSITION;
import kr.co.icontrols.ilp300_700.global.Declare;
import kr.co.icontrols.ilp300_700.global.Global;
import kr.co.icontrols.ilp300_700.global.ID;
import kr.co.icontrols.wallpadsupport.WpadImageView;
import kr.co.icontrols.wallpadsupport.WpadScreen;
import kr.co.icontrols.wallpadsupport.WpadTextView;

public class AdminSetMain extends WpadScreen {

    String TAG = "AdminSetMain";

    boolean bLOG = true;   // true, false
    boolean bLOG_DEBUG = false;   // true, false
    boolean bLOG_INFO = true;   // true, false
    Context mContext;
    WpadImageView Image_Background;
    WpadTextView Text_Title;
    WpadTextView Text_Line_01;
    WpadTextView Text_Line_02;
    WpadTextView Text_Line_03;
    int nFontSize_Instruction = 28;
    boolean bFontNonBold = false;
    boolean bFontBold = true;
    String strText_Title = "";
    String strText_Line_01 = "";
    String strText_Line_02 = "";
    String strText_Line_03 = "";
    String strTitle_AdminMain = "관리자 메뉴";
    String strTitle_AdminSetting = "1] 설정기능";
    String strTitle_AdminInquiry = "2] 조회기능";
    String strTitle_AdminTest = "3] 시험기능";
    public AdminSetMain(Context context, RelativeLayout layout) {
        super(context, layout);
        try {
            LOG("------------------ [START - AdminSetMain] -------------------");

            Initialize();
            mContext = context;

            Image_Background = new WpadImageView(context, 0, Declare.DeviceInfo.getScreenSizeFullW(ConfigValue.DEVICE_MODELTYPE), Declare.DeviceInfo.getScreenSizeFullH(ConfigValue.DEVICE_MODELTYPE), R.drawable.bg_back, 0, ID.SCREENS.ADMINSETMAIN.ELEMENTS.IMAGES.BACKGROUND);
            ViewRegistration(layout, Image_Background, 0, 0);

            Text_Title = new WpadTextView(context, false, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.TITLE).W, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.TITLE).H, Gravity.CENTER, Color.WHITE, nFontSize_Instruction, bFontBold, ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.TITLE);
            ViewRegistration(layout, Text_Title, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.TITLE).X, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.TITLE).Y);
            Text_Title.setText(strText_Title);

            Text_Line_01 = new WpadTextView(context, false, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_01).W, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_01).H, Gravity.LEFT, Color.WHITE, nFontSize_Instruction, bFontNonBold, ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_01);
            ViewRegistration(layout, Text_Line_01, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_01).X, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_01).Y);
            Text_Line_01.setText(strText_Line_01);

            Text_Line_02 = new WpadTextView(context, false, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_02).W, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_02).H, Gravity.LEFT, Color.WHITE, nFontSize_Instruction, bFontNonBold, ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_02);
            ViewRegistration(layout, Text_Line_02, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_02).X, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_02).Y);
            Text_Line_02.setText(strText_Line_02);

            Text_Line_03 = new WpadTextView(context, false, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_03).W, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_03).H, Gravity.LEFT, Color.WHITE, nFontSize_Instruction, bFontNonBold, ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_03);
            ViewRegistration(layout, Text_Line_03, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_03).X, getPosition(ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_03).Y);
            Text_Line_03.setText(strText_Line_03);

            ((MainActivity) mContext).setAutoScreenChange(ID.SCREENS.Main, MainActivity.nDefaultScreenTimeout);
        } catch (Exception e) {
            Log.e(TAG, "[Exception] AdminSetMain(...) : " + e);
            e.printStackTrace();
        }
    }

    private void LOG(String log) {
        if (bLOG) Log.v(TAG, log);
    }

    private void LOG_DEBUG(String log) {
        if (bLOG_DEBUG) Log.d(TAG, log);
    }

    private void LOG_INFO(String log) {
        if (bLOG_INFO) Log.i(TAG, log);
    }

    protected void Initialize() {
        try {
            Global.nAdminSetPageNumber = 1;

            strText_Title = strTitle_AdminMain;
            strText_Line_01 = strTitle_AdminSetting;
            strText_Line_02 = strTitle_AdminInquiry;
            strText_Line_03 = strTitle_AdminTest;
        } catch (Exception e) {
            Log.e(TAG, "[Exception] Initialize() : " + e);
            e.printStackTrace();
        }
    }

    @Override
    protected void onClose() {
        try {
            LOG("------------------ [onClose - AdminSetMain] -------------------");
            Global.strInputPW = "";
        } catch (Exception e) {
            Log.e(TAG, "[Exception] onClose() : " + e);
            e.printStackTrace();
        }
        super.onClose();
    }

    @Override
    protected void onBrReceive(Intent intent) {
        try {
            LOG("[onBrReceive] Intent : " + intent);
        } catch (Exception e) {
            Log.e(TAG, "[Exception] onBrReceive(...) : " + e);
            e.printStackTrace();
        }
        super.onBrReceive(intent);
    }

    @Override
    protected void onKeyDown(int keyCode, KeyEvent event) {
        try {
//            LOG("[onKeyDown] keyCode [" + keyCode + "], event [" + event + "]");
            if (keyCode == Declare.Button.NUMBER_01) {
                super.setChangeScreen(ID.SCREENS.AdminSet_Setting);
            } else if (keyCode == Declare.Button.NUMBER_02) {
                super.setChangeScreen(ID.SCREENS.AdminSet_Inquiry);
            } else if (keyCode == Declare.Button.NUMBER_03) {
                super.setChangeScreen(ID.SCREENS.AdminSet_Test);
            } else if (keyCode == Declare.Button.CANCEL || keyCode == Declare.Button.TACT_CANCEL) {
                super.setChangeScreen(ID.SCREENS.Main);
            }
        } catch (Exception e) {
            Log.e(TAG, "[Exception] onKeyDown(...) : " + e);
            e.printStackTrace();
        }
        super.onKeyDown(keyCode, event);
    }

    public POSITION getPosition(int nID) {
//        LOG("[getPosition] ConfigValue.DEVICE_MODELTYPE = " + ConfigValue.DEVICE_MODELTYPE );
        POSITION position = new POSITION();
        position.SetPosition(0, 0, 480, 272);
        try {
            switch (nID) {
                case ID.SCREENS.ADMINSETMAIN.ELEMENTS.IMAGES.BACKGROUND:
                    position.SetPosition(0, 0, 480, 272);
                    return position;

                case ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.TITLE:
                    position.SetPosition(0, 24, 480, 40);
                    return position;

                case ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_01:
                    position.SetPosition(30, 84, 420, 40);
                    return position;

                case ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_02:
                    position.SetPosition(30, 134, 420, 40);
                    return position;

                case ID.SCREENS.ADMINSETMAIN.ELEMENTS.TEXTS.LINE_03:
                    position.SetPosition(30, 184, 420, 40);
                    return position;

                default:
                    return position;
            }
        } catch (Exception e) {
            Log.e(TAG, "[Exception] getPosition() : " + e);
            e.printStackTrace();
            return position;
        }
    }


}