Source code for ooodev.events.partial.events_partial

from __future__ import annotations
from typing import cast, TYPE_CHECKING
from ooodev.events.args.event_args_t import EventArgsT
from ooodev.events.lo_events import Events
from ooodev.utils.type_var import EventCallback

if TYPE_CHECKING:
    from ooodev.proto.event_observer import EventObserver


[docs]class EventsPartial:
[docs] def __init__(self, events: EventObserver | None = None): if events is not None: self.__events = events else: self.__events = cast("EventObserver", Events(source=self))
# region Events
[docs] def add_event_observers(self, *args: EventObserver) -> None: """ Adds observers that gets their ``trigger`` method called when this class ``trigger`` method is called. Parameters: args (EventObserver): One or more observers to add. Returns: None: Note: Observers are removed automatically when they are out of scope. """ self.__events.add_observer(*args)
[docs] def remove_event_observer(self, observer: EventObserver) -> bool: """ Removes an observer Args: observer (EventObserver): One or more observers to add. Returns: bool: ``True`` if observer has been removed; Otherwise, ``False``. """ return self.__events.remove_observer(observer)
[docs] def subscribe_event(self, event_name: str, callback: EventCallback) -> None: """ Add an event listener to current instance. Args: event_name (str): Event Name. callback (EventCallback): Callback of the event listener. Returns: None: """ self.__events.on(event_name, callback)
[docs] def unsubscribe_event(self, event_name: str, callback: EventCallback) -> None: """ Remove an event listener from current instance. Args: event_name (str): Event Name. callback (EventCallback): Callback of the event listener. Returns: None: """ self.__events.remove(event_name, callback)
[docs] def trigger_event(self, event_name: str, event_args: EventArgsT): """ Trigger an event on current instance. Args: event_name (str): Event Name. event_args (EventArgsT): Event Args. Returns: None: """ self.__events.trigger(event_name, event_args)
# endregion Events @property def event_observer(self) -> EventObserver: """Gets/Sets The Event Observer for this instance.""" return self.__events @event_observer.setter def event_observer(self, value: EventObserver) -> None: """Sets The Event Observer for this instance.""" self.__events = value