You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.7 KiB
64 lines
1.7 KiB
2 years ago
|
YUI.add('gallery-sm-treeview-sortable', function (Y, NAME) {
|
||
|
|
||
|
/**
|
||
|
Provides `Y.TreeView.Sortable`, a `Y.TreeView` extension that mixes in
|
||
|
`Y.Tree.Sortable` and provides related TreeView-specific functionality.
|
||
|
|
||
|
@module gallery-sm-treeview
|
||
|
@submodule gallery-sm-treeview-sortable
|
||
|
**/
|
||
|
|
||
|
/**
|
||
|
Extension for `Y.TreeView` that mixes in `Y.Tree.Sortable` and provides related
|
||
|
TreeView-specific functionality (such as re-rendering a node after it's sorted).
|
||
|
|
||
|
@class TreeView.Sortable
|
||
|
@constructor
|
||
|
@extensionfor TreeView
|
||
|
@extends Tree.Sortable
|
||
|
**/
|
||
|
|
||
|
var Sortable = Y.TreeView.Sortable = function () {};
|
||
|
|
||
|
Y.mix(Sortable.prototype, Y.Tree.Sortable.prototype);
|
||
|
|
||
|
// -- Protected Methods ----------------------------------------------------
|
||
|
|
||
|
// Overrides Y.TreeView#_attachTreeViewEvents().
|
||
|
Sortable.prototype._attachTreeViewEvents = function () {
|
||
|
Y.TreeView.prototype._attachTreeViewEvents.call(this);
|
||
|
|
||
|
this._treeViewEvents.push(
|
||
|
this.after('sort', this._afterSort)
|
||
|
);
|
||
|
};
|
||
|
|
||
|
// -- Event Handlers -------------------------------------------------------
|
||
|
|
||
|
/**
|
||
|
Re-renders a node if necessary after a `sort` event.
|
||
|
|
||
|
@method _afterSort
|
||
|
@param {EventFacade} e
|
||
|
@protected
|
||
|
**/
|
||
|
Sortable.prototype._afterSort = function (e) {
|
||
|
var node = e.node;
|
||
|
|
||
|
// If this tree hasn't been rendered yet or the sorted node's children
|
||
|
// haven't been rendered yet, there's nothing to do.
|
||
|
if (!this.rendered || !node.state.renderedChildren) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// Re-render the sorted node and its children.
|
||
|
if (node.isRoot()) {
|
||
|
this.render();
|
||
|
} else {
|
||
|
this.renderNode(node, {renderChildren: true});
|
||
|
}
|
||
|
};
|
||
|
|
||
|
|
||
|
}, 'gallery-2013.06.20-02-07', {"requires": ["gallery-sm-treeview", "tree-sortable"]});
|