You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by pi...@apache.org on 2019/09/10 04:49:58 UTC
[royale-asjs] 01/04: some refactoring and exposing more protected
members to allow overriding from MXRoyale
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 <ah...@apache.org>
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);