Exemplo n.º 1
0
        //Создаётся группа
        private void MakeGroup_Click(object sender, EventArgs e)
        {
            CGroup group = new CGroup();

            Mylist.front();
            while (!Mylist.eol())
            {
                if (Mylist.getObject().Current)
                {
                    group.Add(Mylist.getObject());
                    Mylist.erase(Mylist.getCurrent());

                    Mylist.front();
                }
                else
                {
                    Mylist.next();
                }
            }

            if (group.getList().size > 0)
            {
                Mylist.push_back(group);
            }

            ActiveActionChange(createMenu, null);
        }
Exemplo n.º 2
0
        //Удаляется группа
        private void DeleteGroupMenu_Click(object sender, EventArgs e)
        {
            CGroup group = new CGroup();

            Mylist.front();
            while (!Mylist.eol())
            {
                if (Mylist.getObject().Current)
                {
                    group = Mylist.getObject() as CGroup;
                    if (group != null)
                    {
                        Mylist.erase(Mylist.getCurrent());
                        break;
                    }
                    else
                    {
                        return;
                    }
                }
                else
                {
                    Mylist.next();
                }
            }

            MyLinkedList CopyList = group.getList();

            CopyList.front();
            while (!CopyList.eol())
            {
                Mylist.push_back(CopyList.getObject());

                CopyList.next();
            }

            ActiveActionChange(createMenu, null);
        }
Exemplo n.º 3
0
        //Добавление очередного узла дерева
        void processNode(TreeNode tn, AbstractShape leaf)
        {
            //Добавляем в дерево название объекта
            tn.Text = leaf.ToString().Substring(8);

            //Пробуем преобразовать объект хранилища в группу
            CGroup group = leaf as CGroup;

            if (group != null)
            {
                LinkedList list = group.getList();
                int        i    = 0;

                //Вызываем для каждого узла группы функцию добавления в дерево
                list.front();
                while (list.eol() == false)
                {
                    tn.Nodes.Add(new TreeNode());

                    processNode(tn.Nodes[i++], list.getObject());
                    list.next();
                }
            }
        }