Version 3.18.1

APIs

  • Begin typing in the search box above to see results.
Show:

File: tree/js/extensions/tree-openable.js

 /*jshint expr:true, onevar:false */
 
 /**
 Extension for `Tree` that adds the concept of open/closed state for nodes.
 
 @module tree
 @submodule tree-openable
 @main tree-openable
 **/
 
 /**
 Extension for `Tree` that adds the concept of open/closed state for nodes.
 
 @class Tree.Openable
 @constructor
 @extensionfor Tree
 **/
 
 /**
 Fired when a node is closed.
 
 @event close
 @param {Tree.Node} node Node being closed.
 @param {String} src Source of the event.
 @preventable _defCloseFn
 **/
 var EVT_CLOSE = 'close';
 
 /**
 Fired when a node is opened.
 
 @event open
 @param {Tree.Node} node Node being opened.
 @param {String} src Source of the event.
 @preventable _defOpenFn
 **/
 var EVT_OPEN = 'open';
 
 function Openable() {}
 
 Openable.prototype = {
 // -- Lifecycle ------------------------------------------------------------
 initializer: function () {
 this.nodeExtensions = this.nodeExtensions.concat(Y.Tree.Node.Openable);
 },
 
 // -- Public Methods -------------------------------------------------------
 
 /**
 Closes the specified node if it isn't already closed.
 
 @method closeNode
 @param {Tree.Node} node Node to close.
 @param {Object} [options] Options.
 @param {Boolean} [options.silent=false] If `true`, the `close` event
 will be suppressed.
 @param {String} [options.src] Source of the change, to be passed along
 to the event facade of the resulting event. This can be used to
 distinguish between changes triggered by a user and changes
 triggered programmatically, for example.
 @chainable
 **/
 closeNode: function (node, options) {
 if (node.canHaveChildren && node.isOpen()) {
 this._fireTreeEvent(EVT_CLOSE, {
 node: node,
 src : options && options.src
 }, {
 defaultFn: this._defCloseFn,
 silent : options && options.silent
 });
 }
 
 return this;
 },
 
 /**
 Opens the specified node if it isn't already open.
 
 @method openNode
 @param {Tree.Node} node Node to open.
 @param {Object} [options] Options.
 @param {Boolean} [options.silent=false] If `true`, the `open` event
 will be suppressed.
 @param {String} [options.src] Source of the change, to be passed along
 to the event facade of the resulting event. This can be used to
 distinguish between changes triggered by a user and changes
 triggered programmatically, for example.
 @chainable
 **/
 openNode: function (node, options) {
 if (node.canHaveChildren && !node.isOpen()) {
 this._fireTreeEvent(EVT_OPEN, {
 node: node,
 src : options && options.src
 }, {
 defaultFn: this._defOpenFn,
 silent : options && options.silent
 });
 }
 
 return this;
 },
 
 /**
 Toggles the open/closed state of the specified node, closing it if it's
 currently open or opening it if it's currently closed.
 
 @method toggleOpenNode
 @param {Tree.Node} node Node to toggle.
 @param {Object} [options] Options.
 @param {Boolean} [options.silent=false] If `true`, events will be
 suppressed.
 @param {String} [options.src] Source of the change, to be passed along
 to the event facade of the resulting event. This can be used to
 distinguish between changes triggered by a user and changes
 triggered programmatically, for example.
 @chainable
 **/
 toggleOpenNode: function (node, options) {
 return node.isOpen() ? this.closeNode(node, options) :
 this.openNode(node, options);
 },
 
 // -- Default Event Handlers -----------------------------------------------
 
 /**
 Default handler for the `close` event.
 
 @method _defCloseFn
 @param {EventFacade} e
 @protected
 **/
 _defCloseFn: function (e) {
 delete e.node.state.open;
 },
 
 /**
 Default handler for the `open` event.
 
 @method _defOpenFn
 @param {EventFacade} e
 @protected
 **/
 _defOpenFn: function (e) {
 e.node.state.open = true;
 }
 };
 
 Y.Tree.Openable = Openable;
 
 

AltStyle によって変換されたページ (->オリジナル) /