|
Struts example source code file (RadioGroup.js)
The Struts RadioGroup.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.RadioGroup"); dojo.require("dojo.lang.common"); dojo.require("dojo.event.browser"); dojo.require("dojo.html.selection"); dojo.require("dojo.widget.*"); dojo.require("dojo.widget.HtmlWidget"); dojo.widget.defineWidget("dojo.widget.RadioGroup", dojo.widget.HtmlWidget, function () { this.selectedItem = null; this.items = []; this.selected = []; this.groupCssClass = "radioGroup"; this.selectedCssClass = "selected"; this.itemContentCssClass = "itemContent"; }, {isContainer:false, templatePath:null, templateCssPath:null, postCreate:function () { this._parseStructure(); dojo.html.addClass(this.domNode, this.groupCssClass); this._setupChildren(); dojo.event.browser.addListener(this.domNode, "onclick", dojo.lang.hitch(this, "onSelect")); if (this.selectedItem) { this._selectItem(this.selectedItem); } }, _parseStructure:function () { if (this.domNode.tagName.toLowerCase() != "ul" && this.domNode.tagName.toLowerCase() != "ol") { dojo.raise("RadioGroup: Expected ul or ol content."); return; } this.items = []; var nl = this.domNode.getElementsByTagName("li"); for (var i = 0; i < nl.length; i++) { if (nl[i].parentNode == this.domNode) { this.items.push(nl[i]); } } }, add:function (node) { if (node.parentNode != this.domNode) { this.domNode.appendChild(node); } this.items.push(node); this._setup(node); }, remove:function (node) { var idx = -1; for (var i = 0; i < this.items.length; i++) { if (this.items[i] == node) { idx = i; break; } } if (idx < 0) { return; } this.items.splice(idx, 1); node.parentNode.removeChild(node); }, clear:function () { for (var i = 0; i < this.items.length; i++) { this.domNode.removeChild(this.items[i]); } this.items = []; }, clearSelections:function () { for (var i = 0; i < this.items.length; i++) { dojo.html.removeClass(this.items[i], this.selectedCssClass); } this.selectedItem = null; }, _setup:function (node) { var span = document.createElement("span"); dojo.html.disableSelection(span); dojo.html.addClass(span, this.itemContentCssClass); dojo.dom.moveChildren(node, span); node.appendChild(span); if (this.selected.length > 0) { var uid = dojo.html.getAttribute(node, "id"); if (uid && uid == this.selected) { this.selectedItem = node; } } dojo.event.browser.addListener(node, "onclick", dojo.lang.hitch(this, "onItemSelect")); if (dojo.html.hasAttribute(node, "onitemselect")) { var tn = dojo.lang.nameAnonFunc(new Function(dojo.html.getAttribute(node, "onitemselect")), this); dojo.event.browser.addListener(node, "onclick", dojo.lang.hitch(this, tn)); } }, _setupChildren:function () { for (var i = 0; i < this.items.length; i++) { this._setup(this.items[i]); } }, _selectItem:function (node, event, nofire) { if (this.selectedItem) { dojo.html.removeClass(this.selectedItem, this.selectedCssClass); } this.selectedItem = node; dojo.html.addClass(this.selectedItem, this.selectedCssClass); if (!dj_undef("currentTarget", event)) { return; } if (!nofire) { if (dojo.render.html.ie) { this.selectedItem.fireEvent("onclick"); } else { var e = document.createEvent("MouseEvents"); e.initEvent("click", true, false); this.selectedItem.dispatchEvent(e); } } }, getValue:function () { return this.selectedItem; }, onSelect:function (e) { }, onItemSelect:function (e) { if (!dj_undef("currentTarget", e)) { this._selectItem(e.currentTarget, e); } }}); Other Struts examples (source code examples)Here is a short list of links related to this Struts RadioGroup.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.