http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/VScrollBarMouseController.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/VScrollBarMouseController.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/VScrollBarMouseController.as deleted file mode 100644 index 611f6dd..0000000 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/VScrollBarMouseController.as +++ /dev/null @@ -1,101 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Licensed to the Apache Software Foundation (ASF) under one or more -// contributor license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright ownership. -// The ASF licenses this file to You under the Apache License, Version 2.0 -// (the "License"); you may not use this file except in compliance with -// the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////////// -package org.apache.flex.html.beads.controllers -{ - import flash.display.DisplayObject; - - import org.apache.flex.events.Event; - import org.apache.flex.events.MouseEvent; - import org.apache.flex.events.IEventDispatcher; - - /** - * The VScrollBarMouseController class is the controller for - * org.apache.flex.html.supportClasses.ScrollBar - * that acts as the Vertical ScrollBar. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public class VScrollBarMouseController extends ScrollBarMouseControllerBase - { - /** - * Constructor. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function VScrollBarMouseController() - { - } - - /** - * @private - */ - override protected function trackClickHandler(event:MouseEvent):void - { - if (sbView.thumb.visible) - { - if (event.localY < sbView.thumb.y) - { - sbModel.value = snap(Math.max(sbModel.minimum, sbModel.value - sbModel.pageStepSize)); - IEventDispatcher(strand).dispatchEvent(new Event("scroll")); - } - else - { - sbModel.value = snap(Math.min(sbModel.maximum - sbModel.pageSize, sbModel.value + sbModel.pageStepSize)); - IEventDispatcher(strand).dispatchEvent(new Event("scroll")); - } - } - } - - private var thumbDownY:Number; - private var lastThumbY:Number; - - /** - * @private - */ - override protected function thumbMouseDownHandler(event:MouseEvent):void - { - sbView.thumb.stage.addEventListener(MouseEvent.MOUSE_MOVE, thumbMouseMoveHandler); - sbView.thumb.stage.addEventListener(MouseEvent.MOUSE_UP, thumbMouseUpHandler); - thumbDownY = event.screenY; - lastThumbY = sbView.thumb.y; - } - - private function thumbMouseMoveHandler(event:MouseEvent):void - { - var thumb:DisplayObject = sbView.thumb; - var track:DisplayObject = sbView.track; - thumb.y = Math.max(track.y, Math.min(lastThumbY + (event.screenY - thumbDownY), track.y + track.height - thumb.height)); - var newValue:Number = snap((thumb.y - track.y) / (track.height - thumb.height) * (sbModel.maximum - sbModel.minimum - sbModel.pageSize)); - sbModel.value = newValue; - IEventDispatcher(strand).dispatchEvent(new Event("scroll")); - } - - private function thumbMouseUpHandler(event:MouseEvent):void - { - sbView.thumb.stage.removeEventListener(MouseEvent.MOUSE_MOVE, thumbMouseMoveHandler); - sbView.thumb.stage.removeEventListener(MouseEvent.MOUSE_UP, thumbMouseUpHandler); - } - } -}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/BasicLayout.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/BasicLayout.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/BasicLayout.as deleted file mode 100644 index 8a8c0d7..0000000 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/BasicLayout.as +++ /dev/null @@ -1,445 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Licensed to the Apache Software Foundation (ASF) under one or more -// contributor license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright ownership. -// The ASF licenses this file to You under the Apache License, Version 2.0 -// (the "License"); you may not use this file except in compliance with -// the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////////// -package org.apache.flex.html.beads.layouts -{ - - import org.apache.flex.core.IBeadLayout; - import org.apache.flex.core.ILayoutChild; - import org.apache.flex.core.ILayoutHost; - import org.apache.flex.core.IParentIUIBase; - import org.apache.flex.core.IStrand; - import org.apache.flex.core.IUIBase; - import org.apache.flex.core.UIBase; - import org.apache.flex.core.ValuesManager; - import org.apache.flex.events.Event; - import org.apache.flex.events.IEventDispatcher; - import org.apache.flex.utils.CSSUtils; - //import org.apache.flex.utils.dbg.DOMPathUtil; - - /** - * The BasicLayout class is a simple layout - * bead. It takes the set of children and lays them out - * as specified by CSS properties like left, right, top - * and bottom. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public class BasicLayout implements IBeadLayout - { - /** - * Constructor. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function BasicLayout() - { - } - - // the strand/host container is also an ILayoutChild because - // can have its size dictated by the host's parent which is - // important to know for layout optimization - private var host:ILayoutChild; - - /** - * @copy org.apache.flex.core.IBead#strand - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function set strand(value:IStrand):void - { - host = value as ILayoutChild; - } - - /** - * @copy org.apache.flex.core.IBeadLayout#layout - * @flexjsignorecoercion org.apache.flex.core.ILayoutHost - * @flexjsignorecoercion org.apache.flex.core.UIBase - */ - public function layout():Boolean - { - COMPILE::AS3 - { - //trace(DOMPathUtil.getPath(host), event ? event.type : "fixed size"); - var layoutParent:ILayoutHost = host.getBeadByType(ILayoutHost) as ILayoutHost; - var contentView:IParentIUIBase = layoutParent ? layoutParent.contentView : IParentIUIBase(host); - - var gotMargin:Boolean; - var marginLeft:Object; - var marginRight:Object; - var marginTop:Object; - var marginBottom:Object; - var margin:Object; - var ml:Number; - var mr:Number; - var mt:Number; - var mb:Number; - var hostWidthSizedToContent:Boolean = host.isWidthSizedToContent(); - var hostHeightSizedToContent:Boolean = host.isHeightSizedToContent(); - var w:Number = hostWidthSizedToContent ? 0 : contentView.width; - var h:Number = hostHeightSizedToContent ? 0 : contentView.height; - var n:int = contentView.numElements; - var maxWidth:Number = 0; - var maxHeight:Number = 0; - var childData:Array = []; - for (var i:int = 0; i < n; i++) - { - var child:IUIBase = contentView.getElementAt(i) as IUIBase; - var left:Number = ValuesManager.valuesImpl.getValue(child, "left"); - var right:Number = ValuesManager.valuesImpl.getValue(child, "right"); - var top:Number = ValuesManager.valuesImpl.getValue(child, "top"); - var bottom:Number = ValuesManager.valuesImpl.getValue(child, "bottom"); - var ww:Number = w; - var hh:Number = h; - - var ilc:ILayoutChild = child as ILayoutChild; - if (!isNaN(left)) - { - if (ilc) - ilc.setX(left); - else - child.x = left; - ww -= left; - } - if (!isNaN(top)) - { - if (ilc) - ilc.setY(top); - else - child.y = top; - hh -= top; - } - if (ilc) - { - if (!hostWidthSizedToContent) - { - if (!isNaN(ilc.percentWidth)) - ilc.setWidth((ww - (isNaN(right) ? 0 : right)) * ilc.percentWidth / 100, true); - } - else - childData[i] = { bottom: bottom, right: right, ww: ww, ilc: ilc, child: child }; - } - if (!isNaN(right)) - { - if (!hostWidthSizedToContent) - { - if (!isNaN(left)) - { - if (ilc) - ilc.setWidth(ww - right, true); - else - child.width = ww - right; - } - else - { - if (ilc) - ilc.setX( w - right - child.width); - else - child.x = w - right - child.width; - } - } - else - childData[i] = { ww: ww, left: left, right: right, ilc: ilc, child: child }; - } - - if (isNaN(right) && isNaN(left)) - { - margin = ValuesManager.valuesImpl.getValue(child, "margin"); - gotMargin = true; - marginLeft = ValuesManager.valuesImpl.getValue(child, "margin-left"); - marginRight = ValuesManager.valuesImpl.getValue(child, "margin-right"); - var horizontalCenter:Boolean = - (marginLeft == "auto" && marginRight == "auto") || - (margin is String && margin == "auto") || - (margin is Array && - ((margin.length < 4 && margin[1] == "auto") || - (margin.length == 4 && margin[1] == "auto" && margin[3] == "auto"))); - if (!hostWidthSizedToContent) - { - if (!horizontalCenter) - { - mr = CSSUtils.getRightValue(marginRight, margin, ww); - ml = CSSUtils.getLeftValue(marginLeft, margin, ww); - if (ilc) - ilc.setX(ml); - else - child.x = ml; - if (ilc && isNaN(ilc.percentWidth) && isNaN(ilc.explicitWidth)) - child.width = ww - child.x - mr; - } - else - { - if (ilc) - ilc.setX((ww - child.width) / 2); - else - child.x = (ww - child.width) / 2; - } - } - else - { - if (!horizontalCenter) - { - mr = CSSUtils.getRightValue(marginRight, margin, ww); - ml = CSSUtils.getLeftValue(marginLeft, margin, ww); - if (ilc) - ilc.setX(ml); - else - child.x = ml; - if (ilc && isNaN(ilc.percentWidth) && isNaN(ilc.explicitWidth)) - childData[i] = { ww: ww, left: ml, right: mr, ilc: ilc, child: child }; - } - else - { - childData[i] = { ww: ww, center: true, ilc: ilc, child: child }; - } - } - - } - if (isNaN(top) && isNaN(bottom)) - { - if (!gotMargin) - margin = ValuesManager.valuesImpl.getValue(child, "margin"); - marginTop = ValuesManager.valuesImpl.getValue(child, "margin-top"); - marginBottom = ValuesManager.valuesImpl.getValue(child, "margin-bottom"); - mt = CSSUtils.getTopValue(marginTop, margin, hh); - mb = CSSUtils.getBottomValue(marginBottom, margin, hh); - if (ilc) - ilc.setY(mt); - else - child.y = mt; - /* browsers don't use margin-bottom to stretch things vertically - if (!hostHeightSizedToContent) - { - if (ilc && isNaN(ilc.percentHeight) && isNaN(ilc.explicitHeight)) - child.height = hh - child.y - mb; - } - else - { - if (!childData[i]) - childData[i] = { hh: hh, bottom: mb, ilc: ilc, child: child }; - else - { - childData[i].hh = hh; - childData[i].bottom = mb; - } - } - */ - } - - if (ilc) - { - if (!hostHeightSizedToContent) - { - if (!isNaN(ilc.percentHeight)) - ilc.setHeight((hh - (isNaN(bottom) ? 0 : bottom)) * ilc.percentHeight / 100, true); - } - else - { - if (!childData[i]) - childData[i] = { hh: hh, bottom: bottom, ilc: ilc, child: child }; - else - { - childData[i].hh = hh; - childData[i].bottom = bottom; - } - } - } - if (!isNaN(bottom)) - { - if (!hostHeightSizedToContent) - { - if (!isNaN(top)) - { - if (ilc) - ilc.setHeight(hh - bottom, true); - else - child.height = hh - bottom; - } - else - { - if (ilc) - ilc.setY(h - bottom - child.height); - else - child.y = h - bottom - child.height; - } - } - else - { - if (!childData[i]) - childData[i] = { top: top, bottom: bottom, hh:hh, ilc: ilc, child: child }; - else - { - childData[i].top = top; - childData[i].bottom = bottom; - childData[i].hh = hh; - } - } - } - if (!childData[i]) - child.dispatchEvent(new Event("sizeChanged")); - maxWidth = Math.max(maxWidth, child.x + child.width); - maxHeight = Math.max(maxHeight, child.y + child.height); - } - if (hostHeightSizedToContent || hostWidthSizedToContent) - { - for (i = 0; i < n; i++) - { - var data:Object = childData[i]; - if (data) - { - if (hostWidthSizedToContent) - { - if (data.ilc && !isNaN(data.ilc.percentWidth)) - data.ilc.setWidth((data.ww - (isNaN(data.right) ? 0 : data.right)) * data.ilc.percentWidth / 100, true); - if (data.center) - { - if (data.ilc) - data.ilc.setX((data.ww - data.child.width) / 2); - else - data.child.x = (data.ww - data.child.width) / 2; - } - else if (!isNaN(data.right)) - { - if (!isNaN(data.left)) - { - if (data.ilc) - data.ilc.setWidth(data.ww - data.right, true); - else - data.child.width = data.ww - data.right; - } - else - { - if (data.ilc) - data.ilc.setX(maxWidth - data.right - data.child.width); - else - data.child.x = maxWidth - data.right - data.child.width; - } - } - } - if (hostHeightSizedToContent) - { - if (data.ilc && !isNaN(data.ilc.percentHeight)) - data.ilc.setHeight((data.hh - (isNaN(data.bottom) ? 0 : data.bottom)) * data.ilc.percentHeight / 100, true); - if (!isNaN(data.bottom)) - { - if (!isNaN(data.top)) - { - if (data.ilc) - data.ilc.setHeight(data.hh - data.bottom, true); - else - data.child.height = data.hh - data.bottom; - } - else - { - if (data.ilc) - data.ilc.setY(maxHeight - data.bottom - data.child.height); - else - data.child.y = maxHeight - data.bottom - data.child.height; - } - } - } - child.dispatchEvent(new Event("sizeChanged")); - } - } - } - - host.dispatchEvent( new Event("layoutComplete") ); - - return true; - - } - COMPILE::JS - { - var i:int - var n:int; - var h:Number; - var w:Number; - - var viewBead:ILayoutHost = host.getBeadByType(ILayoutHost) as ILayoutHost; - var contentView:IParentIUIBase = viewBead.contentView; - w = contentView.width; - var hasWidth:Boolean = !host.isWidthSizedToContent(); - h = contentView.height; - var hasHeight:Boolean = !host.isHeightSizedToContent(); - var maxHeight:Number = 0; - var maxWidth:Number = 0; - n = contentView.numElements; - for (i = 0; i < n; i++) { - var child:UIBase = contentView.getElementAt(i) as UIBase; - child.setDisplayStyleForLayout('block'); - var left:Number = org.apache.flex.core.ValuesManager.valuesImpl.getValue(child, 'left'); - var right:Number = org.apache.flex.core.ValuesManager.valuesImpl.getValue(child, 'right'); - var top:Number = org.apache.flex.core.ValuesManager.valuesImpl.getValue(child, 'top'); - var bottom:Number = org.apache.flex.core.ValuesManager.valuesImpl.getValue(child, 'bottom'); - var margin:String = org.apache.flex.core.ValuesManager.valuesImpl.getValue(child, 'margin'); - var marginLeft:String = org.apache.flex.core.ValuesManager.valuesImpl.getValue(child, 'margin-left'); - var marginRight:String = org.apache.flex.core.ValuesManager.valuesImpl.getValue(child, 'margin-right'); - var horizontalCenter:Boolean = - (marginLeft == 'auto' && marginRight == 'auto') || - (typeof(margin) === 'string' && margin == 'auto') || - (margin && margin.hasOwnProperty('length') && - ((margin.length < 4 && margin[1] == 'auto') || - (margin.length == 4 && margin[1] == 'auto' && margin[3] == 'auto'))); - - if (!isNaN(left)) { - child.positioner.style.position = 'absolute'; - child.positioner.style.left = left.toString() + 'px'; - } - if (!isNaN(top)) { - child.positioner.style.position = 'absolute'; - child.positioner.style.top = top.toString() + 'px'; - } - if (!isNaN(right)) { - child.positioner.style.position = 'absolute'; - child.positioner.style.right = right.toString() + 'px'; - } - if (!isNaN(bottom)) { - child.positioner.style.position = 'absolute'; - child.positioner.style.bottom = bottom.toString() + 'px'; - } - if (horizontalCenter) - { - child.positioner.style.position = 'absolute'; - child.positioner.style.left = ((w - child.width) / 2).toString() + 'px'; - } - child.dispatchEvent('sizeChanged'); - maxWidth = Math.max(maxWidth, child.positioner.offsetLeft + child.positioner.offsetWidth); - maxHeight = Math.max(maxHeight, child.positioner.offsetTop + child.positioner.offsetHeight); - } - // if there are children and maxHeight is ok, use it. - // maxHeight can be NaN if the child hasn't been rendered yet. - if (!hasWidth && n > 0 && !isNaN(maxWidth)) { - contentView.width = maxWidth; - } - if (!hasHeight && n > 0 && !isNaN(maxHeight)) { - contentView.height = maxHeight; - } - return true; - } - } - } -} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/ButtonBarLayout.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/ButtonBarLayout.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/ButtonBarLayout.as deleted file mode 100644 index 5bd1159..0000000 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/ButtonBarLayout.as +++ /dev/null @@ -1,143 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Licensed to the Apache Software Foundation (ASF) under one or more -// contributor license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright ownership. -// The ASF licenses this file to You under the Apache License, Version 2.0 -// (the "License"); you may not use this file except in compliance with -// the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////////// -package org.apache.flex.html.beads.layouts -{ - import org.apache.flex.core.IBeadLayout; - import org.apache.flex.core.IItemRendererClassFactory; - import org.apache.flex.core.IItemRendererParent; - import org.apache.flex.core.ILayoutHost; - import org.apache.flex.core.IParentIUIBase; - import org.apache.flex.core.ISelectableItemRenderer; - import org.apache.flex.core.ISelectionModel; - import org.apache.flex.core.IStrand; - import org.apache.flex.core.IUIBase; - import org.apache.flex.core.IViewportModel; - import org.apache.flex.core.UIBase; - import org.apache.flex.core.ValuesManager; - import org.apache.flex.events.Event; - import org.apache.flex.events.IEventDispatcher; - import org.apache.flex.html.List; - import org.apache.flex.html.beads.ButtonBarView; - - /** - * The ButtonBarLayout class bead sizes and positions the org.apache.flex.html.Button - * elements that make up a org.apache.flex.html.ButtonBar. This bead arranges the Buttons - * horizontally and makes them all the same width unless the buttonWidths property has been set in which case - * the values stored in that array are used. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public class ButtonBarLayout implements IBeadLayout - { - /** - * constructor. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function ButtonBarLayout() - { - } - - private var _strand:IStrand; - - /** - * @copy org.apache.flex.core.IBead#strand - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function set strand(value:IStrand):void - { - _strand = value; - } - - private var _buttonWidths:Array = null; - - /** - * An array of widths (Number), one per button. These values supersede the - * default of equally-sized buttons. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function get buttonWidths():Array - { - return _buttonWidths; - } - public function set buttonWidths(value:Array):void - { - _buttonWidths = value; - } - - /** - * @copy org.apache.flex.core.IBeadLayout#layout - */ - public function layout():Boolean - { - var layoutParent:ILayoutHost = _strand.getBeadByType(ILayoutHost) as ILayoutHost; - var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase; - var itemRendererParent:IItemRendererParent = contentView as IItemRendererParent; - var viewportModel:IViewportModel = (layoutParent as ButtonBarView).viewportModel; - - var n:int = contentView.numElements; - var realN:int = n; - - for (var j:int=0; j < n; j++) - { - var child:IUIBase = itemRendererParent.getElementAt(j) as IUIBase; - if (child == null || !child.visible) realN--; - } - - var xpos:Number = 0; - var useWidth:Number = contentView.width / realN; - var useHeight:Number = contentView.height; - - for (var i:int=0; i < n; i++) - { - var ir:ISelectableItemRenderer = itemRendererParent.getElementAt(i) as ISelectableItemRenderer; - if (ir == null || !UIBase(ir).visible) continue; - UIBase(ir).y = 0; - UIBase(ir).x = xpos; - if (!isNaN(useHeight) && useHeight > 0) { - UIBase(ir).height = useHeight; - } - - if (buttonWidths) UIBase(ir).width = Number(buttonWidths[i]); - else if (!isNaN(useWidth) && useWidth > 0) { - UIBase(ir).width = useWidth; - } - xpos += UIBase(ir).width; - } - - IEventDispatcher(_strand).dispatchEvent( new Event("layoutComplete") ); - - return true; - } - } -} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/DataGridLayout.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/DataGridLayout.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/DataGridLayout.as deleted file mode 100644 index 33399c3..0000000 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/DataGridLayout.as +++ /dev/null @@ -1,156 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Licensed to the Apache Software Foundation (ASF) under one or more -// contributor license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright ownership. -// The ASF licenses this file to You under the Apache License, Version 2.0 -// (the "License"); you may not use this file except in compliance with -// the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////////// -package org.apache.flex.html.beads.layouts -{ - import org.apache.flex.core.IBeadLayout; - import org.apache.flex.core.IDataGridModel; - import org.apache.flex.core.IStrand; - import org.apache.flex.core.IUIBase; - import org.apache.flex.core.UIBase; - import org.apache.flex.events.Event; - import org.apache.flex.events.IEventDispatcher; - import org.apache.flex.html.ButtonBar; - import org.apache.flex.html.supportClasses.DataGridColumn; - - /** - * DataGridLayout is a class that handles the size and positioning of the - * elements of a DataGrid. This includes the ButtonBar used for the column - * headers and the Lists that are the columns. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public class DataGridLayout implements IBeadLayout - { - /** - * constructor - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function DataGridLayout() - { - } - - private var _strand:IStrand; - - /** - * @copy org.apache.flex.core.IBead#strand - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function set strand(value:IStrand):void - { - _strand = value; - } - - private var _header:UIBase; - - /** - * The element that is the header for the DataGrid - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function get header():IUIBase - { - return _header; - } - public function set header(value:IUIBase):void - { - _header = UIBase(value); - } - - private var _columns:Array; - - /** - * The array of column elements. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function get columns():Array - { - return _columns; - } - public function set columns(value:Array):void - { - _columns = value; - } - - /** - * @copy org.apache.flex.core.IBeadLayout#layout - */ - public function layout():Boolean - { - var sw:Number = UIBase(_strand).width; - var sh:Number = UIBase(_strand).height; - - var columnHeight:Number = Math.floor(sh - header.height); - var columnWidth:Number = Math.floor(sw / columns.length); - - var xpos:Number = 0; - var ypos:Number = Math.floor(header.height); - - // TODO: change the layout so that the model's DataGridColumn.columnWidth - // isn't used blindly, but is considered in the overall width. In other words, - // right now the width could exceed the strand's width. - var model:IDataGridModel = _strand.getBeadByType(IDataGridModel) as IDataGridModel; - - var buttonWidths:Array = new Array(); - - for(var i:int=0; i < columns.length; i++) { - var column:UIBase = columns[i] as UIBase; - column.x = xpos; - column.y = ypos; - column.height = columnHeight; - - var dgc:DataGridColumn = model.columns[i]; - if (!isNaN(dgc.columnWidth)) column.width = dgc.columnWidth; - else column.width = columnWidth; - - xpos += column.width; - - buttonWidths.push(column.width); - } - - var bar:ButtonBar = header as ButtonBar; - var barLayout:ButtonBarLayout = bar.getBeadByType(ButtonBarLayout) as ButtonBarLayout; - barLayout.buttonWidths = buttonWidths; - - header.x = 0; - header.y = 0; - header.width = sw; - header.dispatchEvent(new Event("layoutNeeded")); - - return true; - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/FlexibleFirstChildHorizontalLayout.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/FlexibleFirstChildHorizontalLayout.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/FlexibleFirstChildHorizontalLayout.as deleted file mode 100644 index 4198fea..0000000 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/FlexibleFirstChildHorizontalLayout.as +++ /dev/null @@ -1,244 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Licensed to the Apache Software Foundation (ASF) under one or more -// contributor license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright ownership. -// The ASF licenses this file to You under the Apache License, Version 2.0 -// (the "License"); you may not use this file except in compliance with -// the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////////// -package org.apache.flex.html.beads.layouts -{ - import org.apache.flex.core.IBeadLayout; - import org.apache.flex.core.ILayoutChild; - import org.apache.flex.core.ILayoutHost; - import org.apache.flex.core.IParentIUIBase; - import org.apache.flex.core.IStrand; - import org.apache.flex.core.IUIBase; - import org.apache.flex.core.IViewport; - import org.apache.flex.core.IViewportModel; - import org.apache.flex.core.UIBase; - import org.apache.flex.core.ValuesManager; - import org.apache.flex.events.Event; - import org.apache.flex.events.IEventDispatcher; - import org.apache.flex.geom.Rectangle; - import org.apache.flex.html.supportClasses.Viewport; - import org.apache.flex.utils.CSSContainerUtils; - - /** - * The FlexibleFirstChildHorizontalLayout class is a simple layout - * bead. It takes the set of children and lays them out - * horizontally in one row, separating them according to - * CSS layout rules for margin and padding styles. But it - * will size the first child to take up as much or little - * room as possible. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public class FlexibleFirstChildHorizontalLayout implements IBeadLayout - { - /** - * Constructor. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function FlexibleFirstChildHorizontalLayout() - { - } - - // the strand/host container is also an ILayoutChild because - // can have its size dictated by the host's parent which is - // important to know for layout optimization - private var host:ILayoutChild; - - /** - * @copy org.apache.flex.core.IBead#strand - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function set strand(value:IStrand):void - { - host = value as ILayoutChild; - } - - private var _maxWidth:Number; - - /** - * @copy org.apache.flex.core.IBead#maxWidth - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function get maxWidth():Number - { - return _maxWidth; - } - - /** - * @private - */ - public function set maxWidth(value:Number):void - { - _maxWidth = value; - } - - private var _maxHeight:Number; - - /** - * @copy org.apache.flex.core.IBead#maxHeight - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function get maxHeight():Number - { - return _maxHeight; - } - - /** - * @private - */ - public function set maxHeight(value:Number):void - { - _maxHeight = value; - } - - /** - * @copy org.apache.flex.core.IBeadLayout#layout - */ - public function layout():Boolean - { - var layoutParent:ILayoutHost = host.getBeadByType(ILayoutHost) as ILayoutHost; - var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase; - var padding:Rectangle = CSSContainerUtils.getPaddingMetrics(host); - var hostSizedToContent:Boolean = host.isHeightSizedToContent(); - - var n:int = contentView.numElements; - var marginLeft:Object; - var marginRight:Object; - var marginTop:Object; - var marginBottom:Object; - var margin:Object; - maxHeight = 0; - var verticalMargins:Array = []; - - var xx:Number = contentView.width; - if (isNaN(xx) || xx <= 0) - return true; - xx -= padding.right + 1; // some browsers won't layout to the edge - - for (var i:int = n - 1; i >= 0; i--) - { - var child:IUIBase = contentView.getElementAt(i) as IUIBase; - margin = ValuesManager.valuesImpl.getValue(child, "margin"); - if (margin is Array) - { - if (margin.length == 1) - marginLeft = marginTop = marginRight = marginBottom = margin[0]; - else if (margin.length <= 3) - { - marginLeft = marginRight = margin[1]; - marginTop = marginBottom = margin[0]; - } - else if (margin.length == 4) - { - marginLeft = margin[3]; - marginBottom = margin[2]; - marginRight = margin[1]; - marginTop = margin[0]; - } - } - else if (margin == null) - { - marginLeft = ValuesManager.valuesImpl.getValue(child, "margin-left"); - marginTop = ValuesManager.valuesImpl.getValue(child, "margin-top"); - marginRight = ValuesManager.valuesImpl.getValue(child, "margin-right"); - marginBottom = ValuesManager.valuesImpl.getValue(child, "margin-bottom"); - } - else - { - marginLeft = marginTop = marginBottom = marginRight = margin; - } - var ml:Number; - var mr:Number; - var mt:Number; - var mb:Number; - var lastmr:Number; - mt = Number(marginTop); - if (isNaN(mt)) - mt = 0; - mb = Number(marginBottom); - if (isNaN(mb)) - mb = 0; - if (marginLeft == "auto") - ml = 0; - else - { - ml = Number(marginLeft); - if (isNaN(ml)) - ml = 0; - } - if (marginRight == "auto") - mr = 0; - else - { - mr = Number(marginRight); - if (isNaN(mr)) - mr = 0; - } - child.y = mt + padding.top; - if (i == 0) - { - child.x = ml + padding.left; - child.width = xx - mr - child.x; - } - else - child.x = xx - child.width - mr; - maxHeight = Math.max(maxHeight, mt + child.height + mb); - xx -= child.width + mr + ml; - lastmr = mr; - var valign:Object = ValuesManager.valuesImpl.getValue(child, "vertical-align"); - verticalMargins.push({ marginTop: mt, marginBottom: mb, valign: valign }); - } - for (i = 0; i < n; i++) - { - var obj:Object = verticalMargins[0] - child = contentView.getElementAt(i) as IUIBase; - if (obj.valign == "middle") - child.y = (maxHeight - child.height) / 2; - else if (valign == "bottom") - child.y = maxHeight - child.height - obj.marginBottom; - else - child.y = obj.marginTop; - } - if (hostSizedToContent) - ILayoutChild(contentView).setHeight(maxHeight + padding.top + padding.bottom, true); - - return true; - } - - } - -} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/HScrollBarLayout.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/HScrollBarLayout.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/HScrollBarLayout.as deleted file mode 100644 index 38b97ec..0000000 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/HScrollBarLayout.as +++ /dev/null @@ -1,121 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Licensed to the Apache Software Foundation (ASF) under one or more -// contributor license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright ownership. -// The ASF licenses this file to You under the Apache License, Version 2.0 -// (the "License"); you may not use this file except in compliance with -// the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////////// -package org.apache.flex.html.beads.layouts -{ - import flash.display.DisplayObject; - - import org.apache.flex.core.IBeadLayout; - import org.apache.flex.core.IScrollBarModel; - import org.apache.flex.core.IStrand; - import org.apache.flex.events.Event; - import org.apache.flex.events.IEventDispatcher; - import org.apache.flex.geom.Rectangle; - import org.apache.flex.html.beads.IScrollBarView; - import org.apache.flex.utils.CSSContainerUtils; - - /** - * The HScrollBarLayout class is a layout - * bead that displays lays out the pieces of a - * horizontal ScrollBar like the thumb, track - * and arrow buttons. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public class HScrollBarLayout implements IBeadLayout - { - /** - * Constructor. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function HScrollBarLayout() - { - } - - private var sbModel:IScrollBarModel; - private var sbView:IScrollBarView; - - private var _strand:IStrand; - - /** - * @copy org.apache.flex.core.IBead#strand - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function set strand(value:IStrand):void - { - _strand = value; - sbView = _strand.getBeadByType(IScrollBarView) as IScrollBarView; - } - - /** - * @copy org.apache.flex.core.IBeadLayout#layout - */ - public function layout():Boolean - { - if (!sbModel) - sbModel = _strand.getBeadByType(IScrollBarModel) as IScrollBarModel - - var metrics:Rectangle = CSSContainerUtils.getBorderAndPaddingMetrics(_strand); - - var w:Number = DisplayObject(_strand).width + metrics.left + metrics.right; - var increment:DisplayObject = sbView.increment; - var decrement:DisplayObject = sbView.decrement; - var track:DisplayObject = sbView.track; - var thumb:DisplayObject = sbView.thumb; - - decrement.x = 0; - decrement.y = 0; - decrement.height = DisplayObject(_strand).height; - decrement.width = DisplayObject(_strand).height; - - increment.height = DisplayObject(_strand).height; - increment.width = DisplayObject(_strand).height; - increment.x = w - increment.width - 1; - increment.y = 0; - - track.x = decrement.width; - track.y = 0; - track.height = DisplayObject(_strand).height; - track.width = increment.x - decrement.width; - thumb.width = sbModel.pageSize / (sbModel.maximum - sbModel.minimum) * track.width; - if (track.width > thumb.width) - { - thumb.visible = true; - thumb.x = (sbModel.value / (sbModel.maximum - sbModel.minimum - sbModel.pageSize) * (track.width - thumb.width)) + track.x; - } - else - { - thumb.visible = false; - } - - return true; - } - - } -} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/HorizontalLayout.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/HorizontalLayout.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/HorizontalLayout.as deleted file mode 100644 index 13c8c8b..0000000 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/HorizontalLayout.as +++ /dev/null @@ -1,325 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Licensed to the Apache Software Foundation (ASF) under one or more -// contributor license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright ownership. -// The ASF licenses this file to You under the Apache License, Version 2.0 -// (the "License"); you may not use this file except in compliance with -// the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////////// -package org.apache.flex.html.beads.layouts -{ - import org.apache.flex.core.IBeadLayout; - import org.apache.flex.core.IBeadModel; - import org.apache.flex.core.ILayoutChild; - import org.apache.flex.core.ILayoutHost; - import org.apache.flex.core.IParentIUIBase; - import org.apache.flex.core.IStrand; - import org.apache.flex.core.IUIBase; - import org.apache.flex.core.ValuesManager; - import org.apache.flex.events.Event; - import org.apache.flex.events.IEventDispatcher; - import org.apache.flex.geom.Rectangle; - import org.apache.flex.utils.CSSContainerUtils; - import org.apache.flex.utils.CSSUtils; - COMPILE::JS - { - import org.apache.flex.core.WrappedHTMLElement; - } - - /** - * The HorizontalLayout class is a simple layout - * bead. It takes the set of children and lays them out - * horizontally in one row, separating them according to - * CSS layout rules for margin and vertical-align styles. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public class HorizontalLayout implements IBeadLayout - { - /** - * Constructor. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function HorizontalLayout() - { - } - - // the strand/host container is also an ILayoutChild because - // can have its size dictated by the host's parent which is - // important to know for layout optimization - private var host:ILayoutChild; - - /** - * @copy org.apache.flex.core.IBead#strand - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function set strand(value:IStrand):void - { - host = value as ILayoutChild; - COMPILE::JS - { - (value as IUIBase).element.style.display = 'block'; - } - } - - /** - * @copy org.apache.flex.core.IBeadLayout#layout - * @flexjsignorecoercion org.apache.flex.core.ILayoutHost - * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement - */ - public function layout():Boolean - { - COMPILE::AS3 - { - //trace(DOMPathUtil.getPath(host), event ? event.type : "fixed size"); - var layoutParent:ILayoutHost = host.getBeadByType(ILayoutHost) as ILayoutHost; - var contentView:IParentIUIBase = layoutParent.contentView; - var padding:Rectangle = CSSContainerUtils.getPaddingMetrics(host); - - var n:int = contentView.numElements; - var hostSizedToContent:Boolean = host.isHeightSizedToContent(); - var ilc:ILayoutChild; - var marginLeft:Object; - var marginRight:Object; - var marginTop:Object; - var marginBottom:Object; - var margin:Object; - var maxHeight:Number = 0; - // asking for contentView.height can result in infinite loop if host isn't sized already - var h:Number = hostSizedToContent ? 0 : contentView.height; - var w:Number = contentView.width; - var verticalMargins:Array = []; - - for (var i:int = 0; i < n; i++) - { - var child:IUIBase = contentView.getElementAt(i) as IUIBase; - if (child == null || !child.visible) continue; - var top:Number = ValuesManager.valuesImpl.getValue(child, "top"); - var bottom:Number = ValuesManager.valuesImpl.getValue(child, "bottom"); - margin = ValuesManager.valuesImpl.getValue(child, "margin"); - marginLeft = ValuesManager.valuesImpl.getValue(child, "margin-left"); - marginTop = ValuesManager.valuesImpl.getValue(child, "margin-top"); - marginRight = ValuesManager.valuesImpl.getValue(child, "margin-right"); - marginBottom = ValuesManager.valuesImpl.getValue(child, "margin-bottom"); - var ml:Number = CSSUtils.getLeftValue(marginLeft, margin, w); - var mr:Number = CSSUtils.getRightValue(marginRight, margin, w); - var mt:Number = CSSUtils.getTopValue(marginTop, margin, h); - var mb:Number = CSSUtils.getBottomValue(marginBottom, margin, h); - - ilc = child as ILayoutChild; - var lastmr:Number; - if (marginLeft == "auto") - ml = 0; - if (marginRight == "auto") - mr = 0; - var xx:Number; - if (i == 0) - { - if (ilc) - ilc.setX(ml + padding.left); - else - child.x = ml + padding.left; - } - else - { - if (ilc) - ilc.setX(xx + ml + lastmr); - else - child.x = xx + ml + lastmr; - } - if (ilc) - { - if (!isNaN(ilc.percentWidth)) - ilc.setWidth(contentView.width * ilc.percentWidth / 100, !isNaN(ilc.percentHeight)); - } - lastmr = mr; - var marginObject:Object = {}; - verticalMargins[i] = marginObject; - var valign:* = ValuesManager.valuesImpl.getValue(child, "vertical-align"); - marginObject.valign = valign; - if (!hostSizedToContent) - { - // if host is sized by parent, - // we can position and size children horizontally now - setPositionAndHeight(child, top, mt, padding.top, bottom, mb, padding.bottom, h, valign); - maxHeight = Math.max(maxHeight, mt + child.height + mb); - } - else - { - if (!isNaN(top)) - { - mt = top; - marginObject.top = mt; - } - if (!isNaN(bottom)) - { - mb = bottom; - marginObject.bottom = mb; - } - maxHeight = Math.max(maxHeight, mt + child.height + mb); - } - xx = child.x + child.width; - } - if (hostSizedToContent) - { - ILayoutChild(contentView).setHeight(maxHeight, true); - if (host.isWidthSizedToContent()) - ILayoutChild(contentView).setWidth(xx, true); - for (i = 0; i < n; i++) - { - child = contentView.getElementAt(i) as IUIBase; - if (child == null || !child.visible) continue; - var obj:Object = verticalMargins[i]; - setPositionAndHeight(child, obj.top, obj.marginTop, padding.top, - obj.bottom, obj.marginBottom, padding.bottom, maxHeight, obj.valign); - } - } - - // Only return true if the contentView needs to be larger; that new - // size is stored in the model. - var sizeChanged:Boolean = true; - - host.dispatchEvent( new Event("layoutComplete") ); - - return sizeChanged; - - } - COMPILE::JS - { - var children:Array; - var i:int; - var n:int; - - var viewBead:ILayoutHost = host.getBeadByType(ILayoutHost) as ILayoutHost; - var contentView:IParentIUIBase = viewBead.contentView; - children = contentView.internalChildren(); - var hasHeight:Boolean = !host.isHeightSizedToContent(); - var hasWidth:Boolean = !host.isWidthSizedToContent(); - var maxHeight:Number = 0; - var computedWidth:Number = 0; - n = children.length; - for (i = 0; i < n; i++) - { - var child:WrappedHTMLElement = children[i] as WrappedHTMLElement; - child.flexjs_wrapper.internalDisplay = 'inline-block'; - if (child.style.display == 'none') - child.flexjs_wrapper.setDisplayStyleForLayout('inline-block'); - else - child.style.display = 'inline-block'; - maxHeight = Math.max(maxHeight, child.offsetHeight); - if (!hasWidth) { - var cv:Object = getComputedStyle(child); - var mls:String = cv['margin-left']; - var ml:Number = Number(mls.substring(0, mls.length - 2)); - var mrs:String = cv['margin-right']; - var mr:Number = Number(mrs.substring(0, mrs.length - 2)); - computedWidth += ml + child.offsetWidth + mr; - } - child.flexjs_wrapper.dispatchEvent('sizeChanged'); - } - // if there are children and maxHeight is ok, use it. - // maxHeight can be NaN if the child hasn't been rendered yet. - if (!hasHeight && n > 0 && !isNaN(maxHeight)) { - contentView.height = maxHeight; - } - if (!hasWidth && n > 0 && !isNaN(computedWidth)) { - contentView.width = computedWidth + 1; // some browser need one more pixel - } - return true; - } - } - - COMPILE::AS3 - private function setPositionAndHeight(child:IUIBase, top:Number, mt:Number, pt:Number, - bottom:Number, mb:Number, pb:Number, h:Number, - valign:*):void - { - var heightSet:Boolean = false; - - var hh:Number = h; - var ilc:ILayoutChild = child as ILayoutChild; - if (ilc) - { - if (!isNaN(ilc.percentHeight)) - ilc.setHeight(h * ilc.percentHeight / 100, true); - } - if (valign == "top") - { - if (!isNaN(top)) - { - if (ilc) - ilc.setY(top + mt); - else - child.y = top + mt; - hh -= top + mt; - } - else - { - if (ilc) - ilc.setY(mt + pt); - else - child.y = mt + pt; - hh -= mt + pt; - } - if (ilc.isHeightSizedToContent()) - { - if (!isNaN(bottom)) - { - if (!isNaN(top)) - { - if (ilc) - ilc.setHeight(hh - bottom - mb, true); - else - { - child.height = hh - bottom - mb; - heightSet = true; - } - } - } - } - } - else if (valign == "bottom") - { - if (!isNaN(bottom)) - { - if (ilc) - ilc.setY(h - bottom - mb - child.height); - else - child.y = h - bottom - mb - child.height; - } - else - { - if (ilc) - ilc.setY(h - mb - child.height); - else - child.y = h - mb - child.height; - } - } - else - child.y = (h - child.height) / 2; - if (!heightSet) - child.dispatchEvent(new Event("sizeChanged")); - } - } -} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/LayoutChangeNotifier.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/LayoutChangeNotifier.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/LayoutChangeNotifier.as deleted file mode 100644 index 00d328b..0000000 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/LayoutChangeNotifier.as +++ /dev/null @@ -1,103 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Licensed to the Apache Software Foundation (ASF) under one or more -// contributor license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright ownership. -// The ASF licenses this file to You under the Apache License, Version 2.0 -// (the "License"); you may not use this file except in compliance with -// the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////////// -package org.apache.flex.html.beads.layouts -{ - import org.apache.flex.core.IBead; - import org.apache.flex.core.IBeadView; - import org.apache.flex.core.IStrand; - import org.apache.flex.events.Event; - import org.apache.flex.events.IEventDispatcher; - - /** - * The LayoutChangeNotifier notifies layouts when a property - * it is watching changes. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public class LayoutChangeNotifier implements IBead - { - /** - * constructor. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function LayoutChangeNotifier() - { - } - - private var _strand:IStrand; - - /** - * @copy org.apache.flex.core.IBead#strand - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function set strand(value:IStrand):void - { - _strand = value; - } - - private var _value:* = undefined; - - /** - * The value of the property being watched. This is usually - * a data binding expression. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function set initialValue(value:Object):void - { - _value = value; - } - - /** - * The value of the property being watched. This is usually - * a data binding expression. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function set watchedProperty(value:Object):void - { - if (_value !== value) - { - _value = value; - if (_strand is IBeadView) - IBeadView(_strand).host.dispatchEvent(new Event("layoutNeeded")); - else - IEventDispatcher(_strand).dispatchEvent(new Event("layoutNeeded")); - } - } - - } -} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayout.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayout.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayout.as deleted file mode 100644 index 309ef3b..0000000 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayout.as +++ /dev/null @@ -1,332 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// Licensed to the Apache Software Foundation (ASF) under one or more -// contributor license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright ownership. -// The ASF licenses this file to You under the Apache License, Version 2.0 -// (the "License"); you may not use this file except in compliance with -// the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -//////////////////////////////////////////////////////////////////////////////// -package org.apache.flex.html.beads.layouts -{ - import org.apache.flex.core.IBeadLayout; - import org.apache.flex.core.IDocument; - import org.apache.flex.core.ILayoutChild; - import org.apache.flex.core.ILayoutHost; - import org.apache.flex.core.IParentIUIBase; - import org.apache.flex.core.IStrand; - import org.apache.flex.core.IUIBase; - import org.apache.flex.core.UIBase; - import org.apache.flex.core.ValuesManager; - import org.apache.flex.events.Event; - import org.apache.flex.events.IEventDispatcher; - import org.apache.flex.geom.Rectangle; - import org.apache.flex.utils.CSSUtils; - import org.apache.flex.utils.CSSContainerUtils; - - /** - * The OneFlexibleChildHorizontalLayout class is a simple layout - * bead. It takes the set of children and lays them out - * horizontally in one row, separating them according to - * CSS layout rules for margin and padding styles. But it - * will size the one child to take up as much or little - * room as possible. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public class OneFlexibleChildHorizontalLayout implements IBeadLayout, IDocument - { - /** - * Constructor. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function OneFlexibleChildHorizontalLayout() - { - } - - - /** - * The id of the flexible child - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public var flexibleChild:String; - - private var actualChild:ILayoutChild; - - // the strand/host container is also an ILayoutChild because - // can have its size dictated by the host's parent which is - // important to know for layout optimization - private var host:ILayoutChild; - - /** - * @private - * The document. - */ - private var document:Object; - - /** - * @copy org.apache.flex.core.IBead#strand - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function set strand(value:IStrand):void - { - host = value as ILayoutChild; - } - - private var _maxWidth:Number; - - /** - * @copy org.apache.flex.core.IBead#maxWidth - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function get maxWidth():Number - { - return _maxWidth; - } - - /** - * @private - */ - public function set maxWidth(value:Number):void - { - _maxWidth = value; - } - - private var _maxHeight:Number; - - /** - * @copy org.apache.flex.core.IBead#maxHeight - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function get maxHeight():Number - { - return _maxHeight; - } - - /** - * @private - */ - public function set maxHeight(value:Number):void - { - _maxHeight = value; - } - - /** - * @copy org.apache.flex.core.IBeadLayout#layout - */ - public function layout():Boolean - { - var layoutParent:ILayoutHost = host.getBeadByType(ILayoutHost) as ILayoutHost; - var contentView:IParentIUIBase = layoutParent ? layoutParent.contentView : IParentIUIBase(host); - var padding:Rectangle = CSSContainerUtils.getPaddingMetrics(host); - actualChild = document[flexibleChild]; - - var ilc:ILayoutChild; - var n:int = contentView.numElements; - var marginLeft:Object; - var marginRight:Object; - var marginTop:Object; - var marginBottom:Object; - var margin:Object; - maxHeight = 0; - var verticalMargins:Array = new Array(n); - - var ww:Number = contentView.width - padding.right; - var hh:Number = contentView.height; - var xx:int = padding.left; - var flexChildIndex:int; - var ml:Number; - var mr:Number; - var mt:Number; - var mb:Number; - var lastmr:Number; - var lastml:Number; - var valign:Object; - var hostSizedToContent:Boolean = host.isHeightSizedToContent(); - - for (var i:int = 0; i < n; i++) - { - var child:IUIBase = contentView.getElementAt(i) as IUIBase; - if (child == actualChild) - { - flexChildIndex = i; - break; - } - margin = ValuesManager.valuesImpl.getValue(child, "margin"); - marginLeft = ValuesManager.valuesImpl.getValue(child, "margin-left"); - marginTop = ValuesManager.valuesImpl.getValue(child, "margin-top"); - marginRight = ValuesManager.valuesImpl.getValue(child, "margin-right"); - marginBottom = ValuesManager.valuesImpl.getValue(child, "margin-bottom"); - mt = CSSUtils.getTopValue(marginTop, margin, hh); - mb = CSSUtils.getBottomValue(marginBottom, margin, hh); - mr = CSSUtils.getRightValue(marginRight, margin, ww); - ml = CSSUtils.getLeftValue(marginLeft, margin, ww); - child.y = mt + padding.top; - if (child is ILayoutChild) - { - ilc = child as ILayoutChild; - if (!isNaN(ilc.percentHeight)) - ilc.setHeight(contentView.height * ilc.percentHeight / 100, true); - } - maxHeight = Math.max(maxHeight, mt + child.height + mb); - child.x = xx + ml; - xx += child.width + ml + mr; - lastmr = mr; - valign = ValuesManager.valuesImpl.getValue(child, "vertical-align"); - verticalMargins[i] = { marginTop: mt, marginBottom: mb, valign: valign }; - } - - if (n > 0 && n > flexChildIndex) - { - for (i = n - 1; i > flexChildIndex; i--) - { - child = contentView.getElementAt(i) as IUIBase; - margin = ValuesManager.valuesImpl.getValue(child, "margin"); - marginLeft = ValuesManager.valuesImpl.getValue(child, "margin-left"); - marginTop = ValuesManager.valuesImpl.getValue(child, "margin-top"); - marginRight = ValuesManager.valuesImpl.getValue(child, "margin-right"); - marginBottom = ValuesManager.valuesImpl.getValue(child, "margin-bottom"); - mt = CSSUtils.getTopValue(marginTop, margin, hh); - mb = CSSUtils.getTopValue(marginBottom, margin, hh); - mr = CSSUtils.getRightValue(marginRight, margin, ww); - ml = CSSUtils.getLeftValue(marginLeft, margin, ww); - child.y = mt + padding.top; - if (child is ILayoutChild) - { - ilc = child as ILayoutChild; - if (!isNaN(ilc.percentHeight)) - ilc.setHeight(contentView.height * ilc.percentHeight / 100, true); - } - maxHeight = Math.max(maxHeight, mt + child.height + mb); - child.x = ww - child.width - mr; - ww -= child.width + ml + mr; - lastml = ml; - valign = ValuesManager.valuesImpl.getValue(child, "vertical-align"); - verticalMargins[i] = { marginTop: mt, marginBottom: mb, valign: valign }; - } - - child = contentView.getElementAt(flexChildIndex) as IUIBase; - margin = ValuesManager.valuesImpl.getValue(child, "margin"); - marginLeft = ValuesManager.valuesImpl.getValue(child, "margin-left"); - marginTop = ValuesManager.valuesImpl.getValue(child, "margin-top"); - marginRight = ValuesManager.valuesImpl.getValue(child, "margin-right"); - marginBottom = ValuesManager.valuesImpl.getValue(child, "margin-bottom"); - mt = CSSUtils.getTopValue(marginTop, margin, hh); - mb = CSSUtils.getTopValue(marginBottom, margin, hh); - mr = CSSUtils.getRightValue(marginRight, margin, ww); - ml = CSSUtils.getLeftValue(marginLeft, margin, ww); - if (child is ILayoutChild) - { - ilc = child as ILayoutChild; - if (!isNaN(ilc.percentHeight)) - ilc.setHeight(contentView.height * ilc.percentHeight / 100, true); - } - child.x = xx + ml; - child.width = ww - child.x; - maxHeight = Math.max(maxHeight, mt + child.height + mb); - valign = ValuesManager.valuesImpl.getValue(child, "vertical-align"); - verticalMargins[flexChildIndex] = { marginTop: mt, marginBottom: mb, valign: valign }; - } - if (hostSizedToContent) - ILayoutChild(contentView).setHeight(maxHeight + padding.top + padding.bottom, true); - - for (i = 0; i < n; i++) - { - var obj:Object = verticalMargins[i] - child = contentView.getElementAt(i) as IUIBase; - setPositionAndHeight(child, obj.top, obj.marginTop, padding.top, - obj.bottom, obj.marginBottom, padding.bottom, maxHeight, obj.valign); - } - return true; - } - - private function setPositionAndHeight(child:IUIBase, top:Number, mt:Number, pt:Number, - bottom:Number, mb:Number, pb:Number, h:Number, valign:String):void - { - var heightSet:Boolean = false; // if we've set the height in a way that gens a change event - var ySet:Boolean = false; // if we've set the y yet. - - var hh:Number = h; - var ilc:ILayoutChild = child as ILayoutChild; - if (!isNaN(top)) - { - child.y = top + mt; - ySet = true; - hh -= top + mt; - } - else - { - hh -= mt; - } - if (!isNaN(bottom)) - { - if (!isNaN(top)) - { - if (ilc) - ilc.setHeight(hh - bottom - mb, true); - else - { - child.height = hh - bottom - mb; - heightSet = true; - } - } - else - { - child.y = h - bottom - mb - child.height - 1; // some browsers don't like going to the edge - ySet = true; - } - } - if (ilc) - { - if (!isNaN(ilc.percentHeight)) - ilc.setHeight(h * ilc.percentHeight / 100, true); - } - if (valign == "center") - child.y = (h - child.height) / 2; - else if (valign == "bottom") - child.y = h - child.height - mb; - else - child.y = mt + pt; - if (!heightSet) - child.dispatchEvent(new Event("sizeChanged")); - } - - public function setDocument(document:Object, id:String = null):void - { - this.document = document; - } - } - -}
