|
Struts example source code file (OpmlStore.js)
The Struts OpmlStore.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.data.OpmlStore"); dojo.require("dojo.data.core.Read"); dojo.require("dojo.data.core.Result"); dojo.require("dojo.lang.assert"); dojo.require("dojo.json"); dojo.require("dojo.experimental"); dojo.experimental("dojo.data.OpmlStore"); dojo.declare("dojo.data.OpmlStore", dojo.data.core.Read, {initializer:function (keywordParameters) { this._arrayOfTopLevelItems = []; this._metadataNodes = null; this._loadFinished = false; this._opmlFileUrl = keywordParameters["url"]; }, _assertIsItem:function (item) { if (!this.isItem(item)) { throw new Error("dojo.data.OpmlStore: a function was passed an item argument that was not an item"); } }, _removeChildNodesThatAreNotElementNodes:function (node, recursive) { var childNodes = node.childNodes; if (childNodes.length == 0) { return; } var nodesToRemove = []; var i, childNode; for (i = 0; i < childNodes.length; ++i) { childNode = childNodes[i]; if (childNode.nodeType != Node.ELEMENT_NODE) { nodesToRemove.push(childNode); } } for (i = 0; i < nodesToRemove.length; ++i) { childNode = nodesToRemove[i]; node.removeChild(childNode); } if (recursive) { for (i = 0; i < childNodes.length; ++i) { childNode = childNodes[i]; this._removeChildNodesThatAreNotElementNodes(childNode, recursive); } } }, _processRawXmlTree:function (rawXmlTree) { var headNodes = rawXmlTree.getElementsByTagName("head"); var headNode = headNodes[0]; this._removeChildNodesThatAreNotElementNodes(headNode); this._metadataNodes = headNode.childNodes; var bodyNodes = rawXmlTree.getElementsByTagName("body"); var bodyNode = bodyNodes[0]; this._removeChildNodesThatAreNotElementNodes(bodyNode, true); var bodyChildNodes = bodyNodes[0].childNodes; for (var i = 0; i < bodyChildNodes.length; ++i) { var node = bodyChildNodes[i]; if (node.tagName == "outline") { this._arrayOfTopLevelItems.push(node); } } }, get:function (item, attribute, defaultValue) { this._assertIsItem(item); if (attribute == "children") { return (item.firstChild || defaultValue); } else { var value = item.getAttribute(attribute); value = (value != undefined) ? value : defaultValue; return value; } }, getValues:function (item, attribute) { this._assertIsItem(item); if (attribute == "children") { var array = []; for (var i = 0; i < item.childNodes.length; ++i) { array.push(item.childNodes[i]); } return array; } else { return [item.getAttribute(attribute)]; } }, getAttributes:function (item) { this._assertIsItem(item); var attributes = []; var xmlNode = item; var xmlAttributes = xmlNode.attributes; for (var i = 0; i < xmlAttributes.length; ++i) { var xmlAttribute = xmlAttributes.item(i); attributes.push(xmlAttribute.nodeName); } if (xmlNode.childNodes.length > 0) { attributes.push("children"); } return attributes; }, hasAttribute:function (item, attribute) { return (this.getValues(item, attribute).length > 0); }, containsValue:function (item, attribute, value) { var values = this.getValues(item, attribute); for (var i = 0; i < values.length; ++i) { var possibleValue = values[i]; if (value == possibleValue) { return true; } } return false; }, isItem:function (something) { return (something && something.nodeType == Node.ELEMENT_NODE && something.tagName == "outline"); }, isItemAvailable:function (something) { return this.isItem(something); }, find:function (keywordArgs) { var result = null; if (keywordArgs instanceof dojo.data.core.Result) { result = keywordArgs; result.store = this; } else { result = new dojo.data.core.Result(keywordArgs, this); } var self = this; var bindHandler = function (type, data, evt) { var scope = result.scope || dj_global; if (type == "load") { self._processRawXmlTree(data); if (result.saveResult) { result.items = self._arrayOfTopLevelItems; } if (result.onbegin) { result.onbegin.call(scope, result); } for (var i = 0; i < self._arrayOfTopLevelItems.length; i++) { var item = self._arrayOfTopLevelItems[i]; if (result.onnext && !result._aborted) { result.onnext.call(scope, item, result); } } if (result.oncompleted && !result._aborted) { result.oncompleted.call(scope, result); } } else { if (type == "error" || type == "timeout") { var errorObject = data; if (result.onerror) { result.onerror.call(scope, data); } } } }; if (!this._loadFinished) { if (this._opmlFileUrl) { var bindRequest = dojo.io.bind({url:this._opmlFileUrl, handle:bindHandler, mimetype:"text/xml", sync:(result.sync || false)}); result._abortFunc = bindRequest.abort; } } return result; }, getIdentity:function (item) { dojo.unimplemented("dojo.data.OpmlStore.getIdentity()"); return null; }, findByIdentity:function (identity) { dojo.unimplemented("dojo.data.OpmlStore.findByIdentity()"); return null; }}); Other Struts examples (source code examples)Here is a short list of links related to this Struts OpmlStore.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.