Mixin: Observer

caph.module.mixins.event. Observer

A mixin object to handle the received messages. If you want to handle the messages, you must mixin this object. The event handler names in the mixed object always start with "on" prefix and consist of lowercase event type name. The event type name can be a string of which first letter is capitalized. The other cases are not permitted. If there are attached user message handlers, observer will calls the corresponding user message handler.

See:

Example

var eventManager = caph.module.event.Manager.getInstance();
 
 var MyObserver = $class({
     $extends: caph.ui.base.Component,
 
     onclick: function(message) { // handles click event.
         eventManager.sendTo(this, {
             type: "tap",
             detail: {
                 type: 0,
                 text: "This is a mouse message"
             }
            });
     },
     
     onkeydown: function(message) { // handles keydown event.
         if (message.key().enter) {
             eventManager.sendTo(this, {
                 type: "tap",
                 detail: {
                     type: 1,
                     text: "This is a keyboard message"
                 }
             });
         }
     },    
 
     ontap: function(message) { // handles test event.
         if (message.detail.type === 0) {
             message.preventDefault();
         }
     }
 });
 
 var observer = new MyObserver();
 eventManager.addObserver(observer);
 
 observer.on({
     tap: function(message) { // attaches user message handler.
         console.log(message.detail.text);
     }
 });
 
 // This is a mouse message
 eventManager.sendTo(observer, {
     type: "click"
 });
 
 // This is a keyboard message
 eventManager.sendTo(observer, {
     type: "keydown",
     detail: {
         keyCode: 13 // enter key code
     }
 });
 

Methods

<static> getChildren() → {Array.<caph.module.mixins.event.Observer>}

Gets the child observers. If the observer has children, this method must be defined in advance. Because when the observer receives a message which is not a bubbling, a message is propagated to child observers.

Since:
  • 2.0.0
Returns:

If not defined, default action returns null.

Type
Array.<caph.module.mixins.event.Observer>
Example
var Observer = $class({
     $extends: caph.ui.base.Component,
 
     onclick: function(message) {
         console.log(message);
     }
 });
 
 var observer = new Observer();
 var children = observer.getChildren();

<static> getParent() → {caph.module.mixins.event.Observer}

Gets the parent observer. If the observer has parent, this method must be defined in advance. Because when the observer receives a bubbling message, a message is propagated to parent observer.

Since:
  • 2.0.0
Returns:

If not defined, default action returns null.

Type
caph.module.mixins.event.Observer
Example
var Observer = $class({
     $extends: caph.ui.base.Component,
 
     onclick: function(message) {
         console.log(message);
     }
 });
 
 var observer = new Observer();
 var parent = observer.getParent();