private void button_up_Click(object sender, EventArgs e)
        {
            int ownIndex = panel.Controls.IndexOfKey(Name);

            if (ownIndex != 0)
            {
                String itemTypeNameUp = panel.Controls[ownIndex - 1].GetType().ToString();
                String itemTypeName   = panel.Controls[ownIndex].GetType().ToString();
                if (itemTypeNameUp == itemTypeName)
                {
                    CustomDataCollectionItem item = (CustomDataCollectionItem)panel.Controls[ownIndex - 1];
                    item.MoveDown();

                    if (showData)
                    {
                        MoveChild();
                    }

                    PanelOrderNumber = GetOrderNumber();    //change order number
                }
                else
                {
                    CustomDataCollectionItem item = (CustomDataCollectionItem)panel.Controls[ownIndex - 2];
                    item.MoveDown();
                    ownIndex = panel.Controls.IndexOfKey(Name);

                    if (showData)
                    {
                        MoveChild();
                    }

                    PanelOrderNumber = GetOrderNumber();    //change order number
                }
            }
        }
        private void button_down_Click(object sender, EventArgs e)
        {
            int ownIndex = panel.Controls.IndexOfKey(Name);



            if (showData)
            {
                if (ownIndex != panel.Controls.Count - 2)
                {
                    CustomDataCollectionItem item = (CustomDataCollectionItem)panel.Controls[ownIndex + 2];

                    item.MoveUp(true);
                    MoveChild();

                    PanelOrderNumber = GetOrderNumber();    //change order number
                }
            }
            else
            {
                if (ownIndex != panel.Controls.Count - 1)
                {
                    CustomDataCollectionItem item = (CustomDataCollectionItem)panel.Controls[ownIndex + 1];
                    item.MoveUp(false);
                    PanelOrderNumber = GetOrderNumber();    //change order number
                }
            }
        }
        private void ChangeOrderNumberForAll()
        {
            int  ownIndex = panel.Controls.IndexOfKey(Name);
            Type OwnType  = panel.Controls[ownIndex].GetType();

            for (int i = ownIndex; i < panel.Controls.Count; i++)
            {
                if (panel.Controls[i].GetType() == OwnType)
                {
                    CustomDataCollectionItem item = (CustomDataCollectionItem)panel.Controls[i];
                    item.PanelOrderNumber = item.PanelOrderNumber - 1;
                }
            }
        }
        public ShowDataItems(List <Data> data, String description, Size s, CustomDataCollectionItem root)
        {
            InitializeComponent();
            this._data       = data;
            this.description = description;
            this.rootItem    = root;
            ItemWidth        = s.Width - 7;

            SetColor();



            //AddNewItems();
            AddNewItems2();
        }
        private List <DataCollection> GetDataCollections()
        {
            List <DataCollection> OutPut = new List <DataCollection>();

            for (int i = 0; i < cpc_flowLayoutPanel_collection.Controls.Count; i++)
            {
                if (cpc_flowLayoutPanel_collection.Controls[i].Name != "Show")
                {
                    CustomDataCollectionItem item = (CustomDataCollectionItem)cpc_flowLayoutPanel_collection.Controls[i];

                    OutPut.Add(item.dataCollection);
                }
            }

            return(OutPut);
        }
        private void CreateItem(DataCollection d)
        {
            CustomDataCollectionItem customDataCollectionItem = new CustomDataCollectionItem(d);

            String _Name;

            do
            {
                _Name = d.Title + "_INDEX_" + random.Next(0, 1000);
            } while (!CheckName(_Name));

            customDataCollectionItem.Name        = _Name;
            customDataCollectionItem.Text        = d.Title;
            customDataCollectionItem.Width       = cpc_flowLayoutPanel_collection.Size.Width - gap;;
            customDataCollectionItem.Description = d.Description;
            customDataCollectionItem.Data        = d.Data;
            //int size = cpc_flowLayoutPanel_collection.Controls.Count;
            //customDataCollectionItem.PanelOrderNumber = size + 1;
            cpc_flowLayoutPanel_collection.Controls.Add(customDataCollectionItem);
        }
        public Item_ShowDataItems(Data data, int _order, int Width, ShowDataItems child, CustomDataCollectionItem root)
        {
            InitializeComponent();
            //ItemWidth = 50;
            _width   = child.panel.Width;
            Order    = _order;
            ItemData = data;

            childItem = child;
            rootItem  = root;

            SetColor();

            TextField.Text = data.Name;
            SetHeight();

            oderField.Text = Order.ToString();

            fl = child.panel;
            oderField.SelectAll();
            oderField.SelectionAlignment = HorizontalAlignment.Center;
        }
        public Item_ShowDataItems(CustomDataCollectionItem root, ShowDataItems child, String description, int Width)
        {
            InitializeComponent();

            this.Pointer = -1;

            //ItemWidth = Width;
            _width    = child.panel.Width;
            rootItem  = root;
            childItem = child;

            SetColor();

            _Order         = -1;
            TextField.Text = description;
            SetHeight();

            oderField.Text = Order.ToString();

            itemPanel = child.panel;
            oderField.SelectAll();
            oderField.SelectionAlignment = HorizontalAlignment.Center;
        }