using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data; // DataRowCollection
using System.Collections; // ArrayList

namespace IControls_FireManager
{
    // 콤보 박스 공통 루틴은 여기에서 구현한다

    public static class _Combobox
    {
        ///
        /// 콤보 박스 아이템 처리
        ///
        

        // 추가
        public static void Add(Janus.Windows.EditControls.UIComboBox uicombobox, string data)
        {
            try
            {
                //먼저, 클리어하고 콤보박스에 넣어준다.
                //uicombobox.Items.Clear();

                // 널값 허용하지 않는다
                if (data != null)
                {
                    // 중복허용하지 않는다
                    if (uicombobox.Items.Contains(data) == false)
                        uicombobox.Items.Add(data);
                }
            }
            catch (Exception e)
            {
                _Event.DebugView_SendMessage_Write(e.ToString());
            }
        }

        ///
        /// 초기화시 콤보박스에 아이템을 추가한 후, 보여지는 글자가 첫번째 인덱스 0 으로 하는 경우
        ///

        // string 자료 초기화 ( "test0;test1")
        public static void Initialize(Janus.Windows.EditControls.UIComboBox uicombobox, string str)
        {
            try
            {
                //먼저, 클리어하고 콤보박스에 넣어준다.
                uicombobox.Items.Clear();

                // 데이터가 없다면 허용하지 않는다
                if (str != null)
                {
                    // 문자열을 배열로
                    string[] Data = _Convert.String_to_ArrayString(str);

                    if (Data.Length != 0)
                    {
                        foreach (string data in Data)
                        {
                            // 널값 및 공백은 허용하지 않는다
                            if ((data != null) && data.ToString().Length != 0)
                                // 중복허용하지 않는다
                                if (uicombobox.Items.Contains(data.ToString()) == false)
                                    uicombobox.Items.Add(data.ToString());
                        }
                    }
                }

                // 초기화시 콤보박스는 첫번째 인덱스
                uicombobox.SelectedIndex = 0;
            }
            catch (Exception e)
            {
                _Event.DebugView_SendMessage_Write(e.ToString());
            }
        }
        // string 자료 초기화 ( "test0|test1") ->  | 구분자 지정
        public static void Initialize(Janus.Windows.EditControls.UIComboBox uicombobox, char [] spilt, string str)
        {
            try
            {
                //먼저, 클리어하고 콤보박스에 넣어준다.
                uicombobox.Items.Clear();

                // 데이터가 없다면 허용하지 않는다
                if (str != null)
                {
                    // 문자열을 배열로
                    string[] Data = _Convert.String_to_ArrayString(spilt, str);

                    if (Data.Length != 0)
                    {
                        foreach (string data in Data)
                        {
                            // 널값 및 공백은 허용하지 않는다
                            if ((data != null) && data.ToString().Length != 0)
                                // 중복허용하지 않는다
                                if (uicombobox.Items.Contains(data.ToString()) == false)
                                    uicombobox.Items.Add(data.ToString());
                        }
                    }
                }

                // 초기화시 콤보박스는 첫번째 인덱스
                uicombobox.SelectedIndex = 0;
            }
            catch (Exception e)
            {
                _Event.DebugView_SendMessage_Write(e.ToString());
            }
        }

        // DataRowCollection 자료 초기화
        public static void Initialize(Janus.Windows.EditControls.UIComboBox uicombobox, DataRowCollection datarows, int index)
        {
            try
            {
                //먼저, 클리어하고 콤보박스에 넣어준다.
                uicombobox.Items.Clear();

                // 데이터가 없다면 허용하지 않는다
                if (datarows != null)
                {
                    foreach (DataRow data in datarows)
                    {
                        // 널값 및 공백은 허용하지 않는다
                        if ((data != null) && data.ToString().Length != 0)
                            // 중복허용하지 않는다
                            if (uicombobox.Items.Contains(data[index].ToString()) == false)
                                uicombobox.Items.Add(data[index].ToString());
                    }
                }
                // 초기화시 콤보박스는 첫번째 인덱스
                uicombobox.SelectedIndex = 0;
            }
            catch (Exception e)
            {
                _Event.DebugView_SendMessage_Write(e.ToString());
            }
        }

