# coding: utf-8
#
# Copyright 2023 :Barry-Thomas-Paul: Moss
#
# Licensed under the Apache License, Version 2.0 (the "License")
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http: // www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Interface Class
# this is a auto generated file generated by Cheetah
# Libre Office Version: 7.4
# Namespace: com.sun.star.sdb.application
from __future__ import annotations
import typing
from abc import abstractmethod, ABC
if typing.TYPE_CHECKING:
    from ...graphic.x_graphic import XGraphic as XGraphic_a4da0afc
    from .x_database_document_ui import XDatabaseDocumentUI as XDatabaseDocumentUI_be9c124d
    from ...uno.x_interface import XInterface as XInterface_8f010a43

class XTableUIProvider(ABC):
    """
    is used by the database application to obtain non-default user interface information and/or components for database tables.
    
    **since**
    
        OOo 2.2

    See Also:
        `API XTableUIProvider <https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1sdb_1_1application_1_1XTableUIProvider.html>`_
    """
    __ooo_ns__: str = 'com.sun.star.sdb.application'
    __ooo_full_ns__: str = 'com.sun.star.sdb.application.XTableUIProvider'
    __ooo_type_name__: str = 'interface'
    __pyunointerface__: str = 'com.sun.star.sdb.application.XTableUIProvider'

    @abstractmethod
    def getTableEditor(self, DocumentUI: XDatabaseDocumentUI_be9c124d, TableName: str) -> XInterface_8f010a43:
        """
        returns a component which can be used to edit the definition of an existing table.

        Raises:
            com.sun.star.lang.IllegalArgumentException: ``IllegalArgumentException``
            com.sun.star.lang.WrappedTargetException: ``WrappedTargetException``
        """
        ...
    @abstractmethod
    def getTableIcon(self, TableName: str, ColorMode: int) -> XGraphic_a4da0afc:
        """
        provides the icon which should be used to represent the table in the database application window.
        
        The icon will usually be requested once per table, and cached. It might be requested again if the application settings change, for instance, if another desktop theme has been activated.
        """
        ...

__all__ = ['XTableUIProvider']


