Hey Yishay, Maven build does header checks and is failing on missing Apache headers on some of these new files.
-Alex On 11/15/16, 12:24 AM, "yish...@apache.org" <yish...@apache.org> wrote: >Repository: flex-asjs >Updated Branches: > refs/heads/develop c9d3c3de0 -> 9834f8e3c > > >Accordion added. > > >Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo >Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/52a2147a >Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/52a2147a >Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/52a2147a > >Branch: refs/heads/develop >Commit: 52a2147a7db66442355bb24f3d2c0ddb1bccd3f9 >Parents: 4d6fa02 >Author: yishayw <yishayj...@hotmail.com> >Authored: Tue Nov 15 10:23:07 2016 +0200 >Committer: yishayw <yishayj...@hotmail.com> >Committed: Tue Nov 15 10:23:07 2016 +0200 > >---------------------------------------------------------------------- > .../main/flex/org/apache/flex/html/Accordion.as | 79 ++++++++++++ > .../flex/html/beads/AccordionCollapseBead.as | 50 +++++++ > .../org/apache/flex/html/beads/AccordionView.as | 47 +++++++ > .../flex/html/beads/IAccordionCollapseBead.as | 27 ++++ > .../AccordionItemRendererMouseController.as | 43 +++++++ > .../beads/layouts/IOneFlexibleChildLayout.as | 38 ++++++ > .../layouts/OneFlexibleChildHorizontalLayout.as | 38 ++++-- > .../layouts/OneFlexibleChildVerticalLayout.as | 59 +++++++-- > .../supportClasses/AccordionItemRenderer.as | 129 +++++++++++++++++++ > .../flex/html/supportClasses/ICollapsible.as | 8 ++ > .../HTML/src/main/resources/basic-manifest.xml | 2 + > .../HTML/src/main/resources/defaults.css | 38 ++++-- > 12 files changed, 522 insertions(+), 36 deletions(-) >---------------------------------------------------------------------- > > >http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/52a2147a/frameworks/ >projects/HTML/src/main/flex/org/apache/flex/html/Accordion.as >---------------------------------------------------------------------- >diff --git >a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Accordion.as > >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Accordion.as >new file mode 100644 >index 0000000..20e3f96 >--- /dev/null >+++ >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Accordion.as >@@ -0,0 +1,79 @@ >+///////////////////////////////////////////////////////////////////////// >/////// >+// >+// 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 >+{ >+ import org.apache.flex.core.ValuesManager; >+ import org.apache.flex.html.beads.IAccordionCollapseBead; >+ >+ >+ /** >+ * The Accordion class used to display a list of collapsible >components >+ * All but the selected item are expected to be collapsed. >+ * >+ * @langversion 3.0 >+ * @playerversion Flash 10.2 >+ * @playerversion AIR 2.6 >+ * @productversion FlexJS 0.0 >+ */ >+ public class Accordion extends List >+ { >+ private var _collapseBead:IAccordionCollapseBead; >+ /** >+ * Constructor. >+ * >+ * @langversion 3.0 >+ * @playerversion Flash 10.2 >+ * @playerversion AIR 2.6 >+ * @productversion FlexJS 0.0 >+ */ >+ public function Accordion() >+ { >+ super(); >+ accordionCollapseBead; // make sure it's initialized >+ } >+ >+ override public function addedToParent():void >+ { >+ super.addedToParent(); >+ if (selectedIndex < 0) >+ { >+ selectedIndex = 0; >+ } >+ } >+ >+ public function get >accordionCollapseBead():IAccordionCollapseBead >+ { >+ if (_collapseBead == null) >+ { >+ var c:Class = >ValuesManager.valuesImpl.getValue(this, >"iAccordionCollapseBead") as Class; >+ if (c) >+ { >+ if (c) >+ { >+ _collapseBead = (new c()) as >IAccordionCollapseBead; >+ addBead(_collapseBead); >+ } >+ } >+ } >+ return _collapseBead; >+ } >+ >+ >+ } >+} > >http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/52a2147a/frameworks/ >projects/HTML/src/main/flex/org/apache/flex/html/beads/AccordionCollapseBe >ad.as >---------------------------------------------------------------------- >diff --git >a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/Accord >ionCollapseBead.as >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/Accord >ionCollapseBead.as >new file mode 100644 >index 0000000..07ec267 >--- /dev/null >+++ >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/Accord >ionCollapseBead.as >@@ -0,0 +1,50 @@ >+package org.apache.flex.html.beads >+{ >+ import org.apache.flex.core.ILayoutChild; >+ import org.apache.flex.core.ISelectionModel; >+ import org.apache.flex.core.IStrand; >+ import org.apache.flex.core.UIBase; >+ import org.apache.flex.events.Event; >+ import org.apache.flex.html.Accordion; >+ import org.apache.flex.html.beads.layouts.IOneFlexibleChildLayout; >+ import org.apache.flex.html.supportClasses.ICollapsible; >+ >+ public class AccordionCollapseBead implements IAccordionCollapseBead >+ { >+ private var _strand:IStrand; >+ private var lastSelectedIndex:int = -1; >+ public function AccordionCollapseBead() >+ { >+ } >+ >+ public function set strand(value:IStrand):void >+ { >+ _strand = value; >+ host.model.addEventListener("selectedIndexChanged", >selectedIndexChangedHandler); >+ } >+ >+ private function get host():Accordion >+ { >+ return _strand as Accordion; >+ } >+ >+ protected function selectedIndexChangedHandler(event:Event):void >+ { >+ var view:IListView = host.view as IListView; >+ var newChild:UIBase = >view.dataGroup.getElementAt(host.selectedIndex) >as UIBase; >+ if (!newChild) >+ { >+ return; >+ } >+ var layout:IOneFlexibleChildLayout = >host.getBeadByType(IOneFlexibleChildLayout) as IOneFlexibleChildLayout; >+ if (lastSelectedIndex > -1) >+ { >+ var lastElement:ICollapsible = >view.dataGroup.getItemRendererForIndex(lastSelectedIndex) as ICollapsible; >+ (lastElement as ILayoutChild).height = >lastElement.collapsedHeight; >+ } >+ lastSelectedIndex = host.selectedIndex; >+ layout.flexibleChild = newChild.id; >+ layout.layout(); >+ } >+ } >+} >\ No newline at end of file > >http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/52a2147a/frameworks/ >projects/HTML/src/main/flex/org/apache/flex/html/beads/AccordionView.as >---------------------------------------------------------------------- >diff --git >a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/Accord >ionView.as >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/Accord >ionView.as >new file mode 100644 >index 0000000..656ca72 >--- /dev/null >+++ >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/Accord >ionView.as >@@ -0,0 +1,47 @@ >+package org.apache.flex.html.beads >+{ >+ import org.apache.flex.core.UIBase; >+ import org.apache.flex.core.ValuesManager; >+ import org.apache.flex.events.Event; >+ import org.apache.flex.html.beads.layouts.IOneFlexibleChildLayout; >+ >+ public class AccordionView extends ListView >+ { >+ private var _layout:IOneFlexibleChildLayout; >+ public function AccordionView() >+ { >+ super(); >+ } >+ >+ override protected function >selectionChangeHandler(event:Event):void >+ { >+ super.selectionChangeHandler(event); >+ var renderer:UIBase = >dataGroup.getItemRendererForIndex(listModel.selectedIndex) as UIBase; >+ layout.flexibleChild = renderer.id; >+ } >+ >+ public function get layout():IOneFlexibleChildLayout >+ { >+ if (!_layout) >+ { >+ _layout = >_strand.getBeadByType(IOneFlexibleChildLayout) as >IOneFlexibleChildLayout; >+ if (!_layout) { >+ var c:Class = >ValuesManager.valuesImpl.getValue(host, >"iBeadLayout"); >+ if (c) { >+ _layout = new c() as >IOneFlexibleChildLayout; >+ _strand.addBead(_layout); >+ } >+ } >+ } >+ return _layout; >+ } >+ >+ override protected function performLayout(event:Event):void >+ { >+ if (layout && layout.flexibleChild) >+ { >+ super.performLayout(event); >+ } >+ } >+ } >+} >\ No newline at end of file > >http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/52a2147a/frameworks/ >projects/HTML/src/main/flex/org/apache/flex/html/beads/IAccordionCollapseB >ead.as >---------------------------------------------------------------------- >diff --git >a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/IAccor >dionCollapseBead.as >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/IAccor >dionCollapseBead.as >new file mode 100644 >index 0000000..ff0c740 >--- /dev/null >+++ >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/IAccor >dionCollapseBead.as >@@ -0,0 +1,27 @@ >+///////////////////////////////////////////////////////////////////////// >/////// >+// >+// 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 >+{ >+ import org.apache.flex.core.IBead; >+ >+ public interface IAccordionCollapseBead extends IBead >+ { >+ >+ } >+} >\ No newline at end of file > >http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/52a2147a/frameworks/ >projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/Accordi >onItemRendererMouseController.as >---------------------------------------------------------------------- >diff --git >a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/contro >llers/AccordionItemRendererMouseController.as >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/contro >llers/AccordionItemRendererMouseController.as >new file mode 100644 >index 0000000..fc771a3 >--- /dev/null >+++ >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/contro >llers/AccordionItemRendererMouseController.as >@@ -0,0 +1,43 @@ >+package org.apache.flex.html.beads.controllers >+{ >+ import org.apache.flex.core.IBeadController; >+ import org.apache.flex.core.IStrand; >+ import org.apache.flex.events.ItemClickedEvent; >+ import org.apache.flex.events.MouseEvent; >+ import org.apache.flex.html.supportClasses.AccordionItemRenderer; >+ >+ public class AccordionItemRendererMouseController implements >IBeadController >+ { >+ private var _strand:IStrand; >+ >+ public function AccordionItemRendererMouseController() >+ { >+ } >+ >+ private function get >accordionItemRenderer():AccordionItemRenderer >+ { >+ return _strand as AccordionItemRenderer; >+ } >+ >+ public function get strand():IStrand >+ { >+ return _strand; >+ } >+ >+ public function set strand(value:IStrand):void >+ { >+ _strand = value; >+ >accordionItemRenderer.titleBar.addEventListener(MouseEvent.CLICK, >titleBarClickHandler); >+ } >+ >+ protected function titleBarClickHandler(event:MouseEvent):void >+ { >+ var newEvent:ItemClickedEvent = new >ItemClickedEvent("itemClicked"); >+ newEvent.data = accordionItemRenderer.data; >+ newEvent.multipleSelection = event.shiftKey; >+ newEvent.index = accordionItemRenderer.index; >+ >+ accordionItemRenderer.dispatchEvent(newEvent); >+ } >+ } >+} >\ No newline at end of file > >http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/52a2147a/frameworks/ >projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/IOneFlexibl >eChildLayout.as >---------------------------------------------------------------------- >diff --git >a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layout >s/IOneFlexibleChildLayout.as >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layout >s/IOneFlexibleChildLayout.as >new file mode 100644 >index 0000000..0cfe527 >--- /dev/null >+++ >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layout >s/IOneFlexibleChildLayout.as >@@ -0,0 +1,38 @@ >+///////////////////////////////////////////////////////////////////////// >/////// >+// >+// 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; >+ >+ /** >+ * IOneFlexibleChildLayout will flex one of the children to take up >+ * the space remaining in a container after the rest of the elements >+ * have been laid out according to CSS layout rules. >+ * >+ * @langversion 3.0 >+ * @playerversion Flash 10.2 >+ * @playerversion AIR 2.6 >+ * @productversion FlexJS 0.0 >+ */ >+ public interface IOneFlexibleChildLayout extends IBeadLayout >+ { >+ function get flexibleChild():String; >+ function set flexibleChild(value:String):void; >+ } >+} > >http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/52a2147a/frameworks/ >projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexible >ChildHorizontalLayout.as >---------------------------------------------------------------------- >diff --git >a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layout >s/OneFlexibleChildHorizontalLayout.as >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layout >s/OneFlexibleChildHorizontalLayout.as >index aedc3dc..ff09b9c 100644 >--- >a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layout >s/OneFlexibleChildHorizontalLayout.as >+++ >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layout >s/OneFlexibleChildHorizontalLayout.as >@@ -18,7 +18,6 @@ > >////////////////////////////////////////////////////////////////////////// >////// > 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; >@@ -26,13 +25,11 @@ package org.apache.flex.html.beads.layouts > 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.CSSContainerUtils; > import org.apache.flex.utils.CSSUtils; >- import org.apache.flex.utils.CSSContainerUtils; > > /** > * The OneFlexibleChildHorizontalLayout class is a simple layout >@@ -47,7 +44,7 @@ package org.apache.flex.html.beads.layouts > * @playerversion AIR 2.6 > * @productversion FlexJS 0.0 > */ >- public class OneFlexibleChildHorizontalLayout implements IBeadLayout, >IDocument >+ public class OneFlexibleChildHorizontalLayout implements >IOneFlexibleChildLayout, IDocument > { > /** > * Constructor. >@@ -62,15 +59,7 @@ package org.apache.flex.html.beads.layouts > } > > >- /** >- * 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 _flexibleChild:String; > > private var actualChild:ILayoutChild; > >@@ -85,6 +74,27 @@ package org.apache.flex.html.beads.layouts > */ > private var document:Object; > >+ /** >+ * The id of the flexible child >+ * >+ * @langversion 3.0 >+ * @playerversion Flash 10.2 >+ * @playerversion AIR 2.6 >+ * @productversion FlexJS 0.0 >+ */ >+ public function get flexibleChild():String >+ { >+ return _flexibleChild; >+ } >+ >+ /** >+ * @private >+ */ >+ public function set flexibleChild(value:String):void >+ { >+ _flexibleChild = value; >+ } >+ > /** > * @copy org.apache.flex.core.IBead#strand > * > >http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/52a2147a/frameworks/ >projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexible >ChildVerticalLayout.as >---------------------------------------------------------------------- >diff --git >a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layout >s/OneFlexibleChildVerticalLayout.as >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layout >s/OneFlexibleChildVerticalLayout.as >index 3e964d2..2688eee 100644 >--- >a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layout >s/OneFlexibleChildVerticalLayout.as >+++ >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layout >s/OneFlexibleChildVerticalLayout.as >@@ -18,7 +18,6 @@ > >////////////////////////////////////////////////////////////////////////// >////// > 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; >@@ -29,9 +28,8 @@ package org.apache.flex.html.beads.layouts > 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.CSSContainerUtils; >+ import org.apache.flex.utils.CSSContainerUtils; > > /** > * The OneFlexibleChildVerticalLayout class is a simple layout >@@ -46,7 +44,7 @@ package org.apache.flex.html.beads.layouts > * @playerversion AIR 2.6 > * @productversion FlexJS 0.0 > */ >- public class OneFlexibleChildVerticalLayout implements IBeadLayout, >IDocument >+ public class OneFlexibleChildVerticalLayout implements >IOneFlexibleChildLayout, IDocument > { > /** > * Constructor. >@@ -61,15 +59,7 @@ package org.apache.flex.html.beads.layouts > } > > >- /** >- * 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 _flexibleChild:String; > > private var actualChild:ILayoutChild; > >@@ -84,6 +74,27 @@ package org.apache.flex.html.beads.layouts > */ > private var document:Object; > >+ /** >+ * The id of the flexible child >+ * >+ * @langversion 3.0 >+ * @playerversion Flash 10.2 >+ * @playerversion AIR 2.6 >+ * @productversion FlexJS 0.0 >+ */ >+ public function get flexibleChild():String >+ { >+ return _flexibleChild; >+ } >+ >+ /** >+ * @private >+ */ >+ public function set flexibleChild(value:String):void >+ { >+ _flexibleChild = value; >+ } >+ > /** > * @copy org.apache.flex.core.IBead#strand > * >@@ -143,6 +154,20 @@ package org.apache.flex.html.beads.layouts > _maxHeight = value; > } > >+ // TODO get rid of this >+ private function getActualChildById(contentView:IParentIUIBase, >id:String):ILayoutChild >+ { >+ var result:ILayoutChild; >+ for (var i:int = 0; i < contentView.numElements; i++) >+ { >+ var child:UIBase = contentView.getElementAt(i) >as UIBase; >+ if (child.id == id) >+ { >+ return child; >+ } >+ } >+ return null; >+ } > /** > * @copy org.apache.flex.core.IBeadLayout#layout > */ >@@ -151,7 +176,13 @@ package org.apache.flex.html.beads.layouts > var layoutParent:ILayoutHost = (host as >ILayoutParent).getLayoutHost(); > var contentView:IParentIUIBase = layoutParent ? >layoutParent.contentView : IParentIUIBase(host); > var padding:Rectangle = >CSSContainerUtils.getPaddingMetrics(host); >- actualChild = document[flexibleChild]; >+ if (document && document.hasOwnProperty(flexibleChild)) >+ { >+ actualChild = document[flexibleChild]; >+ } else >+ { >+ actualChild = getActualChildById(contentView, >flexibleChild); >+ } > > var ilc:ILayoutChild; > var n:int = contentView.numElements; > >http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/52a2147a/frameworks/ >projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/AccordionI >temRenderer.as >---------------------------------------------------------------------- >diff --git >a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClass >es/AccordionItemRenderer.as >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClass >es/AccordionItemRenderer.as >new file mode 100644 >index 0000000..dab8efb >--- /dev/null >+++ >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClass >es/AccordionItemRenderer.as >@@ -0,0 +1,129 @@ >+package org.apache.flex.html.supportClasses >+{ >+ import org.apache.flex.core.IChild; >+ import org.apache.flex.core.ISelectableItemRenderer; >+ import org.apache.flex.core.IStrand; >+ import org.apache.flex.core.ITitleBarModel; >+ import org.apache.flex.html.Panel; >+ import org.apache.flex.html.TitleBar; >+ import org.apache.flex.html.beads.PanelView; >+ >+ public class AccordionItemRenderer extends Panel implements >ISelectableItemRenderer, ICollapsible >+ { >+ private var _index:int; >+ private var _selected:Boolean; >+ >+ public function AccordionItemRenderer() >+ { >+ super(); >+ percentWidth = 100; >+ addBead(new ClippingViewport()); >+ } >+ >+ public function get selected():Boolean >+ { >+ return _selected; >+ } >+ >+ public function set selected(value:Boolean):void >+ { >+ _selected = value; >+ } >+ >+ public function get index():int >+ { >+ return _index; >+ } >+ >+ public function set index(value:int):void >+ { >+ _index = value; >+ id = "item" + index; >+ } >+ >+ public function get labelField():String >+ { >+ return null; >+ } >+ >+ public function set labelField(value:String):void >+ { >+ } >+ >+ public function get hovered():Boolean >+ { >+ return false; >+ } >+ >+ public function set hovered(value:Boolean):void >+ { >+ } >+ >+ public function get down():Boolean >+ { >+ return false; >+ } >+ >+ public function set down(value:Boolean):void >+ { >+ } >+ >+ public function get data():Object >+ { >+ return numElements > 0 ? getElementAt(0) : null; >+ } >+ >+ public function set data(value:Object):void >+ { >+ while (numElements > 0) >+ { >+ removeElement(getElementAt(0)); >+ } >+ addElement(value as IChild); >+ var dataAsStrand:IStrand = value as IStrand; >+ if (dataAsStrand) >+ { >+ var dataTitleModel:ITitleBarModel = >dataAsStrand.getBeadByType(ITitleBarModel) as ITitleBarModel; >+ if (dataTitleModel) >+ { >+ titleBar.model = dataTitleModel; >+ } >+ } >+ } >+ >+ public function get listData():Object >+ { >+ return null; >+ } >+ >+ public function set listData(value:Object):void >+ { >+ } >+ >+ public function get itemRendererParent():Object >+ { >+ return null; >+ } >+ >+ public function set itemRendererParent(value:Object):void >+ { >+ } >+ >+ public function get titleBar():TitleBar >+ { >+ return (getBeadByType(PanelView) as PanelView).titleBar; >+ } >+ >+ public function get collapsedHeight():Number >+ { >+ return titleBar ? titleBar.height : NaN; >+ } >+ >+ public function get collapsedWidth():Number >+ { >+ // TODO Auto Generated method stub >+ return 0; >+ } >+ >+ } >+} >\ No newline at end of file > >http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/52a2147a/frameworks/ >projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ICollapsib >le.as >---------------------------------------------------------------------- >diff --git >a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClass >es/ICollapsible.as >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClass >es/ICollapsible.as >new file mode 100644 >index 0000000..b53d112 >--- /dev/null >+++ >b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClass >es/ICollapsible.as >@@ -0,0 +1,8 @@ >+package org.apache.flex.html.supportClasses >+{ >+ public interface ICollapsible >+ { >+ function get collapsedHeight():Number; >+ function get collapsedWidth():Number; >+ } >+} >\ No newline at end of file > >http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/52a2147a/frameworks/ >projects/HTML/src/main/resources/basic-manifest.xml >---------------------------------------------------------------------- >diff --git >a/frameworks/projects/HTML/src/main/resources/basic-manifest.xml >b/frameworks/projects/HTML/src/main/resources/basic-manifest.xml >index 7919e14..6efa895 100644 >--- a/frameworks/projects/HTML/src/main/resources/basic-manifest.xml >+++ b/frameworks/projects/HTML/src/main/resources/basic-manifest.xml >@@ -43,6 +43,7 @@ > <component id="RadioButton" >class="org.apache.flex.html.RadioButton"/> > <component id="ComboBox" class="org.apache.flex.html.ComboBox"/> > <component id="Container" class="org.apache.flex.html.Container"/> >+ <component id="Accordion" class="org.apache.flex.html.Accordion"/> > <component id="Form" class="org.apache.flex.html.Form"/> > <component id="HContainer" class="org.apache.flex.html.HContainer"/> > <component id="VContainer" class="org.apache.flex.html.VContainer"/> >@@ -70,6 +71,7 @@ > <component id="Slider" class="org.apache.flex.html.Slider"/> > <component id="NumericStepper" >class="org.apache.flex.html.NumericStepper" /> > <component id="StringItemRenderer" >class="org.apache.flex.html.supportClasses.StringItemRenderer"/> >+ <component id="AccordionItemRenderer" >class="org.apache.flex.html.supportClasses.AccordionItemRenderer"/> > <component id="TreeItemRenderer" >class="org.apache.flex.html.supportClasses.TreeItemRenderer"/> > <component id="DataItemRenderer" >class="org.apache.flex.html.supportClasses.DataItemRenderer"/> > <component id="MXMLItemRenderer" >class="org.apache.flex.html.supportClasses.MXMLItemRenderer"/> > >http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/52a2147a/frameworks/ >projects/HTML/src/main/resources/defaults.css >---------------------------------------------------------------------- >diff --git a/frameworks/projects/HTML/src/main/resources/defaults.css >b/frameworks/projects/HTML/src/main/resources/defaults.css >index 6c20cc0..1a40bac 100644 >--- a/frameworks/projects/HTML/src/main/resources/defaults.css >+++ b/frameworks/projects/HTML/src/main/resources/defaults.css >@@ -226,20 +226,37 @@ VContainer > > List > { >- IBeadModel: >ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel"); >- IBeadView: ClassReference("org.apache.flex.html.beads.ListView"); > >- IBeadController: >ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelection >MouseController"); >- IBeadLayout: >ClassReference("org.apache.flex.html.beads.layouts.VerticalLayout"); >- IContentView: >ClassReference("org.apache.flex.html.supportClasses.DataGroup"); >- IDataProviderItemRendererMapper: >ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForArray >Data"); >- IItemRendererClassFactory: >ClassReference("org.apache.flex.core.ItemRendererClassFactory"); >- IItemRenderer: >ClassReference("org.apache.flex.html.supportClasses.StringItemRenderer"); >+ IBeadModel: >ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel"); >+ IBeadView: ClassReference("org.apache.flex.html.beads.ListView"); > >+ IBeadController: >ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelection >MouseController"); >+ IBeadLayout: >ClassReference("org.apache.flex.html.beads.layouts.VerticalLayout"); >+ IContentView: >ClassReference("org.apache.flex.html.supportClasses.DataGroup"); >+ IDataProviderItemRendererMapper: >ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForArray >Data"); >+ IItemRendererClassFactory: >ClassReference("org.apache.flex.core.ItemRendererClassFactory"); >+ IItemRenderer: >ClassReference("org.apache.flex.html.supportClasses.StringItemRenderer"); > IViewport: >ClassReference("org.apache.flex.html.supportClasses.ScrollingViewport"); > IViewportModel: >ClassReference("org.apache.flex.html.beads.models.ViewportModel"); > border-style: solid; > border-color: #222222; > } > >+Accordion >+{ >+ IBeadModel: >ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel"); >+ IBeadView: >ClassReference("org.apache.flex.html.beads.AccordionView"); >+ IBeadController: >ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelection >MouseController"); >+ IBeadLayout: >ClassReference("org.apache.flex.html.beads.layouts.OneFlexibleChildVertica >lLayout"); >+ IContentView: >ClassReference("org.apache.flex.html.supportClasses.DataGroup"); >+ IDataProviderItemRendererMapper: >ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForArray >Data"); >+ IItemRendererClassFactory: >ClassReference("org.apache.flex.core.ItemRendererClassFactory"); >+ IItemRenderer: >ClassReference("org.apache.flex.html.supportClasses.AccordionItemRenderer" >); >+ IViewport: >ClassReference("org.apache.flex.html.supportClasses.ScrollingViewport"); >+ IViewportModel: >ClassReference("org.apache.flex.html.beads.models.ViewportModel"); >+ IAccordionCollapseBead: >ClassReference("org.apache.flex.html.beads.AccordionCollapseBead"); >+ border-style: solid; >+ border-color: #222222; >+} >+ > Tree > { > IBeadModel: >ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel"); >@@ -317,6 +334,11 @@ StringItemRenderer > height: 16; > } > >+AccordionItemRenderer >+{ >+ IBeadController: >ClassReference("org.apache.flex.html.beads.controllers.AccordionItemRender >erMouseController"); >+} >+ > TreeItemRenderer > { > IBeadController: >ClassReference("org.apache.flex.html.beads.controllers.ItemRendererMouseCo >ntroller"); >