This is an automated email from the ASF dual-hosted git repository.
aharui 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 203f55e get MXTests to pass again. The change to use
ListItemRenderer broke a lot of things. I'm surprised it worked in any
configuration
203f55e is described below
commit 203f55e1006532bb40767300900074cab7b6e58d
Author: Alex Harui <[email protected]>
AuthorDate: Wed Oct 23 12:10:44 2019 -0700
get MXTests to pass again. The change to use ListItemRenderer broke a lot
of things. I'm surprised it worked in any configuration
---
.../org/apache/royale/html/beads/DataGridView.as | 18 +++--
.../org/apache/royale/html/beads/IDataGridView.as | 3 +-
.../org/apache/royale/html/beads/TreeGridView.as | 13 ++--
.../royale/html/beads/layouts/TreeGridLayout.as | 8 +--
.../MXRoyale/src/main/resources/defaults.css | 29 +++++++-
.../src/main/resources/mx-royale-manifest.xml | 2 +
.../MXRoyale/src/main/royale/MXRoyaleClasses.as | 2 +
.../controls/dataGridClasses/DataGridColumnList.as | 79 ++++++++++++++++++++++
.../controls/dataGridClasses/DataGridListArea.as} | 37 +++++-----
.../royale/mx/controls/listClasses/ListBase.as | 2 +-
.../mx/controls/listClasses/ListItemRenderer.as | 63 ++++++++++++++++-
.../src/main/royale/mx/core/UIComponent.as | 18 ++++-
.../src/main/royale/mx/display/Graphics.as | 22 +++---
13 files changed, 239 insertions(+), 57 deletions(-)
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 b2d37f8..7f77b65 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
@@ -23,15 +23,16 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IBeadModel;
import org.apache.royale.core.IBeadView;
import org.apache.royale.core.IChild;
+ import org.apache.royale.core.ILayoutChild;
import org.apache.royale.core.IDataGrid;
import org.apache.royale.core.IDataGridModel;
import org.apache.royale.core.IDataGridPresentationModel;
- import org.apache.royale.core.IUIBase;
+ import org.apache.royale.core.IParent;
+ import org.apache.royale.core.IUIBase;
import org.apache.royale.core.ValuesManager;
import org.apache.royale.debugging.assert;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
- import org.apache.royale.html.Container;
import org.apache.royale.html.DataGridButtonBar;
import org.apache.royale.html.beads.layouts.ButtonBarLayout;
import org.apache.royale.html.supportClasses.IDataGridColumnList;
@@ -65,7 +66,7 @@ package org.apache.royale.html.beads
}
private var _header:DataGridButtonBar;
- private var _listArea:Container;
+ private var _listArea:IUIBase;
private var _lists:Array;
@@ -81,7 +82,7 @@ package org.apache.royale.html.beads
* The area used to hold the columns
*
*/
- public function get listArea():Container
+ public function get listArea():IUIBase
{
return _listArea;
}
@@ -106,6 +107,8 @@ package org.apache.royale.html.beads
* @royaleignorecoercion org.apache.royale.core.IBead
* @royaleignorecoercion
org.apache.royale.core.IBeadModel
* @royaleignorecoercion org.apache.royale.core.IChild
+ * @royaleignorecoercion
org.apache.royale.core.ILayoutChild
+ * @royaleignorecoercion org.apache.royale.core.IUIBase
* @royaleignorecoercion org.apache.royale.html.DataGrid
*/
override protected function
handleInitComplete(event:Event):void
@@ -128,8 +131,8 @@ package org.apache.royale.html.beads
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;
+ _listArea = new listAreaClass() as IUIBase;
+ (_listArea as ILayoutChild).percentWidth = 100;
createLists();
@@ -218,6 +221,7 @@ package org.apache.royale.html.beads
* @royaleignorecoercion
org.apache.royale.core.IDataGridModel
* @royaleignorecoercion org.apache.royale.core.IBead
* @royaleignorecoercion org.apache.royale.core.IChild
+ * @royaleignorecoercion org.apache.royale.core.IParent
* @royaleignorecoercion
org.apache.royale.core.IDataGrid
* @royaleignorecoercion
org.apache.royale.core.IDataGridPresentationModel
* @royaleignorecoercion
org.apache.royale.html.supportClasses.IDataGridColumn
@@ -261,7 +265,7 @@ package org.apache.royale.html.beads
list.addEventListener('change',handleColumnListChange);
list.addBead(presentationModel as
IBead);
- _listArea.addElement(list as IChild);
+ (_listArea as IParent).addElement(list
as IChild);
_lists.push(list);
}
diff --git
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
index 7eeba64..6d56e16 100644
---
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
+++
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
@@ -20,7 +20,6 @@ package org.apache.royale.html.beads
{
import org.apache.royale.core.IBeadView;
import org.apache.royale.core.IUIBase;
- import org.apache.royale.html.Container;
/**
* The IDataGridView interface marks as a component as being the bead
that
@@ -34,7 +33,7 @@ package org.apache.royale.html.beads
public interface IDataGridView extends IBeadView
{
function get columnLists():Array;
- function get listArea():Container;
+ function get listArea():IUIBase;
function get header():IUIBase;
}
}
diff --git
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
index 1a5bb4c..f71e150 100644
---
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
+++
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
@@ -24,6 +24,8 @@ package org.apache.royale.html.beads
import org.apache.royale.core.IDataGridModel;
import org.apache.royale.core.IDataGridPresentationModel;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.core.ILayoutChild;
+ import org.apache.royale.core.IParent;
import org.apache.royale.core.IUIBase;
import org.apache.royale.core.UIBase;
import org.apache.royale.core.ValuesManager;
@@ -31,7 +33,6 @@ package org.apache.royale.html.beads
import org.apache.royale.html.supportClasses.Viewport;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
- import org.apache.royale.html.Container;
import org.apache.royale.html.DataGridButtonBar;
import org.apache.royale.html.List;
import org.apache.royale.html.Tree;
@@ -71,7 +72,7 @@ package org.apache.royale.html.beads
private var _strand:IStrand;
private var _header:DataGridButtonBar;
- private var _listArea:Container;
+ private var _listArea:IUIBase;
private var _lists:Array;
@@ -87,7 +88,7 @@ package org.apache.royale.html.beads
* The area used to hold the columns
*
*/
- public function get listArea():Container
+ public function get listArea():IUIBase
{
return _listArea;
}
@@ -138,6 +139,7 @@ package org.apache.royale.html.beads
/**
* @private
* @royaleignorecoercion org.apache.royale.core.IBeadModel
+ * @royaleignorecoercion org.apache.royale.core.ILayoutChild
* @royaleignorecoercion org.apache.royale.core.IDataGridModel
* @royaleignorecoercion
org.apache.royale.events.IEventDispatcher
* @royaleignorecoercion
org.apache.royale.html.supportClasses.IDataGridColumn
@@ -162,7 +164,7 @@ package org.apache.royale.html.beads
sharedModel.headerModel = _header.model as IBeadModel;
_listArea = new TreeGridListArea();
- _listArea.percentWidth = 100;
+ (_listArea as ILayoutChild).percentWidth = 100;
createColumns();
@@ -258,6 +260,7 @@ package org.apache.royale.html.beads
* @private
* @royaleignorecoercion Class
* @royaleignorecoercion org.apache.royale.core.IDataGridModel
+ * @royaleignorecoercion org.apache.royale.core.IParent
* @royaleignorecoercion
org.apache.royale.html.supportClasses.IDataGridColumn
* @royaleignorecoercion
org.apache.royale.core.IDataGridPresentationModel
*/
@@ -302,7 +305,7 @@ package org.apache.royale.html.beads
column.addBead(new Viewport());
column.addEventListener('change',
handleColumnListChange);
- _listArea.addElement(column);
+ (_listArea as IParent).addElement(column);
_lists.push(column);
}
diff --git
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/TreeGridLayout.as
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/TreeGridLayout.as
index bfa6fb2..d2a132f 100644
---
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/TreeGridLayout.as
+++
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/TreeGridLayout.as
@@ -19,12 +19,12 @@
package org.apache.royale.html.beads.layouts
{
import org.apache.royale.core.IBeadLayout;
- import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
+ import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
import org.apache.royale.core.IStrand;
import org.apache.royale.core.IUIBase;
- import org.apache.royale.core.layout.EdgeData;
import org.apache.royale.core.UIBase;
- import org.apache.royale.core.ValuesManager;
+ import org.apache.royale.core.ValuesManager;
+ import org.apache.royale.core.layout.EdgeData;
import org.apache.royale.events.Event;
import org.apache.royale.events.IEventDispatcher;
import org.apache.royale.geom.Rectangle;
@@ -128,7 +128,7 @@ package org.apache.royale.html.beads.layouts
}
var model:TreeGridModel = uiHost.model as TreeGridModel;
var header:ButtonBar = (uiHost.view as
TreeGridView).header as ButtonBar;
- var contentArea:UIBase = (uiHost.view as
TreeGridView).listArea;
+ var contentArea:UIBase = (uiHost.view as
TreeGridView).listArea as UIBase;
var displayedColumns:Array = (uiHost.view as
TreeGridView).columnLists;
var borderMetrics:EdgeData = (ValuesManager.valuesImpl
as IBorderPaddingMarginValuesImpl).getBorderMetrics(_strand as IUIBase);
diff --git a/frameworks/projects/MXRoyale/src/main/resources/defaults.css
b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
index b66359c..6c246f0 100644
--- a/frameworks/projects/MXRoyale/src/main/resources/defaults.css
+++ b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
@@ -150,6 +150,7 @@ Container
IBeadLayout:
ClassReference("org.apache.royale.html.beads.layouts.BasicLayout");
IViewport:
ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
IViewportModel:
ClassReference("org.apache.royale.html.beads.models.ViewportModel");
+ align-items: flex-start;
}
DataGrid
@@ -159,7 +160,10 @@ DataGrid
IBeadView: ClassReference("org.apache.royale.html.beads.DataGridView");
IBeadModel:
ClassReference("org.apache.royale.html.beads.models.DataGridModel");
IBeadLayout: ClassReference("mx.controls.beads.layouts.DataGridLayout");
- columnClass:
ClassReference("org.apache.royale.html.supportClasses.DataGridColumnList");
+ columnClass:
ClassReference("mx.controls.dataGridClasses.DataGridColumnList");
+ columnContainerClass:
ClassReference("org.apache.royale.html.DataGridButtonBar");
+ columnLayoutClass:
ClassReference("org.apache.royale.html.beads.layouts.ButtonBarLayout");
+ listAreaClass:
ClassReference("mx.controls.dataGridClasses.DataGridListArea");
background-color: #FFFFFF;
border: 1px solid #222222;
@@ -167,6 +171,20 @@ DataGrid
height: 200px;
}
+DataGridColumnList {
+ IBeadModel:
ClassReference("org.apache.royale.html.beads.models.DataGridModel");
+ border-style: none;
+ background-color: #FFFFFF;
+}
+
+DataGridListArea {
+ background-color: #FFFFFF;
+ IBeadLayout:
ClassReference("org.apache.royale.html.beads.layouts.HorizontalLayout");
+ IViewport:
ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
+ IViewportModel:
ClassReference("org.apache.royale.html.beads.models.ViewportModel");
+ flex-grow: 1;
+}
+
DateChooser
{
IBeadView:
ClassReference("org.apache.royale.html.beads.DateChooserView");
@@ -216,6 +234,15 @@ List
IViewportModel:
ClassReference("org.apache.royale.html.beads.models.ViewportModel");
}
+ListItemRenderer
+{
+ padding-top: 4px;
+ padding-bottom: 4px;
+ flex-shrink: 0;
+ flex-grow: 1;
+ cursor: pointer;
+}
+
MenuBar {
IBeadModel: ClassReference("mx.controls.beads.models.MenuBarModel");
IBeadView: ClassReference("org.apache.royale.html.beads.ListView");
diff --git
a/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
b/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
index 5fd17d5..d2932af 100644
--- a/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
+++ b/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
@@ -27,6 +27,8 @@
<component id="ComboBox" class="mx.controls.ComboBox" />
<component id="DataGrid" class="mx.controls.DataGrid" />
<component id="DataGridColumn"
class="mx.controls.dataGridClasses.DataGridColumn" />
+ <component id="DataGridColumnList"
class="mx.controls.dataGridClasses.DataGridColumnList" />
+ <component id="DataGridListArea"
class="mx.controls.dataGridClasses.DataGridListArea" />
<component id="DateChooser" class="mx.controls.DateChooser" />
<component id="Image" class="mx.controls.Image" />
<component id="Label" class="mx.controls.Label" />
diff --git a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
index 19991fd..5216039 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
@@ -160,6 +160,8 @@ internal class MXRoyaleClasses
import mx.controls.advancedDataGridClasses.AdvancedDataGridColumnList;
AdvancedDataGridColumnList;
import mx.controls.advancedDataGridClasses.AdvancedDataGridListArea;
AdvancedDataGridListArea;
import
mx.controls.advancedDataGridClasses.AdvancedDataGridSingleSelectionMouseController;
AdvancedDataGridSingleSelectionMouseController;
+ import mx.controls.dataGridClasses.DataGridColumnList; DataGridColumnList;
+ import mx.controls.dataGridClasses.DataGridListArea; DataGridListArea;
import mx.controls.beads.AdvancedDataGridView; AdvancedDataGridView;
import mx.controls.beads.DataGridView; DataGridView;
import mx.controls.beads.layouts.AdvancedDataGridLayout;
AdvancedDataGridLayout;
diff --git
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridColumnList.as
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridColumnList.as
new file mode 100644
index 0000000..565be0c
--- /dev/null
+++
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridColumnList.as
@@ -0,0 +1,79 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.controls.dataGridClasses
+{
+ import mx.controls.List;
+ import org.apache.royale.html.supportClasses.IDataGridColumnList;
+
+ //--------------------------------------
+ // Events
+ //--------------------------------------
+
+ /**
+ * @copy org.apache.royale.core.ISelectionModel#change
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.0
+ */
+ [Event(name="change", type="org.apache.royale.events.Event")]
+
+ /**
+ * The DataGridColumnList class is the List class used internally
+ * by DataGrid for each column.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.0
+ */
+ public class DataGridColumnList extends List implements IDataGridColumnList
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.0
+ */
+ public function DataGridColumnList()
+ {
+ super();
+ typeNames = "DataGridColumnList";
+ }
+
+ /**
+ * The DataGridColumn for this list
+ *
+ *
+ * @toplevel
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9
+ *
+ * @royalesuppresspublicvarwarning
+ */
+ public var columnInfo: DataGridColumn;
+ }
+
+}
diff --git
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridListArea.as
similarity index 61%
copy from
frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
copy to
frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridListArea.as
index 7eeba64..3e20020 100644
---
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/IDataGridView.as
+++
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridListArea.as
@@ -16,25 +16,22 @@
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.html.beads
+
+package mx.controls.dataGridClasses
{
- import org.apache.royale.core.IBeadView;
- import org.apache.royale.core.IUIBase;
- import org.apache.royale.html.Container;
-
- /**
- * The IDataGridView interface marks as a component as being the bead
that
- * can create the visual pieces for a org.apache.royale.html.DataGrid.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion Royale 0.0
- */
- public interface IDataGridView extends IBeadView
- {
- function get columnLists():Array;
- function get listArea():Container;
- function get header():IUIBase;
- }
+ import mx.core.Container;
+
+ public class DataGridListArea extends Container
+ {
+ public function DataGridListArea()
+ {
+ super();
+ COMPILE::JS
+ {
+ typeNames = 'Container DataGridListArea';
+ }
+
+ }
+ }
+
}
diff --git
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as
index 279b894..ae60a3a 100644
---
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as
+++
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListBase.as
@@ -25,7 +25,6 @@ import mx.collections.IList;
import mx.collections.ListCollectionView;
import mx.collections.XMLListCollection;
import mx.core.EdgeMetrics;
-import mx.core.IFactory;
import mx.core.IUIComponent;
import mx.core.ScrollPolicy;
import mx.core.UIComponent;
@@ -40,6 +39,7 @@ import org.apache.royale.core.IChild;
import org.apache.royale.core.IContainer;
import org.apache.royale.core.IContainerBaseStrandChildrenHost;
import org.apache.royale.core.IDataProviderItemRendererMapper;
+import org.apache.royale.core.IFactory;
import org.apache.royale.core.IItemRendererClassFactory;
import org.apache.royale.core.ILayoutChild;
import org.apache.royale.core.ILayoutHost;
diff --git
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListItemRenderer.as
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListItemRenderer.as
index b6120c5..c59c64e 100644
---
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListItemRenderer.as
+++
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/listClasses/ListItemRenderer.as
@@ -22,18 +22,21 @@ package mx.controls.listClasses
import mx.core.UIComponent;
import mx.events.ListEvent;
-import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
import org.apache.royale.core.IBead;
import org.apache.royale.core.IBeadView;
+import org.apache.royale.core.IBorderPaddingMarginValuesImpl;
import org.apache.royale.core.IChild;
import org.apache.royale.core.IParent;
+import org.apache.royale.core.ISelectableItemRenderer;
import org.apache.royale.core.IStrand;
import org.apache.royale.core.ValuesManager;
import org.apache.royale.core.layout.EdgeData;
import org.apache.royale.events.IEventDispatcher;
+import org.apache.royale.events.ItemClickedEvent;
import org.apache.royale.events.MouseEvent;
import org.apache.royale.html.supportClasses.StringItemRenderer;
import org.apache.royale.html.util.getLabelFromData;
+
COMPILE::SWF
{
import flash.text.TextFieldAutoSize;
@@ -50,7 +53,7 @@ COMPILE::SWF
* @productversion Flex 3
*/
-public class ListItemRenderer extends UIComponent implements IListItemRenderer
+public class ListItemRenderer extends UIComponent implements
IListItemRenderer, ISelectableItemRenderer
{
public function ListItemRenderer()
{
@@ -63,6 +66,11 @@ public class ListItemRenderer extends UIComponent implements
IListItemRenderer
textField.selectable = false;
textField.parentDrawsBackground = true;
}
+ COMPILE::JS
+ {
+ typeNames = "ListItemRenderer";
+ isAbsolute = false;
+ }
}
COMPILE::SWF
@@ -208,6 +216,12 @@ public class ListItemRenderer extends UIComponent
implements IListItemRenderer
le.columnIndex = 0;
le.itemRenderer = this;
getComponentDispatcher().dispatchEvent(le);
+ // not sure why this doesn't use ItemRendererMouseController
+ // selection controller is looking for clicked
+ var ice:ItemClickedEvent = new ItemClickedEvent("itemClicked");
+ ice.index = rowIndex;
+ ice.data = data;
+ dispatchEvent(ice);
}
private var _itemRendererParent:Object;
@@ -306,7 +320,10 @@ public class ListItemRenderer extends UIComponent
implements IListItemRenderer
}
return getLabelFromData(this,value);
}
- private var _data:Object;
+
+ private var _data:Object;
+ private var _listData:Object;
+ private var _index:int;
[Bindable("__NoChangeEvent__")]
/**
@@ -329,6 +346,46 @@ public class ListItemRenderer extends UIComponent
implements IListItemRenderer
text = dataToString(value);
}
+ [Bindable("__NoChangeEvent__")]
+ /**
+ * The extra data being represented by this itemRenderer. This can be
something simple like a String or
+ * a Number or something very complex.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.0
+ */
+ public function get listData():Object
+ {
+ return _listData;
+ }
+
+ public function set listData(value:Object):void
+ {
+ _listData = value;
+ }
+
+ [Bindable("__NoChangeEvent__")]
+ /**
+ * The index being represented by this itemRenderer. This can be
something simple like a String or
+ * a Number or something very complex.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.0
+ */
+ public function get index():int
+ {
+ return _index;
+ }
+
+ public function set index(value:int):void
+ {
+ _index = value;
+ }
+
public function get nestLevel():int
{
throw new Error("Method not implemented.");
diff --git
a/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as
b/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as
index 1da127f..98c7add 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as
@@ -736,6 +736,12 @@ public class UIComponent extends UIBase
return _graphics;
}
+ COMPILE::SWF
+ public function get flashgraphics():flash.display.Graphics
+ {
+ return super.graphics;
+ }
+
COMPILE::JS{
private var _mask:UIComponent;
public function set mask(value:UIComponent):void
@@ -1903,14 +1909,20 @@ COMPILE::JS
_mxmlDocument = value;
}
+ /**
+ * If the component is going to be used in an absolute positioning layout
+ */
+ COMPILE::JS
+ protected var isAbsolute:Boolean = true;
override public function addedToParent():void
{
COMPILE::JS
{
- // Flex layouts don't use percentages the way the browser
- // does, so we have to absolute position everything.
- element.style.position = "absolute";
+ if (isAbsolute)
+ // Flex layouts don't use percentages the way the browser
+ // does, so we have to absolute position everything.
+ element.style.position = "absolute";
}
super.addedToParent();
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 01aa824..7caee4f 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/display/Graphics.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/display/Graphics.as
@@ -55,7 +55,7 @@ package mx.display
fillInProgress = false;
COMPILE::SWF
{
- displayObject.graphics.clear();
+ displayObject.flashgraphics.clear();
}
COMPILE::JS
{
@@ -76,7 +76,7 @@ package mx.display
{
COMPILE::SWF
{
- displayObject.graphics.beginFill(color, alpha);
+ displayObject.flashgraphics.beginFill(color, alpha);
}
COMPILE::JS
{
@@ -95,7 +95,7 @@ package mx.display
{
COMPILE::SWF
{
- displayObject.graphics.endFill();
+ displayObject.flashgraphics.endFill();
}
COMPILE::JS
{
@@ -189,7 +189,7 @@ package mx.display
{
COMPILE::SWF
{
- displayObject.graphics.lineStyle(thickness, color, alpha);
+ displayObject.flashgraphics.lineStyle(thickness, color, alpha);
}
COMPILE::JS
{
@@ -203,7 +203,7 @@ package mx.display
{
COMPILE::SWF
{
- displayObject.graphics.moveTo(x, y);
+ displayObject.flashgraphics.moveTo(x, y);
}
COMPILE::JS
{
@@ -217,7 +217,7 @@ package mx.display
{
COMPILE::SWF
{
- displayObject.graphics.lineTo(x, y);
+ displayObject.flashgraphics.lineTo(x, y);
}
COMPILE::JS
{
@@ -231,7 +231,7 @@ package mx.display
{
COMPILE::SWF
{
- displayObject.graphics.curveTo(controlX, controlY, anchorX,
anchorY);
+ displayObject.flashgraphics.curveTo(controlX, controlY,
anchorX, anchorY);
}
COMPILE::JS
{
@@ -248,7 +248,7 @@ package mx.display
{
COMPILE::SWF
{
- displayObject.graphics.drawEllipse(x, y, width, height);
+ displayObject.flashgraphics.drawEllipse(x, y, width, height);
}
COMPILE::JS
{
@@ -279,7 +279,7 @@ package mx.display
{
COMPILE::SWF
{
- displayObject.graphics.drawRoundRect(x, y, width, height,
radiusX, radiusY);
+ displayObject.flashgraphics.drawRoundRect(x, y, width, height,
radiusX, radiusY);
}
COMPILE::JS
{
@@ -315,7 +315,7 @@ package mx.display
{
COMPILE::SWF
{
- displayObject.graphics.drawRect(x, y, width, height);
+ displayObject.flashgraphics.drawRect(x, y, width, height);
}
COMPILE::JS
{
@@ -346,7 +346,7 @@ package mx.display
{
COMPILE::SWF
{
- displayObject.graphics.drawCircle(x, y, radius);
+ displayObject.flashgraphics.drawCircle(x, y, radius);
}
COMPILE::JS
{