You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2020/03/10 20:52:34 UTC
[royale-asjs] branch develop updated: jewel-tabbar: star using
basic DataItemRendererFactoryForCollectionView and create its own
TabBarItemRendererInitializer
This is an automated email from the ASF dual-hosted git repository.
carlosrovira pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/develop by this push:
new 48fcb6b jewel-tabbar: star using basic DataItemRendererFactoryForCollectionView and create its own TabBarItemRendererInitializer
48fcb6b is described below
commit 48fcb6b68ddd8e2484e2b836ab80e0fa9a8ab4e5
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Tue Mar 10 21:52:22 2020 +0100
jewel-tabbar: star using basic DataItemRendererFactoryForCollectionView and create its own TabBarItemRendererInitializer
---
.../src/main/royale/TabBarPlayGround.mxml | 7 +-
.../projects/Jewel/src/main/resources/defaults.css | 4 +-
.../projects/Jewel/src/main/royale/JewelClasses.as | 2 +
.../main/royale/org/apache/royale/jewel/TabBar.as | 3 +
.../itemRenderers/TabBarItemRendererInitializer.as | 90 ++++++++++++++++++++++
.../apache/royale/jewel/beads/views/ListView.as | 4 +-
.../Jewel/src/main/sass/components/_tabbar.sass | 4 +-
7 files changed, 106 insertions(+), 8 deletions(-)
diff --git a/examples/royale/TourDeJewel/src/main/royale/TabBarPlayGround.mxml b/examples/royale/TourDeJewel/src/main/royale/TabBarPlayGround.mxml
index b25b29d..bdef0e7 100644
--- a/examples/royale/TourDeJewel/src/main/royale/TabBarPlayGround.mxml
+++ b/examples/royale/TourDeJewel/src/main/royale/TabBarPlayGround.mxml
@@ -180,10 +180,13 @@ limitations under the License.
<j:GridCell desktopNumerator="1" desktopDenominator="1" tabletNumerator="1" tabletDenominator="1" phoneNumerator="1" phoneDenominator="1">
<j:Card>
<j:CardHeader>
- <html:H3 text="Jewel TabBar"/>
+ <html:H3 text="rowHeight"/>
</j:CardHeader>
<j:CardPrimaryContent>
- <j:TabBar>
+ <j:Label multiline="true">
+ <j:html><![CDATA[By default <b>TabBar</b> doesn't set <i>rowHeight</i>. This one set it to 60, so all renders has that height.]]></j:html>
+ </j:Label>
+ <j:TabBar rowHeight="60">
<j:beads>
<js:ConstantBinding sourcePropertyName="tabBarDataSample"
destinationPropertyName="dataProvider"/>
diff --git a/frameworks/projects/Jewel/src/main/resources/defaults.css b/frameworks/projects/Jewel/src/main/resources/defaults.css
index 1d99389..69d8523 100644
--- a/frameworks/projects/Jewel/src/main/resources/defaults.css
+++ b/frameworks/projects/Jewel/src/main/resources/defaults.css
@@ -3676,12 +3676,12 @@ j|TabBar {
IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.NullLayout");
IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory");
IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.TabBarButtonItemRenderer");
- IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer");
+ IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.TabBarItemRendererInitializer");
ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListSelectableItemRendererBead");
IViewport: ClassReference("org.apache.royale.jewel.supportClasses.Viewport");
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
IBeadModel: ClassReference("org.apache.royale.jewel.beads.models.ArrayListSelectionModel");
- IDataProviderItemRendererMapper: ClassReference("org.apache.royale.jewel.beads.itemRenderers.DataItemRendererFactoryForCollectionView");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForCollectionView");
}
.jewel.tabbarbutton {
diff --git a/frameworks/projects/Jewel/src/main/royale/JewelClasses.as b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
index e2dd391..827b1e8 100644
--- a/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
+++ b/frameworks/projects/Jewel/src/main/royale/JewelClasses.as
@@ -133,7 +133,9 @@ package
import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListSelectableItemRendererBead; ClassSelectorListSelectableItemRendererBead;
import org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListHoverOnlySelectableItemRendererBead; ClassSelectorListHoverOnlySelectableItemRendererBead;
+
import org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer; JewelListItemRendererInitializer;
+ import org.apache.royale.jewel.beads.itemRenderers.TabBarItemRendererInitializer; TabBarItemRendererInitializer;
}
}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/TabBar.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/TabBar.as
index 8ee4774..514bf5d 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/TabBar.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/TabBar.as
@@ -56,6 +56,9 @@ package org.apache.royale.jewel
//TabBar is always selected, so selectedIndex can't be -1, at least it will default to 0
ISelectionModel(model).selectedIndex = 0;
+ // rowHeight is not set byt default, so set it to NaN
+ rowHeight = NaN;
+
addEventListener(MouseEvent.CLICK, internalMouseHandler);
}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TabBarItemRendererInitializer.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TabBarItemRendererInitializer.as
new file mode 100644
index 0000000..932f36c
--- /dev/null
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/TabBarItemRendererInitializer.as
@@ -0,0 +1,90 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.jewel.beads.itemRenderers
+{
+ import org.apache.royale.core.IIndexedItemRenderer;
+ import org.apache.royale.core.IIndexedItemRendererInitializer;
+ import org.apache.royale.core.IItemRendererOwnerView;
+ import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.IStrandWithModelView;
+ import org.apache.royale.core.IStrandWithPresentationModel;
+ import org.apache.royale.core.StyledMXMLItemRenderer;
+ import org.apache.royale.core.UIBase;
+ import org.apache.royale.html.beads.IndexedItemRendererInitializer;
+ import org.apache.royale.jewel.supportClasses.list.IListPresentationModel;
+
+ /**
+ * The TabBarItemRendererInitializer class initializes item renderers
+ * in list classes.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.7
+ */
+ public class TabBarItemRendererInitializer extends IndexedItemRendererInitializer implements IIndexedItemRendererInitializer
+ {
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.7
+ */
+ public function TabBarItemRendererInitializer()
+ {
+ }
+
+ protected var presentationModel:IListPresentationModel;
+ private var ownerView:IItemRendererOwnerView;
+
+ /**
+ * @copy org.apache.royale.core.IBead#strand
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.7
+ * @royaleignorecoercion HTMLInputElement
+ * @royaleignorecoercion org.apache.royale.core.UIBase;
+ */
+ override public function set strand(value:IStrand):void
+ {
+ super.strand = value;
+ ownerView = (value as IStrandWithModelView).view as IItemRendererOwnerView;
+ presentationModel = (_strand as IStrandWithPresentationModel).presentationModel as IListPresentationModel;
+ }
+
+ override protected function setupVisualsForItemRenderer(ir:IIndexedItemRenderer):void
+ {
+ if (presentationModel) {
+ UIBase(ir).height = presentationModel.rowHeight;
+
+ if(ir is IAlignItemRenderer)
+ {
+ (ir as IAlignItemRenderer).align = presentationModel.align;
+ }
+ }
+ if (ir is StyledMXMLItemRenderer && ownerView)
+ (ir as StyledMXMLItemRenderer).itemRendererOwnerView = ownerView;
+ }
+
+ }
+}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as
index b8f3723..e48a6cc 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/ListView.as
@@ -18,10 +18,10 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.jewel.beads.views
{
+ import org.apache.royale.core.IItemRenderer;
import org.apache.royale.core.IItemRendererOwnerView;
import org.apache.royale.core.ILayoutView;
import org.apache.royale.core.IRollOverModel;
- import org.apache.royale.core.IItemRenderer;
import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.ISelectionModel;
import org.apache.royale.core.IStrand;
@@ -59,8 +59,8 @@ package org.apache.royale.jewel.beads.views
override public function set strand(value:IStrand):void
{
super.strand = value;
-
}
+
private var _dataGroup:IItemRendererOwnerView;
/**
* @royaleignorecoercion org.apache.royale.core.IItemRendererOwnerView
diff --git a/frameworks/projects/Jewel/src/main/sass/components/_tabbar.sass b/frameworks/projects/Jewel/src/main/sass/components/_tabbar.sass
index 38151e4..02859d9 100644
--- a/frameworks/projects/Jewel/src/main/sass/components/_tabbar.sass
+++ b/frameworks/projects/Jewel/src/main/sass/components/_tabbar.sass
@@ -53,12 +53,12 @@ j|TabBar
IBeadLayout: ClassReference("org.apache.royale.jewel.beads.layouts.NullLayout")
IItemRendererClassFactory: ClassReference("org.apache.royale.core.SelectableItemRendererClassFactory")
IItemRenderer: ClassReference("org.apache.royale.jewel.itemRenderers.TabBarButtonItemRenderer")
- IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.JewelListItemRendererInitializer")
+ IItemRendererInitializer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.TabBarItemRendererInitializer")
ISelectableItemRenderer: ClassReference("org.apache.royale.jewel.beads.itemRenderers.ClassSelectorListSelectableItemRendererBead")
IViewport: ClassReference("org.apache.royale.jewel.supportClasses.Viewport")
IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel")
IBeadModel: ClassReference("org.apache.royale.jewel.beads.models.ArrayListSelectionModel")
- IDataProviderItemRendererMapper: ClassReference("org.apache.royale.jewel.beads.itemRenderers.DataItemRendererFactoryForCollectionView")
+ IDataProviderItemRendererMapper: ClassReference("org.apache.royale.html.beads.DataItemRendererFactoryForCollectionView")
// Jewel TabBarButtonItemRenderer
$tabbarbutton-margin: 0 !default