using System;
using System.Linq;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using SmartX;
using ITC81DB_0H.Controls;
using ITC81DB_0H.DialogForms;
using ITC81DB_2H_ImageDll;

namespace ITC81DB_0H.Forms
{
    public partial class FormMenu : Form
    {
        #region Field
        private FormMain m_ParentForm;

        private DataStore.MenuSide SelectedSideMenu;
        private Collection<SmartButton> CollectionButtonMenu;

        // 기본설정
        public ControlCenterBasicDataBackup CenterBasicDataBackup;
        public ControlCenterBasicDataStatistics CenterBasicDataStatistics;
        public ControlCenterBasicHelp CenterBasicHelp;
        public ControlCenterBasicProduct CenterBasicProduct;
        public ControlCenterBasicTime CenterBasicTime;
        // 환경설정
        public ControlCenterConfiCountingOutput CenterConfiCountingOutput;
        public ControlCenterConfiSerial CenterConfiSerial;
        public ControlCenterConfiEthernet CenterConfiEthernet;
        public ControlCenterConfiHelp CenterConfiHelp;
        public ControlCenterConfiOption CenterConfiOption;
        public ControlCenterConfiOptionBoard CenterConfiOptionBoard;
        // 장비설정
        public ControlCenterEquipHelp CenterEquipHelp;
        public ControlCenterEquipInitialize CenterEquipInitialize;
        public ControlCenterEquipUpdate CenterEquipUpdate;
        public ControlCenterEquipFunctionSetting CenterEquipFunctionSetting;
        public ControlCenterEquipUser CenterEquipUser;
        public ControlCenterEquipTest CenterEquipTest;
        public ControlCenterEquipEngineer CenterEquipEngineer;
        // 시스템설정
        public ControlCenterSystemAutoZero CenterSystemAutoZero;
        public ControlCenterSystemCalibration CenterSystemCalibration;
        public ControlCenterSystemExternalOutput CenterSystemExternalOutput;
        public ControlCenterSystemHelp CenterSystemHelp;
        public ControlCenterSystemIOTest CenterSystemIOTest;
        public ControlCenterSystemJudgmentManual CenterSystemJudgmentManual;
        public ControlCenterSystemSorterSetting CenterSystemSorterSetting;
        public ControlCenterSystemBLDCMotorSetting CenterSystemBLDCMotorSetting;
        // 시스템 정보
        public ControlCenterInforHelp CenterInforHelp;
        public ControlCenterInforSystem CenterInforSystem;
        public ControlCenterInforAS CenterInforAS;
        public ControlCenterInforSystem2 CenterInforSystem2;
        public ControlCenterInforSystem3 CenterInforSystem3;

        // Bottom Menu
        private ControlBottomBasic bottomBasic;
        private ControlBottomConfiguration bottomConfiguration;
        private ControlBottomEquipment bottomEquipment;
        private ControlBottomInformation bottomInformation;
        private ControlBottomSystem bottomSystem;
        #endregion

        #region Constructor
        public FormMenu(FormMain parent)
        {
            InitializeComponent();

            this.ParentForm = parent;

            this.DefaultSetting();
            this.InitializeDesign();
        }
        #endregion

        #region Property
        public FormMain ParentForm
        {
            get { return this.m_ParentForm; }
            private set { this.m_ParentForm = value; }
        } 
        #endregion

