Source code for pyface.data_view.value_types.text_value
# (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 traits.api import Callable
from .editable_value import EditableValue
[docs]class TextValue(EditableValue):
""" Editable value that presents a string value.
"""
#: A function that converts the value to a string for display.
format = Callable(str, update_value_type=True)
#: A function that converts to a value from a display string.
unformat = Callable(str)
[docs] def get_text(self, model, row, column):
""" Get the display text from the underlying value.
Parameters
----------
model : AbstractDataModel
The data model holding the data.
row : sequence of int
The row in the data model being queried.
column : sequence of int
The column in the data model being queried.
Returns
-------
text : str
The text to display.
"""
return self.format(model.get_value(row, column))
[docs] def set_text(self, model, row, column, text):
""" Set the text of the underlying value.
Parameters
----------
model : AbstractDataModel
The data model holding the data.
row : sequence of int
The row in the data model being queried.
column : sequence of int
The column in the data model being queried.
text : str
The text to set.
Raises
-------
DataViewSetError
If the value cannot be set.
"""
value = self.unformat(text)
self.set_editor_value(model, row, column, value)