This is an automated email from the ASF dual-hosted git repository. aharui pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit f1948e931d6303572f6ac29b9c854ff9c9c60e45 Author: Alex Harui <[email protected]> AuthorDate: Wed Feb 19 12:58:45 2020 -0800 ASDoc runs again --- .../ASDoc/src/main/royale/ASDocMainView.mxml | 15 +++- ...gBackgroundColorHashAnchorStringItemRenderer.as | 32 ++++++- .../projects/Basic/src/main/royale/BasicClasses.as | 2 +- ...ingBackgroundColorSelectableItemRendererBead.as | 9 +- .../beads/ListOwnerViewItemRendererInitializer.as | 97 ++++++++++++++++++++++ 5 files changed, 149 insertions(+), 6 deletions(-) diff --git a/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml b/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml index 64a20b3..9798c59 100644 --- a/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml +++ b/examples/royale/ASDoc/src/main/royale/ASDocMainView.mxml @@ -247,6 +247,8 @@ limitations under the License. margin-left: 20px; margin-right: 20px; border-style: solid; + IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListOwnerViewItemRendererInitializer"); + IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); /* AltBGRenderer installs its own selection bead*/ } .HashAnchorAnchor { @@ -310,11 +312,18 @@ limitations under the License. margin-bottom: 3px; } + .inheritanceList { + IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.IndexedItemRendererInitializer"); + IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); /* no selection */ + } + .summaryList { margin-bottom: 20px; border-style: solid; - } - + IItemRendererInitializer: ClassReference("org.apache.royale.html.beads.ListOwnerViewItemRendererInitializer"); + IItemRendererClassFactory: ClassReference("org.apache.royale.core.ItemRendererClassFactory"); /* AltBGRenderer installs its own selection bead*/ + } + .detailList { margin-bottom: 20px; } @@ -477,7 +486,7 @@ limitations under the License. <js:HorizontalLayout /> </js:beads> <js:Label className="detailCaption" text="Inheritance" /> - <js:List className="detailInfo" id="inheritance" dataProvider="{ASDocModel(applicationModel).inheritance}" + <js:List className="inheritanceList" id="inheritance" dataProvider="{ASDocModel(applicationModel).inheritance}" itemRenderer="OptionalHashAnchorStringItemRenderer" labelField="label"> <js:beads> <js:HorizontalLayout /> diff --git a/examples/royale/ASDoc/src/main/royale/AlternatingBackgroundColorHashAnchorStringItemRenderer.as b/examples/royale/ASDoc/src/main/royale/AlternatingBackgroundColorHashAnchorStringItemRenderer.as index 5b2de9f..f54a180 100644 --- a/examples/royale/ASDoc/src/main/royale/AlternatingBackgroundColorHashAnchorStringItemRenderer.as +++ b/examples/royale/ASDoc/src/main/royale/AlternatingBackgroundColorHashAnchorStringItemRenderer.as @@ -18,7 +18,10 @@ //////////////////////////////////////////////////////////////////////////////// package { +import org.apache.royale.core.IOwnerViewItemRenderer; +import org.apache.royale.core.IItemRendererOwnerView; import org.apache.royale.html.beads.AlternatingBackgroundColorSelectableItemRendererBead; +import org.apache.royale.events.Event; /** * The AlternatingBackgroundColorHashAnchorItemRenderer class displays data in string form using the data's toString() @@ -30,7 +33,7 @@ import org.apache.royale.html.beads.AlternatingBackgroundColorSelectableItemRend * @playerversion AIR 2.6 * @productversion Royale 0.0 */ - public class AlternatingBackgroundColorHashAnchorStringItemRenderer extends HashAnchorStringItemRenderer + public class AlternatingBackgroundColorHashAnchorStringItemRenderer extends HashAnchorStringItemRenderer implements IOwnerViewItemRenderer { /** * constructor. @@ -44,6 +47,33 @@ import org.apache.royale.html.beads.AlternatingBackgroundColorSelectableItemRend { addBead(new AlternatingBackgroundColorSelectableItemRendererBead()); } + + [Bindable("dataChange")] + override public function set data(value:Object):void + { + super.data = value; + dispatchEvent(new Event("dataChange")); + } + + private var _itemRendererOwnerView:IItemRendererOwnerView; + + /** + * The text of the renderer + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9.4 + */ + public function get itemRendererOwnerView():IItemRendererOwnerView + { + return _itemRendererOwnerView; + } + + public function set itemRendererOwnerView(value:IItemRendererOwnerView):void + { + _itemRendererOwnerView = value; + } } } diff --git a/frameworks/projects/Basic/src/main/royale/BasicClasses.as b/frameworks/projects/Basic/src/main/royale/BasicClasses.as index 2f89a5a..6cb3eb7 100644 --- a/frameworks/projects/Basic/src/main/royale/BasicClasses.as +++ b/frameworks/projects/Basic/src/main/royale/BasicClasses.as @@ -116,7 +116,7 @@ internal class BasicClasses import org.apache.royale.html.beads.models.BinaryImageModel; BinaryImageModel; import org.apache.royale.html.beads.ListView; ListView; - import org.apache.royale.html.beads.ListItemRendererInitializer; ListItemRendererInitializer; + import org.apache.royale.html.beads.ListOwnerViewItemRendererInitializer; ListOwnerViewItemRendererInitializer; import org.apache.royale.html.beads.TreeItemRendererInitializer; TreeItemRendererInitializer; import org.apache.royale.html.beads.MultiSelectionListView; MultiSelectionListView; diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlternatingBackgroundColorSelectableItemRendererBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlternatingBackgroundColorSelectableItemRendererBead.as index 73ffb88..d8f182f 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlternatingBackgroundColorSelectableItemRendererBead.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/AlternatingBackgroundColorSelectableItemRendererBead.as @@ -24,6 +24,7 @@ package org.apache.royale.html.beads import org.apache.royale.utils.CSSUtils; import org.apache.royale.core.IIndexedItemRenderer; import org.apache.royale.core.IOwnerViewItemRenderer; +import org.apache.royale.core.ItemRendererOwnerViewBead; import org.apache.royale.core.ISelectionModel; import org.apache.royale.core.ISelectableItemRenderer; import org.apache.royale.core.IStrand; @@ -108,7 +109,13 @@ public class AlternatingBackgroundColorSelectableItemRendererBead extends Select private function dataChangeHandler(event:Event):void { var ir:IIndexedItemRenderer = _strand as IIndexedItemRenderer; - var owner:IStrandWithModel = (ir as IOwnerViewItemRenderer).itemRendererOwnerView.host as IStrandWithModel; + var owner:IStrandWithModel; + if (ir is IOwnerViewItemRenderer) + owner = (ir as IOwnerViewItemRenderer).itemRendererOwnerView.host as IStrandWithModel; + else + { + owner = (ir.getBeadByType(ItemRendererOwnerViewBead) as ItemRendererOwnerViewBead).ownerView.host as IStrandWithModel; + } var model:ISelectionModel = owner.model as ISelectionModel; if (model.selectedIndex == ir.index) { diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListOwnerViewItemRendererInitializer.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListOwnerViewItemRendererInitializer.as new file mode 100644 index 0000000..2188f2f --- /dev/null +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ListOwnerViewItemRendererInitializer.as @@ -0,0 +1,97 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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.royale.html.beads +{ + import org.apache.royale.core.IItemRendererOwnerView; + import org.apache.royale.core.IOwnerViewItemRenderer; + import org.apache.royale.core.ItemRendererOwnerViewBead; + + import org.apache.royale.core.Bead; + import org.apache.royale.core.IDataProviderModel; + import org.apache.royale.core.IIndexedItemRenderer; + import org.apache.royale.core.IIndexedItemRendererInitializer; + import org.apache.royale.core.IItemRenderer; + import org.apache.royale.core.ILabelFieldItemRenderer; + import org.apache.royale.core.IStrand; + import org.apache.royale.core.IStrandWithModelView; + import org.apache.royale.core.IUIBase; + import org.apache.royale.core.SimpleCSSStyles; + import org.apache.royale.core.UIBase; + + /** + * The ListItemRendererInitializer class initializes item renderers + * in list classes. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.0 + */ + public class ListOwnerViewItemRendererInitializer extends ListItemRendererInitializer + { + /** + * constructor. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.0 + */ + public function ListOwnerViewItemRendererInitializer() + { + } + + protected var ownerView:IItemRendererOwnerView; + + /** + * @copy org.apache.royale.core.IBead#strand + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.0 + * @royaleignorecoercion HTMLInputElement + * @royaleignorecoercion org.apache.royale.core.UIBase; + */ + override public function set strand(value:IStrand):void + { + super.strand = value; + ownerView = (_strand as IStrandWithModelView).view as IItemRendererOwnerView; + } + + /** + * @private + * @royaleignorecoercion org.apache.royale.core.HTMLElementWrapper + */ + override public function initializeIndexedItemRenderer(ir:IIndexedItemRenderer, data:Object, index:int):void + { + super.initializeIndexedItemRenderer(ir, data, index); + if (ownerView) + { + if (ir is IOwnerViewItemRenderer) + (ir as IOwnerViewItemRenderer).itemRendererOwnerView = ownerView; + else + { + ir.addBead(new ItemRendererOwnerViewBead(ownerView)); + } + } + } + + } +}
