RadioGroup.js
资源名称:oa.rar [点击查看]
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:4k
源码类别:
OA系统
开发平台:
Java
- /*
- 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);
- }
- }});