1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /**
- * @fileOverview
- *
- * 鱼骨图主骨架布局
- *
- * @author: techird
- * @copyright: Baidu FEX, 2014
- */
- define(function(require, exports, module) {
- var kity = require('../core/kity');
- var Layout = require('../core/layout');
- Layout.register('fish-bone-master', kity.createClass('FishBoneMasterLayout', {
- base: Layout,
- doLayout: function(parent, children, round) {
- var upPart = [],
- downPart = [];
- var child = children[0];
- var pBox = parent.getContentBox();
- parent.setVertexOut(new kity.Point(pBox.right, pBox.cy));
- parent.setLayoutVectorOut(new kity.Vector(1, 0));
- if (!child) return;
- var cBox = child.getContentBox();
- var pMarginRight = parent.getStyle('margin-right');
- var cMarginLeft = child.getStyle('margin-left');
- var cMarginTop = child.getStyle('margin-top');
- var cMarginBottom = child.getStyle('margin-bottom');
- children.forEach(function(child, index) {
- child.setLayoutTransform(new kity.Matrix());
- var cBox = child.getContentBox();
- if (index % 2) {
- downPart.push(child);
- child.setVertexIn(new kity.Point(cBox.left, cBox.top));
- child.setLayoutVectorIn(new kity.Vector(1, 1));
- }
- else {
- upPart.push(child);
- child.setVertexIn(new kity.Point(cBox.left, cBox.bottom));
- child.setLayoutVectorIn(new kity.Vector(1, -1));
- }
- });
- this.stack(upPart, 'x');
- this.stack(downPart, 'x');
- this.align(upPart, 'bottom');
- this.align(downPart, 'top');
- var xAdjust = pBox.right + pMarginRight + cMarginLeft;
- var yAdjustUp = pBox.cy - cMarginBottom - parent.getStyle('margin-top');
- var yAdjustDown = pBox.cy + cMarginTop + parent.getStyle('margin-bottom');
- this.move(upPart, xAdjust, yAdjustUp);
- this.move(downPart, xAdjust + cMarginLeft, yAdjustDown);
- }
- }));
- });
|