spinetoolbox.mvcmodels.entity_tree_item
¶
Classes to represent entities in a tree.
authors: |
|
---|---|
date: | 11.3.2019 |
Module Contents¶
-
class
spinetoolbox.mvcmodels.entity_tree_item.
MultiDBTreeItem
(model=None, db_map_id=None)[source]¶ Bases:
spinetoolbox.mvcmodels.minimal_tree_model.TreeItem
A tree item that may belong in multiple databases.
Init class.
Parameters: - db_mngr (SpineDBManager) – a database manager
- db_map_data (dict) – maps instances of DiffDatabaseMapping to the id of the item in that db
-
child_item_type
[source]¶ Returns the type of child items. Reimplement in subclasses to return something more meaningful.
-
display_id
[source]¶ “Returns an id for display based on the display key. This id must be the same across all db_maps. If it’s not, this property becomes None and measures need to be taken (see update_children_by_id).
-
display_icon
[source]¶ Returns an icon to display next to the name. Reimplement in subclasses to return something nice.
-
deep_remove_db_map
(self, db_map)[source]¶ Removes given db_map from this item and all its descendants.
-
deep_take_db_map
(self, db_map)[source]¶ Takes given db_map from this item and all its descendants. Returns a new item from taken data or None if db_map is not present in the first place.
-
db_map_id
(self, db_map)[source]¶ Returns the id for this item in given db_map or None if not present.
-
db_map_data
(self, db_map)[source]¶ Returns data for this item in given db_map or None if not present.
-
db_map_data_field
(self, db_map, field, default=None)[source]¶ Returns field from data for this item in given db_map or None if not found.
-
_create_new_children
(self, db_map, children_ids)[source]¶ Creates new items from ids associated to a db map.
Parameters: - db_map (DiffDatabaseMapping) – create children for this db_map
- children_data (iter) – create childs from these dictionaries
-
_merge_children
(self, new_children)[source]¶ Merges new children into this item. Ensures that each children has a valid display id afterwards.
-
_get_children_ids
(self, db_map)[source]¶ Returns a list of children ids. Must be reimplemented in subclasses.
-
append_children_by_id
(self, db_map_ids)[source]¶ Appends children by id.
Parameters: db_map_ids (dict) – maps DiffDatabaseMapping instances to list of ids
-
remove_children_by_id
(self, db_map_ids)[source]¶ Removes children by id.
Parameters: db_map_ids (dict) – maps DiffDatabaseMapping instances to list of ids
-
update_children_by_id
(self, db_map_ids)[source]¶ Updates children by id. Essentially makes sure all children have a valid display id after updating the underlying data. These may require ‘splitting’ a child into several for different dbs or merging two or more children from different dbs.
Examples of problems:
- The user renames an object class in one db but not in the others –> we need to split
- The user renames an object class and the new name is already ‘taken’ by another object class in another db_map –> we need to merge
Parameters: db_map_ids (dict) – maps DiffDatabaseMapping instances to list of ids
-
insert_children
(self, position, *children)[source]¶ Insert new children at given position. Returns a boolean depending on how it went.
Parameters: - position (int) – insert new items here
- children (iter) – insert items from this iterable
-
remove_children
(self, position, count)[source]¶ Removes count children starting from the given position.
-
find_children_by_id
(self, db_map, *ids, reverse=True)[source]¶ Generates children with the given ids in the given db_map. If the first id is True, then generates all children with the given db_map.
-
class
spinetoolbox.mvcmodels.entity_tree_item.
TreeRootItem
[source]¶ Bases:
spinetoolbox.mvcmodels.entity_tree_item.MultiDBTreeItem
-
class
spinetoolbox.mvcmodels.entity_tree_item.
ObjectTreeRootItem
(*args, **kwargs)[source]¶ Bases:
spinetoolbox.mvcmodels.entity_tree_item.TreeRootItem
An object tree root item.
-
class
spinetoolbox.mvcmodels.entity_tree_item.
RelationshipTreeRootItem
(*args, **kwargs)[source]¶ Bases:
spinetoolbox.mvcmodels.entity_tree_item.TreeRootItem
A relationship tree root item.
-
class
spinetoolbox.mvcmodels.entity_tree_item.
EntityClassItem
[source]¶ Bases:
spinetoolbox.mvcmodels.entity_tree_item.MultiDBTreeItem
An entity class item.
-
class
spinetoolbox.mvcmodels.entity_tree_item.
ObjectClassItem
(*args, **kwargs)[source]¶ Bases:
spinetoolbox.mvcmodels.entity_tree_item.EntityClassItem
An object class item.
-
class
spinetoolbox.mvcmodels.entity_tree_item.
RelationshipClassItem
(*args, **kwargs)[source]¶ Bases:
spinetoolbox.mvcmodels.entity_tree_item.EntityClassItem
A relationship class item.
-
class
spinetoolbox.mvcmodels.entity_tree_item.
EntityItem
[source]¶ Bases:
spinetoolbox.mvcmodels.entity_tree_item.MultiDBTreeItem
An entity item.
-
class
spinetoolbox.mvcmodels.entity_tree_item.
ObjectItem
(*args, **kwargs)[source]¶ Bases:
spinetoolbox.mvcmodels.entity_tree_item.EntityItem
An object item.
-
class
spinetoolbox.mvcmodels.entity_tree_item.
RelationshipItem
(*args, **kwargs)[source]¶ Bases:
spinetoolbox.mvcmodels.entity_tree_item.EntityItem
An object item.
Overridden method to parse some data for convenience later. Also make sure we never try to fetch this item.