|
Struts example source code file (TreeTimeoutIterator.js)
The Struts TreeTimeoutIterator.js source code/* Copyright (c) 2004-2006, The Dojo Foundation All Rights Reserved. Licensed under the Academic Free License version 2.1 or above OR the modified BSD license. For more information on Dojo licensing, see: http://dojotoolkit.org/community/licensing.shtml */ dojo.provide("dojo.widget.TreeTimeoutIterator"); dojo.require("dojo.event.*"); dojo.require("dojo.json"); dojo.require("dojo.io.*"); dojo.require("dojo.widget.TreeCommon"); dojo.declare("dojo.widget.TreeTimeoutIterator", null, function (elem, callFunc, callObj) { var _this = this; this.currentParent = elem; this.callFunc = callFunc; this.callObj = callObj ? callObj : this; this.stack = []; }, {maxStackDepth:Number.POSITIVE_INFINITY, stack:null, currentParent:null, currentIndex:0, filterFunc:function () { return true; }, finishFunc:function () { return true; }, setFilter:function (func, obj) { this.filterFunc = func; this.filterObj = obj; }, setMaxLevel:function (level) { this.maxStackDepth = level - 2; }, forward:function (timeout) { var _this = this; if (this.timeout) { var tid = setTimeout(function () { _this.processNext(); clearTimeout(tid); }, _this.timeout); } else { return this.processNext(); } }, start:function (processFirst) { if (processFirst) { return this.callFunc.call(this.callObj, this.currentParent, this); } return this.processNext(); }, processNext:function () { var handler; var _this = this; var found; var next; if (this.maxStackDepth == -2) { return; } while (true) { var children = this.currentParent.children; if (children && children.length) { do { next = children[this.currentIndex]; } while (this.currentIndex++ < children.length && !(found = this.filterFunc.call(this.filterObj, next))); if (found) { if (next.isFolder && this.stack.length <= this.maxStackDepth) { this.moveParent(next, 0); } return this.callFunc.call(this.callObj, next, this); } } if (this.stack.length) { this.popParent(); continue; } break; } return this.finishFunc.call(this.finishObj); }, setFinish:function (func, obj) { this.finishFunc = func; this.finishObj = obj; }, popParent:function () { var p = this.stack.pop(); this.currentParent = p[0]; this.currentIndex = p[1]; }, moveParent:function (nextParent, nextIndex) { this.stack.push([this.currentParent, this.currentIndex]); this.currentParent = nextParent; this.currentIndex = nextIndex; }}); Other Struts examples (source code examples)Here is a short list of links related to this Struts TreeTimeoutIterator.js source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.