Source code for pyface.data_view.value_types.color_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 pyface.color import Color

from pyface.data_view.abstract_data_model import DataViewSetError
from .editable_value import EditableValue


[docs]class ColorValue(EditableValue): """ Editable value that presents a color value. This is suitable for use where the value returned by an item in the model is a Color object. """
[docs] def is_valid(self, model, row, column, value): """ Is the given value valid for this item. The default implementation says the value must be a Color. 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. value : Any The value to test. Returns ------- success : bool Whether or not the value is valid. """ return isinstance(value, Color)
[docs] def get_editor_value(self, model, row, column): """ Get the editable representation of the underlying value. The default uses a text hex representation of the color. 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 A hex string representation of the colour. """ return model.get_value(row, column).hex()
[docs] def set_editor_value(self, model, row, column, value): """ Set the editable representation of the underlying value. The default expects a string that can be parsed to a color 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. value : str A string that can be parsed to a color value. Returns ------- success : bool Whether or not the value was successfully set. """ try: color = Color.from_str(value) except Exception: raise DataViewSetError() return super().set_editor_value(model, row, column, color)
[docs] def get_text(self, model, row, column): """ Get the textual representation 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. Returns ------- text : str A hex string representation of the colour. """ return model.get_value(row, column).hex()
[docs] def set_text(self, model, row, column, text): """ Set the textual representation 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. Returns ------- success : bool Whether or not the value was successfully set. """ return self.set_editor_value(model, row, column, text)
[docs] def has_color(self, model, row, column): """ Whether or not the value has color data. The default implementation returns False. 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 ------- has_color : bool Whether or not the value has data-associated color values. """ return True
[docs] def get_color(self, model, row, column): """ Get data-associated colour values for the given item. 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 ------- color : Color The color associated with the cell. """ return model.get_value(row, column)