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));
+                               }
+                       }                       
+        }
+
+       }
+}

Reply via email to