⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pagecontainer.js

📁 初学者
💻 JS
字号:
/*	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.PageContainer");dojo.require("dojo.lang.func");dojo.require("dojo.widget.*");dojo.require("dojo.event.*");dojo.require("dojo.html.selection");dojo.widget.defineWidget("dojo.widget.PageContainer", dojo.widget.HtmlWidget, {isContainer:true, doLayout:true, templateString:"<div dojoAttachPoint='containerNode'></div>", selectedChild:"", fillInTemplate:function (args, frag) {	var source = this.getFragNodeRef(frag);	dojo.html.copyStyle(this.domNode, source);	dojo.widget.PageContainer.superclass.fillInTemplate.apply(this, arguments);}, postCreate:function (args, frag) {	if (this.children.length) {		dojo.lang.forEach(this.children, this._setupChild, this);		var initialChild;		if (this.selectedChild) {			this.selectChild(this.selectedChild);		} else {			for (var i = 0; i < this.children.length; i++) {				if (this.children[i].selected) {					this.selectChild(this.children[i]);					break;				}			}			if (!this.selectedChildWidget) {				this.selectChild(this.children[0]);			}		}	}}, addChild:function (child) {	dojo.widget.PageContainer.superclass.addChild.apply(this, arguments);	this._setupChild(child);	this.onResized();	if (!this.selectedChildWidget) {		this.selectChild(child);	}}, _setupChild:function (page) {	page.hide();	page.domNode.style.position = "relative";	dojo.event.topic.publish(this.widgetId + "-addChild", page);}, removeChild:function (page) {	dojo.widget.PageContainer.superclass.removeChild.apply(this, arguments);	if (this._beingDestroyed) {		return;	}	dojo.event.topic.publish(this.widgetId + "-removeChild", page);	this.onResized();	if (this.selectedChildWidget === page) {		this.selectedChildWidget = undefined;		if (this.children.length > 0) {			this.selectChild(this.children[0], true);		}	}}, selectChild:function (page, callingWidget) {	page = dojo.widget.byId(page);	this.correspondingPageButton = callingWidget;	if (this.selectedChildWidget) {		this._hideChild(this.selectedChildWidget);	}	this.selectedChildWidget = page;	this.selectedChild = page.widgetId;	this._showChild(page);	page.isFirstChild = (page == this.children[0]);	page.isLastChild = (page == this.children[this.children.length - 1]);	dojo.event.topic.publish(this.widgetId + "-selectChild", page);}, forward:function () {	var index = dojo.lang.find(this.children, this.selectedChildWidget);	this.selectChild(this.children[index + 1]);}, back:function () {	var index = dojo.lang.find(this.children, this.selectedChildWidget);	this.selectChild(this.children[index - 1]);}, onResized:function () {	if (this.doLayout && this.selectedChildWidget) {		with (this.selectedChildWidget.domNode.style) {			top = dojo.html.getPixelValue(this.containerNode, "padding-top", true);			left = dojo.html.getPixelValue(this.containerNode, "padding-left", true);		}		var content = dojo.html.getContentBox(this.containerNode);		this.selectedChildWidget.resizeTo(content.width, content.height);	}}, _showChild:function (page) {	if (this.doLayout) {		var content = dojo.html.getContentBox(this.containerNode);		page.resizeTo(content.width, content.height);	}	page.selected = true;	page.show();}, _hideChild:function (page) {	page.selected = false;	page.hide();}, closeChild:function (page) {	var remove = page.onClose(this, page);	if (remove) {		this.removeChild(page);		page.destroy();	}}, destroy:function () {	this._beingDestroyed = true;	dojo.event.topic.destroy(this.widgetId + "-addChild");	dojo.event.topic.destroy(this.widgetId + "-removeChild");	dojo.event.topic.destroy(this.widgetId + "-selectChild");	dojo.widget.PageContainer.superclass.destroy.apply(this, arguments);}});dojo.widget.defineWidget("dojo.widget.PageController", dojo.widget.HtmlWidget, {templateString:"<span wairole='tablist' dojoAttachEvent='onKey'></span>", isContainer:true, containerId:"", buttonWidget:"PageButton", "class":"dojoPageController", fillInTemplate:function () {	dojo.html.addClass(this.domNode, this["class"]);	dojo.widget.wai.setAttr(this.domNode, "waiRole", "role", "tablist");}, postCreate:function () {	this.pane2button = {};	var container = dojo.widget.byId(this.containerId);	if (container) {		dojo.lang.forEach(container.children, this.onAddChild, this);	}	dojo.event.topic.subscribe(this.containerId + "-addChild", this, "onAddChild");	dojo.event.topic.subscribe(this.containerId + "-removeChild", this, "onRemoveChild");	dojo.event.topic.subscribe(this.containerId + "-selectChild", this, "onSelectChild");}, destroy:function () {	dojo.event.topic.unsubscribe(this.containerId + "-addChild", this, "onAddChild");	dojo.event.topic.unsubscribe(this.containerId + "-removeChild", this, "onRemoveChild");	dojo.event.topic.unsubscribe(this.containerId + "-selectChild", this, "onSelectChild");	dojo.widget.PageController.superclass.destroy.apply(this, arguments);}, onAddChild:function (page) {	var button = dojo.widget.createWidget(this.buttonWidget, {label:page.label, closeButton:page.closable});	this.addChild(button);	this.domNode.appendChild(button.domNode);	this.pane2button[page] = button;	page.controlButton = button;	var _this = this;	dojo.event.connect(button, "onClick", function () {		_this.onButtonClick(page);	});	dojo.event.connect(button, "onCloseButtonClick", function () {		_this.onCloseButtonClick(page);	});}, onRemoveChild:function (page) {	if (this._currentChild == page) {		this._currentChild = null;	}	var button = this.pane2button[page];	if (button) {		button.destroy();	}	this.pane2button[page] = null;}, onSelectChild:function (page) {	if (this._currentChild) {		var oldButton = this.pane2button[this._currentChild];		oldButton.clearSelected();	}	var newButton = this.pane2button[page];	newButton.setSelected();	this._currentChild = page;}, onButtonClick:function (page) {	var container = dojo.widget.byId(this.containerId);	container.selectChild(page, false, this);}, onCloseButtonClick:function (page) {	var container = dojo.widget.byId(this.containerId);	container.closeChild(page);}, onKey:function (evt) {	if ((evt.keyCode == evt.KEY_RIGHT_ARROW) || (evt.keyCode == evt.KEY_LEFT_ARROW)) {		var current = 0;		var next = null;		var current = dojo.lang.find(this.children, this.pane2button[this._currentChild]);		if (evt.keyCode == evt.KEY_RIGHT_ARROW) {			next = this.children[(current + 1) % this.children.length];		} else {			next = this.children[(current + (this.children.length - 1)) % this.children.length];		}		dojo.event.browser.stopEvent(evt);		next.onClick();	}}});dojo.widget.defineWidget("dojo.widget.PageButton", dojo.widget.HtmlWidget, {templateString:"<span class='item'>" + "<span dojoAttachEvent='onClick' dojoAttachPoint='titleNode' class='selectButton'>${this.label}</span>" + "<span dojoAttachEvent='onClick:onCloseButtonClick' class='closeButton'>[X]</span>" + "</span>", label:"foo", closeButton:false, onClick:function () {	this.focus();}, onCloseButtonMouseOver:function () {	dojo.html.addClass(this.closeButtonNode, "closeHover");}, onCloseButtonMouseOut:function () {	dojo.html.removeClass(this.closeButtonNode, "closeHover");}, onCloseButtonClick:function (evt) {}, setSelected:function () {	dojo.html.addClass(this.domNode, "current");	this.titleNode.setAttribute("tabIndex", "0");}, clearSelected:function () {	dojo.html.removeClass(this.domNode, "current");	this.titleNode.setAttribute("tabIndex", "-1");}, focus:function () {	if (this.titleNode.focus) {		this.titleNode.focus();	}}});dojo.lang.extend(dojo.widget.Widget, {label:"", selected:false, closable:false, onClose:function () {	return true;}});

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -