feat: 大规模扩充至212个模块/175K行代码 — 覆盖android/java/javax/org/dalvik全包
- android/ 167个模块 (app/content/os/view/widget/graphics/media/hardware/net/telephony/provider等) - java/ 35个模块 (lang/io/util/net/nio/security/crypto/sql/beans/rmi/awt等) - javax/ 4个模块 (net/crypto/security/sql) - org/ 5个模块 (json/w3c_dom/xml_sax/xml_pull/apache_http) - dalvik/ 1个模块 (system) - ~3053个类/接口,方法签名完全对齐Android SDK - 桌面跨平台运行 (Windows/macOS/Linux) - 修复所有导入错误和Python关键字冲突
This commit is contained in:
1 parent
506f9ac725
commit
a51854455b
128 files changed
+100571
-3
No files matched your search
@@ -0,0 +1,806 @@
|
||||
"""
|
||||
Java java.beans standard library APIs implemented in Python.
|
||||
java.beans package - BeanInfo, Introspector, PropertyChange, etc.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from .._core import Stub, AndroidOnlyError
|
||||
from .lang import RuntimeException
|
||||
import typing as _typing
|
||||
|
||||
__all__ = [
|
||||
"BeanInfo", "IntrospectionException", "Introspector",
|
||||
"BeanDescriptor", "EventSetDescriptor", "MethodDescriptor",
|
||||
"ParameterDescriptor",
|
||||
"PropertyChangeListener", "PropertyChangeSupport",
|
||||
"PropertyChangeEvent", "PropertyChangeListenerProxy",
|
||||
"PropertyDescriptor", "SimpleBeanInfo", "FeatureDescriptor",
|
||||
"PropertyEditor", "PropertyEditorManager", "PropertyEditorSupport",
|
||||
"VetoableChangeListener", "VetoableChangeSupport",
|
||||
"IndexedPropertyChangeEvent", "IndexedPropertyDescriptor",
|
||||
"EventHandler", "ExceptionListener",
|
||||
"AppletInitializer", "Beans", "Customizer", "DesignMode", "Visibility",
|
||||
]
|
||||
|
||||
|
||||
# ============================================================
|
||||
# Exceptions
|
||||
# ============================================================
|
||||
|
||||
class IntrospectionException(Exception):
|
||||
"""java.beans.IntrospectionException"""
|
||||
def __init__(self, message):
|
||||
super().__init__(message)
|
||||
|
||||
|
||||
# ============================================================
|
||||
# FeatureDescriptor
|
||||
# ============================================================
|
||||
|
||||
class FeatureDescriptor(Stub):
|
||||
"""java.beans.FeatureDescriptor"""
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self._name = None
|
||||
self._display_name = None
|
||||
self._short_description = None
|
||||
self._preferred = False
|
||||
self._expert = False
|
||||
self._hidden = False
|
||||
self._attributes = {}
|
||||
self._bound = False
|
||||
self._constrained = False
|
||||
|
||||
def getName(self):
|
||||
return self._name
|
||||
|
||||
def setName(self, name):
|
||||
self._name = name
|
||||
|
||||
def getDisplayName(self):
|
||||
return self._display_name or self._name or ""
|
||||
|
||||
def setDisplayName(self, name):
|
||||
self._display_name = name
|
||||
|
||||
def getShortDescription(self):
|
||||
return self._short_description or self.getDisplayName()
|
||||
|
||||
def setShortDescription(self, text):
|
||||
self._short_description = text
|
||||
|
||||
def isPreferred(self):
|
||||
return self._preferred
|
||||
|
||||
def setPreferred(self, preferred):
|
||||
self._preferred = preferred
|
||||
|
||||
def isExpert(self):
|
||||
return self._expert
|
||||
|
||||
def setExpert(self, expert):
|
||||
self._expert = expert
|
||||
|
||||
def isHidden(self):
|
||||
return self._hidden
|
||||
|
||||
def setHidden(self, hidden):
|
||||
self._hidden = hidden
|
||||
|
||||
def setValue(self, attribute_name, value):
|
||||
self._attributes[attribute_name] = value
|
||||
|
||||
def getValue(self, attribute_name):
|
||||
return self._attributes.get(attribute_name)
|
||||
|
||||
def attributeNames(self):
|
||||
return list(self._attributes.keys())
|
||||
|
||||
|
||||
# ============================================================
|
||||
# BeanDescriptor
|
||||
# ============================================================
|
||||
|
||||
class BeanDescriptor(FeatureDescriptor):
|
||||
"""java.beans.BeanDescriptor"""
|
||||
def __init__(self, bean_class, customizer_class=None):
|
||||
super().__init__()
|
||||
self._bean_class = bean_class
|
||||
self._customizer_class = customizer_class
|
||||
|
||||
def getBeanClass(self):
|
||||
return self._bean_class
|
||||
|
||||
def getCustomizerClass(self):
|
||||
return self._customizer_class
|
||||
|
||||
|
||||
# ============================================================
|
||||
# EventSetDescriptor
|
||||
# ============================================================
|
||||
|
||||
class EventSetDescriptor(FeatureDescriptor):
|
||||
"""java.beans.EventSetDescriptor"""
|
||||
def __init__(self, source_class, event_set_name, listener_type,
|
||||
listener_methods, add_listener_method=None,
|
||||
remove_listener_method=None):
|
||||
super().__init__()
|
||||
self._source_class = source_class
|
||||
self._event_set_name = event_set_name
|
||||
self._listener_type = listener_type
|
||||
self._listener_methods = listener_methods or []
|
||||
self._add_listener_method = add_listener_method
|
||||
self._remove_listener_method = remove_listener_method
|
||||
self._unicast = False
|
||||
self._in_default_event_set = False
|
||||
|
||||
def getListenerType(self):
|
||||
return self._listener_type
|
||||
|
||||
def getListenerMethods(self):
|
||||
return self._listener_methods
|
||||
|
||||
def getAddListenerMethod(self):
|
||||
return self._add_listener_method
|
||||
|
||||
def getRemoveListenerMethod(self):
|
||||
return self._remove_listener_method
|
||||
|
||||
def isUnicast(self):
|
||||
return self._unicast
|
||||
|
||||
def setUnicast(self, unicast):
|
||||
self._unicast = unicast
|
||||
|
||||
def isInDefaultEventSet(self):
|
||||
return self._in_default_event_set
|
||||
|
||||
def setInDefaultEventSet(self, in_default):
|
||||
self._in_default_event_set = in_default
|
||||
|
||||
|
||||
# ============================================================
|
||||
# MethodDescriptor / ParameterDescriptor
|
||||
# ============================================================
|
||||
|
||||
class MethodDescriptor(FeatureDescriptor):
|
||||
"""java.beans.MethodDescriptor"""
|
||||
def __init__(self, method, parameter_descriptors=None):
|
||||
super().__init__()
|
||||
self._method = method
|
||||
self._parameter_descriptors = parameter_descriptors or []
|
||||
|
||||
def getMethod(self):
|
||||
return self._method
|
||||
|
||||
def getParameterDescriptors(self):
|
||||
return self._parameter_descriptors
|
||||
|
||||
|
||||
class ParameterDescriptor(FeatureDescriptor):
|
||||
"""java.beans.ParameterDescriptor"""
|
||||
pass
|
||||
|
||||
|
||||
# ============================================================
|
||||
# PropertyDescriptor
|
||||
# ============================================================
|
||||
|
||||
class PropertyDescriptor(FeatureDescriptor):
|
||||
"""java.beans.PropertyDescriptor"""
|
||||
def __init__(self, property_name, bean_class,
|
||||
getter_name=None, setter_name=None):
|
||||
super().__init__()
|
||||
self._property_name = property_name
|
||||
self._bean_class = bean_class
|
||||
self._getter_name = getter_name
|
||||
self._setter_name = setter_name
|
||||
self._property_type = None
|
||||
self._read_method = None
|
||||
self._write_method = None
|
||||
self._bound = False
|
||||
self._constrained = False
|
||||
self._property_editor_class = None
|
||||
|
||||
def getPropertyType(self):
|
||||
return self._property_type
|
||||
|
||||
def setPropertyType(self, prop_type):
|
||||
self._property_type = prop_type
|
||||
|
||||
def getReadMethod(self):
|
||||
return self._read_method
|
||||
|
||||
def setReadMethod(self, method):
|
||||
self._read_method = method
|
||||
|
||||
def getWriteMethod(self):
|
||||
return self._write_method
|
||||
|
||||
def setWriteMethod(self, method):
|
||||
self._write_method = method
|
||||
|
||||
def isBound(self):
|
||||
return self._bound
|
||||
|
||||
def setBound(self, bound):
|
||||
self._bound = bound
|
||||
|
||||
def isConstrained(self):
|
||||
return self._constrained
|
||||
|
||||
def setConstrained(self, constrained):
|
||||
self._constrained = constrained
|
||||
|
||||
def getPropertyEditorClass(self):
|
||||
return self._property_editor_class
|
||||
|
||||
def setPropertyEditorClass(self, cls):
|
||||
self._property_editor_class = cls
|
||||
|
||||
|
||||
class IndexedPropertyDescriptor(PropertyDescriptor):
|
||||
"""java.beans.IndexedPropertyDescriptor"""
|
||||
def __init__(self, property_name, bean_class,
|
||||
getter_name=None, setter_name=None,
|
||||
indexed_getter_name=None, indexed_setter_name=None):
|
||||
super().__init__(property_name, bean_class, getter_name, setter_name)
|
||||
self._indexed_read_method = None
|
||||
self._indexed_write_method = None
|
||||
self._indexed_property_type = None
|
||||
|
||||
def getIndexedReadMethod(self):
|
||||
return self._indexed_read_method
|
||||
|
||||
def setIndexedReadMethod(self, method):
|
||||
self._indexed_read_method = method
|
||||
|
||||
def getIndexedWriteMethod(self):
|
||||
return self._indexed_write_method
|
||||
|
||||
def setIndexedWriteMethod(self, method):
|
||||
self._indexed_write_method = method
|
||||
|
||||
def getIndexedPropertyType(self):
|
||||
return self._indexed_property_type
|
||||
|
||||
def setIndexedPropertyType(self, prop_type):
|
||||
self._indexed_property_type = prop_type
|
||||
|
||||
|
||||
# ============================================================
|
||||
# Introspector
|
||||
# ============================================================
|
||||
|
||||
class Introspector(Stub):
|
||||
"""java.beans.Introspector"""
|
||||
@staticmethod
|
||||
def getBeanInfo(bean_class, stop_class=None, flags=None):
|
||||
bean_descriptor = BeanDescriptor(bean_class)
|
||||
bean_info = SimpleBeanInfo()
|
||||
|
||||
props = []
|
||||
methods = []
|
||||
events = []
|
||||
|
||||
for name in dir(bean_class):
|
||||
if name.startswith('_'):
|
||||
continue
|
||||
attr = getattr(bean_class, name, None)
|
||||
if callable(attr):
|
||||
methods.append(MethodDescriptor(attr))
|
||||
if name.startswith('get') and not name.startswith('getClass'):
|
||||
prop_name = name[3].lower() + name[4:]
|
||||
pd = PropertyDescriptor(prop_name, bean_class, getter_name=name)
|
||||
props.append(pd)
|
||||
|
||||
bean_info._property_descriptors = props
|
||||
bean_info._method_descriptors = methods
|
||||
bean_info._event_set_descriptors = events
|
||||
bean_info._bean_descriptor = bean_descriptor
|
||||
return bean_info
|
||||
|
||||
@staticmethod
|
||||
def decapitalize(name):
|
||||
if len(name) == 0:
|
||||
return name
|
||||
if len(name) > 1 and name[1].islower():
|
||||
return name[0].lower() + name[1:]
|
||||
return name.lower()
|
||||
|
||||
@staticmethod
|
||||
def flushCaches():
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def flushFromCaches(cls):
|
||||
pass
|
||||
|
||||
USE_ALL_BEANINFO = 1
|
||||
IGNORE_IMMEDIATE_BEANINFO = 2
|
||||
IGNORE_ALL_BEANINFO = 3
|
||||
|
||||
|
||||
# ============================================================
|
||||
# SimpleBeanInfo / BeanInfo
|
||||
# ============================================================
|
||||
|
||||
class BeanInfo(Stub):
|
||||
"""java.beans.BeanInfo"""
|
||||
ICON_COLOR_16x16 = 1
|
||||
ICON_COLOR_32x32 = 2
|
||||
ICON_MONO_16x16 = 3
|
||||
ICON_MONO_32x32 = 4
|
||||
|
||||
def getBeanDescriptor(self):
|
||||
return None
|
||||
|
||||
def getEventSetDescriptors(self):
|
||||
return []
|
||||
|
||||
def getDefaultEventIndex(self):
|
||||
return -1
|
||||
|
||||
def getMethodDescriptors(self):
|
||||
return []
|
||||
|
||||
def getDefaultMethodIndex(self):
|
||||
return -1
|
||||
|
||||
def getPropertyDescriptors(self):
|
||||
return []
|
||||
|
||||
def getDefaultPropertyIndex(self):
|
||||
return -1
|
||||
|
||||
def getIcon(self, icon_kind):
|
||||
return None
|
||||
|
||||
def getAdditionalBeanInfo(self):
|
||||
return None
|
||||
|
||||
|
||||
class SimpleBeanInfo(BeanInfo):
|
||||
"""java.beans.SimpleBeanInfo"""
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self._bean_descriptor = None
|
||||
self._property_descriptors = []
|
||||
self._method_descriptors = []
|
||||
self._event_set_descriptors = []
|
||||
self._default_property_index = -1
|
||||
self._default_event_index = -1
|
||||
self._default_method_index = -1
|
||||
|
||||
def getBeanDescriptor(self):
|
||||
return self._bean_descriptor
|
||||
|
||||
def getPropertyDescriptors(self):
|
||||
return self._property_descriptors
|
||||
|
||||
def getMethodDescriptors(self):
|
||||
return self._method_descriptors
|
||||
|
||||
def getEventSetDescriptors(self):
|
||||
return self._event_set_descriptors
|
||||
|
||||
def getDefaultPropertyIndex(self):
|
||||
return self._default_property_index
|
||||
|
||||
def getDefaultEventIndex(self):
|
||||
return self._default_event_index
|
||||
|
||||
def getIcon(self, icon_kind):
|
||||
return None
|
||||
|
||||
def loadBeanInfo(self, bean_info_class):
|
||||
return self
|
||||
|
||||
|
||||
# ============================================================
|
||||
# PropertyChangeEvent / IndexedPropertyChangeEvent
|
||||
# ============================================================
|
||||
|
||||
class PropertyChangeEvent(Stub):
|
||||
"""java.beans.PropertyChangeEvent"""
|
||||
def __init__(self, source, property_name, old_value, new_value):
|
||||
super().__init__()
|
||||
self._source = source
|
||||
self._property_name = property_name
|
||||
self._old_value = old_value
|
||||
self._new_value = new_value
|
||||
self._propagation_id = None
|
||||
|
||||
def getPropertyName(self):
|
||||
return self._property_name
|
||||
|
||||
def getOldValue(self):
|
||||
return self._old_value
|
||||
|
||||
def getNewValue(self):
|
||||
return self._new_value
|
||||
|
||||
def setPropagationId(self, propagation_id):
|
||||
self._propagation_id = propagation_id
|
||||
|
||||
def getPropagationId(self):
|
||||
return self._propagation_id
|
||||
|
||||
def toString(self):
|
||||
return (f"PropertyChangeEvent[property={self._property_name}, "
|
||||
f"old={self._old_value}, new={self._new_value}]")
|
||||
|
||||
|
||||
class IndexedPropertyChangeEvent(PropertyChangeEvent):
|
||||
"""java.beans.IndexedPropertyChangeEvent"""
|
||||
def __init__(self, source, property_name, old_value, new_value, index):
|
||||
super().__init__(source, property_name, old_value, new_value)
|
||||
self._index = index
|
||||
|
||||
def getIndex(self):
|
||||
return self._index
|
||||
|
||||
|
||||
# ============================================================
|
||||
# Listener Interfaces
|
||||
# ============================================================
|
||||
|
||||
class PropertyChangeListener(Stub):
|
||||
"""java.beans.PropertyChangeListener"""
|
||||
def propertyChange(self, evt):
|
||||
pass
|
||||
|
||||
|
||||
class PropertyChangeListenerProxy(PropertyChangeListener):
|
||||
"""java.beans.PropertyChangeListenerProxy"""
|
||||
def __init__(self, property_name, listener):
|
||||
super().__init__()
|
||||
self._property_name = property_name
|
||||
self._listener = listener
|
||||
|
||||
def propertyChange(self, evt):
|
||||
if self._listener:
|
||||
self._listener(evt)
|
||||
|
||||
def getPropertyName(self):
|
||||
return self._property_name
|
||||
|
||||
def getListener(self):
|
||||
return self._listener
|
||||
|
||||
|
||||
class VetoableChangeListener(Stub):
|
||||
"""java.beans.VetoableChangeListener"""
|
||||
def vetoableChange(self, evt):
|
||||
pass
|
||||
|
||||
|
||||
# ============================================================
|
||||
# PropertyChangeSupport
|
||||
# ============================================================
|
||||
|
||||
class PropertyChangeSupport(Stub):
|
||||
"""java.beans.PropertyChangeSupport"""
|
||||
def __init__(self, source_bean):
|
||||
super().__init__()
|
||||
self._source = source_bean
|
||||
self._listeners = []
|
||||
|
||||
def addPropertyChangeListener(self, listener, property_name=None):
|
||||
if property_name is not None:
|
||||
self._listeners.append(PropertyChangeListenerProxy(property_name, listener))
|
||||
else:
|
||||
self._listeners.append(listener)
|
||||
|
||||
def removePropertyChangeListener(self, listener, property_name=None):
|
||||
if property_name is not None:
|
||||
self._listeners = [
|
||||
l for l in self._listeners
|
||||
if not (isinstance(l, PropertyChangeListenerProxy)
|
||||
and l.getListener() == listener
|
||||
and l.getPropertyName() == property_name)
|
||||
]
|
||||
else:
|
||||
self._listeners = [
|
||||
l for l in self._listeners
|
||||
if l != listener
|
||||
]
|
||||
|
||||
def getPropertyChangeListeners(self, property_name=None):
|
||||
if property_name is not None:
|
||||
return [l for l in self._listeners
|
||||
if isinstance(l, PropertyChangeListenerProxy)
|
||||
and l.getPropertyName() == property_name
|
||||
or not isinstance(l, PropertyChangeListenerProxy)]
|
||||
return self._listeners
|
||||
|
||||
def firePropertyChange(self, property_name_or_evt, old_value=None, new_value=None):
|
||||
if isinstance(property_name_or_evt, PropertyChangeEvent):
|
||||
evt = property_name_or_evt
|
||||
else:
|
||||
evt = PropertyChangeEvent(self._source, property_name_or_evt,
|
||||
old_value, new_value)
|
||||
for listener in self._listeners:
|
||||
if isinstance(listener, PropertyChangeListenerProxy):
|
||||
if listener.getPropertyName() == evt.getPropertyName():
|
||||
listener.propertyChange(evt)
|
||||
else:
|
||||
listener.propertyChange(evt)
|
||||
|
||||
def hasListeners(self, property_name):
|
||||
for listener in self._listeners:
|
||||
if isinstance(listener, PropertyChangeListenerProxy):
|
||||
if listener.getPropertyName() == property_name:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
# ============================================================
|
||||
# VetoableChangeSupport
|
||||
# ============================================================
|
||||
|
||||
class VetoableChangeSupport(Stub):
|
||||
"""java.beans.VetoableChangeSupport"""
|
||||
def __init__(self, source_bean):
|
||||
super().__init__()
|
||||
self._source = source_bean
|
||||
self._listeners = []
|
||||
|
||||
def addVetoableChangeListener(self, listener, property_name=None):
|
||||
if property_name is not None:
|
||||
self._listeners.append(PropertyChangeListenerProxy(property_name, listener))
|
||||
else:
|
||||
self._listeners.append(listener)
|
||||
|
||||
def removeVetoableChangeListener(self, listener, property_name=None):
|
||||
if property_name is not None:
|
||||
self._listeners = [
|
||||
l for l in self._listeners
|
||||
if not (isinstance(l, PropertyChangeListenerProxy)
|
||||
and l.getListener() == listener
|
||||
and l.getPropertyName() == property_name)
|
||||
]
|
||||
else:
|
||||
self._listeners = [l for l in self._listeners if l != listener]
|
||||
|
||||
def fireVetoableChange(self, property_name_or_evt, old_value=None, new_value=None):
|
||||
if isinstance(property_name_or_evt, PropertyChangeEvent):
|
||||
evt = property_name_or_evt
|
||||
else:
|
||||
evt = PropertyChangeEvent(self._source, property_name_or_evt,
|
||||
old_value, new_value)
|
||||
for listener in self._listeners:
|
||||
if isinstance(listener, PropertyChangeListenerProxy):
|
||||
if listener.getPropertyName() == evt.getPropertyName():
|
||||
listener.propertyChange(evt)
|
||||
else:
|
||||
listener.propertyChange(evt)
|
||||
|
||||
def hasListeners(self, property_name):
|
||||
for listener in self._listeners:
|
||||
if isinstance(listener, PropertyChangeListenerProxy):
|
||||
if listener.getPropertyName() == property_name:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
# ============================================================
|
||||
# PropertyEditor
|
||||
# ============================================================
|
||||
|
||||
class PropertyEditor(Stub):
|
||||
"""java.beans.PropertyEditor"""
|
||||
def setValue(self, value):
|
||||
pass
|
||||
|
||||
def getValue(self):
|
||||
return None
|
||||
|
||||
def isPaintable(self):
|
||||
return False
|
||||
|
||||
def paintValue(self, gfx, box):
|
||||
pass
|
||||
|
||||
def getJavaInitializationString(self):
|
||||
return ""
|
||||
|
||||
def getAsText(self):
|
||||
return ""
|
||||
|
||||
def setAsText(self, text):
|
||||
pass
|
||||
|
||||
def getTags(self):
|
||||
return None
|
||||
|
||||
def getCustomEditor(self):
|
||||
return None
|
||||
|
||||
def supportsCustomEditor(self):
|
||||
return False
|
||||
|
||||
def addPropertyChangeListener(self, listener):
|
||||
pass
|
||||
|
||||
def removePropertyChangeListener(self, listener):
|
||||
pass
|
||||
|
||||
|
||||
class PropertyEditorSupport(PropertyEditor):
|
||||
"""java.beans.PropertyEditorSupport"""
|
||||
def __init__(self, source=None):
|
||||
super().__init__()
|
||||
self._source = source
|
||||
self._value = None
|
||||
self._listeners = []
|
||||
|
||||
def setValue(self, value):
|
||||
self._value = value
|
||||
self._fire_property_change()
|
||||
|
||||
def getValue(self):
|
||||
return self._value
|
||||
|
||||
def getAsText(self):
|
||||
if self._value is None:
|
||||
return "null"
|
||||
return str(self._value)
|
||||
|
||||
def setAsText(self, text):
|
||||
self._value = text
|
||||
self._fire_property_change()
|
||||
|
||||
def getSource(self):
|
||||
return self._source
|
||||
|
||||
def addPropertyChangeListener(self, listener):
|
||||
self._listeners.append(listener)
|
||||
|
||||
def removePropertyChangeListener(self, listener):
|
||||
if listener in self._listeners:
|
||||
self._listeners.remove(listener)
|
||||
|
||||
def _fire_property_change(self):
|
||||
evt = PropertyChangeEvent(self._source, "", None, self._value)
|
||||
for listener in self._listeners:
|
||||
listener.propertyChange(evt)
|
||||
|
||||
|
||||
class PropertyEditorManager(Stub):
|
||||
"""java.beans.PropertyEditorManager"""
|
||||
_editors = {}
|
||||
|
||||
@staticmethod
|
||||
def findEditor(target_type):
|
||||
return PropertyEditorSupport()
|
||||
|
||||
@staticmethod
|
||||
def registerEditor(target_type, editor_class):
|
||||
PropertyEditorManager._editors[target_type] = editor_class
|
||||
|
||||
@staticmethod
|
||||
def getEditorSearchPath():
|
||||
return []
|
||||
|
||||
@staticmethod
|
||||
def setEditorSearchPath(path):
|
||||
pass
|
||||
|
||||
|
||||
# ============================================================
|
||||
# EventHandler
|
||||
# ============================================================
|
||||
|
||||
class EventHandler(Stub):
|
||||
"""java.beans.EventHandler"""
|
||||
def __init__(self, target, action, event_property_name, listener_method_name):
|
||||
super().__init__()
|
||||
self._target = target
|
||||
self._action = action
|
||||
self._event_property_name = event_property_name
|
||||
self._listener_method_name = listener_method_name
|
||||
|
||||
@staticmethod
|
||||
def create(listener_interface, target, action, event_property_name=None,
|
||||
listener_method_name=None):
|
||||
return target
|
||||
|
||||
def invoke(self, proxy, method, arguments):
|
||||
if self._target and self._action:
|
||||
action_fn = getattr(self._target, self._action, None)
|
||||
if action_fn:
|
||||
return action_fn()
|
||||
|
||||
|
||||
# ============================================================
|
||||
# ExceptionListener
|
||||
# ============================================================
|
||||
|
||||
class ExceptionListener(Stub):
|
||||
"""java.beans.ExceptionListener"""
|
||||
def exceptionThrown(self, e):
|
||||
pass
|
||||
|
||||
|
||||
# ============================================================
|
||||
# AppletInitializer
|
||||
# ============================================================
|
||||
|
||||
class AppletInitializer(Stub):
|
||||
"""java.beans.AppletInitializer"""
|
||||
def initialize(self, applet_bean, bean_context):
|
||||
pass
|
||||
|
||||
def activate(self, applet_bean):
|
||||
pass
|
||||
|
||||
|
||||
# ============================================================
|
||||
# Beans / Customizer / DesignMode / Visibility
|
||||
# ============================================================
|
||||
|
||||
class Beans(Stub):
|
||||
"""java.beans.Beans"""
|
||||
@staticmethod
|
||||
def instantiate(cls_loader, bean_name, bean_context=None, bean_arg=None):
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def designTime():
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def isDesignTime():
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def setDesignTime(is_design_time):
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def isGuiAvailable():
|
||||
return False
|
||||
|
||||
@staticmethod
|
||||
def setGuiAvailable(is_gui_available):
|
||||
pass
|
||||
|
||||
|
||||
class Customizer(Stub):
|
||||
"""java.beans.Customizer"""
|
||||
def setObject(self, bean):
|
||||
pass
|
||||
|
||||
def addPropertyChangeListener(self, listener):
|
||||
pass
|
||||
|
||||
def removePropertyChangeListener(self, listener):
|
||||
pass
|
||||
|
||||
|
||||
class DesignMode(Stub):
|
||||
"""java.beans.DesignMode"""
|
||||
PROPERTYNAME = "designTime"
|
||||
|
||||
def isDesignTime(self):
|
||||
return False
|
||||
|
||||
def setDesignTime(self, design_time):
|
||||
pass
|
||||
|
||||
|
||||
class Visibility(Stub):
|
||||
"""java.beans.Visibility"""
|
||||
def needsGui(self):
|
||||
return False
|
||||
|
||||
def dontUseGui(self):
|
||||
pass
|
||||
|
||||
def okToUseGui(self):
|
||||
pass
|
||||
|
||||
def avoidingGui(self):
|
||||
return True
|
||||
Reference in new issue
Block a user