|
Struts example source code file (Item.js)
The Struts Item.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.old.Item"); dojo.require("dojo.data.old.Observable"); dojo.require("dojo.data.old.Value"); dojo.require("dojo.lang.common"); dojo.require("dojo.lang.assert"); dojo.data.old.Item = function (dataProvider) { dojo.lang.assertType(dataProvider, dojo.data.old.provider.Base, {optional:true}); dojo.data.old.Observable.call(this); this._dataProvider = dataProvider; this._dictionaryOfAttributeValues = {}; }; dojo.inherits(dojo.data.old.Item, dojo.data.old.Observable); dojo.data.old.Item.compare = function (itemOne, itemTwo) { dojo.lang.assertType(itemOne, dojo.data.old.Item); if (!dojo.lang.isOfType(itemTwo, dojo.data.old.Item)) { return -1; } var nameOne = itemOne.getName(); var nameTwo = itemTwo.getName(); if (nameOne == nameTwo) { var attributeArrayOne = itemOne.getAttributes(); var attributeArrayTwo = itemTwo.getAttributes(); if (attributeArrayOne.length != attributeArrayTwo.length) { if (attributeArrayOne.length > attributeArrayTwo.length) { return 1; } else { return -1; } } for (var i in attributeArrayOne) { var attribute = attributeArrayOne[i]; var arrayOfValuesOne = itemOne.getValues(attribute); var arrayOfValuesTwo = itemTwo.getValues(attribute); dojo.lang.assert(arrayOfValuesOne && (arrayOfValuesOne.length > 0)); if (!arrayOfValuesTwo) { return 1; } if (arrayOfValuesOne.length != arrayOfValuesTwo.length) { if (arrayOfValuesOne.length > arrayOfValuesTwo.length) { return 1; } else { return -1; } } for (var j in arrayOfValuesOne) { var value = arrayOfValuesOne[j]; if (!itemTwo.hasAttributeValue(value)) { return 1; } } return 0; } } else { if (nameOne > nameTwo) { return 1; } else { return -1; } } }; dojo.data.old.Item.prototype.toString = function () { var arrayOfStrings = []; var attributes = this.getAttributes(); for (var i in attributes) { var attribute = attributes[i]; var arrayOfValues = this.getValues(attribute); var valueString; if (arrayOfValues.length == 1) { valueString = arrayOfValues[0]; } else { valueString = "["; valueString += arrayOfValues.join(", "); valueString += "]"; } arrayOfStrings.push(" " + attribute + ": " + valueString); } var returnString = "{ "; returnString += arrayOfStrings.join(",\n"); returnString += " }"; return returnString; }; dojo.data.old.Item.prototype.compare = function (otherItem) { return dojo.data.old.Item.compare(this, otherItem); }; dojo.data.old.Item.prototype.isEqual = function (otherItem) { return (this.compare(otherItem) == 0); }; dojo.data.old.Item.prototype.getName = function () { return this.get("name"); }; dojo.data.old.Item.prototype.get = function (attributeId) { var literalOrValueOrArray = this._dictionaryOfAttributeValues[attributeId]; if (dojo.lang.isUndefined(literalOrValueOrArray)) { return null; } if (literalOrValueOrArray instanceof dojo.data.old.Value) { return literalOrValueOrArray.getValue(); } if (dojo.lang.isArray(literalOrValueOrArray)) { var dojoDataValue = literalOrValueOrArray[0]; return dojoDataValue.getValue(); } return literalOrValueOrArray; }; dojo.data.old.Item.prototype.getValue = function (attributeId) { var literalOrValueOrArray = this._dictionaryOfAttributeValues[attributeId]; if (dojo.lang.isUndefined(literalOrValueOrArray)) { return null; } if (literalOrValueOrArray instanceof dojo.data.old.Value) { return literalOrValueOrArray; } if (dojo.lang.isArray(literalOrValueOrArray)) { var dojoDataValue = literalOrValueOrArray[0]; return dojoDataValue; } var literal = literalOrValueOrArray; dojoDataValue = new dojo.data.old.Value(literal); this._dictionaryOfAttributeValues[attributeId] = dojoDataValue; return dojoDataValue; }; dojo.data.old.Item.prototype.getValues = function (attributeId) { var literalOrValueOrArray = this._dictionaryOfAttributeValues[attributeId]; if (dojo.lang.isUndefined(literalOrValueOrArray)) { return null; } if (literalOrValueOrArray instanceof dojo.data.old.Value) { var array = [literalOrValueOrArray]; this._dictionaryOfAttributeValues[attributeId] = array; return array; } if (dojo.lang.isArray(literalOrValueOrArray)) { return literalOrValueOrArray; } var literal = literalOrValueOrArray; var dojoDataValue = new dojo.data.old.Value(literal); array = [dojoDataValue]; this._dictionaryOfAttributeValues[attributeId] = array; return array; }; dojo.data.old.Item.prototype.load = function (attributeId, value) { this._dataProvider.registerAttribute(attributeId); var literalOrValueOrArray = this._dictionaryOfAttributeValues[attributeId]; if (dojo.lang.isUndefined(literalOrValueOrArray)) { this._dictionaryOfAttributeValues[attributeId] = value; return; } if (!(value instanceof dojo.data.old.Value)) { value = new dojo.data.old.Value(value); } if (literalOrValueOrArray instanceof dojo.data.old.Value) { var array = [literalOrValueOrArray, value]; this._dictionaryOfAttributeValues[attributeId] = array; return; } if (dojo.lang.isArray(literalOrValueOrArray)) { literalOrValueOrArray.push(value); return; } var literal = literalOrValueOrArray; var dojoDataValue = new dojo.data.old.Value(literal); array = [dojoDataValue, value]; this._dictionaryOfAttributeValues[attributeId] = array; }; dojo.data.old.Item.prototype.set = function (attributeId, value) { this._dataProvider.registerAttribute(attributeId); this._dictionaryOfAttributeValues[attributeId] = value; this._dataProvider.noteChange(this, attributeId, value); }; dojo.data.old.Item.prototype.setValue = function (attributeId, value) { this.set(attributeId, value); }; dojo.data.old.Item.prototype.addValue = function (attributeId, value) { this.load(attributeId, value); this._dataProvider.noteChange(this, attributeId, value); }; dojo.data.old.Item.prototype.setValues = function (attributeId, arrayOfValues) { dojo.lang.assertType(arrayOfValues, Array); this._dataProvider.registerAttribute(attributeId); var finalArray = []; this._dictionaryOfAttributeValues[attributeId] = finalArray; for (var i in arrayOfValues) { var value = arrayOfValues[i]; if (!(value instanceof dojo.data.old.Value)) { value = new dojo.data.old.Value(value); } finalArray.push(value); this._dataProvider.noteChange(this, attributeId, value); } }; dojo.data.old.Item.prototype.getAttributes = function () { var arrayOfAttributes = []; for (var key in this._dictionaryOfAttributeValues) { arrayOfAttributes.push(this._dataProvider.getAttribute(key)); } return arrayOfAttributes; }; dojo.data.old.Item.prototype.hasAttribute = function (attributeId) { return (attributeId in this._dictionaryOfAttributeValues); }; dojo.data.old.Item.prototype.hasAttributeValue = function (attributeId, value) { var arrayOfValues = this.getValues(attributeId); for (var i in arrayOfValues) { var candidateValue = arrayOfValues[i]; if (candidateValue.isEqual(value)) { return true; } } return false; }; Other Struts examples (source code examples)Here is a short list of links related to this Struts Item.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.