layout.js
资源名称:oa.rar [点击查看]
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:3k
源码类别:
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.html.layout");
- dojo.require("dojo.lang.common");
- dojo.require("dojo.string.extras");
- dojo.require("dojo.html.style");
- dojo.require("dojo.html.layout");
- dojo.widget.html.layout = function (container, children, layoutPriority) {
- dojo.html.addClass(container, "dojoLayoutContainer");
- children = dojo.lang.filter(children, function (child, idx) {
- child.idx = idx;
- return dojo.lang.inArray(["top", "bottom", "left", "right", "client", "flood"], child.layoutAlign);
- });
- if (layoutPriority && layoutPriority != "none") {
- var rank = function (child) {
- switch (child.layoutAlign) {
- case "flood":
- return 1;
- case "left":
- case "right":
- return (layoutPriority == "left-right") ? 2 : 3;
- case "top":
- case "bottom":
- return (layoutPriority == "left-right") ? 3 : 2;
- default:
- return 4;
- }
- };
- children.sort(function (a, b) {
- return (rank(a) - rank(b)) || (a.idx - b.idx);
- });
- }
- var f = {top:dojo.html.getPixelValue(container, "padding-top", true), left:dojo.html.getPixelValue(container, "padding-left", true)};
- dojo.lang.mixin(f, dojo.html.getContentBox(container));
- dojo.lang.forEach(children, function (child) {
- var elm = child.domNode;
- var pos = child.layoutAlign;
- with (elm.style) {
- left = f.left + "px";
- top = f.top + "px";
- bottom = "auto";
- right = "auto";
- }
- dojo.html.addClass(elm, "dojoAlign" + dojo.string.capitalize(pos));
- if ((pos == "top") || (pos == "bottom")) {
- dojo.html.setMarginBox(elm, {width:f.width});
- var h = dojo.html.getMarginBox(elm).height;
- f.height -= h;
- if (pos == "top") {
- f.top += h;
- } else {
- elm.style.top = f.top + f.height + "px";
- }
- if (child.onResized) {
- child.onResized();
- }
- } else {
- if (pos == "left" || pos == "right") {
- var w = dojo.html.getMarginBox(elm).width;
- if (child.resizeTo) {
- child.resizeTo(w, f.height);
- } else {
- dojo.html.setMarginBox(elm, {width:w, height:f.height});
- }
- f.width -= w;
- if (pos == "left") {
- f.left += w;
- } else {
- elm.style.left = f.left + f.width + "px";
- }
- } else {
- if (pos == "flood" || pos == "client") {
- if (child.resizeTo) {
- child.resizeTo(f.width, f.height);
- } else {
- dojo.html.setMarginBox(elm, {width:f.width, height:f.height});
- }
- }
- }
- }
- });
- };
- dojo.html.insertCssText(".dojoLayoutContainer{ position: relative; display: block; overflow: hidden; }n" + "body .dojoAlignTop, body .dojoAlignBottom, body .dojoAlignLeft, body .dojoAlignRight { position: absolute; overflow: hidden; }n" + "body .dojoAlignClient { position: absolute }n" + ".dojoAlignClient { overflow: auto; }n");