Repository: flex-asjs Updated Branches: refs/heads/develop a006bbe89 -> be86f911b
- Expose from model selectedIndex in Tabs - in order to gives ability to select specified TabBarPanel at start up - Update MDL example with selectedIndex Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/be86f911 Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/be86f911 Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/be86f911 Branch: refs/heads/develop Commit: be86f911bc72b30430263e4958e833128fe1fb12 Parents: a006bbe Author: piotrz <[email protected]> Authored: Sun Jan 8 13:56:24 2017 +0100 Committer: piotrz <[email protected]> Committed: Sun Jan 8 13:56:24 2017 +0100 ---------------------------------------------------------------------- .../flexjs/MDLExample/src/main/flex/Tabs.mxml | 6 ++-- .../src/main/flex/org/apache/flex/mdl/Tabs.as | 31 +++++++++++++++++++- .../org/apache/flex/mdl/beads/views/TabsView.as | 24 +++++++++++++-- 3 files changed, 55 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/be86f911/examples/flexjs/MDLExample/src/main/flex/Tabs.mxml ---------------------------------------------------------------------- diff --git a/examples/flexjs/MDLExample/src/main/flex/Tabs.mxml b/examples/flexjs/MDLExample/src/main/flex/Tabs.mxml index 29e17fc..54058ce 100644 --- a/examples/flexjs/MDLExample/src/main/flex/Tabs.mxml +++ b/examples/flexjs/MDLExample/src/main/flex/Tabs.mxml @@ -29,7 +29,7 @@ limitations under the License. <mdl:Grid> <mdl:GridCell column="1" percentWidth="100"> - <mdl:Tabs width="400" tabIdField="tabId" labelField="label" className="customTabBarPanelItemRenderer"> + <mdl:Tabs width="400" selectedIndex="0" tabIdField="tabId" labelField="label" className="customTabBarPanelItemRenderer"> <mdl:beads> <js:ConstantBinding sourceID="tabsModel" @@ -38,7 +38,7 @@ limitations under the License. </mdl:beads> </mdl:Tabs> </mdl:GridCell> - <mdl:GridCell column="1" percentWidth="100"> + <mdl:GridCell column="1" percentWidth="100"> <mdl:NavigationLayout width="600"> <mdl:Header> <mdl:TabBar selectedIndex="0" tabIdField="tabId" labelField="label" className="customTabBarSetup"> @@ -64,7 +64,7 @@ limitations under the License. </js:Ul> </mdl:TabBarPanel> - <mdl:TabBarPanel id="lannisters_panel" isActive="true"> + <mdl:TabBarPanel id="lannisters_panel"> <js:Ul> <js:Li><js:Label text="Tywin"/></js:Li> <js:Li><js:Label text="Cersei"/></js:Li> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/be86f911/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Tabs.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Tabs.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Tabs.as index a5d0a75..4f64e8d 100644 --- a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Tabs.as +++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Tabs.as @@ -58,6 +58,14 @@ package org.apache.flex.mdl className = ""; //set to empty string avoid 'undefined' output when no class selector is assigned by user; } + /** + * @copy org.apache.flex.core.IDataProviderModel#dataProvider + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ public function get dataProvider():Object { return ITabModel(model).dataProvider; @@ -66,7 +74,15 @@ package org.apache.flex.mdl { ITabModel(model).dataProvider = value; } - + + /** + * @copy org.apache.flex.mdl.beads.models.ITabModel#tabIdField + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ public function get tabIdField():String { return ITabModel(model).tabIdField; @@ -77,6 +93,14 @@ package org.apache.flex.mdl ITabModel(model).tabIdField = value; } + /** + * @copy org.apache.flex.core.IDataProviderModel#labelField + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ public function get labelField():String { return ITabModel(model).labelField; @@ -86,6 +110,11 @@ package org.apache.flex.mdl ITabModel(model).labelField = value; } + public function set selectedIndex(value:int):void + { + ITabModel(model).selectedIndex = value; + } + public function getLayoutHost():ILayoutHost { return this; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/be86f911/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/views/TabsView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/views/TabsView.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/views/TabsView.as index 5619f28..4126569 100644 --- a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/views/TabsView.as +++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/views/TabsView.as @@ -23,6 +23,8 @@ package org.apache.flex.mdl.beads.views import org.apache.flex.events.Event; import org.apache.flex.core.IStrand; import org.apache.flex.mdl.TabBar; + import org.apache.flex.mdl.TabBarPanel; + import org.apache.flex.mdl.supportClasses.ITabItemRenderer; /** * The TabsView class creates the visual elements of the org.apache.flex.mdl.Tabs @@ -76,12 +78,30 @@ package org.apache.flex.mdl.beads.views host.addEventListener("initComplete", initCompleteHandler); } - private function initCompleteHandler(event:Event):void { host.removeEventListener("initComplete", initCompleteHandler); - + + completeSetup(); + } + + protected function completeSetup():void + { (host as IContentViewHost).strandChildren.addElementAt(tabBar, 0); + + selectTabBarPanel(); + } + + private function selectTabBarPanel():void + { + if (listModel.selectedIndex < 0 ) return; + + var indexElementAfterTabBar:int = listModel.selectedIndex + 1; + var tabBarPanel:Object = (host as IContentViewHost).strandChildren.getElementAt(indexElementAfterTabBar); + if (tabBarPanel is ITabItemRenderer || tabBarPanel is TabBarPanel) + { + tabBarPanel.isActive = true; + } } } }
