- Replaced color picker form control with a more robust version.
This commit is contained in:
parent
6fe068e42d
commit
6e0470771e
1193 changed files with 342 additions and 223 deletions
309
www/extras/extjs/docs/output/TreeSelectionModel.jss.html
vendored
Normal file
309
www/extras/extjs/docs/output/TreeSelectionModel.jss.html
vendored
Normal file
|
|
@ -0,0 +1,309 @@
|
|||
<html><head><title>TreeSelectionModel.js</title><link rel="stylesheet" type="text/css" href="../resources/style.css" media="screen"/></head><body><h1>TreeSelectionModel.js</h1><pre class="highlighted"><code><i>/**
|
||||
* @class Ext.tree.DefaultSelectionModel
|
||||
* @extends Ext.util.Observable
|
||||
* The <b>default</b> single selection <b>for</b> a TreePanel.
|
||||
*/</i>
|
||||
Ext.tree.DefaultSelectionModel = <b>function</b>(){
|
||||
<b>this</b>.selNode = null;
|
||||
|
||||
<b>this</b>.addEvents({
|
||||
<i>/**
|
||||
* @event selectionchange
|
||||
* Fires when the selected node changes
|
||||
* @param {DefaultSelectionModel} <b>this</b>
|
||||
* @param {TreeNode} node the <b>new</b> selection
|
||||
*/</i>
|
||||
"selectionchange" : true,
|
||||
|
||||
<i>/**
|
||||
* @event beforeselect
|
||||
* Fires before the selected node changes, <b>return</b> false to cancel the change
|
||||
* @param {DefaultSelectionModel} <b>this</b>
|
||||
* @param {TreeNode} node the <b>new</b> selection
|
||||
* @param {TreeNode} node the old selection
|
||||
*/</i>
|
||||
"beforeselect" : true
|
||||
});
|
||||
};
|
||||
|
||||
Ext.extend(Ext.tree.DefaultSelectionModel, Ext.util.Observable, {
|
||||
init : <b>function</b>(tree){
|
||||
<b>this</b>.tree = tree;
|
||||
tree.el.on("keydown", <b>this</b>.onKeyDown, <b>this</b>);
|
||||
tree.on("click", <b>this</b>.onNodeClick, <b>this</b>);
|
||||
},
|
||||
|
||||
onNodeClick : <b>function</b>(node, e){
|
||||
<b>this</b>.select(node);
|
||||
},
|
||||
|
||||
<i>/**
|
||||
* Select a node.
|
||||
* @param {TreeNode} node The node to select
|
||||
* @<b>return</b> {TreeNode} The selected node
|
||||
*/</i>
|
||||
select : <b>function</b>(node){
|
||||
<b>var</b> last = <b>this</b>.selNode;
|
||||
<b>if</b>(last != node && <b>this</b>.fireEvent('beforeselect', <b>this</b>, node, last) !== false){
|
||||
<b>if</b>(last){
|
||||
last.ui.onSelectedChange(false);
|
||||
}
|
||||
<b>this</b>.selNode = node;
|
||||
node.ui.onSelectedChange(true);
|
||||
<b>this</b>.fireEvent("selectionchange", <b>this</b>, node, last);
|
||||
}
|
||||
<b>return</b> node;
|
||||
},
|
||||
|
||||
<i>/**
|
||||
* Deselect a node.
|
||||
* @param {TreeNode} node The node to unselect
|
||||
*/</i>
|
||||
unselect : <b>function</b>(node){
|
||||
<b>if</b>(this.selNode == node){
|
||||
<b>this</b>.clearSelections();
|
||||
}
|
||||
},
|
||||
|
||||
<i>/**
|
||||
* Clear all selections
|
||||
*/</i>
|
||||
clearSelections : <b>function</b>(){
|
||||
<b>var</b> n = <b>this</b>.selNode;
|
||||
<b>if</b>(n){
|
||||
n.ui.onSelectedChange(false);
|
||||
<b>this</b>.selNode = null;
|
||||
<b>this</b>.fireEvent("selectionchange", <b>this</b>, null);
|
||||
}
|
||||
<b>return</b> n;
|
||||
},
|
||||
|
||||
<i>/**
|
||||
* Get the selected node
|
||||
* @<b>return</b> {TreeNode} The selected node
|
||||
*/</i>
|
||||
getSelectedNode : <b>function</b>(){
|
||||
<b>return</b> this.selNode;
|
||||
},
|
||||
|
||||
<i>/**
|
||||
* Returns true <b>if</b> the node is selected
|
||||
* @param {TreeNode} node The node to check
|
||||
* @<b>return</b> {Boolean}
|
||||
*/</i>
|
||||
isSelected : <b>function</b>(node){
|
||||
<b>return</b> this.selNode == node;
|
||||
},
|
||||
|
||||
<i>/**
|
||||
* Selects the node above the selected node <b>in</b> the tree, intelligently walking the nodes
|
||||
* @<b>return</b> TreeNode The <b>new</b> selection
|
||||
*/</i>
|
||||
selectPrevious : <b>function</b>(){
|
||||
<b>var</b> s = <b>this</b>.selNode || <b>this</b>.lastSelNode;
|
||||
<b>if</b>(!s){
|
||||
<b>return</b> null;
|
||||
}
|
||||
<b>var</b> ps = s.previousSibling;
|
||||
<b>if</b>(ps){
|
||||
<b>if</b>(!ps.isExpanded() || ps.childNodes.length < 1){
|
||||
<b>return</b> this.select(ps);
|
||||
} <b>else</b>{
|
||||
<b>var</b> lc = ps.lastChild;
|
||||
<b>while</b>(lc && lc.isExpanded() && lc.childNodes.length > 0){
|
||||
lc = lc.lastChild;
|
||||
}
|
||||
<b>return</b> this.select(lc);
|
||||
}
|
||||
} <b>else</b> if(s.parentNode && (<b>this</b>.tree.rootVisible || !s.parentNode.isRoot)){
|
||||
<b>return</b> this.select(s.parentNode);
|
||||
}
|
||||
<b>return</b> null;
|
||||
},
|
||||
|
||||
<i>/**
|
||||
* Selects the node above the selected node <b>in</b> the tree, intelligently walking the nodes
|
||||
* @<b>return</b> TreeNode The <b>new</b> selection
|
||||
*/</i>
|
||||
selectNext : <b>function</b>(){
|
||||
<b>var</b> s = <b>this</b>.selNode || <b>this</b>.lastSelNode;
|
||||
<b>if</b>(!s){
|
||||
<b>return</b> null;
|
||||
}
|
||||
<b>if</b>(s.firstChild && s.isExpanded()){
|
||||
<b>return</b> this.select(s.firstChild);
|
||||
}<b>else</b> if(s.nextSibling){
|
||||
<b>return</b> this.select(s.nextSibling);
|
||||
}<b>else</b> if(s.parentNode){
|
||||
<b>var</b> newS = null;
|
||||
s.parentNode.bubble(<b>function</b>(){
|
||||
<b>if</b>(this.nextSibling){
|
||||
newS = <b>this</b>.getOwnerTree().selModel.select(<b>this</b>.nextSibling);
|
||||
<b>return</b> false;
|
||||
}
|
||||
});
|
||||
<b>return</b> newS;
|
||||
}
|
||||
<b>return</b> null;
|
||||
},
|
||||
|
||||
onKeyDown : <b>function</b>(e){
|
||||
<b>var</b> s = <b>this</b>.selNode || <b>this</b>.lastSelNode;
|
||||
<i>// undesirable, but required</i>
|
||||
<b>var</b> sm = <b>this</b>;
|
||||
<b>if</b>(!s){
|
||||
<b>return</b>;
|
||||
}
|
||||
<b>var</b> k = e.getKey();
|
||||
<b>switch</b>(k){
|
||||
<b>case</b> e.DOWN:
|
||||
e.stopEvent();
|
||||
<b>this</b>.selectNext();
|
||||
<b>break</b>;
|
||||
<b>case</b> e.UP:
|
||||
e.stopEvent();
|
||||
<b>this</b>.selectPrevious();
|
||||
<b>break</b>;
|
||||
<b>case</b> e.RIGHT:
|
||||
e.preventDefault();
|
||||
<b>if</b>(s.hasChildNodes()){
|
||||
<b>if</b>(!s.isExpanded()){
|
||||
s.expand();
|
||||
}<b>else</b> if(s.firstChild){
|
||||
<b>this</b>.select(s.firstChild, e);
|
||||
}
|
||||
}
|
||||
<b>break</b>;
|
||||
<b>case</b> e.LEFT:
|
||||
e.preventDefault();
|
||||
<b>if</b>(s.hasChildNodes() && s.isExpanded()){
|
||||
s.collapse();
|
||||
}<b>else</b> if(s.parentNode && (<b>this</b>.tree.rootVisible || s.parentNode != <b>this</b>.tree.getRootNode())){
|
||||
<b>this</b>.select(s.parentNode, e);
|
||||
}
|
||||
<b>break</b>;
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
<i>/**
|
||||
* @class Ext.tree.MultiSelectionModel
|
||||
* @extends Ext.util.Observable
|
||||
* Multi selection <b>for</b> a TreePanel.
|
||||
*/</i>
|
||||
Ext.tree.MultiSelectionModel = <b>function</b>(){
|
||||
<b>this</b>.selNodes = [];
|
||||
<b>this</b>.selMap = {};
|
||||
<b>this</b>.addEvents({
|
||||
<i>/**
|
||||
* @event selectionchange
|
||||
* Fires when the selected nodes change
|
||||
* @param {MultiSelectionModel} <b>this</b>
|
||||
* @param {Array} nodes Array of the selected nodes
|
||||
*/</i>
|
||||
"selectionchange" : true
|
||||
});
|
||||
};
|
||||
|
||||
Ext.extend(Ext.tree.MultiSelectionModel, Ext.util.Observable, {
|
||||
init : <b>function</b>(tree){
|
||||
<b>this</b>.tree = tree;
|
||||
tree.el.on("keydown", <b>this</b>.onKeyDown, <b>this</b>);
|
||||
tree.on("click", <b>this</b>.onNodeClick, <b>this</b>);
|
||||
},
|
||||
|
||||
onNodeClick : <b>function</b>(node, e){
|
||||
<b>this</b>.select(node, e, e.ctrlKey);
|
||||
},
|
||||
|
||||
<i>/**
|
||||
* Select a node.
|
||||
* @param {TreeNode} node The node to select
|
||||
* @param {EventObject} e (optional) An event associated <b>with</b> the selection
|
||||
* @param {Boolean} keepExisting True to retain existing selections
|
||||
* @<b>return</b> {TreeNode} The selected node
|
||||
*/</i>
|
||||
select : <b>function</b>(node, e, keepExisting){
|
||||
<b>if</b>(keepExisting !== true){
|
||||
<b>this</b>.clearSelections(true);
|
||||
}
|
||||
<b>if</b>(this.isSelected(node)){
|
||||
<b>this</b>.lastSelNode = node;
|
||||
<b>return</b> node;
|
||||
}
|
||||
<b>this</b>.selNodes.push(node);
|
||||
<b>this</b>.selMap[node.id] = node;
|
||||
<b>this</b>.lastSelNode = node;
|
||||
node.ui.onSelectedChange(true);
|
||||
<b>this</b>.fireEvent("selectionchange", <b>this</b>, <b>this</b>.selNodes);
|
||||
<b>return</b> node;
|
||||
},
|
||||
|
||||
<i>/**
|
||||
* Deselect a node.
|
||||
* @param {TreeNode} node The node to unselect
|
||||
*/</i>
|
||||
unselect : <b>function</b>(node){
|
||||
<b>if</b>(this.selMap[node.id]){
|
||||
node.ui.onSelectedChange(false);
|
||||
<b>var</b> sn = <b>this</b>.selNodes;
|
||||
<b>var</b> index = -1;
|
||||
<b>if</b>(sn.indexOf){
|
||||
index = sn.indexOf(node);
|
||||
}<b>else</b>{
|
||||
<b>for</b>(var i = 0, len = sn.length; i < len; i++){
|
||||
<b>if</b>(sn[i] == node){
|
||||
index = i;
|
||||
<b>break</b>;
|
||||
}
|
||||
}
|
||||
}
|
||||
<b>if</b>(index != -1){
|
||||
<b>this</b>.selNodes.splice(index, 1);
|
||||
}
|
||||
<b>delete</b> this.selMap[node.id];
|
||||
<b>this</b>.fireEvent("selectionchange", <b>this</b>, <b>this</b>.selNodes);
|
||||
}
|
||||
},
|
||||
|
||||
<i>/**
|
||||
* Clear all selections
|
||||
*/</i>
|
||||
clearSelections : <b>function</b>(suppressEvent){
|
||||
<b>var</b> sn = <b>this</b>.selNodes;
|
||||
<b>if</b>(sn.length > 0){
|
||||
<b>for</b>(var i = 0, len = sn.length; i < len; i++){
|
||||
sn[i].ui.onSelectedChange(false);
|
||||
}
|
||||
<b>this</b>.selNodes = [];
|
||||
<b>this</b>.selMap = {};
|
||||
<b>if</b>(suppressEvent !== true){
|
||||
<b>this</b>.fireEvent("selectionchange", <b>this</b>, <b>this</b>.selNodes);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
<i>/**
|
||||
* Returns true <b>if</b> the node is selected
|
||||
* @param {TreeNode} node The node to check
|
||||
* @<b>return</b> {Boolean}
|
||||
*/</i>
|
||||
isSelected : <b>function</b>(node){
|
||||
<b>return</b> this.selMap[node.id] ? true : false;
|
||||
},
|
||||
|
||||
<i>/**
|
||||
* Returns an array of the selected nodes
|
||||
* @<b>return</b> {Array}
|
||||
*/</i>
|
||||
getSelectedNodes : <b>function</b>(){
|
||||
<b>return</b> this.selNodes;
|
||||
},
|
||||
|
||||
onKeyDown : Ext.tree.DefaultSelectionModel.prototype.onKeyDown,
|
||||
|
||||
selectNext : Ext.tree.DefaultSelectionModel.prototype.selectNext,
|
||||
|
||||
selectPrevious : Ext.tree.DefaultSelectionModel.prototype.selectPrevious
|
||||
});</code></pre><hr><div style="font-size:10px;text-align:center;color:gray;">Ext - Copyright © 2006-2007 Ext JS, LLC<br />All rights reserved.</div>
|
||||
</body></html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue