Major overhaul of containers and layouts.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/679eccb5 Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/679eccb5 Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/679eccb5 Branch: refs/heads/tlf Commit: 679eccb563df6903a88dab0207dc0f7e051f208f Parents: 5bc85ae Author: Peter Ent <[email protected]> Authored: Tue Mar 21 11:25:01 2017 -0400 Committer: Peter Ent <[email protected]> Committed: Tue Mar 21 11:25:01 2017 -0400 ---------------------------------------------------------------------- .../src/main/flex/org/apache/flex/html/VRule.as | 14 +- .../projects/Core/src/main/flex/CoreClasses.as | 1 + .../flex/org/apache/flex/core/IContainer.as | 6 + .../org/apache/flex/core/IItemRendererParent.as | 4 +- .../flex/org/apache/flex/core/ILayoutHost.as | 6 +- .../flex/org/apache/flex/core/ILayoutObject.as | 86 ++++ .../main/flex/org/apache/flex/core/IViewport.as | 2 +- .../org/apache/flex/core/SimpleCSSStyles.as | 8 +- .../projects/HTML/src/main/flex/HTMLClasses.as | 5 +- .../flex/org/apache/flex/core/ContainerBase.as | 21 +- .../main/flex/org/apache/flex/core/GroupBase.as | 28 +- .../src/main/flex/org/apache/flex/core/IList.as | 48 ++ .../main/flex/org/apache/flex/core/ListBase.as | 100 ++-- .../main/flex/org/apache/flex/core/UIBase.as | 10 +- .../src/main/flex/org/apache/flex/core/View.as | 5 +- .../main/flex/org/apache/flex/core/ViewBase.as | 2 +- .../main/flex/org/apache/flex/html/ButtonBar.as | 38 +- .../flex/org/apache/flex/html/ButtonBase.as | 1 - .../main/flex/org/apache/flex/html/CheckBox.as | 2 +- .../main/flex/org/apache/flex/html/Container.as | 121 +++-- .../flex/org/apache/flex/html/ControlBar.as | 39 +- .../flex/org/apache/flex/html/DropDownList.as | 54 +- .../src/main/flex/org/apache/flex/html/Form.as | 22 +- .../src/main/flex/org/apache/flex/html/Group.as | 12 +- .../flex/org/apache/flex/html/HContainer.as | 2 +- .../src/main/flex/org/apache/flex/html/HRule.as | 16 +- .../src/main/flex/org/apache/flex/html/Image.as | 14 +- .../org/apache/flex/html/ImageAndTextButton.as | 34 +- .../flex/org/apache/flex/html/ImageButton.as | 12 +- .../src/main/flex/org/apache/flex/html/List.as | 130 ++++- .../flex/org/apache/flex/html/MXMLBeadView.as | 4 +- .../flex/org/apache/flex/html/NumericStepper.as | 2 +- .../src/main/flex/org/apache/flex/html/Panel.as | 86 +++- .../org/apache/flex/html/PanelWithControlBar.as | 48 +- .../flex/org/apache/flex/html/RadioButton.as | 2 +- .../flex/org/apache/flex/html/SimpleList.as | 18 +- .../main/flex/org/apache/flex/html/Slider.as | 40 +- .../main/flex/org/apache/flex/html/Spinner.as | 2 +- .../main/flex/org/apache/flex/html/TextArea.as | 26 +- .../main/flex/org/apache/flex/html/TextInput.as | 44 +- .../main/flex/org/apache/flex/html/TitleBar.as | 5 +- .../flex/org/apache/flex/html/VContainer.as | 2 +- .../src/main/flex/org/apache/flex/html/VRule.as | 14 +- .../html/beads/AccordionItemRendererView.as | 4 +- .../org/apache/flex/html/beads/AccordionView.as | 1 + .../org/apache/flex/html/beads/ContainerView.as | 306 ++++------- .../apache/flex/html/beads/DataContainerView.as | 5 +- .../org/apache/flex/html/beads/DataGridView.as | 13 +- .../DataItemRendererFactoryForArrayData.as | 31 +- .../DataItemRendererFactoryForArrayList.as | 46 +- .../DataItemRendererFactoryForColumnData.as | 26 +- .../org/apache/flex/html/beads/GroupView.as | 152 +++++- .../flex/org/apache/flex/html/beads/ListView.as | 96 +++- .../org/apache/flex/html/beads/PanelView.as | 195 +++++-- .../flex/html/beads/PanelWithControlBarView.as | 154 ++---- .../TextItemRendererFactoryForArrayData.as | 12 +- ...extItemRendererFactoryForStringVectorData.as | 24 +- .../apache/flex/html/beads/TitleBarView.mxml | 8 +- .../flex/html/beads/layouts/BasicLayout.as | 11 +- .../flex/html/beads/layouts/ButtonBarLayout.as | 70 ++- .../flex/html/beads/layouts/DataGridLayout.as | 63 ++- .../beads/layouts/DataGridPercentageLayout.as | 167 ++++-- .../FlexibleFirstChildHorizontalLayout.as | 192 +++---- .../html/beads/layouts/HorizontalFlexLayout.as | 117 ++++- .../html/beads/layouts/HorizontalFlowLayout.as | 1 + .../flex/html/beads/layouts/HorizontalLayout.as | 317 ++++-------- .../layouts/OneFlexibleChildHorizontalLayout.as | 345 +++++++------ .../layouts/OneFlexibleChildVerticalLayout.as | 503 +++++++------------ .../flex/html/beads/layouts/TileLayout.as | 9 +- .../html/beads/layouts/VerticalColumnLayout.as | 3 +- .../html/beads/layouts/VerticalFlexLayout.as | 119 ++++- .../flex/html/beads/layouts/VerticalLayout.as | 266 +++------- .../flex/html/beads/models/ButtonBarModel.as | 102 ++++ .../ButtonBarButtonItemRenderer.as | 1 + .../flex/html/supportClasses/CheckBoxIcon.as | 2 +- .../html/supportClasses/ClippingViewport.as | 11 +- .../html/supportClasses/ContainerContentArea.as | 50 +- .../flex/html/supportClasses/DataContentBead.as | 124 +++++ .../DataGridButtonBarButtonItemRenderer.as | 11 + .../flex/html/supportClasses/DataGroup.as | 10 +- .../html/supportClasses/DataItemRenderer.as | 2 +- .../html/supportClasses/GroupContentProxy.as | 91 ++++ .../html/supportClasses/MXMLItemRenderer.as | 5 +- .../html/supportClasses/PanelLayoutProxy.as | 132 +++++ .../flex/html/supportClasses/RadioButtonIcon.as | 2 +- .../html/supportClasses/ScrollingViewport.as | 317 ++++++------ .../html/supportClasses/StringItemRenderer.as | 54 +- .../apache/flex/html/supportClasses/Viewport.as | 56 ++- .../main/flex/org/apache/flex/svg/DOMWrapper.as | 6 +- .../org/apache/flex/svg/GraphicContainer.as | 60 +-- .../flex/org/apache/flex/svg/GraphicShape.as | 8 +- .../src/main/flex/org/apache/flex/svg/Image.as | 24 +- .../HTML/src/main/resources/defaults.css | 126 +++-- 93 files changed, 3255 insertions(+), 2331 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/VRule.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/VRule.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/VRule.as index d727f2a..89e372d 100644 --- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/VRule.as +++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/VRule.as @@ -21,9 +21,9 @@ package org.apache.flex.html import org.apache.flex.core.UIBase; COMPILE::JS { - import org.apache.flex.core.WrappedHTMLElement; + import org.apache.flex.core.WrappedHTMLElement; } - + /** * The VRule class displays a vertical line * @@ -31,12 +31,12 @@ package org.apache.flex.html * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 - */ + */ public class VRule extends UIBase { /** * Constructor. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -46,7 +46,7 @@ package org.apache.flex.html { super(); } - + /** * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement */ @@ -60,9 +60,9 @@ package org.apache.flex.html element.style.borderBottom = 'none'; element.style.borderRight = 'none'; positioner = element; - positioner.style.position = 'relative'; + // positioner.style.position = 'relative'; element.flexjs_wrapper = this; return element; - } + } } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/Core/src/main/flex/CoreClasses.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/src/main/flex/CoreClasses.as b/frameworks/projects/Core/src/main/flex/CoreClasses.as index 018a180..da4d657 100644 --- a/frameworks/projects/Core/src/main/flex/CoreClasses.as +++ b/frameworks/projects/Core/src/main/flex/CoreClasses.as @@ -77,6 +77,7 @@ internal class CoreClasses import org.apache.flex.core.IItemRendererProvider; IItemRendererProvider; import org.apache.flex.core.ILayoutChild; ILayoutChild; import org.apache.flex.core.ILayoutHost; ILayoutHost; + import org.apache.flex.core.ILayoutObject; ILayoutObject; import org.apache.flex.core.ILayoutParent; ILayoutParent; import org.apache.flex.core.IListPresentationModel; IListPresentationModel; import org.apache.flex.core.IMeasurementBead; IMeasurementBead; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContainer.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContainer.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContainer.as index e3b6c9d..44be7ad 100644 --- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContainer.as +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContainer.as @@ -43,5 +43,11 @@ package org.apache.flex.core * @productversion FlexJS 0.0 */ function childrenAdded():void; + + /** + * This method is for internal use only + */ + COMPILE::SWF + function $addElement(c:IChild, dispatchEvent:Boolean = true):void; } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRendererParent.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRendererParent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRendererParent.as index 18656ef..a7640e2 100644 --- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRendererParent.as +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRendererParent.as @@ -45,8 +45,10 @@ package org.apache.flex.core * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ + function addItemRenderer(renderer:IItemRenderer):void; + function removeItemRenderer(renderer:IItemRenderer):void; function getItemRendererForIndex(index:int):IItemRenderer; - function removeAllElements():void; + function removeAllItemRenderers():void; function updateAllItemRenderers():void; } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutHost.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutHost.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutHost.as index 3f36723..15afca2 100644 --- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutHost.as +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutHost.as @@ -32,13 +32,13 @@ package org.apache.flex.core public interface ILayoutHost { /** - * The container that parents all of the content. + * The container whose children are to be the subject of the layout. * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ - function get contentView():IParentIUIBase; + function get contentView():ILayoutObject; } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutObject.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutObject.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutObject.as new file mode 100644 index 0000000..c621b35 --- /dev/null +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutObject.as @@ -0,0 +1,86 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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.core +{ + /** + * The ILayoutObject interface is implemented by any component that + * has ILayoutChild children. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.8 + */ + public interface ILayoutObject + { + /** + * Returns the width of the layout object's content area. This + * value may be NaN if the width is unknown. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.8 + */ + function get width():Number; + + /** + * Returns the height of the layout object's content area. This + * value may be NaN if the height is unknown. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.8 + */ + function get height():Number; + + /** + * Returns the number of element children that can be laid out. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.8 + */ + function get numElements():int; + + /** + * Returns the element child at the given index. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.8 + */ + function getElementAt(index:int):IChild; + + COMPILE::JS { + /** + * Returns the native element of the layout object itself. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.8 + */ + function get element():WrappedHTMLElement; + } + } +} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IViewport.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IViewport.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IViewport.as index a274f52..ee681d4 100644 --- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IViewport.as +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IViewport.as @@ -74,7 +74,7 @@ package org.apache.flex.core * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - function layoutViewportAfterContentLayout():Size; + function layoutViewportAfterContentLayout(contentSize:Size):void; } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleCSSStyles.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleCSSStyles.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleCSSStyles.as index 6e83b2d..dc64469 100644 --- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleCSSStyles.as +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleCSSStyles.as @@ -72,7 +72,10 @@ package org.apache.flex.core "borderColor": 1, "borderStyle": 1, "borderRadius": 1, - "borderWidth": 1 + "borderWidth": 1, + "flexGrow": 1, + "flexShrink": 1, + "order": 1 }; public var top:*; @@ -102,5 +105,8 @@ package org.apache.flex.core public var borderStyle:*; public var borderRadius:*; public var borderWidth:*; + public var flexGrow:*; + public var flexShrink:*; + public var order:*; } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/HTMLClasses.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as index 41cb877..0d40ef5 100644 --- a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as +++ b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as @@ -66,9 +66,10 @@ internal class HTMLClasses import org.apache.flex.html.beads.NumericStepperView; NumericStepperView; } import org.apache.flex.html.beads.PanelView; PanelView; + import org.apache.flex.html.supportClasses.PanelLayoutProxy; PanelLayoutProxy; + import org.apache.flex.html.beads.PanelWithControlBarView; PanelWithControlBarView; import org.apache.flex.html.beads.AccordionItemRendererView; AccordionItemRendererView; import org.apache.flex.html.beads.SliderView; SliderView; - import org.apache.flex.html.beads.PanelWithControlBarView; PanelWithControlBarView; COMPILE::SWF { import org.apache.flex.html.beads.RadioButtonView; RadioButtonView; @@ -150,6 +151,7 @@ internal class HTMLClasses { import org.apache.flex.html.beads.layouts.HScrollBarLayout; HScrollBarLayout; import org.apache.flex.html.beads.layouts.VScrollBarLayout; VScrollBarLayout; + import org.apache.flex.html.supportClasses.ContainerContentArea; ContainerContentArea; } import org.apache.flex.html.beads.layouts.TileLayout; TileLayout; import org.apache.flex.html.beads.TextItemRendererFactoryForArrayData; TextItemRendererFactoryForArrayData; @@ -192,7 +194,6 @@ internal class HTMLClasses import org.apache.flex.html.beads.models.WebBrowserModel; WebBrowserModel; import org.apache.flex.core.ListBase; ListBase; - import org.apache.flex.core.ListBaseStrandChildren; ListBaseStrandChildren; import org.apache.flex.core.FilledRectangle; FilledRectangle; import org.apache.flex.core.UIBase; UIBase; import org.apache.flex.core.SimpleApplication; SimpleApplication; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ContainerBase.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ContainerBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ContainerBase.as index e150ac1..67c83ec 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ContainerBase.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ContainerBase.as @@ -18,6 +18,7 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.flex.core { + import org.apache.flex.core.IChrome; import org.apache.flex.core.IMXMLDocument; import org.apache.flex.core.ValuesManager; import org.apache.flex.events.Event; @@ -84,8 +85,6 @@ package org.apache.flex.core public function ContainerBase() { super(); - - _strandChildren = new ContainerBaseStrandChildren(this); } private var _strandChildren:ContainerBaseStrandChildren; @@ -95,6 +94,9 @@ package org.apache.flex.core */ public function get strandChildren():IParent { + if (_strandChildren == null) { + _strandChildren = new ContainerBaseStrandChildren(this); + } return _strandChildren; } @@ -134,6 +136,11 @@ package org.apache.flex.core */ override public function addElement(c:IChild, dispatchEvent:Boolean = true):void { + if (c is IChrome) { + super.addElement(c, dispatchEvent); + return; + } + var contentView:IParent = view as IParent; if (contentView != null) { contentView.addElement(c, dispatchEvent); @@ -150,6 +157,11 @@ package org.apache.flex.core */ override public function addElementAt(c:IChild, index:int, dispatchEvent:Boolean = true):void { + if (c is IChrome) { + super.addElementAt(c, index, dispatchEvent); + return; + } + var contentView:IParent = view as IParent; if (contentView != null) { contentView.addElementAt(c, index, dispatchEvent); @@ -166,6 +178,11 @@ package org.apache.flex.core */ override public function removeElement(c:IChild, dispatchEvent:Boolean = true):void { + if (c is IChrome) { + super.removeElement(c, dispatchEvent); + return; + } + var contentView:IParent = view as IParent; if (contentView != null) { contentView.removeElement(c, dispatchEvent); http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as index 7b945cc..f36b938 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as @@ -35,7 +35,7 @@ package org.apache.flex.core * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ [Event(name="stateChangeComplete", type="org.apache.flex.events.Event")] @@ -45,7 +45,7 @@ package org.apache.flex.core * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ [Event(name="initComplete", type="org.apache.flex.events.Event")] @@ -55,7 +55,7 @@ package org.apache.flex.core * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ [Event(name="childrenAdded", type="org.apache.flex.events.Event")] @@ -73,9 +73,9 @@ package org.apache.flex.core * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ - public class GroupBase extends UIBase implements IMXMLDocument, IStatesObject, IContainer + public class GroupBase extends UIBase implements IMXMLDocument, IStatesObject { /** * Constructor. @@ -83,7 +83,7 @@ package org.apache.flex.core * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ public function GroupBase() { @@ -129,6 +129,8 @@ package org.apache.flex.core dispatchEvent(new Event("initBindings")); dispatchEvent(new Event("initComplete")); _initialized = true; + + childrenAdded(); } } @@ -142,7 +144,7 @@ package org.apache.flex.core * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ public function get MXMLDescriptor():Array { @@ -164,7 +166,7 @@ package org.apache.flex.core * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ public function generateMXMLAttributes(data:Array):void { @@ -177,7 +179,7 @@ package org.apache.flex.core * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ public var mxmlContent:Array; @@ -190,7 +192,7 @@ package org.apache.flex.core * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ public function get states():Array { @@ -236,7 +238,7 @@ package org.apache.flex.core * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ public function hasState(state:String):Boolean { @@ -257,7 +259,7 @@ package org.apache.flex.core * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ public function get currentState():String { @@ -282,7 +284,7 @@ package org.apache.flex.core * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ public function get transitions():Array { http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/IList.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/IList.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/IList.as new file mode 100644 index 0000000..3162b3b --- /dev/null +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/IList.as @@ -0,0 +1,48 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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.core +{ + import org.apache.flex.core.IItemRendererParent; + import org.apache.flex.core.IItemRendererProvider; + + /** + * The IList interface is implemented by any component that supports being + * a "list" which means its content is generated by a factory and whose + * children are item renderers (IItemRenderer). + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public interface IList extends IItemRendererProvider + { + /** + * Returns the component within the list (maybe even the list shell itself) + * which will be the parent of each itemRenderer. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + function get dataGroup():IItemRendererParent; + + } +} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ListBase.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ListBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ListBase.as index 3487822..2c8ccc3 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ListBase.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ListBase.as @@ -19,6 +19,7 @@ package org.apache.flex.core { import org.apache.flex.core.IMXMLDocument; + import org.apache.flex.core.IContainer; import org.apache.flex.core.ValuesManager; import org.apache.flex.events.Event; import org.apache.flex.events.ValueChangeEvent; @@ -34,7 +35,7 @@ package org.apache.flex.core * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class ListBase extends UIBase implements IContentViewHost, ILayoutParent + public class ListBase extends UIBase implements ILayoutParent, IParentIUIBase, IContainer { /** * Constructor. @@ -46,45 +47,50 @@ package org.apache.flex.core */ public function ListBase() { - super(); - - _strandChildren = new ListBaseStrandChildren(this); + super(); } - private var _strandChildren:ListBaseStrandChildren; - /** - * @private + * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement */ - public function get strandChildren():IParent + COMPILE::JS + override protected function createElement():WrappedHTMLElement { - return _strandChildren; + element = document.createElement('div') as WrappedHTMLElement; + element.flexjs_wrapper = this; + + positioner = element; + + return element; } /** - * @private + * Returns the ILayoutHost which is its view. From ILayoutParent. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.8 */ public function getLayoutHost():ILayoutHost { return view as ILayoutHost; - } + } /** * @private - * @suppress {undefinedNames} - * Support strandChildren. */ - public function $numElements():int + public function childrenAdded():void { - return super.numElements(); + dispatchEvent(new Event("childrenAdded")); } - /** * @private - * @suppress {undefinedNames} - * Support strandChildren. + * This is a hidden function used by ContainerView to insert the nested contentView + * into this outer shell. */ + COMPILE::SWF public function $addElement(c:IChild, dispatchEvent:Boolean = true):void { super.addElement(c, dispatchEvent); @@ -92,42 +98,68 @@ package org.apache.flex.core /** * @private - * @suppress {undefinedNames} - * Support strandChildren. */ - public function $addElementAt(c:IChild, index:int, dispatchEvent:Boolean = true):void + COMPILE::SWF + override public function addElement(c:IChild, dispatchEvent:Boolean = true):void + { + var layoutHost:ILayoutHost = view as ILayoutHost; + var contentView:IParent = layoutHost.contentView as IParent; + contentView.addElement(c, dispatchEvent); + } + + /** + * @private + */ + COMPILE::SWF + override public function addElementAt(c:IChild, index:int, dispatchEvent:Boolean = true):void + { + var layoutHost:ILayoutHost = view as ILayoutHost; + var contentView:IParent = layoutHost.contentView as IParent; + contentView.addElementAt(c, index, dispatchEvent); + } + + /** + * @private + */ + COMPILE::SWF + override public function getElementIndex(c:IChild):int { - super.addElementAt(c, index, dispatchEvent); + var layoutHost:ILayoutHost = view as ILayoutHost; + var contentView:IParent = layoutHost.contentView as IParent; + return contentView.getElementIndex(c); } /** * @private - * @suppress {undefinedNames} - * Support strandChildren. */ - public function $removeElement(c:IChild, dispatchEvent:Boolean = true):void + COMPILE::SWF + override public function removeElement(c:IChild, dispatchEvent:Boolean = true):void { - super.removeElement(c, dispatchEvent); + var layoutHost:ILayoutHost = view as ILayoutHost; + var contentView:IParent = layoutHost.contentView as IParent; + contentView.removeElement(c, dispatchEvent); } /** * @private - * @suppress {undefinedNames} - * Support strandChildren. */ - public function $getElementIndex(c:IChild):int + COMPILE::SWF + override public function get numElements():int { - return super.getElementIndex(c); + var layoutHost:ILayoutHost = view as ILayoutHost; + var contentView:IParent = layoutHost.contentView as IParent; + return contentView.numElements; } /** * @private - * @suppress {undefinedNames} - * Support strandChildren. */ - public function $getElementAt(index:int):IChild + COMPILE::SWF + override public function getElementAt(index:int):IChild { - return super.getElementAt(index); + var layoutHost:ILayoutHost = view as ILayoutHost; + var contentView:IParent = layoutHost.contentView as IParent; + return contentView.getElementAt(index); } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/UIBase.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/UIBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/UIBase.as index d9804b2..af9e255 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/UIBase.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/UIBase.as @@ -637,7 +637,7 @@ package org.apache.flex.core COMPILE::JS public function set x(value:Number):void { - positioner.style.position = 'absolute'; +// positioner.style.position = 'absolute'; positioner.style.left = value + 'px'; } @@ -670,7 +670,7 @@ package org.apache.flex.core } COMPILE::JS { - positioner.style.position = 'absolute'; +// positioner.style.position = 'absolute'; positioner.style.left = value + 'px'; } } @@ -693,7 +693,7 @@ package org.apache.flex.core COMPILE::JS public function set y(value:Number):void { - positioner.style.position = 'absolute'; +// positioner.style.position = 'absolute'; positioner.style.top = value + 'px'; } @@ -726,7 +726,7 @@ package org.apache.flex.core } COMPILE::JS { - positioner.style.position = 'absolute'; +// positioner.style.position = 'absolute'; positioner.style.top = value + 'px'; } } @@ -1358,7 +1358,7 @@ package org.apache.flex.core if (positioner == null) positioner = element; positioner.style.display = 'block'; - positioner.style.position = 'relative'; +// positioner.style.position = 'relative'; element.flexjs_wrapper = this; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/View.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/View.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/View.as index 2d0f2c4..453a1d6 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/View.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/View.as @@ -17,7 +17,7 @@ // //////////////////////////////////////////////////////////////////////////////// package org.apache.flex.core -{ +{ /** * The View class is the class for most views in a FlexJS * application. It is generally used as the root tag of MXML @@ -29,6 +29,7 @@ package org.apache.flex.core * @productversion FlexJS 0.0 */ public class View extends ViewBase - { + { + } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ViewBase.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ViewBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ViewBase.as index f058c4a..1af670e 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ViewBase.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/ViewBase.as @@ -48,7 +48,7 @@ package org.apache.flex.core * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class ViewBase extends ContainerBase implements IPopUpHost, IApplicationView, ILayoutParent + public class ViewBase extends GroupBase implements IPopUpHost, IApplicationView, ILayoutParent, ILayoutObject { /** * Constructor. http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBar.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBar.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBar.as index 8266415..0dffead 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBar.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBar.as @@ -18,23 +18,25 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.flex.html { + import org.apache.flex.html.beads.models.ButtonBarModel; + COMPILE::JS { - import org.apache.flex.core.WrappedHTMLElement; + import org.apache.flex.core.WrappedHTMLElement; } /** * The ButtonBar class is a component that displays a set of Buttons. The ButtonBar - * is actually a List with a default horizontal layout and an itemRenderer that + * is actually a List with a default horizontal layout and an itemRenderer that * produces Buttons. The ButtonBar uses the following beads: - * + * * org.apache.flex.core.IBeadModel: the data model for the ButtonBar, including the dataProvider. * org.apache.flex.core.IBeadView: constructs the parts of the component. * org.apache.flex.core.IBeadController: handles input events. * org.apache.flex.core.IBeadLayout: sizes and positions the component parts. * org.apache.flex.core.IDataProviderItemRendererMapper: produces itemRenderers. * org.apache.flex.core.IItemRenderer: the class or class factory to use. - * + * * @toplevel * @langversion 3.0 * @playerversion Flash 10.2 @@ -55,7 +57,25 @@ package org.apache.flex.html { super(); } - + + public function get buttonWidths():Array + { + return ButtonBarModel(model).buttonWidths; + } + public function set buttonWidths(value:Array):void + { + ButtonBarModel(model).buttonWidths = value; + } + + public function get widthType():Number + { + return ButtonBarModel(model).widthType; + } + public function set widthType(value:Number):void + { + ButtonBarModel(model).widthType = value; + } + /** * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement */ @@ -63,14 +83,12 @@ package org.apache.flex.html override protected function createElement():WrappedHTMLElement { element = document.createElement('div') as WrappedHTMLElement; - element.style.overflow = 'auto'; positioner = element; - positioner.style.position = 'relative'; - + className = 'ButtonBar'; - + element.flexjs_wrapper = this; - + return element; } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBase.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBase.as index a30f0cf..72d19e1 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBase.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBase.as @@ -84,7 +84,6 @@ package org.apache.flex.html element.setAttribute('type', 'button'); positioner = element; - positioner.style.position = 'relative'; element.flexjs_wrapper = this; /* AJH comment out until we figure out why it is needed http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/CheckBox.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/CheckBox.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/CheckBox.as index be39c33..ef78a05 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/CheckBox.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/CheckBox.as @@ -155,7 +155,7 @@ package org.apache.flex.html element.appendChild(document.createTextNode('')); positioner = element; - positioner.style.position = 'relative'; + //positioner.style.position = 'relative'; element.flexjs_wrapper = this; _icon.element.flexjs_wrapper = this; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as index 0e0e178..73c6fd7 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as @@ -18,20 +18,14 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.flex.html { - import org.apache.flex.core.ContainerBase; - import org.apache.flex.core.IChrome; import org.apache.flex.core.IContainer; - import org.apache.flex.core.ILayoutParent; - import org.apache.flex.core.ILayoutHost; - import org.apache.flex.core.IUIBase; - COMPILE::JS - { - import org.apache.flex.core.WrappedHTMLElement; - } - import org.apache.flex.events.Event; - [DefaultProperty("mxmlContent")] - + COMPILE::SWF { + import org.apache.flex.core.IChild; + import org.apache.flex.core.ILayoutHost; + import org.apache.flex.core.IParent; + } + /** * The Container class implements a basic container for * other controls and containers. The position and size @@ -68,7 +62,7 @@ package org.apache.flex.html * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class Container extends ContainerBase implements ILayoutParent + public class Container extends Group implements IContainer { /** * Constructor. @@ -81,36 +75,83 @@ package org.apache.flex.html public function Container() { super(); + } + + /** + * @private + * This is a hidden function used by ContainerView to insert the nested contentView + * into this outer shell. + */ + COMPILE::SWF + public function $addElement(c:IChild, dispatchEvent:Boolean = true):void + { + super.addElement(c, dispatchEvent); } - public function getLayoutHost():ILayoutHost + /** + * @private + */ + COMPILE::SWF + override public function addElement(c:IChild, dispatchEvent:Boolean = true):void { - return view as ILayoutHost; + var layoutHost:ILayoutHost = view as ILayoutHost; + var contentView:IParent = layoutHost.contentView as IParent; + contentView.addElement(c, dispatchEvent); + } + + /** + * @private + */ + COMPILE::SWF + override public function addElementAt(c:IChild, index:int, dispatchEvent:Boolean = true):void + { + var layoutHost:ILayoutHost = view as ILayoutHost; + var contentView:IParent = layoutHost.contentView as IParent; + contentView.addElementAt(c, index, dispatchEvent); + } + + /** + * @private + */ + COMPILE::SWF + override public function getElementIndex(c:IChild):int + { + var layoutHost:ILayoutHost = view as ILayoutHost; + var contentView:IParent = layoutHost.contentView as IParent; + return contentView.getElementIndex(c); + } + + /** + * @private + */ + COMPILE::SWF + override public function removeElement(c:IChild, dispatchEvent:Boolean = true):void + { + var layoutHost:ILayoutHost = view as ILayoutHost; + var contentView:IParent = layoutHost.contentView as IParent; + contentView.removeElement(c, dispatchEvent); + } + + /** + * @private + */ + COMPILE::SWF + override public function get numElements():int + { + var layoutHost:ILayoutHost = view as ILayoutHost; + var contentView:IParent = layoutHost.contentView as IParent; + return contentView.numElements; + } + + /** + * @private + */ + COMPILE::SWF + override public function getElementAt(index:int):IChild + { + var layoutHost:ILayoutHost = view as ILayoutHost; + var contentView:IParent = layoutHost.contentView as IParent; + return contentView.getElementAt(index); } - - /** - * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement - */ - COMPILE::JS - override protected function createElement():WrappedHTMLElement - { - element = document.createElement('div') as WrappedHTMLElement; - - positioner = element; - - // absolute positioned children need a non-null - // position value in the parent. It might - // get set to 'absolute' if the container is - // also absolutely positioned - positioner.style.position = 'relative'; - element.flexjs_wrapper = this; - - /*addEventListener('childrenAdded', - runLayoutHandler); - addEventListener('elementRemoved', - runLayoutHandler);*/ - - return element; - } } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ControlBar.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ControlBar.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ControlBar.as index c6de512..6aaa9d5 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ControlBar.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ControlBar.as @@ -18,37 +18,36 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.flex.html { - + import org.apache.flex.core.IBeadLayout; import org.apache.flex.core.IChrome; - import org.apache.flex.core.IContainer; import org.apache.flex.core.ValuesManager; COMPILE::JS { - import org.apache.flex.core.WrappedHTMLElement; + import org.apache.flex.core.WrappedHTMLElement; } /** * The ControlBar class is used within a Panel as a place to position - * additional controls. The ControlBar appears at the bottom of the + * additional controls. The ControlBar appears at the bottom of the * org.apache.flex.html.Panel * and is not part of the Panel's scrollable content area. The ControlBar * is a Container and implements the org.apache.flex.core.IChrome interface, indicating that is * outside of the Container's content area. The ControlBar uses the following * beads: - * + * * org.apache.flex.core.IBeadModel: the data model for the component. * org.apache.flex.core.IMeasurementBead: helps determine the overlay size of the ControlBar for layout. * org.apache.flex.core.IBorderBead: if present, displays a border around the component. * org.apache.flex.core.IBackgroundBead: if present, displays a solid background below the ControlBar. - * + * * @toplevel * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class ControlBar extends Container implements IContainer, IChrome + public class ControlBar extends Group implements IChrome { /** * constructor. @@ -61,40 +60,36 @@ package org.apache.flex.html public function ControlBar() { super(); - + className = "ControlBar"; } - + /** * @private */ override public function addedToParent():void { - super.addedToParent(); - if( getBeadByType(IBeadLayout) == null ) { var layout:IBeadLayout = new (ValuesManager.valuesImpl.getValue(this, "iBeadLayout")) as IBeadLayout; addBead(layout); } + + super.addedToParent(); } - + /** * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement */ COMPILE::JS override protected function createElement():WrappedHTMLElement { - element = document.createElement('div') as WrappedHTMLElement; - element.className = 'ControlBar'; - element.style.display = 'inline'; - typeNames = 'ControlBar'; - - positioner = element; - positioner.style.position = 'relative'; - element.flexjs_wrapper = this; - + element = document.createElement('div') as WrappedHTMLElement; + + positioner = element; + element.flexjs_wrapper = this; + return element; - } + } } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DropDownList.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DropDownList.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DropDownList.as index 8f05809..d547f27 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DropDownList.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DropDownList.as @@ -23,17 +23,17 @@ package org.apache.flex.html COMPILE::JS { import goog.events; - import org.apache.flex.core.WrappedHTMLElement; + import org.apache.flex.core.WrappedHTMLElement; import org.apache.flex.html.beads.models.ArraySelectionModel; } - + //-------------------------------------- // Events //-------------------------------------- - + /** * Dispatched when the user selects an item. - * + * * @toplevel * @langversion 3.0 * @playerversion Flash 10.2 @@ -41,7 +41,7 @@ package org.apache.flex.html * @productversion FlexJS 0.0 */ [Event(name="change", type="org.apache.flex.events.Event")] - + /** * The DropDownList class implements the basic equivalent of * the <code><select></code> tag in HTML. @@ -49,23 +49,23 @@ package org.apache.flex.html * choose from an array of strings. More complex controls * would display icons as well as strings, or colors instead * of strings or just about anything. - * - * The default behavior only lets the user choose one and + * + * The default behavior only lets the user choose one and * only one item. More complex controls would allow * mutiple selection by not dismissing the dropdown as soon * as a selection is made. - * - * + * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 - */ + */ public class DropDownList extends Button { /** * Constructor. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -78,12 +78,12 @@ package org.apache.flex.html model = new ArraySelectionModel(); } } - + /** * The data set to be displayed. Usually a simple * array of strings. A more complex component * would allow more complex data and data sets. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -109,14 +109,14 @@ package org.apache.flex.html var n:int; var opt:HTMLOptionElement; var dd:HTMLSelectElement = element as HTMLSelectElement; - + model.dataProvider = value; dp = dd.options; n = dp.length; for (i = 0; i < n; i++) { dd.remove(0); } - + var lf:String = labelField; n = value.length; for (i = 0; i < n; i++) { @@ -130,11 +130,11 @@ package org.apache.flex.html } } - + [Bindable("change")] /** * @copy org.apache.flex.core.ISelectionModel#selectedIndex - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -157,12 +157,12 @@ package org.apache.flex.html (element as HTMLSelectElement).selectedIndex = ISelectionModel(model).selectedIndex; } } - + [Bindable("change")] /** * @copy org.apache.flex.core.ISelectionModel#selectedItem - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -185,7 +185,7 @@ package org.apache.flex.html (element as HTMLSelectElement).selectedIndex = ISelectionModel(model).selectedIndex; } } - + /** * The name of field within the data used for display. Each item of the * data should have a property with this name. @@ -203,7 +203,7 @@ package org.apache.flex.html { ISelectionModel(model).labelField = value; } - + /** * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement * @flexjsignorecoercion HTMLSelectElement @@ -215,15 +215,15 @@ package org.apache.flex.html (element as HTMLSelectElement).size = 1; goog.events.listen(element, 'change', changeHandler); - + positioner = element; - positioner.style.position = 'relative'; - + //positioner.style.position = 'relative'; + element.flexjs_wrapper = this; - + return element; - } - + } + /** * @flexjsignorecoercion HTMLSelectElement */ http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Form.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Form.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Form.as index 408bb13..2093e40 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Form.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Form.as @@ -19,17 +19,17 @@ package org.apache.flex.html { import org.apache.flex.core.ContainerBase; - + COMPILE::JS { import org.apache.flex.core.WrappedHTMLElement; } - + [DefaultProperty("mxmlContent")] /** * The Form class is a simple form. - * + * * @toplevel * @langversion 3.0 * @playerversion Flash 10.2 @@ -40,7 +40,7 @@ package org.apache.flex.html { /** * Constructor. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -50,7 +50,7 @@ package org.apache.flex.html { super(); } - + /** * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement */ @@ -58,15 +58,15 @@ package org.apache.flex.html override protected function createElement():WrappedHTMLElement {HTMLFormElement element = document.createElement('form') as WrappedHTMLElement; - + positioner = element; - - positioner.style.position = 'relative'; + + //positioner.style.position = 'relative'; element.flexjs_wrapper = this; return element; } - + private var _action:String = "#"; [Bindable("actionChange")] @@ -96,5 +96,5 @@ package org.apache.flex.html this.dispatchEvent('actionChange'); } } - } -} \ No newline at end of file + } +} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Group.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Group.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Group.as index a881d10..20ebf12 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Group.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Group.as @@ -22,11 +22,11 @@ package org.apache.flex.html import org.apache.flex.core.IContainer; import org.apache.flex.core.ILayoutHost; import org.apache.flex.core.ILayoutParent; + import org.apache.flex.core.ILayoutObject; import org.apache.flex.core.IMXMLDocument; import org.apache.flex.core.IStrand; import org.apache.flex.core.IBead; import org.apache.flex.core.IBeadLayout; - import org.apache.flex.core.IParentIUIBase; import org.apache.flex.core.IUIBase; import org.apache.flex.core.UIBase; import org.apache.flex.core.ValuesManager; @@ -39,7 +39,7 @@ package org.apache.flex.html * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ [Event(name="childrenAdded", type="org.apache.flex.events.Event")] @@ -59,9 +59,9 @@ package org.apache.flex.html * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ - public class Group extends GroupBase implements ILayoutParent, IParentIUIBase + public class Group extends GroupBase implements ILayoutParent, ILayoutObject { /** * Constructor. @@ -69,7 +69,7 @@ package org.apache.flex.html * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ public function Group() { @@ -82,7 +82,7 @@ package org.apache.flex.html * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ public function getLayoutHost():ILayoutHost { http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HContainer.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HContainer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HContainer.as index f6aaafc..2a19648 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HContainer.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HContainer.as @@ -44,7 +44,7 @@ package org.apache.flex.html * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class HContainer extends Container implements IContainer + public class HContainer extends Container { /** * Constructor. http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HRule.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HRule.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HRule.as index 89cee65..3017a34 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HRule.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HRule.as @@ -17,13 +17,13 @@ // //////////////////////////////////////////////////////////////////////////////// package org.apache.flex.html -{ +{ import org.apache.flex.core.UIBase; COMPILE::JS { - import org.apache.flex.core.WrappedHTMLElement; + import org.apache.flex.core.WrappedHTMLElement; } - + /** * The HRule class displays a horizontal line * @@ -32,12 +32,12 @@ package org.apache.flex.html * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 - */ + */ public class HRule extends UIBase { /** * Constructor. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -47,7 +47,7 @@ package org.apache.flex.html { super(); } - + /** * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement */ @@ -56,9 +56,9 @@ package org.apache.flex.html { element = document.createElement('hr') as WrappedHTMLElement; positioner = element; - positioner.style.position = 'relative'; + //positioner.style.position = 'relative'; element.flexjs_wrapper = this; return element; - } + } } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as index 6211bc6..6b206c1 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Image.as @@ -19,10 +19,10 @@ package org.apache.flex.html { import org.apache.flex.core.ImageBase; - + COMPILE::JS { - import org.apache.flex.core.WrappedHTMLElement; + import org.apache.flex.core.WrappedHTMLElement; } /** @@ -48,7 +48,7 @@ package org.apache.flex.html { super(); } - + /** * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement */ @@ -58,14 +58,14 @@ package org.apache.flex.html element = document.createElement('img') as WrappedHTMLElement; element.className = 'Image'; typeNames = 'Image'; - + positioner = element; - positioner.style.position = 'relative'; + //positioner.style.position = 'relative'; element.flexjs_wrapper = this; - + return element; } - + COMPILE::JS override public function get imageElement():Element { http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ImageAndTextButton.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ImageAndTextButton.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ImageAndTextButton.as index 2d26c64..ccdbc3b 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ImageAndTextButton.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ImageAndTextButton.as @@ -22,24 +22,24 @@ package org.apache.flex.html import org.apache.flex.html.beads.models.ImageAndTextModel; COMPILE::JS { - import org.apache.flex.core.WrappedHTMLElement; + import org.apache.flex.core.WrappedHTMLElement; } - + /** * The ImageTextButton class implements a basic button that * displays and image and text. - * + * * @toplevel * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion FlexJS 0.0 - */ + */ public class ImageAndTextButton extends TextButton { /** * Constructor. - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -49,7 +49,7 @@ package org.apache.flex.html { super(); } - + /** * @private */ @@ -58,7 +58,7 @@ package org.apache.flex.html { return ImageAndTextModel(model).text; } - + /** * @private */ @@ -68,13 +68,13 @@ package org.apache.flex.html ImageAndTextModel(model).text = value; COMPILE::JS { - setInnerHTML(); + setInnerHTML(); } } - + /** * The URL of an icon to use in the button - * + * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 @@ -84,7 +84,7 @@ package org.apache.flex.html { return ImageAndTextModel(model).image; } - + /** * @private */ @@ -93,10 +93,10 @@ package org.apache.flex.html ImageAndTextModel(model).image = value; COMPILE::JS { - setInnerHTML(); + setInnerHTML(); } } - + /** * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement */ @@ -105,13 +105,13 @@ package org.apache.flex.html { element = document.createElement('button') as WrappedHTMLElement; element.setAttribute('type', 'button'); - + positioner = element; - positioner.style.position = 'relative'; + //positioner.style.position = 'relative'; element.flexjs_wrapper = this; - + return element; - } + } /** */ http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ImageButton.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ImageButton.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ImageButton.as index 5912a84..4b89037 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ImageButton.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ImageButton.as @@ -21,7 +21,7 @@ package org.apache.flex.html import org.apache.flex.core.SimpleCSSStyles; import org.apache.flex.events.Event; import org.apache.flex.html.beads.models.ImageModel; - + COMPILE::JS { import org.apache.flex.core.WrappedHTMLElement; @@ -60,13 +60,13 @@ package org.apache.flex.html { element = document.createElement('button') as WrappedHTMLElement; element.setAttribute('type', 'button'); - + positioner = element; - positioner.style.position = 'relative'; + //positioner.style.position = 'relative'; element.flexjs_wrapper = this; - + return element; - } + } [Bindable("srcChanged")] /** @@ -96,7 +96,7 @@ package org.apache.flex.html inner = "<img src='" + url + "'/>"; element.innerHTML = inner; } - + dispatchEvent(new Event("srcChanged")); } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/List.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/List.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/List.as index 123674c..bb330c8 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/List.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/List.as @@ -20,10 +20,12 @@ package org.apache.flex.html { import org.apache.flex.core.ContainerBaseStrandChildren; import org.apache.flex.core.IContentViewHost; + import org.apache.flex.core.IChild; + import org.apache.flex.core.ILayoutObject; import org.apache.flex.core.IDataProviderItemRendererMapper; import org.apache.flex.core.IFactory; import org.apache.flex.core.IItemRendererClassFactory; - import org.apache.flex.core.IItemRendererProvider; + import org.apache.flex.core.IItemRenderer; import org.apache.flex.core.IListPresentationModel; import org.apache.flex.core.IRollOverModel; import org.apache.flex.core.ISelectionModel; @@ -39,6 +41,15 @@ package org.apache.flex.html import org.apache.flex.events.Event; import org.apache.flex.events.IEventDispatcher; import org.apache.flex.html.beads.models.ListPresentationModel; + import org.apache.flex.html.supportClasses.DataItemRenderer; + import org.apache.flex.events.ItemAddedEvent; + import org.apache.flex.events.ItemClickedEvent; + import org.apache.flex.events.ItemRemovedEvent; + + import org.apache.flex.core.IList; + import org.apache.flex.core.IItemRendererParent; + import org.apache.flex.core.IItemRendererProvider; + import org.apache.flex.core.ListBase; /** * Indicates that the initialization of the list is complete. @@ -78,7 +89,7 @@ package org.apache.flex.html * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class List extends ListBase implements IItemRendererProvider + public class List extends ListBase implements IList, IItemRendererParent, ILayoutObject { /** * constructor. @@ -217,6 +228,23 @@ package org.apache.flex.html ISelectionModel(model).selectedItem = value; } + /* + * IList and IItemRendererProvider + */ + + /** + * Provides the DataGroup for this List. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get dataGroup():IItemRendererParent + { + return this; + } + private var _itemRenderer:IFactory; /** @@ -262,6 +290,89 @@ package org.apache.flex.html return result; } + /* + * IItemRendererParent + */ + + /** + * @copy org.apache.flex.core.IItemRendererParent#getItemRendererForIndex() + * @private + */ + public function addItemRenderer(renderer:IItemRenderer):void + { + addElement(renderer, true); + + var newEvent:ItemAddedEvent = new ItemAddedEvent("itemAdded"); + newEvent.item = renderer; + + dispatchEvent(newEvent); + } + + /** + * @copy org.apache.flex.core.IItemRendererParent#getItemRendererForIndex() + * @private + */ + public function removeItemRenderer(renderer:IItemRenderer):void + { + removeElement(renderer, true); + + var newEvent:ItemRemovedEvent = new ItemRemovedEvent("itemRemoved"); + newEvent.item = renderer; + + dispatchEvent(newEvent); + } + + /** + * @copy org.apache.flex.core.IItemRendererParent#getItemRendererForIndex() + * @private + */ + public function removeAllItemRenderers():void + { + while (numElements > 0) { + var child:IChild = getElementAt(0); + removeElement(child); + } + } + + /** + * @copy org.apache.flex.core.IItemRendererParent#getItemRendererForIndex() + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function getItemRendererForIndex(index:int):IItemRenderer + { + if (index < 0 || index >= numElements) return null; + return getElementAt(index) as IItemRenderer; + } + + /** + * Refreshes the itemRenderers. Useful after a size change by the data group. + * + * @copy org.apache.flex.core.IItemRendererParent#getItemRendererForIndex() + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function updateAllItemRenderers():void + { + var n:Number = numElements; + for (var i:Number = 0; i < n; i++) + { + var renderer:DataItemRenderer = getItemRendererForIndex(i) as DataItemRenderer; + if (renderer) { + renderer.setWidth(this.width,true); + renderer.adjustSize(); + } + } + } + + /* + * UIBase + */ /** * @private @@ -301,19 +412,6 @@ package org.apache.flex.html className = 'List'; return element; - } - - /** - * @flexjsignorecoercion org.apache.flex.html.beads.ListView - * @flexjsignorecoercion org.apache.flex.html.supportClasses.DataGroup - */ - COMPILE::JS - override public function internalChildren():Array - { - var listView:ListView = getBeadByType(ListView) as ListView; - var dg:DataGroup = listView.dataGroup as DataGroup; - var renderers:Array = dg.internalChildren(); - return renderers; - }; + } } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/MXMLBeadView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/MXMLBeadView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/MXMLBeadView.as index 1807381..4f19b10 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/MXMLBeadView.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/MXMLBeadView.as @@ -27,7 +27,7 @@ package org.apache.flex.html import org.apache.flex.core.IStrand; import org.apache.flex.core.IStatesImpl; import org.apache.flex.core.ValuesManager; - import org.apache.flex.html.beads.ContainerView; + import org.apache.flex.html.beads.GroupView; import org.apache.flex.events.Event; import org.apache.flex.events.ValueChangeEvent; import org.apache.flex.utils.MXMLDataInterpreter; @@ -44,7 +44,7 @@ package org.apache.flex.html * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class MXMLBeadView extends ContainerView implements IStrand, ILayoutHost + public class MXMLBeadView extends GroupView implements IStrand, ILayoutHost { /** * Constructor. http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/NumericStepper.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/NumericStepper.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/NumericStepper.as index 73ba26a..984fda9 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/NumericStepper.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/NumericStepper.as @@ -161,7 +161,7 @@ package org.apache.flex.html { element = document.createElement('div') as WrappedHTMLElement; positioner = element; - positioner.style.position = 'relative'; + //positioner.style.position = 'relative'; input = new TextInput(); input.className = "NumericStepperInput"; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Panel.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Panel.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Panel.as index faa3575..09b5cc1 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Panel.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Panel.as @@ -19,6 +19,9 @@ package org.apache.flex.html { import org.apache.flex.core.IPanelModel; + import org.apache.flex.core.IChild; + import org.apache.flex.html.beads.PanelView; + import org.apache.flex.events.Event; COMPILE::JS { @@ -49,7 +52,7 @@ package org.apache.flex.html * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class Panel extends Container + public class Panel extends Group { /** * constructor. @@ -62,6 +65,23 @@ package org.apache.flex.html public function Panel() { super(); + + className = "Panel"; + } + + public function $addElement(c:IChild, dispatchEvent:Boolean = true):void + { + super.addElement(c, dispatchEvent); + } + + public function get $numElements():Number + { + return super.numElements; + } + + public function $getElementAt(index:Number):IChild + { + return super.getElementAt(index); } /** @@ -110,13 +130,61 @@ package org.apache.flex.html IPanelModel(model).showCloseButton = value; } - COMPILE::JS - override protected function createElement():WrappedHTMLElement - { - super.createElement(); - element.className = "Panel"; - typeNames = "Panel"; - return element; - } + + /** + * @private + */ + override public function addElement(c:IChild, dispatchEvent:Boolean = true):void + { + var panelView:PanelView = view as PanelView; + panelView.contentArea.addElement(c, dispatchEvent); + panelView.contentArea.dispatchEvent(new Event("layoutNeeded")); + } + + /** + * @private + */ + override public function addElementAt(c:IChild, index:int, dispatchEvent:Boolean = true):void + { + var panelView:PanelView = view as PanelView; + panelView.contentArea.addElementAt(c, index, dispatchEvent); + panelView.contentArea.dispatchEvent(new Event("layoutNeeded")); + } + + /** + * @private + */ + override public function getElementIndex(c:IChild):int + { + var panelView:PanelView = view as PanelView; + return panelView.contentArea.getElementIndex(c); + } + + /** + * @private + */ + override public function removeElement(c:IChild, dispatchEvent:Boolean = true):void + { + var panelView:PanelView = view as PanelView; + panelView.contentArea.removeElement(c, dispatchEvent); + } + + /** + * @private + */ + override public function get numElements():int + { + var panelView:PanelView = view as PanelView; + return panelView.contentArea.numElements; + } + + /** + * @private + */ + override public function getElementAt(index:int):IChild + { + var panelView:PanelView = view as PanelView; + return panelView.contentArea.getElementAt(index); + } } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/PanelWithControlBar.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/PanelWithControlBar.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/PanelWithControlBar.as index 6afd7a3..d5ff4b1 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/PanelWithControlBar.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/PanelWithControlBar.as @@ -39,7 +39,7 @@ package org.apache.flex.html * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class PanelWithControlBar extends Container + public class PanelWithControlBar extends Panel { /** * constructor. @@ -55,52 +55,6 @@ package org.apache.flex.html } /** - * The string to display in the org.apache.flex.html.TitleBar. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function get title():String - { - return IPanelModel(model).title; - } - public function set title(value:String):void - { - IPanelModel(model).title = value; - } - - /** - * The HTML string to display in the org.apache.flex.html.TitleBar. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function get htmlTitle():String - { - return IPanelModel(model).htmlTitle; - } - public function set htmlTitle(value:String):void - { - IPanelModel(model).htmlTitle = value; - } - - /** - * Whether or not to show a Close button in the org.apache.flex.html.TitleBar. - */ - public function get showCloseButton():Boolean - { - return IPanelModel(model).showCloseButton; - } - public function set showCloseButton(value:Boolean):void - { - IPanelModel(model).showCloseButton = value; - } - - /** * The items in the org.apache.flex.html.ControlBar. Setting this property automatically * causes the ControlBar to display. * http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/RadioButton.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/RadioButton.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/RadioButton.as index b403ceb..d50b7d3 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/RadioButton.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/RadioButton.as @@ -251,7 +251,7 @@ package org.apache.flex.html element = labelFor as WrappedHTMLElement; positioner = element; - positioner.style.position = 'relative'; + //positioner.style.position = 'relative'; (element as WrappedHTMLElement).flexjs_wrapper = this; (textNode as WrappedHTMLElement).flexjs_wrapper = this; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/679eccb5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/SimpleList.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/SimpleList.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/SimpleList.as index 96fb051..0d254e5 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/SimpleList.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/SimpleList.as @@ -21,14 +21,14 @@ package org.apache.flex.html COMPILE::JS { import goog.events; - import org.apache.flex.core.WrappedHTMLElement; + import org.apache.flex.core.WrappedHTMLElement; } - + /** * The SimpleList class is a component that displays data in a vertical column. This - * component differs from org.apache.flex.html.List in that it displays + * component differs from org.apache.flex.html.List in that it displays * only string values and maps to the <select> HTML element. - * + * * @toplevel * @langversion 3.0 * @playerversion Flash 10.2 @@ -49,7 +49,7 @@ package org.apache.flex.html { super(); } - + /** * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement * @flexjsignorecoercion HTMLSelectElement @@ -62,12 +62,12 @@ package org.apache.flex.html goog.events.listen(element, 'change', changeHandler); positioner = element; - positioner.style.position = 'relative'; + //positioner.style.position = 'relative'; className = 'SimpleList'; - + return element; - } - + } + /** * @flexjsignorecoercion HTMLSelectElement */
