コード例 #1
0
ファイル: FListInfo.cs プロジェクト: Digiman/LabList
 public FListInfo(TSubjectList list)
 {
     InitializeComponent();
     // вывод данных в компоненты
     CurrentList = list;
     InitData(list);
 }
コード例 #2
0
ファイル: FListInfo.cs プロジェクト: Digiman/LabList
 /// <summary>
 /// Инициализация данных в окне
 /// </summary>
 /// <param name="list">Список предметов</param>
 private void InitData(TSubjectList list)
 {
     textBox1.Text = list.Name;
     textBox2.Text = list.Description;
     textBox3.Text = list.DateCreated.ToString();
     textBox3.ReadOnly = true;
     InitImages();
 }
コード例 #3
0
ファイル: XMLWorker.cs プロジェクト: Digiman/LabList
        /// <summary>
        /// Сохранение списка в файл
        /// </summary>
        /// <param name="list">Список предметов и работы по ним</param>
        /// <param name="fname">Полный путь и название файла для сохранения</param>
        public static void SaveListToFile(TSubjectList list, string fname)
        {
            XmlTextWriter file = new XmlTextWriter(fname, Encoding.UTF8);

            file.WriteStartDocument();
            file.WriteStartElement("subjlist");
            file.WriteStartAttribute("name");
            file.WriteValue(list.Name);
            file.WriteStartAttribute("description");
            file.WriteValue(list.Description);
            file.WriteStartAttribute("datecreated");
            file.WriteValue(list.DateCreated);
            // теперь записываем все предметы из списка по порядку
            for (int i = 0; i < list.GetSubjectListCount; i++)
            {
                file.WriteStartElement("subject"); // открываем элемент <subject>
                file.WriteStartAttribute("name");
                file.WriteValue(list[i].Name);
                file.WriteStartAttribute("status");
                file.WriteValue(list[i].Status.ToString());
                // записывем элемент список лаб <lablist>
                file.WriteStartElement("lablist"); // открываем элемент <lablist>
                file.WriteStartAttribute("name");
                file.WriteValue(list[i].List.Name);
                file.WriteStartAttribute("description");
                file.WriteValue(list[i].List.Description);
                // теперь записываем все лабы предмета
                for (int j = 0; j < list[i].List.Items.Length; j++)
                {
                    file.WriteStartElement("lab"); // открываем элемент <lab>
                    file.WriteStartAttribute("name");
                    file.WriteValue(list[i].List.Items[j].Name);
                    file.WriteStartAttribute("description");
                    file.WriteValue(list[i].List.Items[j].Description);
                    file.WriteStartAttribute("status");
                    file.WriteValue(list[i].List.Items[j].Status.ToString());
                    // теперь записываем состав каждой лабы (элементы)
                    for (int k = 0; k < list[i].List.Items[j].Elements.Length; k++)
                    {
                        file.WriteStartElement("element"); // открываем элемент </element>
                        file.WriteStartAttribute("type");
                        file.WriteValue(list[i].List.Items[j].Elements[k].type.ToString());
                        file.WriteStartAttribute("iscompleted");
                        file.WriteValue(list[i].List.Items[j].Elements[k].isCompleted);
                        file.WriteEndElement(); // закрываем элемент </element>
                    }
                    // закрываем элемент </lab>
                    file.WriteEndElement();
                }
                // закрываем элемент </lablist>
                file.WriteEndElement();
                // закрываем элемент </subject>
                file.WriteEndElement();
            }
            // закрываем элемент </subjlist>
            file.WriteEndElement();

            file.Close();
        }
コード例 #4
0
ファイル: XMLWorker.cs プロジェクト: Digiman/LabList
        /// <summary>
        /// Загрузка данных из файла
        /// </summary>
        /// <param name="fname">Полный путь и имя файла для чтения</param>
        /// <returns>Возвращает список предметов с ихними работами</returns>
        public static TSubjectList LoadListFromFile(string fname)
        {
            XmlTextReader file = null;
            TSubjectList list = null;

            TSubject subj = null;
            TListItem item = null;

            try
            {
                // Load the reader with the data file and ignore all white space nodes.
                file = new XmlTextReader(fname);
                file.WhitespaceHandling = WhitespaceHandling.None;

                // Parse the file and display each of the nodes.
                while (file.Read())
                {
                    switch (file.NodeType)
                    {
                        case XmlNodeType.Element:
                            switch (file.Name) // проверяем элемент из XML файла
                            {
                                case "subjlist":
                                    // создание объекта списка
                                    list = new TSubjectList(file.GetAttribute("name"), file.GetAttribute("description"));
                                    break;
                                case "subject": // считываем описание предмета
                                    subj = new TSubject(file.GetAttribute("name"), (TStatus)Enum.Parse(typeof(TStatus), file.GetAttribute("status")));
                                    break;
                                case "lablist": // считываем описание списка работ
                                    if (subj != null)
                                        subj.List = new TLabList(file.GetAttribute("name"), file.GetAttribute("description"));
                                    break;
                                case "lab":
                                    item = new TListItem(file.GetAttribute("name"), file.GetAttribute("description"), (TStatus)Enum.Parse(typeof(TStatus), file.GetAttribute("status")));
                                    break;
                                case "element":
                                    if (item != null)
                                    {
                                        Element el = new Element();
                                        el.type = (ElementsTypes)Enum.Parse(typeof(ElementsTypes) ,file.GetAttribute("type"));
                                        el.isCompleted = bool.Parse(file.GetAttribute("iscompleted"));
                                        item.AddElement(el);
                                    }
                                    break;
                            }
                            break;
                        case XmlNodeType.EndElement:
                            switch (file.Name) // проверка на завершение блока элемента
                            {
                                case "lab": // добавление работы в список работ
                                    if (subj != null)
                                        subj.List.AddItem(item);
                                    break;
                                case "subject": // добавление предмета в список
                                    if (list != null)
                                        list.AddSubject(subj);
                                    break;
                            }
                            break;
                    }
                }
            }
            finally
            {
                if (file != null)
                    file.Close();
            }

            // возвращаем считанный список из файла
            return list;
        }