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

namespace IControls_FireManager
{
    public partial class Form_Project_New : Form
    {
        public Form_Project_New()
        {
            InitializeComponent();

            ///
            /// 이벤트
            /// 
            
            // 폼닫기 이벤트를 등록 (이벤트 핸들러 해제용)
            this.FormClosing += new FormClosingEventHandler(CreateForm_FormClosing);

            // 윈도우 스타일 변경 이벤트 핸들러 등록
            _Event.WindowStyleSet_SendMessage_Event += new _Event.WindowStyleSet_SendMessage_Handler(_Event_WindowStyleSet_SendMessage_Event);

            ///
            /// 스타일 변경
            /// 

            UI_Style_Initialize();
        }
         
        // 폼닫기 이벤트를 등록 (이벤트 핸들러 해제용)
        public void CreateForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            // 윈도우 스타일 변경 이벤트 핸들러 해제
            _Event.WindowStyleSet_SendMessage_Event -= new _Event.WindowStyleSet_SendMessage_Handler(_Event_WindowStyleSet_SendMessage_Event);
        }

        // 윈도우 스타일 변경 이벤트
        public void _Event_WindowStyleSet_SendMessage_Event()
        {
            UI_Style_Initialize();
        }

        // 스타일 초기화 함수
        private void UI_Style_Initialize()
        {
            
        }
        
        // 환경옵션의 경로에 프로젝트명이 중복되는지 확인한다
        private bool Check_ProjectName(string ProjectName)
        {
            // 지정된 경로에 폴더 조회
            string result = _File.Get_FolderNameList(_Data.Project_Path);

            if (result != null)
            {
                // 폴더리스트 생성
                string[] FolderNames = _Convert.String_to_ArrayString(result);

                foreach (string FolderName in FolderNames)
                {
                    // 모두 대문자로 변경하여 비교함
                    if (FolderName.ToUpper().ToString() == ProjectName.ToUpper().ToString())
                        return false;                    
                }
            }
            
            return true;
        }

        private void UiButton_Project_Save_Click(object sender, EventArgs e)
        {
            // 공백제거
            this.EditBox_ProjectName.Text = this.EditBox_ProjectName.Text.Trim();

            if (this.EditBox_ProjectName.Text == null
                || this.EditBox_ProjectName.Text == _Text.DEFAULT_PROJECT_NAME
                || this.EditBox_ProjectName.Text.Length == 0)
            {
                // 팝업창 : 프로젝트명이 잘못되었습니다
                _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.Warnning, 250, 150, _Text.NotCorrectProjectNameInform, 0);                
            }
            else if (Check_ProjectName(this.EditBox_ProjectName.Text) == false)
            {
                // 팝업창 : 이미 지정된 경로에 프로젝트명이 존재합니다
                _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.Warnning, 300, 150, _Text.SameProjectNameInform, 0);                 
            }
            else if (_Error.Data_Confirm_NotDefineString(this.EditBox_ProjectName.Text.Trim()) != null)
            {
                ;// 상위 비교문에서 팝업처리
            }
            else
            {
                // 해쉬 및 리스트 초기화 (수신기 전체 삭제와 동일)
                _Data.HASH_RECEIVER.Clear();
                _Data.LIST_RECEIVER_ID.Clear();
                _Data.HASH_XMLDEVTYPE.Clear();
                _Data.LIST_XMLDEVTYPE_ID.Clear();
                //_Data.HASH_PAGE.Clear();
                //_Data.LIST_PAGE_ID.Clear();
                // _Receiver.xml 제거 : cyim 2012.8.29 -> 복구 2013.5.27
                //_Data.HASH_XMLRECEIVER.Clear();
                _Data.LIST_XMLRECEIVER_ID.Clear();
                _Data.List_ExcelPoint.Clear();
                _Data.HASH_CodePosition.Clear();
                _Data.LIST_CodePosition_NAME.Clear();
                _Data.LIST_XmlDBNotSave_Receiver.Clear();
                _Data.Hash_ImportPoint.Clear();

                // 수신기 아이디 초기화
                _Data.INIT_RECEIVER_ID = 1;

                // 데이타베이스 경로 초기화
                _Data.DB_FullPath = null;

                // 프로젝트명 기본값으로 전환
                _Data.Project_Name = this.EditBox_ProjectName.Text.Trim();

                // 프로젝트 폴더생성
                _File.Create_ProjectFolder(_Data.Project_Path, _Data.Project_Name);                

                // 파일생성                
                _File.Write_Receiver_XML(_Data.Project_Path + "\\" + _Data.Project_Name);

                // 워크뷰 및 트리뷰 에 알림
                _Event.WorkView_Clear_SendMessage_Write();
                _Event.TreeView_Clear_SendMessage_Write(_Data.Project_Name);

                // 종료
                this.Close();
            }
        }

       
    }
}