You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pe...@apache.org on 2014/04/11 22:54:34 UTC
git commit: [flex-asjs] [refs/heads/develop] - Modifications to get
SDK to behave more like the border model for sizing components. Update
DataGrid to have better cross-compile results. Added a new view bead for
Button, ImageButtonView, to make it easy t
Repository: flex-asjs
Updated Branches:
refs/heads/develop bac994e33 -> 05bc63297
Modifications to get SDK to behave more like the border model for sizing components. Update DataGrid to have better cross-compile results. Added a new view bead for Button, ImageButtonView, to make it easy to specify images for button states.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/05bc6329
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/05bc6329
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/05bc6329
Branch: refs/heads/develop
Commit: 05bc6329761e87f270aa3ab0e2cbf2c815795a44
Parents: bac994e
Author: Peter Ent <pe...@apache.org>
Authored: Fri Apr 11 16:54:19 2014 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Fri Apr 11 16:54:19 2014 -0400
----------------------------------------------------------------------
.../as/projects/FlexJSJX/basic-manifest.xml | 1 +
frameworks/as/projects/FlexJSJX/defaults.css | 1 +
.../as/projects/FlexJSJX/src/FlexJSJXClasses.as | 1 +
.../charts/supportClasses/BoxItemRenderer.as | 5 +-
.../src/org/apache/flex/core/IDataGridLayout.as | 55 +++++++
.../org/apache/flex/html/beads/DataGridView.as | 73 ++++-----
.../flex/html/beads/layouts/DataGridLayout.as | 154 +++++++++++++++++++
.../flex/html/supportClasses/DataGridColumn.as | 2 +-
frameworks/as/projects/FlexJSUI/defaults.css | 21 ++-
.../as/projects/FlexJSUI/src/FlexJSUIClasses.as | 1 +
.../src/org/apache/flex/core/IContainer.as | 11 ++
.../src/org/apache/flex/core/ViewBase.as | 2 +
.../src/org/apache/flex/html/Container.as | 2 +-
.../apache/flex/html/beads/CSSTextButtonView.as | 38 ++++-
.../DataItemRendererFactoryForArrayData.as | 7 +-
.../apache/flex/html/beads/ImageButtonView.as | 124 +++++++++++++++
.../src/org/apache/flex/html/beads/ListView.as | 10 ++
.../flex/html/beads/layouts/ButtonBarLayout.as | 1 +
.../beads/layouts/NonVirtualHorizontalLayout.as | 1 +
.../src/org/apache/flex/core/IContainer.js | 58 +++++++
.../FlexJS/src/org/apache/flex/core/IUIBase.js | 40 +++++
.../FlexJS/src/org/apache/flex/core/UIBase.js | 5 +-
.../src/org/apache/flex/html/Container.js | 20 ++-
.../DataItemRendererFactoryForArrayData.js | 2 +
.../apache/flex/html/beads/ImageButtonView.js | 45 ++++++
.../html/supportClasses/NonVirtualDataGroup.js | 5 +-
.../html/supportClasses/UIItemRendererBase.js | 2 +-
frameworks/themes/Spark/preview.jpg | Bin 0 -> 3610 bytes
frameworks/themes/Spark/spark.css | 56 +++++++
29 files changed, 691 insertions(+), 52 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSJX/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/basic-manifest.xml b/frameworks/as/projects/FlexJSJX/basic-manifest.xml
index 9630ad6..6117517 100644
--- a/frameworks/as/projects/FlexJSJX/basic-manifest.xml
+++ b/frameworks/as/projects/FlexJSJX/basic-manifest.xml
@@ -23,6 +23,7 @@
<component id="DataGrid" class="org.apache.flex.html.DataGrid"/>
<component id="DataGridColumn" class="org.apache.flex.html.supportClasses.DataGridColumn"/>
+ <component id="DataGridLayout" class="org.apache.flex.html.beads.layouts.DataGridLayout" />
<component id="FormatableLabelView" class="org.apache.flex.html.beads.FormatableLabelView"/>
<component id="FormatableTextInputView" class="org.apache.flex.html.beads.FormatableTextInputView"/>
<component id="DataGridPresentationModel" class="org.apache.flex.html.beads.models.DataGridPresentationModel" />
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSJX/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/defaults.css b/frameworks/as/projects/FlexJSJX/defaults.css
index 6b0970b..ab9bdc3 100644
--- a/frameworks/as/projects/FlexJSJX/defaults.css
+++ b/frameworks/as/projects/FlexJSJX/defaults.css
@@ -35,6 +35,7 @@ DataGrid
IDataGridPresentationModel: ClassReference("org.apache.flex.html.beads.models.DataGridPresentationModel");
IBeadView: ClassReference("org.apache.flex.html.beads.DataGridView");
IBeadModel: ClassReference("org.apache.flex.html.beads.models.DataGridModel");
+ IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.DataGridLayout");
IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.StringItemRenderer");
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as b/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
index 5e8608a..8c274e0 100644
--- a/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
+++ b/frameworks/as/projects/FlexJSJX/src/FlexJSJXClasses.as
@@ -41,6 +41,7 @@ internal class FlexJSJXClasses
import org.apache.flex.html.beads.DateFieldView; DateFieldView;
import org.apache.flex.html.beads.FormatableLabelView; FormatableLabelView;
import org.apache.flex.html.beads.FormatableTextInputView; FormatableTextInputView;
+ import org.apache.flex.html.beads.layouts.DataGridLayout; DataGridLayout;
import org.apache.flex.html.beads.models.DataGridModel; DataGridModel;
import org.apache.flex.html.beads.models.DateChooserModel; DateChooserModel;
import org.apache.flex.html.beads.models.DataGridPresentationModel; DataGridPresentationModel;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as
index 1062371..624b28d 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/charts/supportClasses/BoxItemRenderer.as
@@ -20,8 +20,7 @@ package org.apache.flex.charts.supportClasses
{
import org.apache.flex.charts.core.IChartItemRenderer;
import org.apache.flex.core.FilledRectangle;
- import org.apache.flex.core.UIBase;
- import org.apache.flex.html.supportClasses.UIItemRendererBase;
+ import org.apache.flex.html.supportClasses.DataItemRenderer;
/**
* The BoxItemRenderer displays a colored rectangular area suitable for use as
@@ -34,7 +33,7 @@ package org.apache.flex.charts.supportClasses
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public class BoxItemRenderer extends UIItemRendererBase implements IChartItemRenderer
+ public class BoxItemRenderer extends DataItemRenderer implements IChartItemRenderer
{
/**
* constructor.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSJX/src/org/apache/flex/core/IDataGridLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/core/IDataGridLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/core/IDataGridLayout.as
new file mode 100644
index 0000000..d50bc27
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/core/IDataGridLayout.as
@@ -0,0 +1,55 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 org.apache.flex.core
+{
+ /**
+ * The IDataGridLayout interface provides the features necessary to lay
+ * out the components of a DataGrid: the size and position of its column
+ * headers and the size and position of each column.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public interface IDataGridLayout extends IBeadLayout
+ {
+ /**
+ * The component used as the column header.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get header():IUIBase;
+ function set header(value:IUIBase):void;
+
+ /**
+ * The set of components used for the columns of the DataGrid.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get columns():Array;
+ function set columns(value:Array):void;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/DataGridView.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/DataGridView.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/DataGridView.as
index 6a5a9bd..d442bd5 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/DataGridView.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/DataGridView.as
@@ -18,7 +18,9 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.html.beads
{
+ import org.apache.flex.core.IBead;
import org.apache.flex.core.IBeadModel;
+ import org.apache.flex.core.IDataGridLayout;
import org.apache.flex.core.IDataGridModel;
import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
@@ -30,7 +32,7 @@ package org.apache.flex.html.beads
import org.apache.flex.html.Container;
import org.apache.flex.html.List;
import org.apache.flex.html.beads.layouts.ButtonBarLayout;
- import org.apache.flex.html.beads.layouts.NonVirtualHorizontalLayout;
+ import org.apache.flex.html.beads.layouts.DataGridLayout;
import org.apache.flex.html.beads.models.ArraySelectionModel;
import org.apache.flex.html.supportClasses.DataGridColumn;
@@ -92,6 +94,7 @@ package org.apache.flex.html.beads
_strand = value;
var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel;
+ IEventDispatcher(sharedModel).addEventListener("dataProviderChanged",onDataProviderChanged);
// create an array of columnLabels for use by the ButtonBar/DataGrid header.
var columnLabels:Array = new Array();
@@ -102,7 +105,6 @@ package org.apache.flex.html.beads
buttonWidths.push(dgc.columnWidth);
}
var bblayout:ButtonBarLayout = new ButtonBarLayout();
- bblayout.buttonWidths = buttonWidths;
buttonBarModel = new ArraySelectionModel();
buttonBarModel.dataProvider = columnLabels;
@@ -112,66 +114,67 @@ package org.apache.flex.html.beads
buttonBar.addBead(bblayout);
UIBase(_strand).addElement(buttonBar);
- columnContainer = new Container();
- var layout:NonVirtualHorizontalLayout = new NonVirtualHorizontalLayout();
- columnContainer.addBead(layout);
- UIBase(_strand).addElement(columnContainer);
-
+ // Create a List for each column, storing a reference to each List in
+ // the columns property.
columns = new Array();
- for(i=0; i < sharedModel.columns.length; i++) {
+ for(i=0; i < sharedModel.columns.length; i++)
+ {
+ // Each list shares the same dataProvider but needs its own model to
+ // keep track of its own data.
var listModel:ISelectionModel = new ArraySelectionModel();
listModel.dataProvider = sharedModel.dataProvider;
var dataGridColumn:DataGridColumn = sharedModel.columns[i] as DataGridColumn;
var list:List = new List();
- list.addBead(listModel);
+ list.addBead(listModel);
list.itemRenderer = dataGridColumn.itemRenderer;
list.labelField = dataGridColumn.dataField;
var colWidth:Number = dataGridColumn.columnWidth;
if (!isNaN(colWidth)) list.width = colWidth;
- columnContainer.addElement(list);
+ UIBase(_strand).addElement(list);
columns.push(list);
list.addEventListener('change',columnListChangeHandler);
list.addEventListener('rollover',columnListRollOverHandler);
}
- IEventDispatcher(_strand).addEventListener("widthChanged",handleSizeChange);
- IEventDispatcher(_strand).addEventListener("heightChanged",handleSizeChange);
+ // TODO: allow a developer to specify their own DataGridLayout
+ // possibly by seeing if a bead already exists
+
+ var bead:IBead = _strand.getBeadByType(IDataGridLayout);
+ var layout:IDataGridLayout;
+ if (bead == null) {
+ // NOTE: the following line will not cross-compile correctly into JavaScript
+ // so it has been commented and the class hard-coded.
+ //layout = new ValuesManager.valuesImpl.getValue(_strand, "iBeadLayout")) as IDataGridLayout;
+ layout = new DataGridLayout();
+ _strand.addBead(layout);
+ } else {
+ layout = bead as IDataGridLayout;
+ }
+ layout.header = buttonBar;
+ layout.columns = columns;
- handleSizeChange(null); // initial sizing
+ IEventDispatcher(_strand).dispatchEvent(new Event("itemsCreated"));
}
/**
* @private
+ * When the dataProvider is changed for the DataGrid, this updates each List (column)
+ * with the new (or changed) dataProvider.
*/
- private function handleSizeChange(event:Event):void
+ private function onDataProviderChanged(event:Event):void
{
- var sw:Number = UIBase(_strand).width;
- var sh:Number = UIBase(_strand).height;
-
- var backgroundColor:Number = 0xDDDDDD;
- var value:Object = ValuesManager.valuesImpl.getValue(_strand, "background-color");
- if (value != null) backgroundColor = Number(value);
-
- buttonBar.x = 0;
- buttonBar.y = 0;
- buttonBar.width = sw + (2*columns.length-1);
- buttonBar.height = 25;
-
- columnContainer.x = 0;
- columnContainer.y = 30;
- columnContainer.width = sw + columns.length*2;
- columnContainer.height = sh - 25;
+ var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel;
- for(var i:int=0; i < columns.length; i++) {
- var column:List = columns[i];
- column.height = columnContainer.height; // this will actually be Nitem*rowHeight eventually
+ for (var i:int=0; i < columns.length; i++)
+ {
+ var list:List = columns[i] as List;
+ var listModel:ISelectionModel = list.getBeadByType(IBeadModel) as ISelectionModel;
+ listModel.dataProvider = sharedModel.dataProvider;
}
-
- IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/DataGridLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/DataGridLayout.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/DataGridLayout.as
new file mode 100644
index 0000000..9cf614c
--- /dev/null
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/DataGridLayout.as
@@ -0,0 +1,154 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 org.apache.flex.html.beads.layouts
+{
+ import org.apache.flex.core.IBeadLayout;
+ import org.apache.flex.core.IDataGridLayout;
+ import org.apache.flex.core.IDataGridModel;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.IUIBase;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.html.supportClasses.DataGridColumn;
+
+ /**
+ * DataGridLayout is a class that handles the size and positioning of the
+ * elements of a DataGrid. This includes the ButtonBar used for the column
+ * headers and the Lists that are the columns.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class DataGridLayout implements IBeadLayout, IDataGridLayout
+ {
+ /**
+ * constructor
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function DataGridLayout()
+ {
+ }
+
+ private var _strand:IStrand;
+
+ /**
+ * @copy org.apache.flex.core.IBead#strand
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function set strand(value:IStrand):void
+ {
+ _strand = value;
+ IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
+ IEventDispatcher(value).addEventListener("heightChanged", changeHandler);
+ IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
+ IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
+ IEventDispatcher(value).addEventListener("elementAdded", changeHandler);
+ }
+
+ private var _header:UIBase;
+
+ /**
+ * The element that is the header for the DataGrid
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get header():IUIBase
+ {
+ return _header;
+ }
+ public function set header(value:IUIBase):void
+ {
+ _header = UIBase(value);
+ }
+
+
+ private var _columns:Array;
+
+ /**
+ * The array of column elements.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get columns():Array
+ {
+ return _columns;
+ }
+ public function set columns(value:Array):void
+ {
+ _columns = value;
+ }
+
+ /**
+ * @private
+ */
+ private function changeHandler(event:Event):void
+ {
+ var sw:Number = UIBase(_strand).width;
+ var sh:Number = UIBase(_strand).height;
+
+ header.x = 0;
+ header.y = 0;
+ header.width = sw;
+ header.height = 25;
+
+ var columnHeight:Number = sh - header.height;
+ var columnWidth:Number = sw / columns.length;
+
+ var xpos:Number = 0;
+ var ypos:Number = header.height;
+
+ // TODO: change the layout so that the model's DataGridColumn.columnWidth
+ // isn't used blindly, but is considered in the overall width. In other words,
+ // right now the width could exceed the strand's width.
+ var model:IDataGridModel = _strand.getBeadByType(IDataGridModel) as IDataGridModel;
+
+ for(var i:int=0; i < columns.length; i++) {
+ var column:UIBase = columns[i] as UIBase;
+ column.x = xpos;
+ column.y = ypos;
+ column.height = columnHeight;
+
+ var dgc:DataGridColumn = model.columns[i];
+ if (!isNaN(dgc.columnWidth)) column.width = dgc.columnWidth;
+ else column.width = columnWidth;
+
+ xpos += column.width;
+ }
+
+ IEventDispatcher(_strand).dispatchEvent(new Event("layoutComplete"));
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/supportClasses/DataGridColumn.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/supportClasses/DataGridColumn.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/supportClasses/DataGridColumn.as
index be18319..927da73 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/supportClasses/DataGridColumn.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/supportClasses/DataGridColumn.as
@@ -66,7 +66,7 @@ package org.apache.flex.html.supportClasses
_itemRenderer = value;
}
- private var _columnWidth:Number = 100;
+ private var _columnWidth:Number = Number.NaN;
/**
* The width of the column (default is 100 pixels).
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSUI/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/defaults.css b/frameworks/as/projects/FlexJSUI/defaults.css
index e41f815..a36c6c5 100644
--- a/frameworks/as/projects/FlexJSUI/defaults.css
+++ b/frameworks/as/projects/FlexJSUI/defaults.css
@@ -30,6 +30,24 @@
font-size: 12px;
}
+*:active
+{
+ font-family: "Arial";
+ font-size: 12px;
+}
+
+*:hover
+{
+ font-family: "Arial";
+ font-size: 12px;
+}
+
+.flexjs *, . flexjs *:before, . flexjs *:after {
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
Button
{
background-color: #d8d8d8;
@@ -145,7 +163,8 @@ ComboBox
Container
{
- IBeadView: ClassReference("org.apache.flex.html.beads.ContainerView")
+ IBeadView: ClassReference("org.apache.flex.html.beads.ContainerView");
+ iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
}
ControlBar
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as b/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
index cfd05db..dfcb78d 100644
--- a/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
+++ b/frameworks/as/projects/FlexJSUI/src/FlexJSUIClasses.as
@@ -40,6 +40,7 @@ internal class FlexJSUIClasses
import org.apache.flex.html.beads.CSSButtonView; CSSButtonView;
import org.apache.flex.html.beads.CSSTextButtonView; CSSTextButtonView;
import org.apache.flex.html.beads.DropDownListView; DropDownListView;
+ import org.apache.flex.html.beads.ImageButtonView; ImageButtonView;
import org.apache.flex.html.beads.ImageView; ImageView;
import org.apache.flex.html.beads.ListView; ListView;
import org.apache.flex.html.beads.NumericStepperView; NumericStepperView;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContainer.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContainer.as
index 889a888..1091bad 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContainer.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IContainer.as
@@ -32,6 +32,17 @@ package org.apache.flex.core
*/
public interface IContainer extends IParent
{
+ /**
+ * This method returns an array of the content children
+ * of the container.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function getChildren():Array;
+
/**
* This method is called after children have been
* added to the container so the container doesn't
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/ViewBase.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/ViewBase.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/ViewBase.as
index b5ed194..fc4fafb 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/ViewBase.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/ViewBase.as
@@ -62,6 +62,8 @@ package org.apache.flex.core
public function ViewBase()
{
super();
+
+ className = "flexjs";
}
private var _applicationModel:Object;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/Container.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/Container.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/Container.as
index d4ed27b..9ae090a 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/Container.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/Container.as
@@ -21,10 +21,10 @@ package org.apache.flex.html
import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;
+ import org.apache.flex.core.ContainerBase;
import org.apache.flex.core.IChrome;
import org.apache.flex.core.IContainer;
import org.apache.flex.core.IUIBase;
- import org.apache.flex.core.ContainerBase;
import org.apache.flex.events.Event;
[DefaultProperty("mxmlContent")]
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/CSSTextButtonView.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/CSSTextButtonView.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/CSSTextButtonView.as
index 2e09efe..b8e0d33 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/CSSTextButtonView.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/CSSTextButtonView.as
@@ -35,6 +35,7 @@ package org.apache.flex.html.beads
import org.apache.flex.core.ValuesManager;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.html.TextButton;
import org.apache.flex.utils.SolidBorderUtil;
/**
@@ -151,11 +152,19 @@ package org.apache.flex.html.beads
var backgroundColor:Object = ValuesManager.valuesImpl.getValue(_strand, "background-color", state);
if (borderStyle == "solid")
{
+ var useWidth:Number = Math.max(sw,textField.textWidth);
+ var useHeight:Number = Math.max(sh,textField.textHeight);
+
+ if ((useWidth-2*Number(padding)-2*borderThickness) < textField.textWidth)
+ useWidth = textField.textWidth+2*Number(padding)+2*borderThickness;
+ if ((useHeight-2*Number(padding)-2*borderThickness) < textField.textHeight)
+ useHeight = textField.textHeight+2*Number(padding)+2*borderThickness;
+
SolidBorderUtil.drawBorder(sprite.graphics,
- 0, 0, sw, textField.textHeight + Number(padding) * 2,
+ 0, 0, useWidth, useHeight,
borderColor, backgroundColor, borderThickness);
- textField.y = (sprite.height - textField.height) / 2;
- textField.x = (sprite.width - textField.width) / 2;
+ textField.y = (useHeight - textField.textHeight) / 2;
+ textField.x = (useWidth - textField.textWidth) / 2;
}
var backgroundImage:Object = ValuesManager.valuesImpl.getValue(_strand, "background-image", state);
if (backgroundImage)
@@ -165,8 +174,16 @@ package org.apache.flex.html.beads
var url:String = backgroundImage as String;
loader.load(new URLRequest(url));
loader.contentLoaderInfo.addEventListener(flash.events.Event.COMPLETE, function (e:flash.events.Event):void {
- textField.y = (sh - textField.height) / 2;
- textField.x = (sw - textField.width) / 2;
+ var useWidth:Number = Math.max(sw,textField.textWidth);
+ var useHeight:Number = Math.max(sh,textField.textHeight);
+
+ if ((useWidth-2*Number(padding)-2*borderThickness) < textField.textWidth)
+ useWidth = textField.textWidth+2*Number(padding)+2*borderThickness;
+ if ((useHeight-2*Number(padding)-2*borderThickness) < textField.textHeight)
+ useHeight = textField.textHeight+2*Number(padding)+2*borderThickness;
+
+ textField.y = (useHeight - textField.height) / 2;
+ textField.x = (useWidth - textField.width) / 2;
updateHitArea();
});
}
@@ -229,9 +246,18 @@ package org.apache.flex.html.beads
private function updateHitArea():void
{
+ var useWidth:uint = Math.max(DisplayObject(_strand).width, upTextField.textWidth);
+ var useHeight:uint = Math.max(DisplayObject(_strand).height, upTextField.textHeight);
+ var padding:Object = ValuesManager.valuesImpl.getValue(_strand, "padding");
+
+ if ((useWidth-2*Number(padding)) < upTextField.textWidth)
+ useWidth = upTextField.textWidth+2*Number(padding);
+ if ((useHeight-2*Number(padding)) < upTextField.textHeight)
+ useHeight = upTextField.textHeight+2*Number(padding);
+
shape.graphics.clear();
shape.graphics.beginFill(0xCCCCCC);
- shape.graphics.drawRect(0, 0, upSprite.width, upSprite.height);
+ shape.graphics.drawRect(0, 0, useWidth, useHeight);
shape.graphics.endFill();
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as
index c26e89f..c4c6880 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as
@@ -28,6 +28,7 @@ package org.apache.flex.html.beads
import org.apache.flex.core.ValuesManager;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.html.List;
/**
* The DataItemRendererFactoryForArrayData class reads an
@@ -57,6 +58,8 @@ package org.apache.flex.html.beads
private var selectionModel:ISelectionModel;
+ private var labelField:String;
+
private var _strand:IStrand;
/**
@@ -75,6 +78,8 @@ package org.apache.flex.html.beads
dataGroup = listView.dataGroup;
selectionModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
+ labelField = (listView.strand as List).labelField;
+
if (!itemRendererFactory)
{
_itemRendererFactory = new (ValuesManager.valuesImpl.getValue(_strand, "iItemRendererClassFactory")) as IItemRendererClassFactory;
@@ -132,7 +137,7 @@ package org.apache.flex.html.beads
{
var ir:IItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as IItemRenderer;
ir.index = i;
- ir.labelField = selectionModel.labelField;
+ ir.labelField = labelField;
dataGroup.addElement(ir);
ir.data = dp[i];
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ImageButtonView.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ImageButtonView.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ImageButtonView.as
new file mode 100644
index 0000000..b2f3f19
--- /dev/null
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ImageButtonView.as
@@ -0,0 +1,124 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 org.apache.flex.html.beads
+{
+ import flash.display.Loader;
+ import flash.display.Shape;
+ import flash.display.SimpleButton;
+ import flash.display.Sprite;
+ import flash.events.Event;
+ import flash.net.URLRequest;
+
+ import org.apache.flex.core.IBead;
+ import org.apache.flex.core.IBeadView;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.ValuesManager;
+
+ /**
+ * The ImageButtonView class provides an image-only view
+ * for the standard Button. Unlike the CSSButtonView, this
+ * class does not support background and border; only images
+ * for the up, over, and active states.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ImageButtonView implements IBeadView, IBead
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function ImageButtonView()
+ {
+ upSprite = new Sprite();
+ downSprite = new Sprite();
+ overSprite = new Sprite();
+ }
+
+ private var _strand:IStrand;
+
+ /**
+ * @copy org.apache.flex.core.IBead#strand
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function set strand(value:IStrand):void
+ {
+ _strand = value;
+
+ shape = new Shape();
+ shape.graphics.beginFill(0xCCCCCC);
+ shape.graphics.drawRect(0, 0, 10, 10);
+ shape.graphics.endFill();
+ SimpleButton(value).upState = upSprite;
+ SimpleButton(value).downState = downSprite;
+ SimpleButton(value).overState = overSprite;
+ SimpleButton(value).hitTestState = shape;
+
+ setupBackground(upSprite);
+ setupBackground(overSprite, "hover");
+ setupBackground(downSprite, "active");
+ }
+
+ private var upSprite:Sprite;
+ private var downSprite:Sprite;
+ private var overSprite:Sprite;
+ private var shape:Shape;
+
+ /**
+ * @private
+ */
+ private function setupBackground(sprite:Sprite, state:String = null):void
+ {
+ var backgroundImage:Object = ValuesManager.valuesImpl.getValue(_strand, "background-image", state);
+ if (backgroundImage)
+ {
+ var loader:Loader = new Loader();
+ sprite.addChildAt(loader, 0);
+ var url:String = backgroundImage as String;
+ loader.load(new URLRequest(url));
+ loader.contentLoaderInfo.addEventListener(flash.events.Event.COMPLETE, function (e:flash.events.Event):void {
+ updateHitArea();
+ });
+ }
+ }
+
+ /**
+ * @private
+ */
+ private function updateHitArea():void
+ {
+ shape.graphics.clear();
+ shape.graphics.beginFill(0xCCCCCC);
+ shape.graphics.drawRect(0, 0, upSprite.width, upSprite.height);
+ shape.graphics.endFill();
+
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ListView.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ListView.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ListView.as
index d01272a..3a4a72b 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ListView.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ListView.as
@@ -37,6 +37,7 @@ package org.apache.flex.html.beads
import org.apache.flex.core.ValuesManager;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.html.beads.models.ArraySelectionModel;
import org.apache.flex.html.beads.models.ScrollBarModel;
import org.apache.flex.html.beads.models.SingleLineBorderModel;
import org.apache.flex.html.supportClasses.Border;
@@ -166,6 +167,7 @@ package org.apache.flex.html.beads
listModel = value.getBeadByType(ISelectionModel) as ISelectionModel;
listModel.addEventListener("selectedIndexChanged", selectionChangeHandler);
listModel.addEventListener("rollOverIndexChanged", rollOverIndexChangeHandler);
+ listModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
_border = new Border();
_border.model = new (ValuesManager.valuesImpl.getValue(value, "iBorderModel")) as IBeadModel;
@@ -189,6 +191,14 @@ package org.apache.flex.html.beads
/**
* @private
*/
+ protected function dataProviderChangeHandler(event:Event):void
+ {
+ // override if needed
+ }
+
+ /**
+ * @private
+ */
private function selectionChangeHandler(event:Event):void
{
if (lastSelectedIndex != -1)
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/ButtonBarLayout.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
index c8c4d74..4936e70 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
@@ -67,6 +67,7 @@ package org.apache.flex.html.beads.layouts
{
_strand = value;
IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
+ IEventDispatcher(value).addEventListener("heightChanged", changeHandler);
IEventDispatcher(value).addEventListener("childrenAdded", changeHandler);
IEventDispatcher(value).addEventListener("itemsCreated", changeHandler);
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/NonVirtualHorizontalLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/NonVirtualHorizontalLayout.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/NonVirtualHorizontalLayout.as
index c18caf0..e42c020 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/NonVirtualHorizontalLayout.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/layouts/NonVirtualHorizontalLayout.as
@@ -24,6 +24,7 @@ package org.apache.flex.html.beads.layouts
import org.apache.flex.core.IBeadLayout;
import org.apache.flex.core.ILayoutParent;
import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.UIBase;
import org.apache.flex.core.ValuesManager;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/js/FlexJS/src/org/apache/flex/core/IContainer.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/IContainer.js b/frameworks/js/FlexJS/src/org/apache/flex/core/IContainer.js
new file mode 100644
index 0000000..50cfcc7
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/IContainer.js
@@ -0,0 +1,58 @@
+/**
+ * Licensed 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.
+ */
+
+/**
+ * org.apache.flex.core.IContainer
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org.apache.flex.core.IContainer');
+
+goog.require('org.apache.flex.core.IParent');
+
+
+
+/**
+ * @interface
+ * @extends {org.apache.flex.core.IParent}
+ */
+org.apache.flex.core.IContainer = function() {
+};
+
+
+/**
+ * @return {Array} All of the children of the container.
+ */
+org.apache.flex.core.IContainer.prototype.getChildren = function() {};
+
+
+/**
+ * Called after all of the children have been added to the container.
+ * @return {void}
+ */
+org.apache.flex.core.IContainer.prototype.childrenAdded = function() {};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.core.IContainer.prototype.FLEXJS_CLASS_INFO = {
+ names: [{ name: 'IContainer', qName: 'org.apache.flex.core.IContainer'}],
+ interfaces: [org.apache.flex.core.IParent]
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/js/FlexJS/src/org/apache/flex/core/IUIBase.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/IUIBase.js b/frameworks/js/FlexJS/src/org/apache/flex/core/IUIBase.js
new file mode 100644
index 0000000..7fd8318
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/IUIBase.js
@@ -0,0 +1,40 @@
+/**
+ * Licensed 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.
+ */
+
+/**
+ * @fileoverview
+ * @suppress {checkTypes}
+ */
+
+goog.provide('org.apache.flex.core.IUIBase');
+
+
+
+/**
+ * IUIBase
+ *
+ * @interface
+ */
+org.apache.flex.core.IUIBase = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.core.IUIBase.prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'IUIBase',
+ qName: 'org.apache.flex.core.IUIBase' }] };
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js b/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js
index 35681fd..0f11748 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js
@@ -19,12 +19,14 @@ goog.require('org.apache.flex.core.IBeadController');
goog.require('org.apache.flex.core.IBeadLayout');
goog.require('org.apache.flex.core.IBeadModel');
goog.require('org.apache.flex.core.IBeadView');
+goog.require('org.apache.flex.core.IUIBase');
goog.require('org.apache.flex.core.ValuesManager');
/**
* @constructor
+ * @implements {org.apache.flex.core.IUIBase}
* @extends {org.apache.flex.core.HTMLElementWrapper}
*/
org.apache.flex.core.UIBase = function() {
@@ -49,7 +51,8 @@ goog.inherits(org.apache.flex.core.UIBase,
*/
org.apache.flex.core.UIBase.prototype.FLEXJS_CLASS_INFO =
{ names: [{ name: 'UIBase',
- qName: 'org.apache.flex.core.UIBase' }] };
+ qName: 'org.apache.flex.core.UIBase' }],
+ interfaces: [org.apache.flex.core.IUIBase] };
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/js/FlexJS/src/org/apache/flex/html/Container.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/Container.js b/frameworks/js/FlexJS/src/org/apache/flex/html/Container.js
index e8e7715..2dd64a4 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/Container.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/Container.js
@@ -15,11 +15,13 @@
goog.provide('org.apache.flex.html.Container');
goog.require('org.apache.flex.core.ContainerBase');
+goog.require('org.apache.flex.core.IContainer');
/**
* @constructor
+ * @implements {org.apache.flex.core.IContainer}
* @extends {org.apache.flex.core.ContainerBase}
*/
org.apache.flex.html.Container = function() {
@@ -36,7 +38,8 @@ goog.inherits(org.apache.flex.html.Container,
*/
org.apache.flex.html.Container.prototype.FLEXJS_CLASS_INFO =
{ names: [{ name: 'Container',
- qName: 'org.apache.flex.html.Container' }] };
+ qName: 'org.apache.flex.html.Container' }],
+ interfaces: [org.apache.flex.core.IContainer] };
/**
@@ -84,3 +87,18 @@ org.apache.flex.html.Container.prototype.internalChildren =
};
+/**
+ * @return {Array} All of the children of the container.
+ */
+org.apache.flex.html.Container.prototype.getChildren = function() {
+ return this.element.children;
+};
+
+
+/**
+ * Called after all of the children have been added to the container.
+ * @return {void}
+ */
+org.apache.flex.html.Container.prototype.childrenAdded = function() {};
+
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/js/FlexJS/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js
index d5b263d..1689d12 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js
@@ -123,6 +123,8 @@ org.apache.flex.html.beads.DataItemRendererFactoryForArrayData.
prototype.dataProviderChangedHandler = function(event) {
var dp, i, n, opt;
+ this.dataGroup.removeAllElements();
+
dp = this.model.get_dataProvider();
n = dp.length;
for (i = 0; i < n; i++) {
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ImageButtonView.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ImageButtonView.js b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ImageButtonView.js
new file mode 100644
index 0000000..838425a
--- /dev/null
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/beads/ImageButtonView.js
@@ -0,0 +1,45 @@
+/**
+ * Licensed 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.
+ */
+
+goog.provide('org.apache.flex.html.beads.ImageButtonView');
+
+
+
+/**
+ * @constructor
+ */
+org.apache.flex.html.beads.ImageButtonView = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.beads.ImageButtonView
+ .prototype.FLEXJS_CLASS_INFO =
+ { names: [{ name: 'ImageButtonView',
+ qName: 'org.apache.flex.html.beads.ImageButtonView'}] };
+
+
+/**
+ * @expose
+ * @param {Object} value The new host.
+ */
+org.apache.flex.html.beads.ImageButtonView.prototype.set_strand =
+ function(value) {
+
+ this.strand_ = value;
+};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/js/FlexJS/src/org/apache/flex/html/supportClasses/NonVirtualDataGroup.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/supportClasses/NonVirtualDataGroup.js b/frameworks/js/FlexJS/src/org/apache/flex/html/supportClasses/NonVirtualDataGroup.js
index 4f82ec1..b7aa43d 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/supportClasses/NonVirtualDataGroup.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/supportClasses/NonVirtualDataGroup.js
@@ -93,7 +93,10 @@ org.apache.flex.html.supportClasses.NonVirtualDataGroup.
*/
org.apache.flex.html.supportClasses.NonVirtualDataGroup.
prototype.removeAllElements = function() {
- // to do
+
+ while (this.element.hasChildNodes()) {
+ this.element.removeChild(this.element.lastChild);
+ }
};
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/js/FlexJS/src/org/apache/flex/html/supportClasses/UIItemRendererBase.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/supportClasses/UIItemRendererBase.js b/frameworks/js/FlexJS/src/org/apache/flex/html/supportClasses/UIItemRendererBase.js
index 5c0d129..10a39b8 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/supportClasses/UIItemRendererBase.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/supportClasses/UIItemRendererBase.js
@@ -43,7 +43,7 @@ goog.inherits(
org.apache.flex.html.supportClasses.UIItemRendererBase.prototype.FLEXJS_CLASS_INFO =
{ names: [{ name: 'UIItemRendererBase',
qName: 'org.apache.flex.html.supportClasses.UIItemRendererBase' }],
- interfaces: ['org.apache.flex.core.IItemRenderer, org.apache.flex.core.IItemRendererFactory']};
+ interfaces: [org.apache.flex.core.IItemRenderer, org.apache.flex.core.IItemRendererFactory]};
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/themes/Spark/preview.jpg
----------------------------------------------------------------------
diff --git a/frameworks/themes/Spark/preview.jpg b/frameworks/themes/Spark/preview.jpg
new file mode 100644
index 0000000..2eedd74
Binary files /dev/null and b/frameworks/themes/Spark/preview.jpg differ
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/05bc6329/frameworks/themes/Spark/spark.css
----------------------------------------------------------------------
diff --git a/frameworks/themes/Spark/spark.css b/frameworks/themes/Spark/spark.css
new file mode 100644
index 0000000..22fb55b
--- /dev/null
+++ b/frameworks/themes/Spark/spark.css
@@ -0,0 +1,56 @@
+/*
+ *
+ * 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.
+ *
+ */
+@namespace mx "library://ns.adobe.com/flex/mx";
+@namespace s "library://ns.adobe.com/flex/spark";
+
+mx|Menu, mx|Panel, mx|TitleWindow
+{
+ dropShadowVisible: true;
+}
+
+mx|List.comboDropdown
+{
+ dropShadowVisible: true;
+}
+
+mx|VideoDisplay
+{
+ contentBackgroundColor: #000000;
+}
+
+s|ComboBox, s|DropDownList, s|VideoPlayer
+{
+ dropShadowVisible: true;
+}
+
+s|Panel
+{
+ borderAlpha: 0.5;
+ borderColor: 0;
+ cornerRadius: 0;
+ dropShadowVisible: true;
+}
+
+s|TitleWindow
+{
+ borderAlpha: 0.8;
+ borderColor: 0;
+ cornerRadius: 0;
+ dropShadowVisible: true;
+}
\ No newline at end of file