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