Source code for pyface.data_view.exporters.item_exporter
# (C) Copyright 2005-2023 Enthought, Inc., Austin, TX
# All rights reserved.
#
# This software is provided without warranty under the terms of the BSD
# license included in LICENSE.txt and may be redistributed only under
# the conditions described in the aforementioned license. The license
# is also available online at http://www.enthought.com/licenses/BSD.txt
#
# Thanks for using Enthought open source!
from pyface.data_view.abstract_data_exporter import AbstractDataExporter
from pyface.data_view.data_view_errors import DataViewGetError
[docs]class ItemExporter(AbstractDataExporter):
""" Export a single item from a data view.
This is suitable for drag and drop or copying of the content of a single
item in a data view. If passed an multiple items it will fail by
raising ``DataViewGetError``; drag and drop support will then ignore this
as an exporter to use.
"""
[docs] def add_data(self, data_wrapper, model, indices):
""" Add data to the data wrapper from the model and indices.
Parameters
----------
data_wrapper : DataWrapper
The data wrapper that will be used to export data.
model : AbstractDataModel
The data model holding the data.
indices : list of (row, column) index pairs
The indices where the data is to be stored.
"""
# only export single item values
if len(indices) == 1:
super().add_data(data_wrapper, model, indices)
[docs] def get_data(self, model, indices):
""" Get the data to be exported from the model and indices.
Parameters
----------
model : AbstractDataModel
The data model holding the data.
indices : list of (row, column) index pairs
The indices where the data is to be stored.
Returns
-------
data : Any
The data, of a type that can be serialized by the format.
"""
if len(indices) != 1:
raise DataViewGetError("ItemExporter can only export single values")
row, column = indices[0]
return self.get_value(model, row, column)