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/04/13 08:31:31 UTC
[royale-asjs] branch develop updated: jewel-tablecolumn: accept %
columnWidths
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 35b5a9e jewel-tablecolumn: accept % columnWidths
35b5a9e is described below
commit 35b5a9e660c6abcf5ee52e9e081dbdfb7bf05482
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Mon Apr 13 10:31:26 2020 +0200
jewel-tablecolumn: accept % columnWidths
---
...verridableSelectableItemRendererClassFactory.as | 16 +--
.../jewel/supportClasses/table/TableColumn.as | 123 ++++++++++++++++++++-
2 files changed, 124 insertions(+), 15 deletions(-)
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/OverridableSelectableItemRendererClassFactory.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/OverridableSelectableItemRendererClassFactory.as
index 841f367..cb1265b 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/OverridableSelectableItemRendererClassFactory.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/OverridableSelectableItemRendererClassFactory.as
@@ -18,13 +18,7 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.core
{
-
- import org.apache.royale.core.ClassFactory;
- import org.apache.royale.core.IFactory;
- import org.apache.royale.core.IItemRendererProvider;
import org.apache.royale.core.ISelectableItemRenderer;
-
- import org.apache.royale.utils.MXMLDataInterpreter;
import org.apache.royale.utils.getSelectionRenderBead;
[DefaultProperty("mxmlContent")]
@@ -38,7 +32,7 @@ package org.apache.royale.core
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
- * @productversion Royale 0.0
+ * @productversion Royale 0.9.7
*/
public class OverridableSelectableItemRendererClassFactory extends ItemRendererClassFactory
{
@@ -48,7 +42,7 @@ package org.apache.royale.core
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
- * @productversion Royale 0.0
+ * @productversion Royale 0.9.7
*/
public function OverridableSelectableItemRendererClassFactory()
{
@@ -61,7 +55,7 @@ package org.apache.royale.core
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
- * @productversion Royale 0.0
+ * @productversion Royale 0.9.7
* @royaleignorecoercion Class
*/
override public function set strand(value:IStrand):void
@@ -78,7 +72,7 @@ package org.apache.royale.core
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
- * @productversion Royale 0.0
+ * @productversion Royale 0.9.7
*/
override public function createItemRenderer():IItemRenderer
{
@@ -89,7 +83,7 @@ package org.apache.royale.core
selectionBead = new selectableBeadClass();
COMPILE::JS
{
- ir["_selectionBead_"] = selectionBead;
+ ir["_selectionBead_"] = selectionBead;
}
ir.addBead(selectionBead);
}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TableColumn.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TableColumn.as
index 51c5d44..5ee04fb 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TableColumn.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/table/TableColumn.as
@@ -62,9 +62,78 @@ package org.apache.royale.jewel.supportClasses.table
{
_itemRenderer = value;
}
+
+ protected var _explicitColumnWidth:Number;
+ /**
+ * The explicitly set columnWidth
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.7
+ */
+ public function get explicitColumnWidth():Number
+ {
+ return _explicitColumnWidth;
+ }
+ /**
+ * @private
+ */
+ public function set explicitColumnWidth(value:Number):void
+ {
+ if (_explicitColumnWidth == value)
+ return;
+
+ // width can be pixel or percent not both
+ if (!isNaN(value))
+ _percentColumnWidth = NaN;
+
+ _explicitColumnWidth = value;
+ // sendEvent(this,"explicitColumnWidthChanged");
+ }
+
+ protected var _percentColumnWidth:Number = NaN;
+ /**
+ * The requested percentage width this component
+ * should have in the parent container. Note that
+ * the actual percentage may be different if the
+ * total is more than 100% or if there are other
+ * components with explicitly set widths.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.7
+ */
+ public function get percentColumnWidth():Number
+ {
+ return _percentColumnWidth;
+ }
+ /**
+ * @private
+ */
+ public function set percentColumnWidth(value:Number):void
+ {
+ COMPILE::SWF {
+ if (_percentColumnWidth == value)
+ return;
+
+ if (!isNaN(value))
+ _explicitColumnWidth = NaN;
+
+ _percentColumnWidth = value;
+ }
+ COMPILE::JS {
+ this._percentColumnWidth = value;
+
+ // this.positioner.style.width = value.toString() + '%';
+ if (!isNaN(value))
+ this._explicitColumnWidth = NaN;
+ }
+ // sendEvent(this,"percentColumnWidthChanged");
+ }
- private var _columnWidth:Number = Number.NaN;
-
+ protected var _columnWidth:Number = NaN;
/**
* The width of the column (default is 100 pixels).
*
@@ -72,15 +141,61 @@ package org.apache.royale.jewel.supportClasses.table
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion Royale 0.9.4
+ * @royaleignorecoercion String
*/
+ [Bindable("columnWidthChanged")]
+ [PercentProxy("percentColumnWidth")]
public function get columnWidth():Number
{
- return _columnWidth;
+ if (!isNaN(_columnWidth))
+ return _columnWidth;
+ // if (!isNaN(_explicitColumnWidth))
+ return _explicitColumnWidth;
+ // var pixels:Number;
+ // var strpixels:String = element.style.width as String;
+ // if(strpixels == null)
+ // pixels = NaN;
+ // else
+ // pixels = CSSUtils.toNumber(strpixels,NaN);
+ // if (isNaN(pixels)) {
+ // pixels = positioner.offsetWidth;
+ // if (pixels == 0 && positioner.scrollWidth != 0) {
+ // // invisible child elements cause offsetWidth to be 0.
+ // pixels = positioner.scrollWidth;
+ // }
+ // }
+ // return pixels;
}
public function set columnWidth(value:Number):void
{
- _columnWidth = value;
+ if (explicitColumnWidth !== value)
+ {
+ explicitColumnWidth = value;
+ }
+
+ setColumnWidth(value);
}
+
+ /**
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.7
+ */
+ public function setColumnWidth(value:Number, noEvent:Boolean = false):void
+ {
+ if (_columnWidth !== value)
+ {
+ _columnWidth = value;
+
+ // COMPILE::JS
+ // {
+ // this.positioner.style.width = value.toString() + 'px';
+ // }
+ // if (!noEvent)
+ // sendEvent(this,"columnWidthChanged");
+ }
+ }
private var _label:String;