Source code for ooodev.calc.chart2.data.data_source

from __future__ import annotations
from typing import TYPE_CHECKING, Tuple
from ooodev.adapter.chart2.data.data_source_comp import DataSourceComp
from ooodev.loader import lo as mLo
from ooodev.office import chart2 as mChart2
from ooodev.utils.partial.lo_inst_props_partial import LoInstPropsPartial
from ooodev.calc.chart2.partial.chart_doc_prop_partial import ChartDocPropPartial


if TYPE_CHECKING:
    from com.sun.star.chart2.data import XDataSource
    from ooodev.loader.inst.lo_inst import LoInst
    from ooodev.calc.chart2.chart_data_series import ChartDataSeries


[docs]class DataSource(LoInstPropsPartial, DataSourceComp, ChartDocPropPartial): """ Class for managing Chart2 Data Data Source. """
[docs] def __init__(self, owner: ChartDataSeries, component: XDataSource, lo_inst: LoInst | None = None) -> None: """ Constructor Args: owner (ChartDiagram): Chart Diagram. component (XDataSource): UNO object that implements ``XDataSource`` interface. lo_inst (LoInst, optional): Lo Instance. Use when creating multiple documents. Defaults to None. """ if lo_inst is None: lo_inst = mLo.Lo.current_lo LoInstPropsPartial.__init__(self, lo_inst=lo_inst) DataSourceComp.__init__(self, component) # type: ignore ChartDocPropPartial.__init__(self, chart_doc=owner.chart_doc) self.__owner = owner
# region Properties
[docs] def get_data(self, idx: int) -> Tuple[float, ...]: """ Get Data Args: idx (int): Index. Raises: IndexError: If index is out of range. ChartError: If any other error occurs. Returns: Tuple[Tuple, ...]: float. """ return mChart2.Chart2.get_chart_data(self.component, idx)
@property def owner(self) -> ChartDataSeries: """Chart Diagram""" return self.__owner
# endregion Properties