You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by yi...@apache.org on 2019/10/10 21:40:56 UTC

[royale-asjs] branch mx_list_item_renderer updated: Add controller.

This is an automated email from the ASF dual-hosted git repository.

yishayw pushed a commit to branch mx_list_item_renderer
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/mx_list_item_renderer by this push:
     new d762ca5  Add controller.
d762ca5 is described below

commit d762ca59c3ba700531307767841bbf010e1efeee
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Fri Oct 11 00:39:33 2019 +0300

    Add controller.
    
    Reference #475
---
 .../SparkRoyale/src/main/resources/defaults.css    |  1 +
 .../src/main/royale/SparkRoyaleClasses.as          |  1 +
 .../beads/controllers/TabBarController.as          | 96 ++++++++++++++++++++++
 3 files changed, 98 insertions(+)

diff --git a/frameworks/projects/SparkRoyale/src/main/resources/defaults.css b/frameworks/projects/SparkRoyale/src/main/resources/defaults.css
index bcaa8cd..f2ef2fc 100644
--- a/frameworks/projects/SparkRoyale/src/main/resources/defaults.css
+++ b/frameworks/projects/SparkRoyale/src/main/resources/defaults.css
@@ -171,6 +171,7 @@ TabBar
 	IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
 	IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
 	IContentView: ClassReference("spark.components.NonVirtualHDataGroup");
+	IBeadController: ClassReference("spark.components.beads.controllers.TabBarController")
 }
 
 TextArea
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/SparkRoyaleClasses.as b/frameworks/projects/SparkRoyale/src/main/royale/SparkRoyaleClasses.as
index 2c8e1cf..ada155b 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/SparkRoyaleClasses.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/SparkRoyaleClasses.as
@@ -79,6 +79,7 @@ internal class SparkRoyaleClasses
     import spark.components.beads.SkinnableContainerView; SkinnableContainerView;
     import spark.components.beads.DropDownListView; DropDownListView;
     import spark.components.beads.controllers.DropDownListController; DropDownListController;
+    import spark.components.beads.controllers.TabBarController; TabBarController;
 	
 }
 
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/controllers/TabBarController.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/controllers/TabBarController.as
new file mode 100644
index 0000000..8df824a
--- /dev/null
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/controllers/TabBarController.as
@@ -0,0 +1,96 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 spark.components.beads.controllers
+{
+
+
+import org.apache.royale.core.IBead;
+import org.apache.royale.core.IBeadController;
+import org.apache.royale.core.ISelectionModel;
+import org.apache.royale.core.IStrand;
+import org.apache.royale.core.IUIBase;
+import org.apache.royale.core.UIBase;
+import org.apache.royale.events.Event;
+import org.apache.royale.events.IEventDispatcher;
+import org.apache.royale.events.MouseEvent;
+import org.apache.royale.utils.PointUtils;
+
+import mx.core.UIComponent;
+import mx.collections.IList;
+import mx.core.ISelectableList;
+import org.apache.royale.core.IContentView;
+import org.apache.royale.core.IParent;
+import org.apache.royale.core.IChild;
+import org.apache.royale.html.List;
+import spark.components.supportClasses.ListBase;
+import spark.components.supportClasses.SkinnableComponent;
+import org.apache.royale.core.IViewport;
+import org.apache.royale.core.IStrandWithModel;
+
+/**
+ *  @private
+ *  The controller for Spark TabBar.
+ * 
+ */
+    public class TabBarController implements IBeadController
+    {
+        // NOTE:  this is a copy of Basic DropDownListController but the Basic one is SWF-only
+        
+        
+        private var _strand:IStrand;
+        
+        /**
+         *  @copy org.apache.royale.core.IBead#strand
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.7
+         */
+        public function set strand(value:IStrand):void
+        {
+            _strand = value;
+            var eventDispatcher:IEventDispatcher = (_strand.getBeadByType(IViewport) as IViewport).contentView as IEventDispatcher;
+            eventDispatcher.addEventListener("itemsCreated", handleDataProviderChanged);
+        }
+        
+        private function clickHandler(event:org.apache.royale.events.MouseEvent):void
+        {
+            var parent:IParent = (event.target as IChild).parent;
+            var index:int = parent.getElementIndex(event.target as IChild);
+            var list:IList = (_strand as ListBase).dataProvider;
+            if (list is ISelectableList)
+            {
+                (list as ISelectableList).selectedIndex = index;
+            }
+        }
+        
+
+        private function handleDataProviderChanged(event:Event):void
+        {
+            var parent:IParent = (_strand.getBeadByType(IViewport) as IViewport).contentView as IParent;
+            for (var i:int = 0; i < parent.numElements; i++)
+            {
+                IEventDispatcher(parent.getElementAt(i)).addEventListener(org.apache.royale.events.MouseEvent.CLICK, clickHandler);
+            }
+        }
+    }
+
+}