#include <xmldao.hpp>
Public Member Functions | |
XmlDao (int verbose=0) | |
KitModel * | get_model () |
Loads the data model from the previously set filename. | |
KitModel * | get_model (Glib::ustring filename) |
void | save_model (KitModel *model) |
Saves the model as an XML document. | |
void | save_model (KitModel *model, Glib::ustring filename) |
Saves the model as an XML document. | |
Category * | get_category (long cat_id, item_choice choice) |
Loads a category. | |
ItemContainer * | get_all_items (item_choice choice) |
Returns a list of all items. | |
long | add_item (const std::string name) |
long | add_item (const std::string name, long cat_id) |
void | append_items_to_category (long to_cat_id, long from_cat_id, item_choice choice) |
Copies items from one category to another. | |
void | associate_item_with_category (long id, long cat_id) |
Associates an existing item with an existing category. | |
CategoryContainer | get_categories () |
long | new_category (const std::string name) |
Creates a new category. | |
void | delete_item (long id) |
void | update_item_checked_state (ItemContainer &items) |
Persists the state of the 'checked' flag of each item. | |
void | remove_item_from_category (long id, long cat_id) |
long | get_next_item_id () |
Returns the next unused unique id for items. | |
long | get_next_category_id () |
void | delete_category (long id) |
void | set_item_flag (long id) |
void | unset_item_flag (long id) |
void | set_category_flag (long id) |
void | unset_category_flag (long id) |
void | set_all_flags () |
void | unset_all_flags () |
void | set_filename (Glib::ustring filename) |
virtual bool | require_filename () |
Indicates that this implementation requires a filename. | |
Protected Attributes | |
Glib::ustring | m_filename |
The filename to load or save the XML document from. | |
xmlpp::Element * | m_items_node |
Temporary reference to the items' node. | |
xmlpp::Element * | m_categories_node |
Temporary reference to the categories' node. | |
xmlpp::Element * | m_cat_items_node |
Temporary reference to the categories' items' node. | |
long | m_max_item_id |
The last used ID for items. | |
long | m_max_category_id |
The last used ID for categories. | |
Private Member Functions | |
bool | add_item_to_dom (ModelItem &item) |
Adds the passed item to the current items' node. | |
bool | add_category_item_to_dom (Item &item) |
Adds the passed item to the current category's node. | |
bool | add_category_to_dom (ModelCategory &item) |
Adds the passed item to the current categories' node. |
Definition at line 42 of file xmldao.hpp.
XmlDao::XmlDao | ( | int | verbose = 0 |
) | [inline] |
Definition at line 67 of file xmldao.hpp.
bool XmlDao::add_item_to_dom | ( | ModelItem & | item | ) | [private] |
Adds the passed item to the current items' node.
Definition at line 87 of file xmldao.cpp.
References Item::get_checked(), Item::get_description(), Item::get_id(), GuiState::is_deleted(), and m_items_node.
Referenced by save_model().
bool XmlDao::add_category_item_to_dom | ( | Item & | item | ) | [private] |
Adds the passed item to the current category's node.
Definition at line 106 of file xmldao.cpp.
References Item::get_id(), and m_cat_items_node.
Referenced by add_category_to_dom().
bool XmlDao::add_category_to_dom | ( | ModelCategory & | category | ) | [private] |
Adds the passed item to the current categories' node.
Definition at line 123 of file xmldao.cpp.
References add_category_item_to_dom(), Category::foreach_item(), Category::get_id(), Category::get_name(), GuiState::is_deleted(), m_cat_items_node, and m_categories_node.
Referenced by save_model().
KitModel * XmlDao::get_model | ( | ) | [virtual] |
Loads the data model from the previously set filename.
The data model holds a rich graph of objects, representing the entire list of categories and items.
The filename must be set before calling this method by calling XmlDao::set_filename(), otherwise an empty model is returned.
Returns | a newly created data model. The caller is responsible for destroying the model. |
Implements KitListDao.
Definition at line 46 of file xmldao.cpp.
References KitModel::get_all_items(), KitModel::get_categories(), Category::get_id(), Item::get_id(), m_filename, m_max_category_id, m_max_item_id, and KitModel::reset().
Referenced by get_model().
KitModel* XmlDao::get_model | ( | Glib::ustring | filename | ) | [inline] |
void XmlDao::save_model | ( | KitModel * | model | ) | [virtual] |
Saves the model as an XML document.
The filename must be set before calling this method by calling XmlDao::set_filename();
model | The model to save. |
Implements KitListDao.
Definition at line 163 of file xmldao.cpp.
References add_category_to_dom(), add_item_to_dom(), KitModel::foreach_category(), KitModel::foreach_item(), m_categories_node, m_filename, m_items_node, KitModel::purge(), and KitModel::reset().
Referenced by Service::save_as_xml(), and save_model().
void XmlDao::save_model | ( | KitModel * | model, | |
Glib::ustring | filename | |||
) | [inline] |
Saves the model as an XML document.
model | The model to save. | |
filename | The name of the file to save to. |
Definition at line 86 of file xmldao.hpp.
References save_model(), and set_filename().
Category* XmlDao::get_category | ( | long | cat_id, | |
item_choice | choice | |||
) | [inline, virtual] |
Loads a category.
choice | Which items to load for the category. One of ALL_ITEMS, CHECKED_ITEMS or UNCHECKED_ITEMS. |
Implements KitListDao.
Definition at line 88 of file xmldao.hpp.
References NYI.
ItemContainer* XmlDao::get_all_items | ( | item_choice | choice | ) | [inline, virtual] |
Returns a list of all items.
choice | Which items to load. One of ALL_ITEMS, CHECKED_ITEMS or UNCHECKED_ITEMS. |
Implements KitListDao.
Definition at line 90 of file xmldao.hpp.
References NYI.
long XmlDao::add_item | ( | const std::string | name | ) | [inline, virtual] |
Creates a new item.
name | The name of the new item. |
Implements KitListDao.
Definition at line 92 of file xmldao.hpp.
References NYI.
long XmlDao::add_item | ( | const std::string | name, | |
long | cat_id | |||
) | [inline, virtual] |
Creates a new item and associates it with a category.
name | The name of the new item. |
Implements KitListDao.
Definition at line 94 of file xmldao.hpp.
References NYI.
void XmlDao::append_items_to_category | ( | long | to_cat_id, | |
long | from_cat_id, | |||
item_choice | choice | |||
) | [inline, virtual] |
Copies items from one category to another.
Optionally, only checked or unchecked items are copied.
from_cat_id | The ID of the source category. | |
to_cat_id | The ID of the target category. | |
choice | One of ALL_ITEMS, CHECKED_ITEMS or UNCHECKED_ITEMS. |
Implements KitListDao.
Definition at line 96 of file xmldao.hpp.
References NYI.
void XmlDao::associate_item_with_category | ( | long | id, | |
long | cat_id | |||
) | [inline, virtual] |
Associates an existing item with an existing category.
Implements KitListDao.
Definition at line 98 of file xmldao.hpp.
References NYI.
CategoryContainer XmlDao::get_categories | ( | ) | [inline, virtual] |
Returns a list of all categories.
Implements KitListDao.
Definition at line 100 of file xmldao.hpp.
References NYI.
long XmlDao::new_category | ( | const std::string | name | ) | [inline, virtual] |
Creates a new category.
name | the name of the new category. |
Implements KitListDao.
Definition at line 102 of file xmldao.hpp.
References NYI.
void XmlDao::delete_item | ( | long | id | ) | [inline, virtual] |
Deletes an item by it's ID.
id | the ID of the item to delete. |
Implements KitListDao.
Definition at line 104 of file xmldao.hpp.
References NYI.
void XmlDao::update_item_checked_state | ( | ItemContainer & | items | ) | [inline, virtual] |
Persists the state of the 'checked' flag of each item.
Implements KitListDao.
Definition at line 106 of file xmldao.hpp.
References NYI.
void XmlDao::remove_item_from_category | ( | long | id, | |
long | cat_id | |||
) | [inline, virtual] |
Un-associates the specified item from the specified category.
Implements KitListDao.
Definition at line 108 of file xmldao.hpp.
References NYI.
long XmlDao::get_next_item_id | ( | ) | [virtual] |
Returns the next unused unique id for items.
Implements KitListDao.
Definition at line 142 of file xmldao.cpp.
References m_max_item_id.
long XmlDao::get_next_category_id | ( | ) | [virtual] |
Returns the next unused unique id for categories.
Implements KitListDao.
Definition at line 150 of file xmldao.cpp.
References m_max_category_id.
void XmlDao::delete_category | ( | long | id | ) | [inline, virtual] |
Deletes a category.
Implements KitListDao.
Definition at line 114 of file xmldao.hpp.
References NYI.
void XmlDao::set_item_flag | ( | long | id | ) | [inline, virtual] |
Sets the checked flag for an item.
id | The id of the item to change. |
Implements KitListDao.
Definition at line 116 of file xmldao.hpp.
References NYI.
void XmlDao::unset_item_flag | ( | long | id | ) | [inline, virtual] |
Clears the checked flag for an item.
Implements KitListDao.
Definition at line 118 of file xmldao.hpp.
References NYI.
void XmlDao::set_category_flag | ( | long | id | ) | [inline, virtual] |
Checks/ticks all items in the specified Category.
Implements KitListDao.
Definition at line 120 of file xmldao.hpp.
References NYI.
void XmlDao::unset_category_flag | ( | long | id | ) | [inline, virtual] |
Unchecks/unticks all items in the specified Category.
Implements KitListDao.
Definition at line 122 of file xmldao.hpp.
References NYI.
void XmlDao::set_all_flags | ( | ) | [inline, virtual] |
Checks/ticks all items.
Implements KitListDao.
Definition at line 124 of file xmldao.hpp.
References NYI.
void XmlDao::unset_all_flags | ( | ) | [inline, virtual] |
Unchecks/unticks all items.
Implements KitListDao.
Definition at line 126 of file xmldao.hpp.
References NYI.
void XmlDao::set_filename | ( | Glib::ustring | filename | ) | [inline] |
Definition at line 128 of file xmldao.hpp.
References m_filename.
Referenced by get_model(), and save_model().
virtual bool XmlDao::require_filename | ( | ) | [inline, virtual] |
Indicates that this implementation requires a filename.
This persistence model requires a filename to be chosen before the data can be persisted.
Reimplemented from KitListDao.
Definition at line 138 of file xmldao.hpp.
Glib::ustring XmlDao::m_filename [protected] |
The filename to load or save the XML document from.
Definition at line 54 of file xmldao.hpp.
Referenced by get_model(), save_model(), and set_filename().
xmlpp::Element* XmlDao::m_items_node [protected] |
Temporary reference to the items' node.
Definition at line 56 of file xmldao.hpp.
Referenced by add_item_to_dom(), and save_model().
xmlpp::Element* XmlDao::m_categories_node [protected] |
Temporary reference to the categories' node.
Definition at line 58 of file xmldao.hpp.
Referenced by add_category_to_dom(), and save_model().
xmlpp::Element* XmlDao::m_cat_items_node [protected] |
Temporary reference to the categories' items' node.
Definition at line 60 of file xmldao.hpp.
Referenced by add_category_item_to_dom(), and add_category_to_dom().
long XmlDao::m_max_item_id [protected] |
The last used ID for items.
Definition at line 62 of file xmldao.hpp.
Referenced by get_model(), and get_next_item_id().
long XmlDao::m_max_category_id [protected] |
The last used ID for categories.
Definition at line 64 of file xmldao.hpp.
Referenced by get_model(), and get_next_category_id().