        // Arraylist 자료 초기화
        public static void Initialize(Janus.Windows.EditControls.UIComboBox uicombobox, ArrayList arraylist)
        {
            try
            {
                //먼저, 클리어하고 콤보박스에 넣어준다.
                uicombobox.Items.Clear();

                // 데이터가 없다면 허용하지 않는다
                if (arraylist != null)
                {
                    if (arraylist.Count != 0)
                    {
                        foreach (string data in arraylist)
                        {
                            // 널값 및 공백은 허용하지 않는다
                            if ((data != null) && data.ToString().Length != 0)
                                // 중복허용하지 않는다
                                if (uicombobox.Items.Contains(data.ToString()) == false)
                                    uicombobox.Items.Add(data.ToString());
                        }
                    }
                }

                // 초기화시 콤보박스는 첫번째 인덱스
                uicombobox.SelectedIndex = 0;
            }
            catch (Exception e)
            {
                _Event.DebugView_SendMessage_Write(e.ToString());
            }
        }


        ///
        /// 초기화시 콤보박스에 아이템을 추가한 후, 보여지는 글자를 직접 지정하는 경우
        ///

        // string 자료 초기화 ( "test0;test1")
        public static void Initialize(Janus.Windows.EditControls.UIComboBox uicombobox, string str, string FirstDisplayText)
        {
            try
            {
                //먼저, 클리어하고 콤보박스에 넣어준다.
                uicombobox.Items.Clear();

                // 데이터가 없다면 허용하지 않는다
                if (str != null)
                {
                    // 문자열을 배열로
                    string[] Data = _Convert.String_to_ArrayString(str);

                    if (Data.Length != 0)
                    {
                        foreach (string data in Data)
                        {
                            // 널값 및 공백은 허용하지 않는다
                            if ((data != null) && data.ToString().Length != 0)
                                // 중복허용하지 않는다
                                if (uicombobox.Items.Contains(data.ToString()) == false)
                                    uicombobox.Items.Add(data.ToString());
                        }
                    }
                }

                // 초기화시 콤보박스에 보여질 텍스트
                uicombobox.Text = FirstDisplayText;
            }
            catch (Exception e)
            {
                _Event.DebugView_SendMessage_Write(e.ToString());
            }
        }

        // DataRowCollection 자료 초기화
        public static void Initialize(Janus.Windows.EditControls.UIComboBox uicombobox, DataRowCollection datarows, int index, string FirstDisplayText)
        {
            try
            {
                //먼저, 클리어하고 콤보박스에 넣어준다.
                uicombobox.Items.Clear();

                // 데이터가 없다면 허용하지 않는다
                if (datarows != null)
                {
                    foreach (DataRow data in datarows)
                    {
                        // 널값 및 공백은 허용하지 않는다
                        if ((data != null) && data.ToString().Length != 0)
                            // 중복허용하지 않는다
                            if (uicombobox.Items.Contains(data[index].ToString()) == false)
                                uicombobox.Items.Add(data[index].ToString());
                    }
                }

                // 초기화시 콤보박스에 보여질 텍스트
                uicombobox.Text = FirstDisplayText;
            }
            catch (Exception e)
            {
                _Event.DebugView_SendMessage_Write(e.ToString());
            }
        }

        // Arraylist 자료 초기화
        public static void Initialize(Janus.Windows.EditControls.UIComboBox uicombobox, ArrayList arraylist, string FirstDisplayText)
        {
            try
            {
                //먼저, 클리어하고 콤보박스에 넣어준다.
                uicombobox.Items.Clear();

                // 데이터가 없다면 허용하지 않는다
                if (arraylist != null)
                {
                    if (arraylist.Count != 0)
                    {
                        foreach (string data in arraylist)
                        {
                            // 널값 및 공백은 허용하지 않는다
                            if ((data != null) && data.ToString().Length != 0)
                                // 중복허용하지 않는다
                                if (uicombobox.Items.Contains(data.ToString()) == false)
                                    uicombobox.Items.Add(data.ToString());
                        }
                    }
                }

                // 초기화시 콤보박스에 보여질 텍스트
                uicombobox.Text = FirstDisplayText;
            }
            catch (Exception e)
            {
                _Event.DebugView_SendMessage_Write(e.ToString());
            }
        }

    }
}