def __init__(self, rootitem=None, itemdataclass=None):
        """Initialize a new Reftrack root with a given root tree item and
        a :class:`jukeboxcore.gui.treemodel.ItemData` class to wrap
        the :class:`Reftrack` objects.

        The ItemData class should accept a :class:`Reftrack` object as
        first argument in the constructor.

        :param rootitem: the root tree item for the treemodel.
                         The root tree item will be responsible for the headers in a view.
                         If no rootitem is provided, a default one is used.
        :type rootitem: :class:`jukeboxcore.gui.treemodel.TreeItem` | None
        :param itemdataclass: the itemdata subclass to be used for wrapping the :class:`Reftrack` objects
                              in the model. Not an instance! A class! The constructor should accept
                              a :class:`Reftrack` object as first argument.
                              If no class is provided, a default one is used. See: :class:`ReftrackItemData`
        :type itemdataclass: :class:`jukeboxcore.gui.treemodel.ItemData` | None
        :raises: None
        """
        if rootitem is None:
            rootdata = ListItemData(["Type",
                                     "Seq/Atype",
                                     "Shot/Asset",
                                     "Task",
                                     "Releasetype",
                                     "Descriptor",
                                     "Version",
                                     "Status",
                                     "Uptodate",
                                     "Alien",
                                     "Path",
                                     "Referencing Restricted",
                                     "Loading Restricted",
                                     "Unloading Restricted",
                                     "Import Reference Restricted",
                                     "Import File Restricted",
                                     "Replace Restricted",
                                     "Identifier",
                                     "Reftrack Object"])
            rootitem = TreeItem(rootdata)
        if itemdataclass is None:
            itemdataclass = ReftrackItemData

        self._model = TreeModel(rootitem)
        self._rootitem = rootitem
        self._idataclass = itemdataclass
        self._reftracks = set()  # a list of all reftracks in belonging to the root
        self._parentsearchdict = {}
        """Keys are the refobjs of the Reftrack and the values are the Reftrack objects.
        So you can easily find the parent Reftrack for a parent refobj."""
def __init__ ( self , rootitem = None , itemdataclass = None ) : if rootitem is None : rootdata = ListItemData ( [ "Type" , "Seq/Atype" , "Shot/Asset" , "Task" , "Releasetype" , "Descriptor" , "Version" , "Status" , "Uptodate" , "Alien" , "Path" , "Referencing Restricted" , "Loading Restricted" , "Unloading Restricted" , "Import Reference Restricted" , "Import File Restricted" , "Replace Restricted" , "Identifier" , "Reftrack Object" ] ) rootitem = TreeItem ( rootdata ) if itemdataclass is None : itemdataclass = ReftrackItemData self . _model = TreeModel ( rootitem ) self . _rootitem = rootitem self . _idataclass = itemdataclass self . _reftracks = set ( ) self . _parentsearchdict = { }
Initialize a new Reftrack root with a given root tree item and
        a :class:`jukeboxcore.gui.treemodel.ItemData` class to wrap
        the :class:`Reftrack` objects.

        The ItemData class should accept a :class:`Reftrack` object as
        first argument in the constructor.

        :param rootitem: the root tree item for the treemodel.
                         The root tree item will be responsible for the headers in a view.
                         If no rootitem is provided, a default one is used.
        :type rootitem: :class:`jukeboxcore.gui.treemodel.TreeItem` | None
        :param itemdataclass: the itemdata subclass to be used for wrapping the :class:`Reftrack` objects
                              in the model. Not an instance! A class! The constructor should accept
                              a :class:`Reftrack` object as first argument.
                              If no class is provided, a default one is used. See: :class:`ReftrackItemData`
        :type itemdataclass: :class:`jukeboxcore.gui.treemodel.ItemData` | None
        :raises: None