You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2019/12/28 08:00:03 UTC
[royale-asjs] branch adg_grouped updated (19391b2 -> f067828)
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a change to branch adg_grouped
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git.
from 19391b2 grouped columns appear in the right places. Next is to improve the visuals
new aaa0363 set svg to absolute. The parent should be absolute already
new c9e47f3 special case some html
new 8e958c3 fix measuring text
new f067828 grouped headers look better
The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../MXRoyale/src/main/resources/defaults.css | 7 ++++
.../beads/AdvancedDataGridHeaderLayout.as | 5 ++-
.../AdvancedDataGridHeaderRenderer.as | 38 ++++++++++++++++++----
.../src/main/royale/mx/core/UITextField.as | 19 +++++++++--
.../src/main/royale/mx/core/UITextFormat.as | 14 ++++++--
.../src/main/royale/mx/display/Graphics.as | 1 +
6 files changed, 70 insertions(+), 14 deletions(-)
[royale-asjs] 01/04: set svg to absolute. The parent should be
absolute already
Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch adg_grouped
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit aaa03633fca805f232276d8c6ea751ce7139b2c7
Author: Alex Harui <ah...@apache.org>
AuthorDate: Fri Dec 27 23:58:28 2019 -0800
set svg to absolute. The parent should be absolute already
---
frameworks/projects/MXRoyale/src/main/royale/mx/display/Graphics.as | 1 +
1 file changed, 1 insertion(+)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/display/Graphics.as b/frameworks/projects/MXRoyale/src/main/royale/mx/display/Graphics.as
index 7caee4f..fe41889 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/display/Graphics.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/display/Graphics.as
@@ -64,6 +64,7 @@ package mx.display
svg = document.createElementNS("http://www.w3.org/2000/svg", "svg") as HTMLElement;
svg.setAttribute("width", displayObject.width.toString() + "px");
svg.setAttribute("height", displayObject.height.toString() + "px");
+ svg.style.position = "absolute";
element.appendChild(svg);
}
}
[royale-asjs] 02/04: special case some html
Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch adg_grouped
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit c9e47f3744d3174e40b04e3df3722466d41420c1
Author: Alex Harui <ah...@apache.org>
AuthorDate: Fri Dec 27 23:59:02 2019 -0800
special case some html
---
.../MXRoyale/src/main/royale/mx/core/UITextFormat.as | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/UITextFormat.as b/frameworks/projects/MXRoyale/src/main/royale/mx/core/UITextFormat.as
index 2dc5b17..1ce581a 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/core/UITextFormat.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/core/UITextFormat.as
@@ -570,10 +570,18 @@ public class UITextFormat extends TextFormat
if (sm.measuringElement == null)
{
sm.measuringElement = document.createElement("span") as HTMLSpanElement;
- sm.measuringElement.style.position = "float"; // to try to keep it from affecting position of other elements
- sm.measuringElement.style.display = "none"; // to try to keep it hidden
+ //everything else is absolute position so should be above this element
+ //sm.measuringElement.style.position = "float"; // to try to keep it from affecting position of other elements
+ // offsetWidth/Height not computed for display: none
+ //sm.measuringElement.style.display = "none"; // to try to keep it hidden
+ sm.measuringElement.style.opacity = 0;
+ sm.measuringElement.style["pointer-events"] = "none";
+ sm.element.appendChild(sm.measuringElement);
}
- sm.measuringElement.text = s;
+ if (s.indexOf(" ") >= 0)
+ sm.measuringElement.innerHTML = s;
+ else
+ sm.measuringElement.textContent = s;
var tlm:TextLineMetrics = new TextLineMetrics();
tlm.width = sm.measuringElement.offsetWidth;
tlm.height = sm.measuringElement.offsetHeight;
[royale-asjs] 03/04: fix measuring text
Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch adg_grouped
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 8e958c36d614d3c92a22e06c4a44a95634a94067
Author: Alex Harui <ah...@apache.org>
AuthorDate: Fri Dec 27 23:59:15 2019 -0800
fix measuring text
---
.../MXRoyale/src/main/royale/mx/core/UITextField.as | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/UITextField.as b/frameworks/projects/MXRoyale/src/main/royale/mx/core/UITextField.as
index 90068fc..3e74a0d 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/core/UITextField.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/core/UITextField.as
@@ -38,6 +38,7 @@ import flash.text.TextLineMetrics;
import mx.styles.IStyleManager2;
import mx.utils.StringUtil;
+ import org.apache.royale.core.TextLineMetrics;
import org.apache.royale.events.Event;
COMPILE::JS
@@ -459,6 +460,8 @@ public class UITextField extends UIComponent implements IUITextField
dispatchEvent(new Event("textFieldWidthChange")); */
}
+ private var usingHTML:Boolean;
+
//----------------------------------
// htmlText
//----------------------------------
@@ -666,6 +669,9 @@ public class UITextField extends UIComponent implements IUITextField
*/
public function set htmlText(value:String):void
{
+ lineMetrics = null;
+ usingHTML = true;
+
COMPILE::SWF
{
ITextModel(model).html = value;
@@ -747,6 +753,9 @@ public class UITextField extends UIComponent implements IUITextField
*/
public function set text(value:String):void
{
+ lineMetrics = null;
+ usingHTML = false;
+
COMPILE::SWF
{
ITextModel(model).text = value;
@@ -2982,14 +2991,20 @@ public class UITextField extends UIComponent implements IUITextField
return true;
}
+ private var lineMetrics:TextLineMetrics;
+
public function get textWidth():Number
{
- return width;
+ if (!lineMetrics)
+ lineMetrics = getUITextFormat().measureText(usingHTML ? htmlText : text);
+ return lineMetrics.width;
}
public function get textHeight():Number
{
- return height;
+ if (!lineMetrics)
+ lineMetrics = getUITextFormat().measureText(usingHTML ? htmlText : text);
+ return lineMetrics.height;
}
public function get wordWrap():Boolean
[royale-asjs] 04/04: grouped headers look better
Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch adg_grouped
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit f067828d760f8a31153051308b362e0d64402ba8
Author: Alex Harui <ah...@apache.org>
AuthorDate: Fri Dec 27 23:59:49 2019 -0800
grouped headers look better
---
.../MXRoyale/src/main/resources/defaults.css | 7 ++++
.../beads/AdvancedDataGridHeaderLayout.as | 5 ++-
.../AdvancedDataGridHeaderRenderer.as | 38 ++++++++++++++++++----
3 files changed, 41 insertions(+), 9 deletions(-)
diff --git a/frameworks/projects/MXRoyale/src/main/resources/defaults.css b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
index f07e80a..4e5cbbc 100644
--- a/frameworks/projects/MXRoyale/src/main/resources/defaults.css
+++ b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
@@ -79,6 +79,13 @@ adg|AdvancedDataGridButtonBar {
position: absolute;
}
+adg|AdvancedDataGridHeaderRenderer {
+ horizontalAlign: center;
+ vertical-align: middle;
+ border: 1px solid #222222;
+ font-weight: bold;
+}
+
AdvancedDataGrid
{
alternatingItemColors: #F7F7F7, #FFFFFF;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/AdvancedDataGridHeaderLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/AdvancedDataGridHeaderLayout.as
index 8d3ffc3..2697cc6 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/AdvancedDataGridHeaderLayout.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/AdvancedDataGridHeaderLayout.as
@@ -142,15 +142,14 @@ public class AdvancedDataGridHeaderLayout extends LayoutBase
}
COMPILE::JS {
- // otherwise let the flexbox layout handle matters on its own.
+ if (!host.isHeightSizedToContent())
+ ilc.height = contentView.height;
if (buttonWidths) {
var widthValue:* = buttonWidths[i];
if (widthValue != null) ilc.width = Number(widthValue);
ilc.x = xx;
xx += ilc.width;
}
- if (!host.isHeightSizedToContent())
- ilc.height = contentView.height;
}
}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridHeaderRenderer.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridHeaderRenderer.as
index 2dac500..cb0b5b4 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridHeaderRenderer.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridHeaderRenderer.as
@@ -189,6 +189,8 @@ public class AdvancedDataGridHeaderRenderer extends UIComponent implements IData
public function AdvancedDataGridHeaderRenderer()
{
super();
+
+ typeNames = "AdvancedDataGridHeaderRenderer";
// InteractiveObject variables.
tabEnabled = false;
@@ -311,7 +313,7 @@ public class AdvancedDataGridHeaderRenderer extends UIComponent implements IData
_data = value;
var col:AdvancedDataGridColumn = (value as AdvancedDataGridColumn);
- var ld:AdvancedDataGridListData = new AdvancedDataGridListData(col.headerText != null ? col.headerText : col.dataField,
+ var ld:AdvancedDataGridListData = new AdvancedDataGridListData(getColumnLabel(col),
col.dataField,
col.colNum, "", col.owner);
listData = ld;
@@ -321,6 +323,17 @@ public class AdvancedDataGridHeaderRenderer extends UIComponent implements IData
dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
}
+
+ private function getColumnLabel(col:DataGridColumn):String
+ {
+ var label:String = col.headerText != null ? col.headerText : col.dataField;
+ COMPILE::JS
+ {
+ if (label)
+ label = label.replace(" ", " ");
+ }
+ return label;
+ }
//----------------------------------
// sortItemRenderer
@@ -431,6 +444,8 @@ public class AdvancedDataGridHeaderRenderer extends UIComponent implements IData
private var childHeaders:DataGridButtonBar;
+ private var usingHTML:Boolean;
+
/**
* @private
* Apply the data and listData.
@@ -486,7 +501,14 @@ public class AdvancedDataGridHeaderRenderer extends UIComponent implements IData
if (_data != null)
{
- label.text = listData.label ? listData.label : " ";
+ var lbl:String = listData.label ? listData.label : " ";
+ if (lbl.indexOf(" ") >= 0)
+ {
+ label.htmlText = lbl;
+ usingHTML = true;
+ }
+ else
+ label.text = lbl;
// label.multiline = grid.variableRowHeight;
// if( _data is AdvancedDataGridColumn)
// label.wordWrap = grid.columnHeaderWordWrap(_data as AdvancedDataGridColumn);
@@ -593,7 +615,7 @@ public class AdvancedDataGridHeaderRenderer extends UIComponent implements IData
}
else
{
- var lineMetrics:TextLineMetrics = measureText(label.text);
+ var lineMetrics:TextLineMetrics = measureText(usingHTML ? label.htmlText : label.text);
labelWidth = lineMetrics.width + UITextField.TEXT_WIDTH_PADDING;
labelHeight = lineMetrics.height + UITextField.TEXT_HEIGHT_PADDING;
w = labelWidth + horizontalGap
@@ -649,7 +671,7 @@ public class AdvancedDataGridHeaderRenderer extends UIComponent implements IData
horizontalGap = 0;
// Adjust to given width
- var lineMetrics:TextLineMetrics = measureText(label.text);
+ var lineMetrics:TextLineMetrics = measureText(usingHTML ? label.htmlText: label.text);
var labelWidth:Number = lineMetrics.width + UITextField.TEXT_WIDTH_PADDING;
var maxLabelWidth:int = unscaledWidth - sortItemRendererWidth
- horizontalGap - paddingLeft - paddingRight;
@@ -701,6 +723,10 @@ public class AdvancedDataGridHeaderRenderer extends UIComponent implements IData
}
labelX = Math.max(labelX, 0);
+ var labelAreaHeight:Number = unscaledHeight;
+ if (childHeaders)
+ labelAreaHeight /= 2;
+
var labelY:Number;
var verticalAlign:String = getStyle("verticalAlign");
if (verticalAlign == "top")
@@ -709,11 +735,11 @@ public class AdvancedDataGridHeaderRenderer extends UIComponent implements IData
}
else if (verticalAlign == "bottom")
{
- labelY = unscaledHeight - labelHeight - paddingBottom + 2; // 2 for gutter
+ labelY = labelAreaHeight - labelHeight - paddingBottom + 2; // 2 for gutter
}
else // if (verticalAlign == "middle")
{
- labelY = (unscaledHeight - labelHeight - paddingBottom - paddingTop)/2
+ labelY = (labelAreaHeight - labelHeight - paddingBottom - paddingTop)/2
+ paddingTop;
}
labelY = Math.max(labelY, 0);