//Создаётся группа 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); }
//Удаляется группа 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); }
//Добавление очередного узла дерева 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(); } } }