new ObjectEx()
Base class for property support.
//@property {Bool} enablePropValueGetEvent Whether propValueGet event should
// be fired when a property value is read.
Properties:
| Name | Type | Description |
|---|---|---|
enableObjectChangeEvent |
Bool | Whether event "change" will be automatically fired when the object is changed. |
enablePropValueSetEvent |
Bool | Whether propValueSet event should be fired when a property value is written. // Note, if property ObjectEx#enableObjectChangeEvent is false, this event will never be fired. |
bubbleEvent |
Bool | Whether event evoked can be relayed to higher level object. |
suppressChildChangeEventInUpdating |
Bool | If this property is true, when object is updating (calling obj.beginUpdate()), received "change" event will always not be bubbled. Instead, when updating finished (calling obj.endUpdate()), a "change" event of self (not child object) will be triggered with special property name '[chilren]'. |
- Source:
Methods
-
addEventListener(eventName, listener, thisArg) → {Object}
-
Add an event handler.
Parameters:
Name Type Description eventNameString Name of event. listenerfunction Handler function. thisArgObject The scope object applied when the handler is called. - Source:
Returns:
Handler info object on success, null on fail.- Type
- Object
-
addOnceEventListener(eventName, listener, thisArg) → {Object}
-
Add an event handler that will only be evoked once.
Parameters:
Name Type Description eventNameString Name of event. listenerfunction Handler function. thisArgObject The scope object applied when the handler is called. - Source:
Returns:
Handler info object on success, null on fail.- Type
- Object
-
afterInitialization()
-
Do jobs after initialization, desendants can override this method
- Source:
-
assign(srcObj)
-
Assign data in srcObj to this object.
Parameters:
Name Type Description srcObjObjectEx - Source:
-
assignTo(targetObj)
-
Assign data in this object to targetObj.
Parameters:
Name Type Description targetObjObjectEx - Source:
-
beginUpdate()
-
Begin to update multiple properties of object. In update state, all changed properties will not invoke propertySet event until method endUpdate is called.
- Source:
-
clone() → {ObjectEx}
-
Returns a cloned object.
- Source:
Returns:
- Type
- ObjectEx
-
copyPropsTo(dest)
-
Copy property values to dest object. Dest must be a desendant of ObjectEx.
Parameters:
Name Type Description destObjectEx - Source:
-
defineEvent(eventName) → {Object}
-
Define an event in class. Event is actually a special property with type Class.EventHandlerList
Parameters:
Name Type Description eventNameString Name of event. - Deprecated:
- Yes
- Source:
Returns:
Property info object created.- Type
- Object
-
defineProp(propName, options) → {Object}
-
Define a property in class.
Parameters:
Name Type Description propNameString Name of property, case sensitive. optionsObject A hash object, may contains the following fields: { dataType: type of property data, a string constant in DataType or a class name. //storeField: field in object to store property value, // not allowed for running speed getter: getter function, setter: setter function, if set to null, the property will be read-only, serializable: boolean, whether the property should be save or restore in serialization. Default is true. defaultValue: default value of property, can only be simple type (number, string, bool...) } - Source:
Returns:
Property info object added to property list.- Type
- Object
-
doEndUpdate()
-
Actual work of endUpdate, just invoke all property change events.
- Source:
-
doPropChanged(propName, newValue)
-
Do some job when a property value is changed. Descendants can override this.
Parameters:
Name Type Description propNameString Name of property. newValueVariant New value of the property. - Source:
-
endUpdate()
-
Update end and notify all properties changed after calling of beginUpdate.
- Source:
-
finalize()
-
Free resources used. Like finalize method in Java.
- Source:
-
getAllPropList() → {Class.PropList}
-
Get list of all properties in this class, including ones inherited from parent class.
- Source:
Returns:
- Type
- Class.PropList
-
getClass() → {Object}
-
Get class of this object.
- Source:
Returns:
Class object.- Type
- Object
-
getClassLocalName() → {String}
-
Get last part of class name of this object. For example, 'Atom' will be returned by instance of class 'Kekule.Atom'.
- Source:
Returns:
Last part of class name of object.- Type
- String
-
getClassName() → {String}
-
Get class name of this object, usually returns CLASS_NAME field.
- Source:
Returns:
Class name of object.- Type
- String
-
getEventHandlerList(eventName) → {Class.EventHandlerList}
-
Get the handler list of a event.
Parameters:
Name Type Description eventNameString Name of event. - Source:
Returns:
Handler list of event. If this event does not exist, null is returned.- Type
- Class.EventHandlerList
-
getOwnPropList() → {Class.PropList}
-
Get property list of this class. The properties inherited from parent class will not be returned.
- Source:
Returns:
- Type
- Class.PropList
-
getPropertyDataType(propName) → {String}
-
Returns type constants of property.
Parameters:
Name Type Description propNameString - Source:
Returns:
Values from DataType.- Type
- String
-
getPropInfo(propName, ownPropertyOnly) → {Object}
-
Get property info object from the property list of current class.
Parameters:
Name Type Description propNameString Name of property. ownPropertyOnlyBool If true, only property defined in this class will be checked. - Source:
Returns:
Property info object found. If there is no such a property, null is returned.- Type
- Object
-
getPropListOfScopes(scopes) → {Class.PropList}
-
Get list of all properties of certain scopes in this class, including ones inherited from parent class.
Parameters:
Name Type Description scopesArray Array item from Class.PropertyScope. - Source:
Returns:
- Type
- Class.PropList
-
getPropStoreFieldValue(propName) → {Variant}
-
Get value of a property's store field. Use this method to get property value and avoid the call of property getter. Note: if the property has no store field, this method may returns null or undefined.
Parameters:
Name Type Description propNameString Name of property. - Source:
Returns:
Value of property. If property does not exists, null is returned.- Type
- Variant
-
getPropValue(propName) → {Variant}
-
Get value of a property.
Parameters:
Name Type Description propNameString Name of property. - Source:
Returns:
Value of property. If property does not exists, null is returned.- Type
- Variant
-
getPropValues(propNames) → {Hash}
-
Returns values of a series of properties.
Parameters:
Name Type Description propNamesVariant Can be an array of property names, also can be an object while the direct field names of object will be regarded as property names. - Source:
Returns:
Stores all property name-value pair.- Type
- Hash
-
getPrototype() → {Object}
-
Get prototype of this object.
- Source:
Returns:
- Type
- Object
-
getSerializationName() → {String}
-
Returns a name to be used in serialization. Descendants can override this.
- Source:
Returns:
- Type
- String
-
getSuperClass() → {Object}
-
Get super class of this object.
- Source:
Returns:
Class object.- Type
- Object
-
getSuperClassPrototype() → {Object}
-
Get prototype of super class.
- Source:
Returns:
If there is no super class, null is returned.- Type
- Object
-
hasDirectProperty(propName) → {Boolean}
-
Check if property is defined in current class (not inherited from super class).
Parameters:
Name Type Description propNameString Name of property. - Source:
Returns:
- Type
- Boolean
-
hasProperty(propName) → {Boolean}
-
Check if property exists in current class.
Parameters:
Name Type Description propNameString Name of property. - Source:
Returns:
- Type
- Boolean
-
initProperties()
-
Define all essential properties in this method. You do not need to call $super here in descendant classes. Each class only need to declare his own properties.
- Source:
-
initPropValues()
-
Set initial value of properties. Desendants can override this method.
- Source:
-
invokeEvent(eventName, event)
-
Invoke an event and call all corresponding handlers (listeners).
Parameters:
Name Type Description eventNameString Event to be invoked. eventObject A hash object with information about event. At least should include the following fields: { name: name of event, target: which object invoke this event, generally this object } If this parameter is not set, the default value {eventName, this} will be used. - Source:
-
isEventHandlerList(value) → {bool}
-
Check if a object is Class.EventHandlerList.
Parameters:
Name Type Description valueObject - Source:
Returns:
True or false.- Type
- bool
-
isPropertySerializable(propName) → {Bool}
-
Returns if property is serializable.
Parameters:
Name Type Description propNameString - Source:
Returns:
- Type
- Bool
-
isPropUpdated(propName)
-
Check whether property is changed in begin/endUpdate procedure.
Parameters:
Name Type Description propNameObject - Source:
-
isUpdating()
-
Check if object is in updating state.
- Source:
-
loaded()
-
Called after this object is loaded by a serialization system. Descendants may override this.
- Source:
-
loadObj(srcNode, serializerOrName)
-
load current object from srcNode.
Parameters:
Name Type Description srcNodeObject Storage node to load object. Different serializer requires different node. serializerOrNameVariant A ObjSerializer instance or name registered in ObjSerializerFactory. Can be null to use the default serializer. - Source:
-
notifyPropSet(propName, newValue)
-
Notify that a property value is set
Parameters:
Name Type Description propNameString Name of property. newValueVariant New value of the property. - Source:
-
objectChange()
-
Called when object is changed.
- Source:
-
off(eventName, listener, thisArg)
-
Remove an event handler, shortcut for (@link ObjectEx.removeEventListener}.
Parameters:
Name Type Description eventNameString Name of event. listenerfunction Handler function. thisArgObject The scope object applied when the handler is called. If not set, all listenr function in list will be removed. - Source:
-
on(eventName, listener, thisArg) → {Object}
-
Add an event handler, shortcut for ObjectEx.addEventListener.
Parameters:
Name Type Description eventNameString Name of event. listenerfunction Handler function. thisArgObject The scope object applied when the handler is called. - Source:
Returns:
Handler info object on success, null on fail.- Type
- Object
-
once(eventName, listener, thisArg) → {Object}
-
Add an event handler that will only be evoked once, shortcut for ObjectEx.addOnceEventListener.
Parameters:
Name Type Description eventNameString Name of event. listenerfunction Handler function. thisArgObject The scope object applied when the handler is called. - Source:
Returns:
Handler info object on success, null on fail.- Type
- Object
-
overwriteMethod(methodName, newMethod) → {ObjectEx}
-
Overwrite method of object instance (rather than prototype) with a new one.
Parameters:
Name Type Description methodNameString newMethodFunc New function. The arguments of function should be same as overwritten one plus a extra leading param stores the old method. e.g. Overwrite getPropValue method:
var obj = new ObjectEx();
obj.overwriteMethod('getPropValue', function($old, propName)
{
console.log('new method'); return $old(propName); });- Source:
Returns:
- Type
- ObjectEx
-
relayEvent(eventName, event)
-
Relay event from child of this object.
Parameters:
Name Type Description eventNameString Event to be invoked. eventObject A hash object with information about event. - Source:
-
removeEventListener(eventName, listener, thisArg)
-
Remove an event handler.
Parameters:
Name Type Description eventNameString Name of event. listenerfunction Handler function. thisArgObject The scope object applied when the handler is called. If not set, all listenr function in list will be removed. - Source:
-
saved()
-
Called after this object is saved through a serialization system. Descendants may override this.
- Source:
-
saveObj(destNode, serializerOrName, options)
-
Save current object to destNode.
Parameters:
Name Type Description destNodeObject Storage node to save object. Different serializer requires different node. serializerOrNameVariant A ObjSerializer instance or name registered in ObjSerializerFactory. Can be null to use the default serializer. optionsHash - Source:
-
setPropStoreFieldValue(propName) → {Variant}
-
Set value of a property's store field. Use this method to set property value and avoid the call of property setter. Readonly property can also be changed in this method. Note: if the property has no store field, this method will has no effect on property.
Parameters:
Name Type Description propNameString Name of property. - Source:
Returns:
Value of property. If property does not exists, null is returned.- Type
- Variant
-
setPropValue(propName, value, ignoreReadOnly)
-
Set value of a property.
Parameters:
Name Type Description propNameString Name of property. valueVariant Value of the property. ignoreReadOnlybool Try set the value directly through store field even if the property is a readonly one (without a setter). - Source:
-
setPropValues(hash, ignoreReadOnly)
-
Set a series of property.
Parameters:
Name Type Description hashHash A hash object, its key and values will be used to set property value. ignoreReadOnlybool Try set the value directly through store field even if the property is a readonly one (without a setter). - Source:
-
setPropValueX()
-
Set value of a property. Similar to ObjectEx.setPropValue but can pass in multiple params. The first param is always the property name while the rest will be put into setter method (setXXX).
- Source:
-
stopEventPropagation(event)
-
Stop propagation of event, disallow it to bubble to higher level.
Parameters:
Name Type Description eventObject - Source:
Events
-
change
-
Invoked when the object has been modified. event param of it has one fields: {changedPropNames: Array}
- Source:
-
finalize
-
Invoked when ObjectEx#finalize is called and the object is released. event param of it has one fields: {obj}
- Source:
-
propValueSet
-
Invoked when a property value is set by its setter event param of it has two fields: {propName, propValue} If property enablePropValueSetEvent is false, this event will never be fired.
- Source: