treeitem.h

Go to the documentation of this file.
00001 #ifndef TREEITEM_H
00002 #define TREEITEM_H
00003 
00004 #include <QList>
00005 #include <QVariant>
00006 #include <QVector>
00007 #include <QStringList>
00008 #include <QDomElement>
00009 #include <QDomDocument>
00010 
00011 #include "recordtabledata.h"
00012 
00013 class TreeItem
00014 {
00015 public:
00016     TreeItem(const QMap<QString, QString> &data, TreeItem *parent = 0);
00017     ~TreeItem();
00018 
00019     // Возвращение ссылки на потомка, который хранится в списке childItems
00020     // под указанным номером
00021     TreeItem *child(int number);
00022 
00023     // Возвращение количества потомков (т.е. количество записей в списке childItems)
00024     int childCount() const;
00025 
00026     // Возвращение количества полей, которые хранит данный элемент.
00027     int fieldCount() const;
00028 
00029     // Получение значение поля с указанным именем
00030     QVariant data(QString name);
00031 
00032     // Заполнение указанного поля
00033     void setData(QString n,QString v);
00034     
00035     // Добавление потомка (потомков) к текущему элементу
00036     // position - после какой позиции массива childItems вставить
00037     // count - сколько потомков вставить (обычно 1, но можно и несколько)
00038     // columns - сколько столбцов должен содержать потомок
00039     bool insertChildren(int position, int count, int columns);
00040 
00041     // Добавление нового подчиненного элемента 
00042     // в конец списка подчиненных элементов
00043     bool addChildren(void);
00044     
00045     // Возвращение ссылки на родительский элемент
00046     TreeItem *parent();
00047 
00048     // Удаление потомков, начиная с позиции position массива childItems
00049     bool removeChildren(int position, int count);
00050 
00051     // Возвращает номер, под которым данный объект хранится
00052     // в массиве childItems своего родителя
00053     int childNumber() const;
00054 
00055     bool move_up(void);
00056     bool move_dn(void);
00057     
00058     // Возвращает id путь (список идентификаторов от корня до текущего элемента)
00059     QStringList get_path(void);
00060     
00061     // Возвращает путь в виде названий веток дерева
00062     QStringList get_path_as_name(void);
00063 
00064     // Возвращает массив путей всех подветок, которые содержит ветка
00065     QList<QStringList> get_all_children_path(void);
00066     
00067     // Первичное заполнение таблицы конечных записей, "промежуточный" метод
00068     void recordtable_init(QDomElement dommodel);
00069 
00070     // Взятие количества записей в таблице конечных записей, "промежуточный" метод
00071     int recordtable_getrowcount(void);
00072 
00073     // Удаление всех элементов в таблице конечных записей, "промежуточный" метод
00074     void recordtable_clear(void);
00075     
00076     // Преобразование таблицы конечных записей в DOM представление, "промежуточный" метод
00077     QDomDocument recordtable_export_data_to_dom(void);
00078 
00079     // Взятие ссылки на данные конечных записей
00080     recordtabledata *recordtable_gettabledata(void);
00081     
00082 private:
00083     bool removeChildrenLink(int position, int count);
00084     QList<QStringList> get_all_children_path_recurse(TreeItem *item,int mode);
00085     QStringList get_path_as_field(QString field);
00086     
00087     QList<TreeItem*> childItems; // Список ссылок на потомков
00088     TreeItem *parentItem;        // Ссылка на родителя
00089 
00090     // Таблица полей
00091     QMap<QString, QString> fieldtable;
00092 
00093     // Каждый элемент может содержать данные таблицы конечных записей
00094     recordtabledata rtable;
00095 };
00096 
00097 #endif

Generated on Mon Feb 2 00:25:34 2009 for mytetra by  doxygen 1.5.1