This is an automated email from the ASF dual-hosted git repository. piotrz pushed a commit to branch release/0.9.6 in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 8138df8e067451a39834f5e4c4acd46ec9e2d6a8 Author: Alex Harui <[email protected]> AuthorDate: Thu Sep 5 10:33:24 2019 -0700 some refactoring and exposing more protected members to allow overriding from MXRoyale (cherry picked from commit 9b59370bf86448ba3cfaed7f5c518ebd389d9429) --- frameworks/projects/Basic/src/main/resources/defaults.css | 3 +++ .../main/royale/org/apache/royale/html/beads/DataGridView.as | 12 +++++++++--- .../html/beads/VirtualDataItemRendererFactoryForArrayData.as | 2 +- .../org/apache/royale/html/beads/layouts/DataGridLayout.as | 12 ++++++++---- .../royale/html/beads/layouts/VirtualListVerticalLayout.as | 10 +++++----- 5 files changed, 26 insertions(+), 13 deletions(-) diff --git a/frameworks/projects/Basic/src/main/resources/defaults.css b/frameworks/projects/Basic/src/main/resources/defaults.css index 967a39d..3d082e3 100644 --- a/frameworks/projects/Basic/src/main/resources/defaults.css +++ b/frameworks/projects/Basic/src/main/resources/defaults.css @@ -134,6 +134,9 @@ DataGrid IBeadModel: ClassReference("org.apache.royale.html.beads.models.DataGridModel"); IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.DataGridLayout"); columnClass: ClassReference("org.apache.royale.html.supportClasses.DataGridColumnList"); + columnContainerClass: ClassReference("org.apache.royale.html.DataGridButtonBar"); + columnLayoutClass: ClassReference("org.apache.royale.html.beads.layouts.ButtonBarLayout"); + listAreaClass: ClassReference("org.apache.royale.html.beads.DataGridListArea"); background-color: #FFFFFF; border: 1px solid #222222; diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as index 2bce4a9..b2d37f8 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataGridView.as @@ -117,19 +117,25 @@ package org.apache.royale.html.beads IEventDispatcher(sharedModel).addEventListener("dataProviderChanged",handleDataProviderChanged); IEventDispatcher(sharedModel).addEventListener("selectedIndexChanged", handleSelectedIndexChanged); - _header = new DataGridButtonBar(); + var columnContainerClass:Class = ValuesManager.valuesImpl.getValue(host, "columnContainerClass") as Class; + assert(columnContainerClass != null,"columnContainerClass for DataGrid must be set!") + _header = new columnContainerClass() as DataGridButtonBar; // header's height is set in CSS _header.percentWidth = 100; _header.dataProvider = sharedModel.columns; _header.labelField = "label"; sharedModel.headerModel = _header.model as IBeadModel; - _listArea = new DataGridListArea(); + var listAreaClass:Class = ValuesManager.valuesImpl.getValue(host, "listAreaClass") as Class; + assert(listAreaClass != null,"listAreaClass for DataGrid must be set!") + _listArea = new listAreaClass() as DataGridListArea; _listArea.percentWidth = 100; createLists(); - var bblayout:ButtonBarLayout = new ButtonBarLayout(); + var columnLayoutClass:Class = ValuesManager.valuesImpl.getValue(host, "columnLayoutClass") as Class; + assert(columnLayoutClass != null,"columnLayoutClass for DataGrid must be set!") + var bblayout:ButtonBarLayout = new columnLayoutClass() as ButtonBarLayout; _header.addBead(bblayout as IBead); _header.addBead(new Viewport() as IBead); host.strandChildren.addElement(_header as IChild); diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as index 3aeaa44..811daf1 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/VirtualDataItemRendererFactoryForArrayData.as @@ -186,7 +186,7 @@ package org.apache.royale.html.beads delete rendererMap[index]; } - private var rendererMap:Object = {}; + protected var rendererMap:Object = {}; /** * Get an item renderer for a given index. diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/DataGridLayout.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/DataGridLayout.as index f586943..ae55038 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/DataGridLayout.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/DataGridLayout.as @@ -150,20 +150,24 @@ package org.apache.royale.html.beads.layouts bbmodel.buttonWidths = columnWidths; - header.x = borderMetrics.left; - header.y = borderMetrics.top; COMPILE::SWF { + header.y = borderMetrics.top; + header.x = borderMetrics.left; header.width = useWidth; } COMPILE::JS { (header as UIBase).percentWidth = 100; listArea.element.style.position = "absolute"; + if (!(uiHost.element.style.position == 'absolute' || + uiHost.element.style.position == 'relative' || + uiHost.element.style.position == 'fixed')) + uiHost.element.style.position = 'relative'; } // header's height is set in CSS - listArea.x = borderMetrics.left; - listArea.y = header.height + header.y; + listArea.y = header.height + header.y; COMPILE::SWF { + listArea.x = borderMetrics.left; listArea.width = useWidth; } COMPILE::JS { diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/VirtualListVerticalLayout.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/VirtualListVerticalLayout.as index d6842fd..02a17e0 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/VirtualListVerticalLayout.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/VirtualListVerticalLayout.as @@ -91,14 +91,14 @@ package org.apache.royale.html.beads.layouts } COMPILE::JS - private var topSpacer:HTMLDivElement; + protected var topSpacer:HTMLDivElement; COMPILE::JS - private var bottomSpacer:HTMLDivElement; + protected var bottomSpacer:HTMLDivElement; - private var visibleIndexes:Array = []; + protected var visibleIndexes:Array = []; - private function scrollHandler(e:Event):void + protected function scrollHandler(e:Event):void { layout(); } @@ -374,7 +374,7 @@ package org.apache.royale.html.beads.layouts } COMPILE::SWF - private function sizeAndPositionRenderer(ir:ISelectableItemRenderer, xpos:Number, ypos:Number, hostWidth:Number, hostHeight:Number):void + protected function sizeAndPositionRenderer(ir:ISelectableItemRenderer, xpos:Number, ypos:Number, hostWidth:Number, hostHeight:Number):void { var ilc:ILayoutChild; var positions:Object = childPositions(ir);
