Source code for ooodev.dialog.search.tree_search.rule_data_insensitive

from __future__ import annotations
from typing import Any, TYPE_CHECKING
from com.sun.star.awt.tree import XMutableTreeNode

from ooodev.loader import lo as mLo

if TYPE_CHECKING:
    from com.sun.star.awt.tree import XTreeNode


[docs]class RuleDataInsensitive: """ Rule for matching a node's data value with a case-insensitive string. For case sensitive matching, use :py:class:`~.RuleDataCompare`. """
[docs] def is_match(self, node: XTreeNode, match_value: Any) -> bool: """ Gets the node's data value and compares it with the match value. Args: node (XTreeNode): Tree node to check. match_value (Any): Value to match. Must be a string to match. Returns: bool: True if the node's data value matches the match value; Otherwise, False. """ tree_node = mLo.Lo.qi(XMutableTreeNode, node) if not tree_node: return False data_value = tree_node.DataValue if not data_value: return False if not isinstance(data_value, str): return False return data_value.casefold() == match_value.casefold()