        #region Method
        public void InitializeDesign()
        {
            Class1 images = new Class1();

            if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.English)
            {
                this.labelTitleRoot.Font = new Font("새굴림", 20, FontStyle.Bold);

                this.buttonBasic.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuDefaultDisable));
                this.buttonBasic.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuDefaultDown));
                this.buttonBasic.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuDefaultUp));
                this.buttonConfiguration.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuConfigDisable));
                this.buttonConfiguration.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuConfigDown));
                this.buttonConfiguration.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuConfigUp));
                this.buttonSystem.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuSystemDisable));
                this.buttonSystem.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuSystemDown));
                this.buttonSystem.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuSystemUp));
                this.buttonEquipment.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuEquipmentDisable));
                this.buttonEquipment.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuEquipmentDown));
                this.buttonEquipment.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuEquipmentUp));
                this.buttonInformation.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuInformationDisable));
                this.buttonInformation.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuInformationDown));
                this.buttonInformation.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.engFormMenuInformationUp));
            }
            else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese)
            {
                this.labelTitleRoot.Font = new Font("새굴림", 20, FontStyle.Bold);

                this.buttonBasic.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuDefaultDisable));
                this.buttonBasic.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuDefaultDown));
                this.buttonBasic.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuDefaultUp));
                this.buttonConfiguration.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuConfigDisable));
                this.buttonConfiguration.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuConfigDown));
                this.buttonConfiguration.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuConfigUp));
                this.buttonSystem.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuSystemDisable));
                this.buttonSystem.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuSystemDown));
                this.buttonSystem.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuSystemUp));
                this.buttonEquipment.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuEquipmentDisable));
                this.buttonEquipment.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuEquipmentDown));
                this.buttonEquipment.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuEquipmentUp));
                this.buttonInformation.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuInformationDisable));
                this.buttonInformation.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuInformationDown));
                this.buttonInformation.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.chnFormMenuInformationUp));
            }
            else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Czech)
            {
            }
            else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian)
            {
                this.labelTitleRoot.Font = new Font("새굴림", 14, FontStyle.Bold);

                this.buttonBasic.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuDefaultDisable));
                this.buttonBasic.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuDefaultDown));
                this.buttonBasic.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuDefaultUp));
                this.buttonConfiguration.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuConfigDisable));
                this.buttonConfiguration.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuConfigDown));
                this.buttonConfiguration.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuConfigUp));
                this.buttonSystem.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuSystemDisable));
                this.buttonSystem.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuSystemDown));
                this.buttonSystem.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuSystemUp));
                this.buttonEquipment.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuEquipmentDisable));
                this.buttonEquipment.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuEquipmentDown));
                this.buttonEquipment.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuEquipmentUp));
                this.buttonInformation.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuInformationDisable));
                this.buttonInformation.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuInformationDown));
                this.buttonInformation.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.rusFormMenuInformationUp));
            }
            else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German)
            {
                this.labelTitleRoot.Font = new Font("새굴림", 20, FontStyle.Bold);

                this.buttonBasic.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuDefaultDisable));
                this.buttonBasic.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuDefaultDown));
                this.buttonBasic.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuDefaultUp));
                this.buttonConfiguration.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuConfigDisable));
                this.buttonConfiguration.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuConfigDown));
                this.buttonConfiguration.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuConfigUp));
                this.buttonSystem.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuSystemDisable));
                this.buttonSystem.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuSystemDown));
                this.buttonSystem.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuSystemUp));
                this.buttonEquipment.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuEquipmentDisable));
                this.buttonEquipment.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuEquipmentDown));
                this.buttonEquipment.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuEquipmentUp));
                this.buttonInformation.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuInformationDisable));
                this.buttonInformation.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuInformationDown));
                this.buttonInformation.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.gerFormMenuInformationUp));
            }
            else
            {
                this.labelTitleRoot.Font = new Font("새굴림", 20, FontStyle.Bold);

                this.buttonBasic.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuDefaultDisable));
                this.buttonBasic.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuDefaultDown));
                this.buttonBasic.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuDefaultUp));
                this.buttonConfiguration.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuConfigDisable));
                this.buttonConfiguration.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuConfigDown));
                this.buttonConfiguration.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuConfigUp));
                this.buttonSystem.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuSystemDisable));
                this.buttonSystem.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuSystemDown));
                this.buttonSystem.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuSystemUp));
                this.buttonEquipment.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuEquipmentDisable));
                this.buttonEquipment.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuEquipmentDown));
                this.buttonEquipment.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuEquipmentUp));
                this.buttonInformation.DisableImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuInformationDisable));
                this.buttonInformation.DownImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuInformationDown));
                this.buttonInformation.UpImage = new Bitmap(images.GetImage(Class1.ButtonImages.korFormMenuInformationUp));
            }

            this.UpdateDisplayUser(this.ParentForm.CurrentSystemStatus.CurrentUser);
        }
        private void DefaultSetting()
        {
            this.SelectedSideMenu = DataStore.MenuSide.Basic;

            this.CollectionButtonMenu = new Collection<SmartButton>();
            this.CollectionButtonMenu.Clear();
            this.CollectionButtonMenu.Add(this.buttonBasic);
            this.CollectionButtonMenu.Add(this.buttonSystem);
            this.CollectionButtonMenu.Add(this.buttonEquipment);
            this.CollectionButtonMenu.Add(this.buttonInformation);
            this.CollectionButtonMenu.Add(this.buttonMain);

            if (this.ParentForm.SystemConfig1.IsLogin == true)
                this.buttonHiddenMenu.Enabled = false;
            else
                this.buttonHiddenMenu.Enabled = true;

            this.InitializeControl();
        }
        private void InitializeControl()
        {
            this.CreateCenterBasicControl();
            this.CreateCenterConfigurationControl();
            this.CreateCenterEquipmentControl();
            this.CreateCenterSystemControl();
            this.CreateCenterInformationControl();

            #region new
            // Bottom Menu
            this.bottomBasic = new ControlBottomBasic(this);
            this.bottomConfiguration = new ControlBottomConfiguration(this);
            this.bottomEquipment = new ControlBottomEquipment(this);
            this.bottomInformation = new ControlBottomInformation(this);
            this.bottomSystem = new ControlBottomSystem(this);
            #endregion

            #region Location
            // Bottom Menu
            this.bottomBasic.Location = new Point(0, 535);
            this.bottomConfiguration.Location = new Point(0, 535);
            this.bottomEquipment.Location = new Point(0, 535);
            this.bottomInformation.Location = new Point(0, 535);
            this.bottomSystem.Location = new Point(0, 535);
            #endregion

            #region Add
            // Bottom Menu
            this.Controls.Add(this.bottomBasic);
            this.Controls.Add(this.bottomConfiguration);
            this.Controls.Add(this.bottomEquipment);
            this.Controls.Add(this.bottomInformation);
            this.Controls.Add(this.bottomSystem);
            #endregion
        }
        private void CreateCenterBasicControl()
        {
            this.CenterBasicHelp = new ControlCenterBasicHelp(this);
            this.CenterBasicProduct = new ControlCenterBasicProduct(this);
            this.CenterBasicDataBackup = new ControlCenterBasicDataBackup(this);
            this.CenterBasicDataStatistics = new ControlCenterBasicDataStatistics(this);
            this.CenterBasicTime = new ControlCenterBasicTime(this);

            this.CenterBasicHelp.Location = new Point(0, 65);
            this.CenterBasicProduct.Location = new Point(0, 65);
            this.CenterBasicDataBackup.Location = new Point(0, 65);
            this.CenterBasicDataStatistics.Location = new Point(0, 65);
            this.CenterBasicTime.Location = new Point(0, 65);

            this.Controls.Add(this.CenterBasicHelp);
            this.Controls.Add(this.CenterBasicProduct);
            this.Controls.Add(this.CenterBasicDataBackup);
            this.Controls.Add(this.CenterBasicDataStatistics);
            this.Controls.Add(this.CenterBasicTime);
        }
        private void CreateCenterConfigurationControl()
        {
            this.CenterConfiHelp = new ControlCenterConfiHelp(this);
            this.CenterConfiSerial = new ControlCenterConfiSerial(this);
            this.CenterConfiCountingOutput = new ControlCenterConfiCountingOutput(this);
            this.CenterConfiEthernet = new ControlCenterConfiEthernet(this);
            this.CenterConfiOption = new ControlCenterConfiOption(this);
            this.CenterConfiOptionBoard = new ControlCenterConfiOptionBoard(this);

            this.CenterConfiHelp.Location = new Point(0, 65);
            this.CenterConfiSerial.Location = new Point(0, 65);
            this.CenterConfiCountingOutput.Location = new Point(0, 65);
            this.CenterConfiEthernet.Location = new Point(0, 65);
            this.CenterConfiOption.Location = new Point(0, 65);
            this.CenterConfiOptionBoard.Location = new Point(0, 65);

            this.Controls.Add(this.CenterConfiHelp);
            this.Controls.Add(this.CenterConfiSerial);
            this.Controls.Add(this.CenterConfiCountingOutput);
            this.Controls.Add(this.CenterConfiEthernet);
            this.Controls.Add(this.CenterConfiOption);
            this.Controls.Add(this.CenterConfiOptionBoard);
        }
        private void CreateCenterEquipmentControl()
        {
            this.CenterEquipHelp = new ControlCenterEquipHelp(this);
            this.CenterEquipUpdate = new ControlCenterEquipUpdate(this);
            this.CenterEquipInitialize = new ControlCenterEquipInitialize(this);
            this.CenterEquipFunctionSetting = new ControlCenterEquipFunctionSetting(this);
            this.CenterEquipUser = new ControlCenterEquipUser(this);
            this.CenterEquipTest = new ControlCenterEquipTest(this);
            this.CenterEquipEngineer = new ControlCenterEquipEngineer(this);

            this.CenterEquipHelp.Location = new Point(0, 65);
            this.CenterEquipUpdate.Location = new Point(0, 65);
            this.CenterEquipInitialize.Location = new Point(0, 65);
            this.CenterEquipFunctionSetting.Location = new Point(0, 65);
            this.CenterEquipUser.Location = new Point(0, 65);
            this.CenterEquipTest.Location = new Point(0, 65);
            this.CenterEquipEngineer.Location = new Point(0, 65);

            this.Controls.Add(this.CenterEquipHelp);
            this.Controls.Add(this.CenterEquipUpdate);
            this.Controls.Add(this.CenterEquipInitialize);
            this.Controls.Add(this.CenterEquipFunctionSetting);
            this.Controls.Add(this.CenterEquipUser);
            this.Controls.Add(this.CenterEquipTest);
            this.Controls.Add(this.CenterEquipEngineer);
        }
        private void CreateCenterSystemControl()
        {
            this.CenterSystemCalibration = new ControlCenterSystemCalibration(this);
            this.CenterSystemJudgmentManual = new ControlCenterSystemJudgmentManual(this);
            this.CenterSystemExternalOutput = new ControlCenterSystemExternalOutput(this);
            this.CenterSystemHelp = new ControlCenterSystemHelp(this);
            this.CenterSystemIOTest = new ControlCenterSystemIOTest(this);
            this.CenterSystemSorterSetting = new ControlCenterSystemSorterSetting(this);
            this.CenterSystemBLDCMotorSetting = new ControlCenterSystemBLDCMotorSetting(this);
            this.CenterSystemAutoZero = new ControlCenterSystemAutoZero(this);

            this.CenterSystemCalibration.Location = new Point(0, 65);
            this.CenterSystemJudgmentManual.Location = new Point(0, 65);
            this.CenterSystemExternalOutput.Location = new Point(0, 65);
            this.CenterSystemHelp.Location = new Point(0, 65);
            this.CenterSystemIOTest.Location = new Point(0, 65);
            this.CenterSystemSorterSetting.Location = new Point(0, 65);
            this.CenterSystemBLDCMotorSetting.Location = new Point(0, 65);
            this.CenterSystemAutoZero.Location = new Point(0, 65);

            this.Controls.Add(this.CenterSystemCalibration);
            this.Controls.Add(this.CenterSystemJudgmentManual);
            this.Controls.Add(this.CenterSystemExternalOutput);
            this.Controls.Add(this.CenterSystemHelp);
            this.Controls.Add(this.CenterSystemIOTest);
            this.Controls.Add(this.CenterSystemSorterSetting);
            this.Controls.Add(this.CenterSystemBLDCMotorSetting);
            this.Controls.Add(this.CenterSystemAutoZero);
        }
        private void CreateCenterInformationControl()
        {
            this.CenterInforHelp = new ControlCenterInforHelp(this);
            this.CenterInforSystem = new ControlCenterInforSystem(this);
            this.CenterInforAS = new ControlCenterInforAS(this);
            this.CenterInforSystem2 = new ControlCenterInforSystem2(this);
            this.CenterInforSystem3 = new ControlCenterInforSystem3(this);

            this.CenterInforHelp.Location = new Point(0, 65);
            this.CenterInforSystem.Location = new Point(0, 65);
            this.CenterInforAS.Location = new Point(0, 65);
            this.CenterInforSystem2.Location = new Point(0, 65);
            this.CenterInforSystem3.Location = new Point(0, 65);

            this.Controls.Add(this.CenterInforHelp);
            this.Controls.Add(this.CenterInforSystem);
            this.Controls.Add(this.CenterInforAS);
            this.Controls.Add(this.CenterInforSystem2);
            this.Controls.Add(this.CenterInforSystem3);
        }

        public void CurrentControlEnable(bool enable)
        {
            foreach (SmartButton button in this.CollectionButtonMenu)
                button.Enabled = enable;

            switch (this.SelectedSideMenu)
            {
                case DataStore.MenuSide.Basic:
                    this.bottomBasic.CurrentControlEnable(enable);
                    break;
                case DataStore.MenuSide.Configuration:
                    this.bottomConfiguration.CurrentControlEnable(enable);
                    break;
                case DataStore.MenuSide.System:
                    this.bottomSystem.CurrentControlEnable(enable);
                    break;
                case DataStore.MenuSide.Equipment:
                    this.bottomEquipment.CurrentControlEnable(enable);
                    break;
                case DataStore.MenuSide.Information:
                    this.bottomInformation.CurrentControlEnable(enable);
                    break;
                default:
                    break;
            }
        }
        private void UpdateDisplayUser(UserItem user)
        {
            string id = "", group = "";

            switch (user.Group)
            {
                case DataStore.UserGroup.LogOut:
                    id = "";
                    if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German)
                        group = "AUS";
                    else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese)
                        group = "关闭";
                    else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian)
                        group = "Выкл.";
                    else
                        group = "Off";

                    if (this.labelUserLevel.ForeColor != this.ParentForm.ColorLogOff)
                        this.labelUserLevel.ForeColor = this.labelUserID.ForeColor = this.ParentForm.ColorLogOff;

                    this.buttonBasic.Enabled = true;
                    this.buttonConfiguration.Enabled = false;
                    this.buttonSystem.Enabled = false;
                    this.buttonEquipment.Enabled = false;
                    this.buttonInformation.Enabled = true;
                    break;
                case DataStore.UserGroup.Level1Operator:
                    id = user.ID;
                    if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German)
                        group = "Stufe1";
                    else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese)
                        group = "级别1";
                    else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian)
                        group = "Уровень1";
                    else
                        group = "Level1";

                    if (this.labelUserLevel.ForeColor != this.ParentForm.ColorLogOn)
                        this.labelUserLevel.ForeColor = this.labelUserID.ForeColor = this.ParentForm.ColorLogOn;

                    this.buttonBasic.Enabled = true;
                    this.buttonConfiguration.Enabled = false;
                    this.buttonSystem.Enabled = false;
                    this.buttonEquipment.Enabled = false;
                    this.buttonInformation.Enabled = true;
                    break;
                case DataStore.UserGroup.Level2Engineer:
                    id = user.ID;
                    if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German)
                        group = "Stufe2";
                    else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese)
                        group = "级别2";
                    else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian)
                        group = "Уровень2";
                    else
                        group = "Level2";

                    if (this.labelUserLevel.ForeColor != this.ParentForm.ColorLogOn)
                        this.labelUserLevel.ForeColor = this.labelUserID.ForeColor = this.ParentForm.ColorLogOn;

                    this.buttonBasic.Enabled = true;
                    this.buttonConfiguration.Enabled = true;
                    this.buttonSystem.Enabled = true;
                    this.buttonEquipment.Enabled = false;
                    this.buttonInformation.Enabled = true;
                    break;
                case DataStore.UserGroup.Level3Manager:
                    id = user.ID;
                    if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German)
                        group = "Stufe3";
                    else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese)
                        group = "级别3";
                    else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian)
                        group = "Уровень3";
                    else
                        group = "Level3";

                    if (this.labelUserLevel.ForeColor != this.ParentForm.ColorLogOn)
                        this.labelUserLevel.ForeColor = this.labelUserID.ForeColor = this.ParentForm.ColorLogOn;
                   
                        this.buttonBasic.Enabled = true;
                    this.buttonConfiguration.Enabled = true;
                    this.buttonSystem.Enabled = true;
                    this.buttonEquipment.Enabled = true;
                    this.buttonInformation.Enabled = true;
                    break;
                case DataStore.UserGroup.Level4Developer:
                    id = user.ID;
                    if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German)
                        group = "Stufe4";
                    else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese)
                        group = "级别4";
                    else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian)
                        group = "Уровень4";
                    else
                        group = "Level4";

                    if (this.labelUserLevel.ForeColor != this.ParentForm.ColorLogOn)
                        this.labelUserLevel.ForeColor = this.labelUserID.ForeColor = this.ParentForm.ColorLogOn;

                    this.buttonBasic.Enabled = true;
                    this.buttonConfiguration.Enabled = true;
                    this.buttonSystem.Enabled = true;
                    this.buttonEquipment.Enabled = true;
                    this.buttonInformation.Enabled = true;
                    break;
                default:
                    id = "";
                    if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German)
                        group = "AUS";
                    else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese)
                        group = "关闭";
                    else if (this.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian)
                        group = "Выкл.";
                    else
                        group = "Off";

                    if (this.labelUserLevel.ForeColor != this.ParentForm.ColorLogOff)
                        this.labelUserLevel.ForeColor = this.labelUserID.ForeColor = this.ParentForm.ColorLogOff;

                    this.buttonBasic.Enabled = false;
                    this.buttonConfiguration.Enabled = false;
                    this.buttonSystem.Enabled = false;
                    this.buttonEquipment.Enabled = false;
                    this.buttonInformation.Enabled = true;
                    break;
            }

            if (this.labelUserLevel.Text != group)
                this.labelUserLevel.Text = group;
            if (this.labelUserID.Text != id)
                this.labelUserID.Text = id;
        }
        private bool EquipmentRun(DataStore.DisplayStore currentDisplay)
        {
            if (currentDisplay == DataStore.DisplayStore.SystemJudgmentManual
                || currentDisplay == DataStore.DisplayStore.SystemSorterSetting
                || currentDisplay == DataStore.DisplayStore.SystemBLDCMotorSetting)
                return true;
            else
                return false;
        }

        private void DisplaySideMenu(DataStore.MenuSide menu)
        {
            switch (menu)
            {
                case DataStore.MenuSide.Basic:
                    this.bottomBasic.Visible = true;
                    this.bottomConfiguration.Visible = false;
                    this.bottomSystem.Visible = false;
                    this.bottomEquipment.Visible = false;
                    this.bottomInformation.Visible = false;

                    this.bottomBasic.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    break;
                case DataStore.MenuSide.Configuration:
                    this.bottomBasic.Visible = false;
                    this.bottomConfiguration.Visible = true;
                    this.bottomSystem.Visible = false;
                    this.bottomEquipment.Visible = false;
                    this.bottomInformation.Visible = false;

                    this.bottomConfiguration.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    break;
                case DataStore.MenuSide.System:
                    this.bottomBasic.Visible = false;
                    this.bottomConfiguration.Visible = false;
                    this.bottomSystem.Visible = true;
                    this.bottomEquipment.Visible = false;
                    this.bottomInformation.Visible = false;

                    this.bottomSystem.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    break;
                case DataStore.MenuSide.Equipment:
                    this.bottomBasic.Visible = false;
                    this.bottomConfiguration.Visible = false;
                    this.bottomSystem.Visible = false;
                    this.bottomEquipment.Visible = true;
                    this.bottomInformation.Visible = false;

                    this.bottomEquipment.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    break;
                case DataStore.MenuSide.Information:
                    this.bottomBasic.Visible = false;
                    this.bottomConfiguration.Visible = false;
                    this.bottomSystem.Visible = false;
                    this.bottomEquipment.Visible = false;
                    this.bottomInformation.Visible = true;

                    this.bottomInformation.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    break;
                default:
                    break;
            }
        }
        public void DisplayHiddenMenu(DataStore.DisplayStore menu, SystemConfigurationItem1 systemConfig1)
        {
            switch (menu)
            {
                case DataStore.DisplayStore.MainDisplay:
                    this.ParentForm.ChildFormMainDisplay.DisplayHiddenMenu(true);
                    break;
                case DataStore.DisplayStore.ConfiEthernet:
                    this.CenterConfiEthernet.DisplayHiddenMenu(true);
                    break;
                case DataStore.DisplayStore.EquipInitialize:
                    this.CenterEquipInitialize.DisplayHiddenMenu(true);
                    break;
                case DataStore.DisplayStore.EquipFuctionSetting:
                    this.CenterEquipFunctionSetting.DisplayHiddenMenu(true);
                    break;
                case DataStore.DisplayStore.InforSystem:
                    string temp = systemConfig1.MainBoardVersion.Replace(".", "");
                    try
                    {
                        if (int.Parse(temp) >= 20000)
                            this.CenterInforSystem.DisplayHiddenMenu(true);
                    }
                    catch
                    {
                    }
                    break;
                case DataStore.DisplayStore.EquipHelp:
                    DialogFormPasswordKeyPad password = new DialogFormPasswordKeyPad(8, this.ParentForm.SystemConfig1.Language, this.ParentForm.CurrentSystemStatus.CurrentUserPasswordType);
                    DialogResult dialogResult = password.ShowDialog();
                    if (dialogResult == DialogResult.OK)
                    {
                        this.CenterEquipHelp.DisplayHiddenMenu(true);
                        this.bottomEquipment.DisplayHiddenMenu(true);
                    }
                    break;
                default:
                    break;
            }
        }
        public void DisplayBottomBasic(DataStore.MenuBottomBasic menu)
        {
            switch (menu)
            {
                case DataStore.MenuBottomBasic.DataBackup:
                    this.CenterBasicDataBackup.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterBasicDataBackup.BringToFront();
                    break;
                case DataStore.MenuBottomBasic.DataStatistics:
                    this.CenterBasicDataStatistics.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterBasicDataStatistics.BringToFront();
                    break;
                case DataStore.MenuBottomBasic.Help:
                    this.CenterBasicHelp.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterBasicHelp.BringToFront();
                    break;
                case DataStore.MenuBottomBasic.Product:
                    this.CenterBasicProduct.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterBasicProduct.BringToFront();
                    break;
                case DataStore.MenuBottomBasic.Time:
                    this.CenterBasicTime.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterBasicTime.BringToFront();
                    break;
                default:
                    break;
            }

            this.bottomBasic.UpdateDisplayMenuButton(menu);
        }
        public void DisplayBottomConfiguration(DataStore.MenuBottomConfiguration menu)
        {
            switch (menu)
            {
                case DataStore.MenuBottomConfiguration.CountingOutput:
                    this.CenterConfiCountingOutput.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterConfiCountingOutput.BringToFront();
                    break;
                case DataStore.MenuBottomConfiguration.SerialCOM1:
                    this.bottomConfiguration.CurrentMenu = DataStore.MenuBottomConfiguration.SerialCOM1;
                    this.CenterConfiSerial.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterConfiSerial.BringToFront();
                    break;
                case DataStore.MenuBottomConfiguration.SerialCOM3:
                    this.bottomConfiguration.CurrentMenu = DataStore.MenuBottomConfiguration.SerialCOM3;
                    this.CenterConfiSerial.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterConfiSerial.BringToFront();
                    break;
                case DataStore.MenuBottomConfiguration.SerialCOM4:
                    this.bottomConfiguration.CurrentMenu = DataStore.MenuBottomConfiguration.SerialCOM4;
                    this.CenterConfiSerial.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterConfiSerial.BringToFront();
                    break;
                case DataStore.MenuBottomConfiguration.Ethernet:
                    this.bottomConfiguration.CurrentMenu = DataStore.MenuBottomConfiguration.Ethernet;
                    this.CenterConfiEthernet.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterConfiEthernet.BringToFront();
                    break;
                case DataStore.MenuBottomConfiguration.Help:
                    this.CenterConfiHelp.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterConfiHelp.BringToFront();
                    break;
                case DataStore.MenuBottomConfiguration.Option:
                    this.CenterConfiOption.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterConfiOption.BringToFront();
                    break;
                case DataStore.MenuBottomConfiguration.OptionBoard:
                    this.CenterConfiOptionBoard.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterConfiOptionBoard.BringToFront();
                    break;
                default:
                    break;
            }

            this.bottomConfiguration.UpdateDisplayMenuButton(menu);
        }
        public void DisplayBottomSystem(DataStore.MenuBottomSystem menu)
        {
            switch (menu)
            {
                case DataStore.MenuBottomSystem.Calibration:
                    this.CenterSystemCalibration.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterSystemCalibration.BringToFront();
                    break;
                case DataStore.MenuBottomSystem.Help:
                    this.CenterSystemHelp.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterSystemHelp.BringToFront();
                    break;
                case DataStore.MenuBottomSystem.IOTest:
                    this.CenterSystemIOTest.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterSystemIOTest.BringToFront();
                    break;
                case DataStore.MenuBottomSystem.JudgmentSetting:
                    this.CenterSystemJudgmentManual.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterSystemJudgmentManual.BringToFront();
                    break;
                case DataStore.MenuBottomSystem.SorterSetting:
                    this.CenterSystemSorterSetting.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterSystemSorterSetting.BringToFront();
                    break;
                case DataStore.MenuBottomSystem.AutoZero:
                    this.CenterSystemAutoZero.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterSystemAutoZero.BringToFront();
                    break;
                case DataStore.MenuBottomSystem.ExternalOutput:
                    this.CenterSystemExternalOutput.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterSystemExternalOutput.BringToFront();
                    break;
                case DataStore.MenuBottomSystem.BLDCMotorSetting:
                    this.CenterSystemBLDCMotorSetting.DisplayRefresh(this.ParentForm.CurrentSystemStatus, this.ParentForm.CollectionBLDCParameter);
                    this.CenterSystemBLDCMotorSetting.BringToFront();
                    break;
                default:
                    break;
            }

            this.bottomSystem.UpdateDisplayMenuButton(menu);
        }
        public void DisplayBottomEquipment(DataStore.MenuBottomEquipment menu)
        {
            this.bottomEquipment.DisplayHiddenMenu(false);

            switch (menu)
            {
                case DataStore.MenuBottomEquipment.Help:
                    this.CenterEquipHelp.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterEquipHelp.BringToFront();
                    break;
                case DataStore.MenuBottomEquipment.Initialize:
                    this.CenterEquipInitialize.BringToFront();
                    this.Refresh();
                    this.CenterEquipInitialize.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    break;
                case DataStore.MenuBottomEquipment.Update:
                    this.CenterEquipUpdate.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterEquipUpdate.BringToFront();
                    break;
                case DataStore.MenuBottomEquipment.FunctionSetting:
                    this.CenterEquipFunctionSetting.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterEquipFunctionSetting.BringToFront();
                    break;
                case DataStore.MenuBottomEquipment.User:
                    this.CenterEquipUser.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterEquipUser.BringToFront();
                    break;
                case DataStore.MenuBottomEquipment.Test:
                    this.CenterEquipTest.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterEquipTest.BringToFront();
                    break;
                case DataStore.MenuBottomEquipment.Engineer:
                    this.bottomEquipment.DisplayHiddenMenu(true);
                    this.CenterEquipEngineer.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterEquipEngineer.BringToFront();
                    break;
                default:
                    break;
            }

            this.bottomEquipment.UpdateDisplayMenuButton(menu);
        }
        public void DisplayBottomInformation(DataStore.MenuBottomInformation menu)
        {
            switch (menu)
            {
                case DataStore.MenuBottomInformation.Help:
                    this.CenterInforHelp.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterInforHelp.BringToFront();
                    break;
                case DataStore.MenuBottomInformation.SystemInformation:
                    this.CenterInforSystem.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterInforSystem.BringToFront();
                    break;
                case DataStore.MenuBottomInformation.AS:
                    this.CenterInforAS.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
                    this.CenterInforAS.BringToFront();
                    break;
                default:
                    break;
            }
            this.bottomInformation.UpdateDisplayMenuButton(menu);
        }
        public void UpdateEquipmentStatusDisplay(DataStore.EquipmentStatus status)
        {
            if (status == DataStore.EquipmentStatus.Start)
            {
                this.buttonBasic.Enabled = false;
                this.buttonConfiguration.Enabled = false;
                this.buttonSystem.Enabled = false;
                this.buttonEquipment.Enabled = false;
                this.buttonInformation.Enabled = false;
                this.buttonMain.Enabled = false;

                this.bottomBasic.Enabled = false;
                this.bottomConfiguration.Enabled = false;
                this.bottomEquipment.Enabled = false;
                this.bottomInformation.Enabled = false;
                this.bottomSystem.Enabled = false;

                this.pictureBoxStart.Visible = true;
                this.pictureBoxStop.Visible = false;

                if (this.ParentForm.CurrentSystemStatus.CurrentDisplay == DataStore.DisplayStore.SystemJudgmentManual)
                    this.CenterSystemJudgmentManual.UpdateEquipmentStatusDisplay(status);
                else if (this.ParentForm.CurrentSystemStatus.CurrentDisplay == DataStore.DisplayStore.SystemSorterSetting)
                    this.CenterSystemSorterSetting.UpdateEquipmentStatusDisplay(status);
            }
            else
            {
                this.buttonBasic.Enabled = true;
                this.buttonConfiguration.Enabled = true;
                this.buttonSystem.Enabled = true;
                this.buttonEquipment.Enabled = true;
                this.buttonInformation.Enabled = true;
                this.buttonMain.Enabled = true;

                this.bottomBasic.Enabled = true;
                this.bottomConfiguration.Enabled = true;
                this.bottomEquipment.Enabled = true;
                this.bottomInformation.Enabled = true;
                this.bottomSystem.Enabled = true;

                this.pictureBoxStart.Visible = false;
                this.pictureBoxStop.Visible = true;

                if (this.ParentForm.CurrentSystemStatus.CurrentDisplay == DataStore.DisplayStore.SystemJudgmentManual)
                    this.CenterSystemJudgmentManual.UpdateEquipmentStatusDisplay(status);
                else if (this.ParentForm.CurrentSystemStatus.CurrentDisplay == DataStore.DisplayStore.SystemSorterSetting)
                    this.CenterSystemSorterSetting.UpdateEquipmentStatusDisplay(status);
            }
        }
        public void UpdateMenuExceptBarcodeDisplay(bool bValue)
        {
            this.buttonBasic.Enabled = bValue;
            this.buttonConfiguration.Enabled = bValue;
            this.buttonSystem.Enabled = bValue;
            this.buttonEquipment.Enabled = bValue;
            this.buttonInformation.Enabled = bValue;
            this.buttonMain.Enabled = bValue;

            this.bottomBasic.Enabled = bValue;
            this.bottomConfiguration.Enabled = bValue;
            this.bottomEquipment.Enabled = bValue;
            this.bottomInformation.Enabled = bValue;
            this.bottomSystem.Enabled = bValue;
        }

        public void DisplayTitleRoot(SystemStatus status)
        {
            switch (this.ParentForm.SystemConfig1.Language)
            {
                case DataStore.LanguageID.English:
                    #region 영문
                    switch (status.CurrentDisplay)
                    {
                        case DataStore.DisplayStore.BasicDataBackup:
                            this.labelTitleRoot.Text = "Basic > Data backup";
                            break;
                        case DataStore.DisplayStore.BasicDataStatistics:
                            this.labelTitleRoot.Text = "Basic > Data statistics";
                            break;
                        case DataStore.DisplayStore.BasicHelp:
                            this.labelTitleRoot.Text = "Basic > Help";
                            break;
                        case DataStore.DisplayStore.BasicProduct:
                            this.labelTitleRoot.Text = "Basic > Product settings";
                            break;
                        case DataStore.DisplayStore.BasicRandomMode:
                            this.labelTitleRoot.Text = "Basic > Product settings > Random Mode";
                            break;
                        case DataStore.DisplayStore.BasicTime:
                            this.labelTitleRoot.Text = "Basic > Time setting";
                            break;
                        case DataStore.DisplayStore.ConfiCountingOutput:
                            this.labelTitleRoot.Text = "Configuration > Counting Output";
                            break;
                        case DataStore.DisplayStore.ConfiSerial:
                            if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM1)
                                this.labelTitleRoot.Text = "Configuration > Serial(COM1)";
                            else if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM3)
                                this.labelTitleRoot.Text = "Configuration > Serial(COM3)";
                            else if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM4)
                                this.labelTitleRoot.Text = "Configuration > Serial(COM4)";
                            break;
                        case DataStore.DisplayStore.ConfiEthernet:
                            this.labelTitleRoot.Text = "Configuration > Ethernet";
                            break;
                        case DataStore.DisplayStore.ConfiHelp:
                            this.labelTitleRoot.Text = "Configuration > Help";
                            break;
                        case DataStore.DisplayStore.ConfiOption:
                            this.labelTitleRoot.Text = "Configuration > Option";
                            break;
                        case DataStore.DisplayStore.ConfiOptionBoard:
                            this.labelTitleRoot.Text = "Configuration > Option board";
                            break;
                        case DataStore.DisplayStore.EquipFuctionSetting:
                            this.labelTitleRoot.Text = "Equipment > Feature Settings";
                            break;
                        case DataStore.DisplayStore.EquipHelp:
                            this.labelTitleRoot.Text = "Equipment > Help";
                            break;
                        case DataStore.DisplayStore.EquipInitialize:
                            this.labelTitleRoot.Text = "Equipment > Initialization";
                            break;
                        case DataStore.DisplayStore.EquipTest:
                            this.labelTitleRoot.Text = "Equipment > Equipment Test";
                            break;
                        case DataStore.DisplayStore.EquipUpdate:
                            this.labelTitleRoot.Text = "Equipment > Update";
                            break;
                        case DataStore.DisplayStore.EquipUser:
                            this.labelTitleRoot.Text = "Equipment > User Settings";
                            break;
                        case DataStore.DisplayStore.EquipEngineer:
                            this.labelTitleRoot.Text = "Equipment > Engineer Settings";
                            break;
                        case DataStore.DisplayStore.InforAS:
                            this.labelTitleRoot.Text = "Information > A/S";
                            break;
                        case DataStore.DisplayStore.InforHelp:
                            this.labelTitleRoot.Text = "Information > Help";
                            break;
                        case DataStore.DisplayStore.InforSystem:
                            this.labelTitleRoot.Text = "Information > Information";
                            break;
                        case DataStore.DisplayStore.SystemAutoZero:
                            this.labelTitleRoot.Text = "System > Auto zero";
                            break;
                        case DataStore.DisplayStore.SystemCalibration:
                            this.labelTitleRoot.Text = "System > Calibration";
                            break;
                        case DataStore.DisplayStore.SystemExternalOutput:
                            this.labelTitleRoot.Text = "System > External output";
                            break;
                        case DataStore.DisplayStore.SystemHelp:
                            this.labelTitleRoot.Text = "System > Help";
                            break;
                        case DataStore.DisplayStore.SystemIOTest:
                            this.labelTitleRoot.Text = "System > I/O test";
                            break;
                        case DataStore.DisplayStore.SystemJudgmentAuto:
                        case DataStore.DisplayStore.SystemJudgmentSelect:          
                        case DataStore.DisplayStore.SystemJudgmentManual:
                            this.labelTitleRoot.Text = "System > Judgment";
                            break;
                        case DataStore.DisplayStore.SystemSorterSetting:
                            this.labelTitleRoot.Text = "System > Sorter settings";
                            break;
                        case DataStore.DisplayStore.SystemBLDCMotorSetting:
                            this.labelTitleRoot.Text = "System > BLDC Motor settings";
                            break;
                        default:
                            break;
                    } 
                    #endregion
                    break;
                case DataStore.LanguageID.Chinese:
                    #region 중문
                    switch (status.CurrentDisplay)
                    {
                        case DataStore.DisplayStore.BasicDataBackup:
                            this.labelTitleRoot.Text = "基本 > 数据备份";
                            break;
                        case DataStore.DisplayStore.BasicDataStatistics:
                            this.labelTitleRoot.Text = "基本 > 数据统计";
                            break;
                        case DataStore.DisplayStore.BasicHelp:
                            this.labelTitleRoot.Text = "基本 > 帮助";
                            break;
                        case DataStore.DisplayStore.BasicProduct:
                            this.labelTitleRoot.Text = "基本 > 产品设置";
                            break;
                        case DataStore.DisplayStore.BasicRandomMode:
                            this.labelTitleRoot.Text = "基本 > 产品设置 > 随机模式";
                            break;
                        case DataStore.DisplayStore.BasicTime:
                            this.labelTitleRoot.Text = "基本 > 时间设定";
                            break;
                        case DataStore.DisplayStore.ConfiCountingOutput:
                            this.labelTitleRoot.Text = "选项 > 计数输出";
                            break;
                        case DataStore.DisplayStore.ConfiSerial:
                            if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM1)
                                this.labelTitleRoot.Text = "选项 > 串行端口(COM1)";
                            else if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM3)
                                this.labelTitleRoot.Text = "选项 > 串行端口(COM3)";
                            else if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM4)
                                this.labelTitleRoot.Text = "选项 > 串行端口(COM4)";
                            break;
                        case DataStore.DisplayStore.ConfiEthernet:
                            this.labelTitleRoot.Text = "选项 > 以太网";
                            break;
                        case DataStore.DisplayStore.ConfiHelp:
                            this.labelTitleRoot.Text = "选项 > 帮助";
                            break;
                        case DataStore.DisplayStore.ConfiOption:
                            this.labelTitleRoot.Text = "选项 > 选项";
                            break;
                        case DataStore.DisplayStore.ConfiOptionBoard:
                            this.labelTitleRoot.Text = "选项 > 选项板";
                            break;
                        case DataStore.DisplayStore.EquipFuctionSetting:
                            this.labelTitleRoot.Text = "设备 > 功能设定";
                            break;
                        case DataStore.DisplayStore.EquipHelp:
                            this.labelTitleRoot.Text = "设备 > 帮助";
                            break;
                        case DataStore.DisplayStore.EquipInitialize:
                            this.labelTitleRoot.Text = "设备 > 工厂初期化";
                            break;
                        case DataStore.DisplayStore.EquipTest:
                            this.labelTitleRoot.Text = "设备 > 设备测试";
                            break;
                        case DataStore.DisplayStore.EquipUpdate:
                            this.labelTitleRoot.Text = "设备 > 更新";
                            break;
                        case DataStore.DisplayStore.EquipUser:
                            this.labelTitleRoot.Text = "设备 > 用户设置";
                            break;
                        case DataStore.DisplayStore.EquipEngineer:
                            this.labelTitleRoot.Text = "设备 > 工程师设置";
                            break;
                        case DataStore.DisplayStore.InforAS:
                            this.labelTitleRoot.Text = "信息 > A/S";
                            break;
                        case DataStore.DisplayStore.InforHelp:
                            this.labelTitleRoot.Text = "信息 > 帮助";
                            break;
                        case DataStore.DisplayStore.InforSystem:
                            this.labelTitleRoot.Text = "信息 > 系统信息";
                            break;
                        case DataStore.DisplayStore.SystemAutoZero:
                            this.labelTitleRoot.Text = "系统 > 自动零点跟踪";
                            break;
                        case DataStore.DisplayStore.SystemCalibration:
                            this.labelTitleRoot.Text = "系统 > 校准";
                            break;
                        case DataStore.DisplayStore.SystemExternalOutput:
                            this.labelTitleRoot.Text = "系统 > 外部输出";
                            break;
                        case DataStore.DisplayStore.SystemHelp:
                            this.labelTitleRoot.Text = "系统 > 帮助";
                            break;
                        case DataStore.DisplayStore.SystemIOTest:
                            this.labelTitleRoot.Text = "系统 > I/O测试";
                            break;
                        case DataStore.DisplayStore.SystemJudgmentAuto:
                        case DataStore.DisplayStore.SystemJudgmentSelect:          
                        case DataStore.DisplayStore.SystemJudgmentManual:
                            this.labelTitleRoot.Text = "系统 > 判断设置";
                            break;
                        case DataStore.DisplayStore.SystemSorterSetting:
                            this.labelTitleRoot.Text = "系统 > 筛选设定";
                            break;
                        case DataStore.DisplayStore.SystemBLDCMotorSetting:
                            this.labelTitleRoot.Text = "系统 > BLDC 电机设置";
                            break;
                        default:
                            break;
                    }
                    #endregion
                    break;
                case DataStore.LanguageID.Czech:
                    break;
                case DataStore.LanguageID.German:
                    #region 독일어
                    switch (status.CurrentDisplay)
                    {
                        case DataStore.DisplayStore.BasicDataBackup:
                            this.labelTitleRoot.Text = "Basic > Datensicherung";
                            break;
                        case DataStore.DisplayStore.BasicDataStatistics:
                            this.labelTitleRoot.Text = "Basic > Statistik";
                            break;
                        case DataStore.DisplayStore.BasicHelp:
                            this.labelTitleRoot.Text = "Basic > Hilfe";
                            break;
                        case DataStore.DisplayStore.BasicProduct:
                            this.labelTitleRoot.Text = "Basic > Produkteinstellung";
                            break;
                        case DataStore.DisplayStore.BasicRandomMode:
                            this.labelTitleRoot.Text = "Basic > Produkteinstellung > Zufallsmodus";
                            break;
                        case DataStore.DisplayStore.BasicTime:
                            this.labelTitleRoot.Text = "Basic > Zeiteinstellung";
                            break;
                        case DataStore.DisplayStore.ConfiCountingOutput:
                            this.labelTitleRoot.Text = "Konfiguration > Zählen der Ausgabe";
                            break;
                        case DataStore.DisplayStore.ConfiSerial:
                            if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM1)
                                this.labelTitleRoot.Text = "Konfiguration > Serielle(COM1)";
                            else if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM3)
                                this.labelTitleRoot.Text = "Konfiguration > Serielle(COM3)";
                            else if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM4)
                                this.labelTitleRoot.Text = "Konfiguration > Serielle(COM4)";
                            break;
                        case DataStore.DisplayStore.ConfiEthernet:
                            this.labelTitleRoot.Text = "Konfiguration > Ethernet";
                            break;
                        case DataStore.DisplayStore.ConfiHelp:
                            this.labelTitleRoot.Text = "Konfiguration > Hilfe";
                            break;
                        case DataStore.DisplayStore.ConfiOption:
                            this.labelTitleRoot.Text = "Konfiguration > Möglichkeit";
                            break;
                        case DataStore.DisplayStore.ConfiOptionBoard:
                            this.labelTitleRoot.Text = "Konfiguration > Optionsplatine";
                            break;
                        case DataStore.DisplayStore.EquipFuctionSetting:
                            this.labelTitleRoot.Text = "Vorrichtung > Funktionseinstellungen";
                            break;
                        case DataStore.DisplayStore.EquipHelp:
                            this.labelTitleRoot.Text = "Vorrichtung > Hilfe";
                            break;
                        case DataStore.DisplayStore.EquipInitialize:
                            this.labelTitleRoot.Text = "Vorrichtung > Initialisierung";
                            break;
                        case DataStore.DisplayStore.EquipTest:
                            this.labelTitleRoot.Text = "Vorrichtung > Vorrichtungstest";
                            break;
                        case DataStore.DisplayStore.EquipUpdate:
                            this.labelTitleRoot.Text = "Vorrichtung > Aktualisierung";
                            break;
                        case DataStore.DisplayStore.EquipUser:
                            this.labelTitleRoot.Text = "Vorrichtung > Benutzereinstellungen";
                            break;
                        case DataStore.DisplayStore.EquipEngineer:
                            this.labelTitleRoot.Text = "Vorrichtung > Ingenieur Einstellung";
                            break;
                        case DataStore.DisplayStore.InforAS:
                            this.labelTitleRoot.Text = "Information > Kundendienst";
                            break;
                        case DataStore.DisplayStore.InforHelp:
                            this.labelTitleRoot.Text = "Information > Hilfe";
                            break;
                        case DataStore.DisplayStore.InforSystem:
                            this.labelTitleRoot.Text = "Information > Information";
                            break;
                        case DataStore.DisplayStore.SystemAutoZero:
                            this.labelTitleRoot.Text = "Systemeinstellung > Automatische Nullung";
                            break;
                        case DataStore.DisplayStore.SystemCalibration:
                            this.labelTitleRoot.Text = "Systemeinstellung > Kalibrierung";
                            break;
                        case DataStore.DisplayStore.SystemExternalOutput:
                            this.labelTitleRoot.Text = "Systemeinstellung > Externer Ausgang";
                            break;
                        case DataStore.DisplayStore.SystemHelp:
                            this.labelTitleRoot.Text = "Systemeinstellung > Hilfe";
                            break;
                        case DataStore.DisplayStore.SystemIOTest:
                            this.labelTitleRoot.Text = "Systemeinstellung > I/O test";
                            break;
                        case DataStore.DisplayStore.SystemJudgmentAuto:
                        case DataStore.DisplayStore.SystemJudgmentSelect:          
                        case DataStore.DisplayStore.SystemJudgmentManual:
                            this.labelTitleRoot.Text = "Systemeinstellung > Tascheneinstellung";
                            break;
                        case DataStore.DisplayStore.SystemSorterSetting:
                            this.labelTitleRoot.Text = "Systemeinstellung > Sortierereinstellung";
                            break;
                        case DataStore.DisplayStore.SystemBLDCMotorSetting:
                            this.labelTitleRoot.Text = "Systemeinstellung > BLDC-Motoreinstellungen";
                            break;
                        default:
                            break;
                    }
                    #endregion
                    break;
                case DataStore.LanguageID.Russian:
                    #region 러시아어
                    switch (status.CurrentDisplay)
                    {
                        case DataStore.DisplayStore.BasicDataBackup:
                            this.labelTitleRoot.Text = "Основной > Резервное копирование данных";
                            break;
                        case DataStore.DisplayStore.BasicDataStatistics:
                            this.labelTitleRoot.Text = "Основной > Статистика данных";
                            break;
                        case DataStore.DisplayStore.BasicHelp:
                            this.labelTitleRoot.Text = "Основной > Помощь";
                            break;
                        case DataStore.DisplayStore.BasicProduct:
                            this.labelTitleRoot.Text = "Основной > Настройки продукта";
                            break;
                        case DataStore.DisplayStore.BasicRandomMode:
                            this.labelTitleRoot.Text = "Основной > Настройки продукта > Случайный режим";
                            break;
                        case DataStore.DisplayStore.BasicTime:
                            this.labelTitleRoot.Text = "Основной > Настройки времени";
                            break;
                        case DataStore.DisplayStore.ConfiCountingOutput:
                            this.labelTitleRoot.Text = "Конфигурация > Счетный выход";
                            break;
                        case DataStore.DisplayStore.ConfiSerial:
                            if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM1)
                                this.labelTitleRoot.Text = "Конфигурация > Послед. порт(COM1)";
                            else if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM3)
                                this.labelTitleRoot.Text = "Конфигурация > Послед. порт(COM3)";
                            else if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM4)
                                this.labelTitleRoot.Text = "Конфигурация > Послед. порт(COM4)";
                            break;
                        case DataStore.DisplayStore.ConfiEthernet:
                            this.labelTitleRoot.Text = "Конфигурация > Локальная сеть";
                            break;
                        case DataStore.DisplayStore.ConfiHelp:
                            this.labelTitleRoot.Text = "Конфигурация > Помощь";
                            break;
                        case DataStore.DisplayStore.ConfiOption:
                            this.labelTitleRoot.Text = "Конфигурация > Настройка параметров";
                            break;
                        case DataStore.DisplayStore.ConfiOptionBoard:
                            this.labelTitleRoot.Text = "Конфигурация > Опции";
                            break;
                        case DataStore.DisplayStore.EquipFuctionSetting:
                            this.labelTitleRoot.Text = "Настройка > Функциональные настройки";
                            break;
                        case DataStore.DisplayStore.EquipHelp:
                            this.labelTitleRoot.Text = "Настройка > Помощь";
                            break;
                        case DataStore.DisplayStore.EquipInitialize:
                            this.labelTitleRoot.Text = "Настройка > Инициализация";
                            break;
                        case DataStore.DisplayStore.EquipTest:
                            this.labelTitleRoot.Text = "Настройка > Тест оборудования";
                            break;
                        case DataStore.DisplayStore.EquipUpdate:
                            this.labelTitleRoot.Text = "Настройка > Обновить";
                            break;
                        case DataStore.DisplayStore.EquipUser:
                            this.labelTitleRoot.Text = "Настройка > Настройки пользователя";
                            break;
                        case DataStore.DisplayStore.EquipEngineer:
                            this.labelTitleRoot.Text = "Настройка > Инженерные настройки";
                            break;
                        case DataStore.DisplayStore.InforAS:
                            this.labelTitleRoot.Text = "Информация > Обслуживание клиентов";
                            break;
                        case DataStore.DisplayStore.InforHelp:
                            this.labelTitleRoot.Text = "Информация > Помощь";
                            break;
                        case DataStore.DisplayStore.InforSystem:
                            this.labelTitleRoot.Text = "Информация > Информация";
                            break;
                        case DataStore.DisplayStore.SystemAutoZero:
                            this.labelTitleRoot.Text = "Системные > Автоотслеживание нуля";
                            break;
                        case DataStore.DisplayStore.SystemCalibration:
                            this.labelTitleRoot.Text = "Системные > Калибровка";
                            break;
                        case DataStore.DisplayStore.SystemExternalOutput:
                            this.labelTitleRoot.Text = "Системные > Внешний выход";
                            break;
                        case DataStore.DisplayStore.SystemHelp:
                            this.labelTitleRoot.Text = "Системные > Помощь";
                            break;
                        case DataStore.DisplayStore.SystemIOTest:
                            this.labelTitleRoot.Text = "Системные > Тест ввода/вывода";
                            break;
                        case DataStore.DisplayStore.SystemJudgmentAuto:
                        case DataStore.DisplayStore.SystemJudgmentSelect:          
                        case DataStore.DisplayStore.SystemJudgmentManual:
                            this.labelTitleRoot.Text = "Системные > Настройка отбраковки";
                            break;
                        case DataStore.DisplayStore.SystemSorterSetting:
                            this.labelTitleRoot.Text = "Системные > Настройка сортировки";
                            break;
                        case DataStore.DisplayStore.SystemBLDCMotorSetting:
                            this.labelTitleRoot.Text = "Системные > Настройки двигателя BLDC";
                            break;
                        default:
                            break;
                    }
                    #endregion
                    break;
                default:
                    #region 한글
                    switch (status.CurrentDisplay)
                    {
                        case DataStore.DisplayStore.BasicDataBackup:
                            this.labelTitleRoot.Text = "기본설정 > 데이터백업";
                            break;
                        case DataStore.DisplayStore.BasicDataStatistics:
                            this.labelTitleRoot.Text = "기본설정 > 데이터집계";
                            break;
                        case DataStore.DisplayStore.BasicHelp:
                            this.labelTitleRoot.Text = "기본설정 > 도움말";
                            break;
                        case DataStore.DisplayStore.BasicProduct:
                            this.labelTitleRoot.Text = "기본설정 > 품목설정";
                            break;
                        case DataStore.DisplayStore.BasicRandomMode:
                            this.labelTitleRoot.Text = "기본설정 > 품목설정 > 랜덤모드";
                            break;
                        case DataStore.DisplayStore.BasicTime:
                            this.labelTitleRoot.Text = "기본설정 > 시간설정";
                            break;
                        case DataStore.DisplayStore.ConfiCountingOutput:
                            this.labelTitleRoot.Text = "환경설정 > 카운터출력";
                            break;
                        case DataStore.DisplayStore.ConfiSerial:
                            if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM1)
                                this.labelTitleRoot.Text = "환경설정 > 시리얼통신(COM1)";
                            else if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM3)
                                this.labelTitleRoot.Text = "환경설정 > 시리얼통신(COM3)";
                            else if (this.CurrentConfigurationMenu() == DataStore.MenuBottomConfiguration.SerialCOM4)
                                this.labelTitleRoot.Text = "환경설정 > 시리얼통신(COM4)";
                            break;
                        case DataStore.DisplayStore.ConfiEthernet:
                            this.labelTitleRoot.Text = "환경설정 > 이더넷통신";
                            break;
                        case DataStore.DisplayStore.ConfiHelp:
                            this.labelTitleRoot.Text = "환경설정 > 도움말";
                            break;
                        case DataStore.DisplayStore.ConfiOption:
                            this.labelTitleRoot.Text = "환경설정 > 옵션설정";
                            break;
                        case DataStore.DisplayStore.ConfiOptionBoard:
                            this.labelTitleRoot.Text = "환경설정 > 옵션보드설정";
                            break;
                        case DataStore.DisplayStore.EquipFuctionSetting:
                            this.labelTitleRoot.Text = "장비설정 > 기능설정";
                            break;
                        case DataStore.DisplayStore.EquipHelp:
                            this.labelTitleRoot.Text = "장비설정 > 도움말";
                            break;
                        case DataStore.DisplayStore.EquipInitialize:
                            this.labelTitleRoot.Text = "장비설정 > 공장초기화";
                            break;
                        case DataStore.DisplayStore.EquipTest:
                            this.labelTitleRoot.Text = "장비설정 > 장비테스트";
                            break;
                        case DataStore.DisplayStore.EquipUpdate:
                            this.labelTitleRoot.Text = "장비설정 > 업데이트";
                            break;
                        case DataStore.DisplayStore.EquipUser:
                            this.labelTitleRoot.Text = "장비설정 > 유저설정";
                            break;
                        case DataStore.DisplayStore.EquipEngineer:
                            this.labelTitleRoot.Text = "장비설정 > 엔지니어설정";
                            break;
                        case DataStore.DisplayStore.InforAS:
                            this.labelTitleRoot.Text = "정보 > A/S";
                            break;
                        case DataStore.DisplayStore.InforHelp:
                            this.labelTitleRoot.Text = "정보 > 도움말";
                            break;
                        case DataStore.DisplayStore.InforSystem:
                            this.labelTitleRoot.Text = "정보 > 시스템정보";
                            break;
                        case DataStore.DisplayStore.SystemAutoZero:
                            this.labelTitleRoot.Text = "시스템설정 > 자동영점";
                            break;
                        case DataStore.DisplayStore.SystemCalibration:
                            this.labelTitleRoot.Text = "시스템설정 > 중량조정";
                            break;
                        case DataStore.DisplayStore.SystemExternalOutput:
                            this.labelTitleRoot.Text = "시스템설정 > 외부출력";
                            break;
                        case DataStore.DisplayStore.SystemHelp:
                            this.labelTitleRoot.Text = "시스템설정 > 도움말";
                            break;
                        case DataStore.DisplayStore.SystemIOTest:
                            this.labelTitleRoot.Text = "시스템설정 > I/O테스트";
                            break;
                        case DataStore.DisplayStore.SystemJudgmentAuto:
                        case DataStore.DisplayStore.SystemJudgmentSelect:                            
                        case DataStore.DisplayStore.SystemJudgmentManual:
                            this.labelTitleRoot.Text = "시스템설정 > 판정설정";
                            break;
                        case DataStore.DisplayStore.SystemSorterSetting:
                            this.labelTitleRoot.Text = "시스템설정 > 선별기설정";
                            break;
                        case DataStore.DisplayStore.SystemBLDCMotorSetting:
                            this.labelTitleRoot.Text = "시스템설정 > BLDC 모터 설정";
                            break;
                        default:
                            break;
                    }
                    #endregion
                    break;
            }
        }
        public void DisplayRefresh(SystemStatus status)
        {
            this.UpdateDisplayUser(status.CurrentUser);
            if (this.ParentForm.SystemConfig1.IsLogin == false)
            {
                this.labelUserID.Visible = false;
                this.labelUserLevel.Visible = false;
            }
            else
            {
                this.labelUserID.Visible = true;
                this.labelUserLevel.Visible = true;
            }

            this.buttonBasic.ButtonDown();
            this.buttonConfiguration.ButtonUp();
            this.buttonSystem.ButtonUp();
            this.buttonEquipment.ButtonUp();
            this.buttonInformation.ButtonUp();

            this.SelectedSideMenu = DataStore.MenuSide.Basic;

            this.DisplaySideMenu(this.SelectedSideMenu);
        }
        #endregion

        #region Override Member
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
        }
        #endregion

        #region Event Handler
        private void buttonBasic_Click(object sender, EventArgs e)
        {
            this.SelectedSideMenu = DataStore.MenuSide.Basic;
            this.DisplaySideMenu(this.SelectedSideMenu);
        }

        private void buttonConfiguration_Click(object sender, EventArgs e)
        {
            this.SelectedSideMenu = DataStore.MenuSide.Configuration;
            this.DisplaySideMenu(this.SelectedSideMenu);
        }

        private void buttonSystem_Click(object sender, EventArgs e)
        {
            this.SelectedSideMenu = DataStore.MenuSide.System;
            this.DisplaySideMenu(this.SelectedSideMenu);
        }

        private void buttonEquipment_Click(object sender, EventArgs e)
        {
            this.SelectedSideMenu = DataStore.MenuSide.Equipment;
            this.DisplaySideMenu(this.SelectedSideMenu);
        }

        private void buttonInformation_Click(object sender, EventArgs e)
        {
            this.SelectedSideMenu = DataStore.MenuSide.Information;
            this.DisplaySideMenu(this.SelectedSideMenu);
        }

        private void buttonHiddenMenu_Click(object sender, EventArgs e)
        {
            if (this.ParentForm.SystemConfig1.IsLogin == false)
            {
                this.DisplayHiddenMenu(this.ParentForm.CurrentSystemStatus.CurrentDisplay, this.ParentForm.SystemConfig1);
            }
            else
            {
                if (this.ParentForm.CurrentSystemStatus.CurrentUser.Group == DataStore.UserGroup.Level3Manager)
                    this.DisplayHiddenMenu(this.ParentForm.CurrentSystemStatus.CurrentDisplay, this.ParentForm.SystemConfig1);
            }
        }

        private void buttonMain_Click(object sender, EventArgs e)
        {
            if (this.CenterConfiEthernet != null)
            {
                if (this.CenterConfiEthernet.timerServer.Enabled == true)
                    this.CenterConfiEthernet.timerServer.Enabled = false;
            }

            if (this.ParentForm.SystemConfig1.IsBarcodeEnable == true)
            {
                this.ParentForm.ChangeSerialCOM3FrameSeparateType(DataStore.SeparateType.ETXONLY);
                this.ParentForm.TransferSerialCOM3RawData(Barcode.ExitProgrammingMode);
            }

            this.ParentForm.ChildFormMainDisplay.DisplayHiddenMenu(false);

            if (this.ParentForm.SystemConfig2.EthernetOperationMode == 2)
                this.ParentForm.EthernetClientDisconnect();

            if (this.ParentForm.ChildFormMainDisplay.MainDisplayFeedback.IsUsingFeedback() == true)
            {
                string feedbackValue = "";

                if (this.ParentForm.CurrentSystemParameter2.OPT1IsWeightSetting == "1")
                {
                    this.ParentForm.CurrentSystemParameter2.OPT1OverRange =
                        (this.ParentForm.CurrentProductItem.PassRangeInt + this.ParentForm.CurrentFeedbackItem.OverRangeDeviationInt).ToString();

                    this.ParentForm.CurrentSystemParameter2.OPT1UnderRange =
                        (this.ParentForm.CurrentProductItem.PassRangeInt + this.ParentForm.CurrentFeedbackItem.UnderRangeDeviationInt).ToString();
                }
                else
                {
                    this.ParentForm.CurrentSystemParameter2.OPT1OverRange = this.ParentForm.CurrentProductItem.OverRange;
                    this.ParentForm.CurrentSystemParameter2.OPT1UnderRange = this.ParentForm.CurrentProductItem.UnderRange;
                    this.ParentForm.CurrentFeedbackItem.OverRangeDeviation = this.ParentForm.CurrentProductItem.OverRangeDeviation.ToString();
                    this.ParentForm.CurrentFeedbackItem.UnderRangeDeviation = this.ParentForm.CurrentProductItem.UnderRangeDeviation.ToString();
                }

                this.ParentForm.SaveSystemParameter2File(this.ParentForm.CurrentSystemParameter2);
                feedbackValue = Helper.StringZeroFillDigits7(this.ParentForm.CurrentSystemParameter2.OPT1OverRange);
                this.ParentForm.TransferDataStream(CommunicationCommand.Write, CommunicationID.MainBoard, CommunicationAddress.OPT1OverRange, feedbackValue);
                feedbackValue = Helper.StringZeroFillDigits7(this.ParentForm.CurrentSystemParameter2.OPT1UnderRange);
                this.ParentForm.TransferDataStream(CommunicationCommand.Write, CommunicationID.MainBoard, CommunicationAddress.OPT1UnderRange, feedbackValue);
            }

            this.ParentForm.ChildFormMainDisplay.DisplayRefresh(this.ParentForm.CurrentSystemStatus);
            ((FormMain)(Owner)).smartForm.Show((int)DataStore.FormStore.FormMainDisplay);
        }

        private void pictureBoxStart_Click(object sender, EventArgs e)
        {
            if(this.EquipmentRun(this.ParentForm.CurrentSystemStatus.CurrentDisplay) == true)
                this.ParentForm.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
        }
        private void pictureBoxStop_Click(object sender, EventArgs e)
        {
            if (this.EquipmentRun(this.ParentForm.CurrentSystemStatus.CurrentDisplay) == true)
                this.ParentForm.TransferData(CommunicationCommand.Start, CommunicationID.MainBoard);
        }

        public DataStore.MenuBottomConfiguration CurrentConfigurationMenu()
        {
            return this.bottomConfiguration.CurrentMenu;
        }
        #endregion

    }
}