| /** |
| * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under |
| * the BSD-style license found in the LICENSE file in the root directory of this source tree. An |
| * additional grant of patent rights can be found in the PATENTS file in the same directory. |
| */ |
| package com.taobao.weex.dom.flex; |
| |
| import java.util.Arrays; |
| |
| import static com.taobao.weex.dom.flex.CSSLayout.DIMENSION_HEIGHT; |
| import static com.taobao.weex.dom.flex.CSSLayout.DIMENSION_WIDTH; |
| import static com.taobao.weex.dom.flex.CSSLayout.POSITION_BOTTOM; |
| import static com.taobao.weex.dom.flex.CSSLayout.POSITION_LEFT; |
| import static com.taobao.weex.dom.flex.CSSLayout.POSITION_RIGHT; |
| import static com.taobao.weex.dom.flex.CSSLayout.POSITION_TOP; |
| |
| /** |
| * The CSS style definition for a {@link CSSNode}. |
| */ |
| public class CSSStyle { |
| |
| public CSSDirection direction; |
| public CSSFlexDirection flexDirection; |
| public CSSJustify justifyContent; |
| public CSSAlign alignContent; |
| public CSSAlign alignItems; |
| public CSSAlign alignSelf; |
| public CSSPositionType positionType; |
| public CSSWrap flexWrap; |
| public float flex; |
| |
| public Spacing margin = new Spacing(); |
| public Spacing padding = new Spacing(); |
| public Spacing border = new Spacing(); |
| |
| public float[] position = new float[4]; |
| public float[] dimensions = new float[2]; |
| |
| public float minWidth = CSSConstants.UNDEFINED; |
| public float minHeight = CSSConstants.UNDEFINED; |
| |
| public float maxWidth = CSSConstants.UNDEFINED; |
| public float maxHeight = CSSConstants.UNDEFINED; |
| |
| CSSStyle() { |
| reset(); |
| } |
| |
| void reset() { |
| direction = CSSDirection.INHERIT; |
| flexDirection = CSSFlexDirection.COLUMN; |
| justifyContent = CSSJustify.FLEX_START; |
| alignContent = CSSAlign.FLEX_START; |
| alignItems = CSSAlign.STRETCH; |
| alignSelf = CSSAlign.AUTO; |
| positionType = CSSPositionType.RELATIVE; |
| flexWrap = CSSWrap.NOWRAP; |
| flex = 0f; |
| |
| margin.reset(); |
| padding.reset(); |
| border.reset(); |
| |
| Arrays.fill(position, CSSConstants.UNDEFINED); |
| Arrays.fill(dimensions, CSSConstants.UNDEFINED); |
| |
| minWidth = CSSConstants.UNDEFINED; |
| minHeight = CSSConstants.UNDEFINED; |
| |
| maxWidth = CSSConstants.UNDEFINED; |
| maxHeight = CSSConstants.UNDEFINED; |
| } |
| |
| public void copy(CSSStyle cssStyle) { |
| direction = cssStyle.direction; |
| flexDirection = cssStyle.flexDirection; |
| justifyContent = cssStyle.justifyContent; |
| alignContent = cssStyle.alignContent; |
| alignItems = cssStyle.alignItems; |
| alignSelf = cssStyle.alignSelf; |
| positionType = cssStyle.positionType; |
| flexWrap = cssStyle.flexWrap; |
| flex = cssStyle.flex; |
| margin = cssStyle.margin; |
| padding = cssStyle.padding; |
| border = cssStyle.border; |
| position[POSITION_TOP] = cssStyle.position[POSITION_TOP]; |
| position[POSITION_BOTTOM] = cssStyle.position[POSITION_BOTTOM]; |
| position[POSITION_LEFT] = cssStyle.position[POSITION_LEFT]; |
| position[POSITION_RIGHT] = cssStyle.position[POSITION_RIGHT]; |
| dimensions[DIMENSION_WIDTH] = cssStyle.dimensions[DIMENSION_WIDTH]; |
| dimensions[DIMENSION_HEIGHT] = cssStyle.dimensions[DIMENSION_HEIGHT]; |
| minWidth = cssStyle.minWidth; |
| minHeight = cssStyle.minHeight; |
| maxWidth = cssStyle.maxWidth; |
| maxHeight = cssStyle.maxHeight; |
| } |
| |
| public String toString() { |
| return "direction =" + direction + "\n" |
| + "flexDirection =" + flexDirection + "\n" |
| + "justifyContent=" + justifyContent + "\n" |
| + "alignContent =" + alignContent + "\n" |
| + "alignItems =" + alignItems + "\n" |
| + "alignSelf =" + alignSelf + "\n" |
| + "positionType =" + positionType + "\n" |
| + "flexWrap =" + flexWrap + "\n" |
| + "flex =" + flex + "\n" |
| + "margin =" + margin + "\n" |
| + "padding =" + padding + "\n" |
| + "border =" + border + "\n" |
| + "position[POSITION_TOP] =" + position[POSITION_TOP] + "\n" |
| + "position[POSITION_BOTTOM] =" + position[POSITION_BOTTOM] + "\n" |
| + "position[POSITION_LEFT] =" + position[POSITION_LEFT] + "\n" |
| + "position[POSITION_RIGHT] =" + position[POSITION_RIGHT] + "\n" |
| + "position[DIMENSION_WIDTH] =" + position[DIMENSION_WIDTH] + "\n" |
| + "position[DIMENSION_HEIGHT] =" + position[DIMENSION_HEIGHT] + "\n" |
| + "minWidth =" + minWidth + "\n" |
| + "minHeight =" + minHeight + "\n" |
| + "maxWidth =" + maxWidth + "\n" |
| + "maxHeight =" + maxHeight + "\n"; |
| } |
| } |