Changed DataGrid so that all of the columns (lists) scroll together. Fixed roll out bug in DataGrid.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/657ce8bd Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/657ce8bd Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/657ce8bd Branch: refs/heads/master Commit: 657ce8bddff41e840eed3dd556d8db11cf8b52d8 Parents: e494d4b Author: Peter Ent <[email protected]> Authored: Mon Oct 5 12:03:42 2015 -0400 Committer: Peter Ent <[email protected]> Committed: Mon Oct 5 12:03:42 2015 -0400 ---------------------------------------------------------------------- .../apache/flex/core/IListPresentationModel.as | 11 + frameworks/projects/Core/asjs/defaults.css | 1 - .../projects/Core/asjs/src/CoreASJSClasses.as | 1 - .../src/org/apache/flex/core/IDataGridLayout.as | 55 ---- .../apache/flex/core/IListPresentationModel.js | 5 + frameworks/projects/Flat/as/defaults.css | 1 - frameworks/projects/Flat/flat-manifest.xml | 1 - frameworks/projects/HTML/as/defaults.css | 5 +- .../DataItemRendererFactoryForArrayData.as | 11 +- .../controllers/ItemRendererMouseController.as | 1 + .../html/beads/models/ListPresentationModel.as | 21 ++ .../html/supportClasses/DataItemRenderer.as | 2 +- .../html/supportClasses/ScrollingViewport.as | 122 +++++++- .../html/supportClasses/UIItemRendererBase.as | 9 +- .../apache/flex/html/supportClasses/Viewport.as | 54 +++- .../projects/HTML/asjs/src/HTMLASJSClasses.as | 1 - .../org/apache/flex/html/beads/DataGridView.as | 302 +++++++++++-------- .../org/apache/flex/html/beads/IDataGridView.as | 36 --- .../flex/html/beads/layouts/DataGridLayout.as | 157 ---------- .../beads/models/DataGridPresentationModel.as | 2 + frameworks/projects/HTML/basic-manifest.xml | 1 - .../DataItemRendererFactoryForArrayData.js | 5 +- .../html/beads/models/ListPresentationModel.js | 19 ++ 23 files changed, 435 insertions(+), 388 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/Core/as/src/org/apache/flex/core/IListPresentationModel.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/as/src/org/apache/flex/core/IListPresentationModel.as b/frameworks/projects/Core/as/src/org/apache/flex/core/IListPresentationModel.as index 0e523aa..8166c59 100644 --- a/frameworks/projects/Core/as/src/org/apache/flex/core/IListPresentationModel.as +++ b/frameworks/projects/Core/as/src/org/apache/flex/core/IListPresentationModel.as @@ -39,5 +39,16 @@ package org.apache.flex.core */ function get rowHeight():Number; function set rowHeight(value:Number):void; + + /** + * The distance each row should be separated from the row above. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + function get separatorThickness():Number; + function set separatorThickness(value:Number):void; } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/Core/asjs/defaults.css ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/asjs/defaults.css b/frameworks/projects/Core/asjs/defaults.css index 1cbc544..cb9a50f 100644 --- a/frameworks/projects/Core/asjs/defaults.css +++ b/frameworks/projects/Core/asjs/defaults.css @@ -65,7 +65,6 @@ 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/657ce8bd/frameworks/projects/Core/asjs/src/CoreASJSClasses.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/asjs/src/CoreASJSClasses.as b/frameworks/projects/Core/asjs/src/CoreASJSClasses.as index ef6790d..e385ade 100644 --- a/frameworks/projects/Core/asjs/src/CoreASJSClasses.as +++ b/frameworks/projects/Core/asjs/src/CoreASJSClasses.as @@ -27,7 +27,6 @@ package */ internal class CoreASJSClasses { - import org.apache.flex.core.IDataGridLayout; IDataGridLayout; import org.apache.flex.core.IDataGridModel; IDataGridModel; import org.apache.flex.core.IDataGridPresentationModel; IDataGridPresentationModel; import org.apache.flex.core.IDateChooserModel; IDateChooserModel; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/Core/asjs/src/org/apache/flex/core/IDataGridLayout.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/asjs/src/org/apache/flex/core/IDataGridLayout.as b/frameworks/projects/Core/asjs/src/org/apache/flex/core/IDataGridLayout.as deleted file mode 100644 index d50bc27..0000000 --- a/frameworks/projects/Core/asjs/src/org/apache/flex/core/IDataGridLayout.as +++ /dev/null @@ -1,55 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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/657ce8bd/frameworks/projects/Core/js/src/org/apache/flex/core/IListPresentationModel.js ---------------------------------------------------------------------- diff --git a/frameworks/projects/Core/js/src/org/apache/flex/core/IListPresentationModel.js b/frameworks/projects/Core/js/src/org/apache/flex/core/IListPresentationModel.js index 5b8be2e..4c78c74 100644 --- a/frameworks/projects/Core/js/src/org/apache/flex/core/IListPresentationModel.js +++ b/frameworks/projects/Core/js/src/org/apache/flex/core/IListPresentationModel.js @@ -41,6 +41,11 @@ Object.defineProperties(org.apache.flex.core.IListPresentationModel.prototype, { rowHeight: { set: function(value) {}, get: function() {} + }, + /** @export */ + separatorThickness: { + set: function(value) {}, + get: function() {} } }); http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/Flat/as/defaults.css ---------------------------------------------------------------------- diff --git a/frameworks/projects/Flat/as/defaults.css b/frameworks/projects/Flat/as/defaults.css index 32ca37d..53a91f1 100644 --- a/frameworks/projects/Flat/as/defaults.css +++ b/frameworks/projects/Flat/as/defaults.css @@ -193,7 +193,6 @@ 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/657ce8bd/frameworks/projects/Flat/flat-manifest.xml ---------------------------------------------------------------------- diff --git a/frameworks/projects/Flat/flat-manifest.xml b/frameworks/projects/Flat/flat-manifest.xml index 355a76a..ac05bf7 100644 --- a/frameworks/projects/Flat/flat-manifest.xml +++ b/frameworks/projects/Flat/flat-manifest.xml @@ -82,7 +82,6 @@ <component id="DataGrid" class="org.apache.flex.html.DataGrid" lookupOnly="true" /> <component id="DataGridColumn" class="org.apache.flex.html.supportClasses.DataGridColumn" lookupOnly="true" /> - <component id="DataGridLayout" class="org.apache.flex.html.beads.layouts.DataGridLayout" lookupOnly="true" /> <component id="DateChooser" class="org.apache.flex.html.DateChooser" lookupOnly="true" /> <component id="DateField" class="org.apache.flex.html.DateField" lookupOnly="true" /> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/as/defaults.css ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/defaults.css b/frameworks/projects/HTML/as/defaults.css index da3cb48..f3c15b9 100644 --- a/frameworks/projects/HTML/as/defaults.css +++ b/frameworks/projects/HTML/as/defaults.css @@ -104,7 +104,6 @@ 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"); @@ -114,6 +113,10 @@ DataGrid border-width: 1px; } +.DataGridListArea { + background-color: #999999; +} + DateChooser { IBeadView: ClassReference("org.apache.flex.html.beads.DateChooserView"); IBeadModel: ClassReference("org.apache.flex.html.beads.models.DateChooserModel"); http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as index 0889efa..609bfbc 100644 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as +++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.as @@ -27,6 +27,8 @@ package org.apache.flex.html.beads import org.apache.flex.core.ISelectionModel; import org.apache.flex.core.IStrand; import org.apache.flex.core.IUIBase; + import org.apache.flex.core.SimpleCSSStyles; + import org.apache.flex.core.UIBase; import org.apache.flex.core.ValuesManager; import org.apache.flex.events.Event; import org.apache.flex.events.IEventDispatcher; @@ -139,11 +141,16 @@ package org.apache.flex.html.beads var n:int = dp.length; for (var i:int = 0; i < n; i++) - { + { var ir:ISelectableItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as ISelectableItemRenderer; ir.index = i; ir.labelField = labelField; - if (presentationModel) IUIBase(ir).height = presentationModel.rowHeight; + if (presentationModel) { + var style:SimpleCSSStyles = new SimpleCSSStyles(); + style.marginBottom = presentationModel.separatorThickness; + UIBase(ir).style = style; + UIBase(ir).height = presentationModel.rowHeight; + } dataGroup.addElement(ir); ir.data = dp[i]; } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as index 517cc5a..0b67de8 100644 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as +++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as @@ -91,6 +91,7 @@ package org.apache.flex.html.beads.controllers { target.hovered = false; target.down = false; + target.dispatchEvent(new Event("rollout",true)); } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/models/ListPresentationModel.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/models/ListPresentationModel.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/models/ListPresentationModel.as index a97819f..897d8d6 100644 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/models/ListPresentationModel.as +++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/models/ListPresentationModel.as @@ -68,6 +68,27 @@ package org.apache.flex.html.beads.models dispatchEvent(new Event("rowHeightChanged")); } + private var _separatorThickness:Number = 0; + + /** + * The distance between rows. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get separatorThickness():Number + { + return _separatorThickness; + } + + public function set separatorThickness(value:Number):void + { + _separatorThickness = value; + dispatchEvent(new Event("separatorThicknessChanged")); + } + private var _strand:IStrand; /** http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/DataItemRenderer.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/DataItemRenderer.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/DataItemRenderer.as index bf3f284..f14c736 100644 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/DataItemRenderer.as +++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/DataItemRenderer.as @@ -123,7 +123,7 @@ package org.apache.flex.html.supportClasses super.updateRenderer(); background.graphics.clear(); - background.graphics.beginFill(backgroundColor, (down||selected||hovered)?1:0); + background.graphics.beginFill(useColor, 1); background.graphics.drawRect(0, 0, this.width, this.height); background.graphics.endFill(); } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/ScrollingViewport.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/ScrollingViewport.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/ScrollingViewport.as index 2de82b1..96318c7 100644 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/ScrollingViewport.as +++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/ScrollingViewport.as @@ -35,25 +35,113 @@ package org.apache.flex.html.supportClasses import org.apache.flex.html.beads.ScrollBarView; import org.apache.flex.html.beads.models.ScrollBarModel; + /** + * The ScrollingViewport extends the Viewport class by adding horizontal and + * vertical scroll bars, if needed, to the content area of a Container. In + * addition, the content of the Container is clipped so that items extending + * outside the Container are hidden and reachable only by scrolling. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ public class ScrollingViewport extends Viewport implements IBead, IViewport { + /** + * Constructor + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ public function ScrollingViewport() { } + + private var _showsVerticalScrollBar:Boolean = true; + + /** + * Determines whether or not the vertical scroll bar will show if needed. + * The default is true, it will show when needed. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get showsVerticalScrollBar():Boolean + { + return _showsVerticalScrollBar; + } + public function set showsVerticalScrollBar(value:Boolean):void + { + _showsVerticalScrollBar = value; + } + + private var _showsHorizontalScrollBar:Boolean = true; + + /** + * Determines whether or not the horizontal scroll bar will show if needed. + * The default is true, it will show when needed. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get showsHorizontalScrollBar():Boolean + { + return _showsHorizontalScrollBar; + } + public function set showsHorizontalScrollBar(value:Boolean):void + { + _showsHorizontalScrollBar = value; + } private var _verticalScroller:ScrollBar; + + /** + * The vertical scrolling component element. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ public function get verticalScroller():IViewportScroller { return _verticalScroller; } private var _horizontalScroller:ScrollBar + + /** + * The horizontal scrolling component element. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ public function get horizontalScroller():IViewportScroller { return _horizontalScroller; } private var _verticalScrollPosition:Number = 0; + + + /** + * The position of top of the content, measured in pixels, represented by + * the vertical scroller. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ public function get verticalScrollPosition():Number { return _verticalScrollPosition; @@ -65,6 +153,16 @@ package org.apache.flex.html.supportClasses } private var _horizontalScrollPosition:Number = 0; + + /** + * The position of the left edge of the content, measured in pixels, + * represented by the horizontal scroller. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ public function get horizontalScrollPosition():Number { return _horizontalScrollPosition; @@ -77,6 +175,7 @@ package org.apache.flex.html.supportClasses private var viewportWidth:Number; private var viewportHeight:Number; + /** * @copy org.apache.flex.core.IViewport */ @@ -106,8 +205,8 @@ package org.apache.flex.html.supportClasses var host:UIBase = UIBase(_strand); var visibleWidth:Number; var visibleHeight:Number; - var needV:Boolean = contentSize.height > viewportHeight; - var needH:Boolean = contentSize.width > viewportWidth; + var needV:Boolean = (contentSize.height > viewportHeight) && showsVerticalScrollBar; + var needH:Boolean = (contentSize.width > viewportWidth) && showsHorizontalScrollBar; if (needV) { @@ -193,7 +292,9 @@ package org.apache.flex.html.supportClasses return contentSize; } - + /** + * @private + */ private function createVerticalScrollBar():ScrollBar { var vsbm:ScrollBarModel = new ScrollBarModel(); @@ -211,6 +312,9 @@ package org.apache.flex.html.supportClasses return vsb; } + /** + * @private + */ private function createHorizontalScrollBar():ScrollBar { var hsbm:ScrollBarModel = new ScrollBarModel(); @@ -228,6 +332,9 @@ package org.apache.flex.html.supportClasses return hsb; } + /** + * @private + */ private function handleVerticalScroll(event:Event):void { var host:UIBase = UIBase(_strand); @@ -239,6 +346,9 @@ package org.apache.flex.html.supportClasses _verticalScrollPosition = vpos; } + /** + * @private + */ private function handleHorizontalScroll(event:Event):void { var host:UIBase = UIBase(_strand); @@ -250,6 +360,9 @@ package org.apache.flex.html.supportClasses _horizontalScrollPosition = hpos; } + /** + * @private + */ private function handleVerticalScrollChange():void { if (_verticalScroller) { @@ -257,6 +370,9 @@ package org.apache.flex.html.supportClasses } } + /** + * @private + */ private function handleHorizontalScrollChange():void { if (_horizontalScroller) { http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/UIItemRendererBase.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/UIItemRendererBase.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/UIItemRendererBase.as index d33a3aa..90c66fa 100644 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/UIItemRendererBase.as +++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/UIItemRendererBase.as @@ -124,6 +124,7 @@ package org.apache.flex.html.supportClasses public var highlightColor:uint = 0xCEDBEF; public var selectedColor:uint = 0xA8C6EE; public var downColor:uint = 0x808080; + protected var useColor:uint = backgroundColor; private var _data:Object; @@ -247,11 +248,13 @@ package org.apache.flex.html.supportClasses public function updateRenderer():void { if (down) - backgroundColor = downColor; + useColor = downColor; else if (hovered) - backgroundColor = highlightColor; + useColor = highlightColor; else if (selected) - backgroundColor = selectedColor; + useColor = selectedColor; + else + useColor = backgroundColor; } /** http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/Viewport.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/Viewport.as b/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/Viewport.as index d731fa6..dc228f7 100644 --- a/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/Viewport.as +++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/supportClasses/Viewport.as @@ -35,15 +35,38 @@ package org.apache.flex.html.supportClasses import org.apache.flex.utils.CSSContainerUtils; /** - * @copy org.apache.flex.core.IViewport + * A Viewport is the area of a Container set aside for displaying + * content and any scrolling controls. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 */ public class Viewport implements IBead, IViewport { + /** + * Constructor + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ public function Viewport() { } protected var contentArea:UIBase; + + /** + * Get the actual parent of the container's content. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ public function get contentView():IUIBase { return contentArea; @@ -51,6 +74,14 @@ package org.apache.flex.html.supportClasses protected var _strand:IStrand; + /** + * @copy org.apache.flex.core.IStrand + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ public function set strand(value:IStrand):void { _strand = value; @@ -63,7 +94,12 @@ package org.apache.flex.html.supportClasses } /** - * @copy org.apache.flex.core.IViewport + * @copy org.apache.flex.core.IViewport#setPosition() + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 */ public function setPosition(x:Number, y:Number):void { @@ -72,7 +108,12 @@ package org.apache.flex.html.supportClasses } /** - * @copy org.apache.flex.core.IViewport + * @copy org.apache.flex.core.IViewport#layoutViewportBeforeContentLayout() + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 */ public function layoutViewportBeforeContentLayout(width:Number, height:Number):void { @@ -83,7 +124,12 @@ package org.apache.flex.html.supportClasses } /** - * @copy org.apache.flex.core.IViewport + * @copy org.apache.flex.core.IViewport#layoutViewportAfterContentLayout() + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 */ public function layoutViewportAfterContentLayout():Size { http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/asjs/src/HTMLASJSClasses.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/asjs/src/HTMLASJSClasses.as b/frameworks/projects/HTML/asjs/src/HTMLASJSClasses.as index 4e7b67f..73547db 100644 --- a/frameworks/projects/HTML/asjs/src/HTMLASJSClasses.as +++ b/frameworks/projects/HTML/asjs/src/HTMLASJSClasses.as @@ -31,7 +31,6 @@ internal class HTMLASJSClasses import org.apache.flex.html.beads.DataGridView; DataGridView; import org.apache.flex.html.beads.DateChooserView; DateChooserView; import org.apache.flex.html.beads.DateFieldView; DateFieldView; - import org.apache.flex.html.beads.layouts.DataGridLayout; DataGridLayout; import org.apache.flex.html.beads.layouts.FlexibleFirstChildHorizontalLayout; FlexibleFirstChildHorizontalLayout; import org.apache.flex.html.beads.models.DataGridModel; DataGridModel; import org.apache.flex.html.beads.models.DateChooserModel; DateChooserModel; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/DataGridView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/DataGridView.as b/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/DataGridView.as index d578a6e..150294c 100644 --- a/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/DataGridView.as +++ b/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/DataGridView.as @@ -18,24 +18,26 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.flex.html.beads { - import org.apache.flex.core.BeadViewBase; - 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; - import org.apache.flex.core.UIBase; - import org.apache.flex.events.Event; - import org.apache.flex.events.IEventDispatcher; - import org.apache.flex.html.ButtonBar; - 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.DataGridLayout; - import org.apache.flex.html.beads.models.ArraySelectionModel; - import org.apache.flex.html.beads.models.DataGridPresentationModel; - import org.apache.flex.html.supportClasses.DataGridColumn; + import org.apache.flex.core.IBeadModel; + import org.apache.flex.core.IBeadView; + import org.apache.flex.core.IDataGridModel; + import org.apache.flex.core.ISelectableItemRenderer; + import org.apache.flex.core.ISelectionModel; + import org.apache.flex.core.IStrand; + import org.apache.flex.core.IUIBase; + import org.apache.flex.core.SimpleCSSStyles; + import org.apache.flex.core.UIBase; + import org.apache.flex.events.Event; + import org.apache.flex.events.IEventDispatcher; + import org.apache.flex.html.ButtonBar; + 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.VerticalLayout; + import org.apache.flex.html.beads.models.ArraySelectionModel; + import org.apache.flex.html.beads.models.DataGridPresentationModel; + import org.apache.flex.html.supportClasses.DataGridColumn; + import org.apache.flex.html.supportClasses.ScrollingViewport; import org.apache.flex.html.supportClasses.Viewport; /** @@ -48,7 +50,7 @@ package org.apache.flex.html.beads * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class DataGridView extends BeadViewBase implements IDataGridView + public class DataGridView implements IBeadView { /** * constructor. @@ -62,27 +64,19 @@ package org.apache.flex.html.beads { } - //private var background:Shape; - private var buttonBar:ButtonBar; - private var buttonBarModel:ArraySelectionModel; - private var columnContainer:Container; - private var columns:Array; + private var _strand:IStrand; + private var _header:ButtonBar; + private var _listArea:Container; + private var _lists:Array; /** - * The array of org.apache.flex.html.supportClasses.DataGridColumn instances. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @private */ - public function getColumnLists():Array + public function get host():IUIBase { - return columns; + return _strand as IUIBase; } - private var _strand:IStrand; - /** * @copy org.apache.flex.core.IBead#strand * @@ -91,130 +85,146 @@ package org.apache.flex.html.beads * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - override public function set strand(value:IStrand):void + public function set strand(value:IStrand):void { _strand = value; - super.strand = value; - IEventDispatcher(_strand).addEventListener("sizeChanged", onSizeChanged); - IEventDispatcher(_strand).addEventListener("widthChanged", onSizeChanged); - IEventDispatcher(_strand).addEventListener("heightChanged", onSizeChanged); + var host:UIBase = value as UIBase; + + _header = new ButtonBar(); + _header.id = "dataGridHeader"; + + var scrollPort:ScrollingViewport = new ScrollingViewport(); + scrollPort.showsHorizontalScrollBar = false; + + _listArea = new Container(); + _listArea.id = "dataGridListArea"; + _listArea.className = "DataGridListArea"; + _listArea.addBead(scrollPort); + + // place a border around the list area + var style:SimpleCSSStyles = new SimpleCSSStyles(); + style.borderWidth = 1; + style.borderColor = 0x333333; + style.borderStyle = "solid"; + _listArea.style = style; + + finishSetup(null); + } + + /** + * @private + */ + private function finishSetup(event:Event):void + { + var host:UIBase = _strand as UIBase; // see if there is a presentation model already in place. if not, add one. - var modBead:IBead = _strand.getBeadByType(DataGridPresentationModel); - var presentationModel:DataGridPresentationModel; - if (modBead == null) { + var presentationModel:DataGridPresentationModel = _strand.getBeadByType(DataGridPresentationModel) as DataGridPresentationModel; + if (presentationModel == null) { presentationModel = new DataGridPresentationModel(); _strand.addBead(presentationModel); } - else { - presentationModel = modBead as DataGridPresentationModel; - } var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel; - IEventDispatcher(sharedModel).addEventListener("dataProviderChanged",onDataProviderChanged); + IEventDispatcher(sharedModel).addEventListener("dataProviderChanged",handleDataProviderChanged); - // create an array of columnLabels for use by the ButtonBar/DataGrid header. var columnLabels:Array = new Array(); + var buttonWidths:Array = new Array(); + for(var i:int=0; i < sharedModel.columns.length; i++) { var dgc:DataGridColumn = sharedModel.columns[i] as DataGridColumn; columnLabels.push(dgc.label); + if (!isNaN(dgc.columnWidth)) buttonWidths.push(dgc.columnWidth); } + var bblayout:ButtonBarLayout = new ButtonBarLayout(); + if (buttonWidths.length == sharedModel.columns.length) { + bblayout.buttonWidths = buttonWidths; + } - buttonBarModel = new ArraySelectionModel(); + var buttonBarModel:ArraySelectionModel = new ArraySelectionModel(); buttonBarModel.dataProvider = columnLabels; - buttonBar = new ButtonBar(); - buttonBar.addBead(buttonBarModel); - buttonBar.addBead(bblayout); - buttonBar.addBead(new Viewport()); - buttonBar.height = 25; - buttonBar.width = UIBase(_strand).width; - UIBase(_strand).addElement(buttonBar); - - // 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++) - { - // 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.itemRenderer = dataGridColumn.itemRenderer; - list.labelField = dataGridColumn.dataField; - list.addBead(presentationModel); - - var colWidth:Number = dataGridColumn.columnWidth; - if (!isNaN(colWidth)) list.width = colWidth; - - UIBase(_strand).addElement(list); - columns.push(list); - list.addEventListener('change',columnListChangeHandler); - list.addEventListener('rollover',columnListRollOverHandler); - list.addEventListener('layoutComplete',forwardEvent); - } + _header.addBead(buttonBarModel); + _header.addBead(bblayout); + _header.addBead(new Viewport()); + host.addElement(_header); + + host.addElement(_listArea); - // TODO: allow a developer to specify their own DataGridLayout - // possibly by seeing if a bead already exists + // do we know what the size is? If not, wait to be sized - onSizeChanged(null); - IEventDispatcher(_strand).dispatchEvent(new Event("itemsCreated")); + if (host.isHeightSizedToContent() || host.isWidthSizedToContent()) { + host.addEventListener("sizeChanged", handleSizeChanges); + } + + // else size now + else { + handleDataProviderChanged(event); + } } - private function onSizeChanged(event:Event):void + /** + * @private + */ + private function handleSizeChanges(event:Event):void { - 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; + _header.x = 0; + _header.y = 0; + _header.width = host.width; + _header.height = 25; + + _listArea.x = 0; + _listArea.y = 26; + _listArea.width = host.width; + _listArea.height = host.height - _header.height; + + if (_lists != null) { + var xpos:Number = 0; + for (var i:int=0; i < _lists.length; i++) { + var list:List = _lists[i] as List; + list.x = xpos; + list.y = 0; + + xpos += list.width + 1; + } } - layout.header = buttonBar; - layout.columns = columns; - layout.layout(); } /** * @private - * When the dataProvider is changed for the DataGrid, this updates each List (column) - * with the new (or changed) dataProvider. */ - private function onDataProviderChanged(event:Event):void + private function handleDataProviderChanged(event:Event):void { var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel; - for (var i:int=0; i < columns.length; i++) + if (_lists == null || _lists.length == 0) { + createLists(); + } + + for (var i:int=0; i < _lists.length; i++) { - var list:List = columns[i] as List; + var list:List = _lists[i] as List; var listModel:ISelectionModel = list.getBeadByType(IBeadModel) as ISelectionModel; listModel.dataProvider = sharedModel.dataProvider; } + + handleSizeChanges(event); } /** * @private */ - private function columnListChangeHandler(event:Event):void + private function handleColumnListChange(event:Event):void { var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel; var list:List = event.target as List; sharedModel.selectedIndex = list.selectedIndex; - for(var i:int=0; i < columns.length; i++) { - if (list != columns[i]) { - var otherList:List = columns[i] as List; + for(var i:int=0; i < _lists.length; i++) { + if (list != _lists[i]) { + var otherList:List = _lists[i] as List; otherList.selectedIndex = list.selectedIndex; } } @@ -225,14 +235,15 @@ package org.apache.flex.html.beads /** * @private */ - private function columnListRollOverHandler(event:Event):void + private function handleColumnListRollOver(event:Event):void { - var list:List = event.target as List; + var itemRenderer:ISelectableItemRenderer = event.target as ISelectableItemRenderer; + var list:List = event.currentTarget as List; if (list == null) return; - for(var i:int=0; i < columns.length; i++) { - if (list != columns[i]) { - var otherList:List = columns[i] as List; - otherList.rollOverIndex = list.rollOverIndex; + for(var i:int=0; i < _lists.length; i++) { + if (list != _lists[i]) { + var otherList:List = _lists[i] as List; + otherList.rollOverIndex = itemRenderer.index; } } @@ -242,10 +253,63 @@ package org.apache.flex.html.beads /** * @private */ - private function forwardEvent(event:Event):void + private function handleColumnListRollOut(event:Event):void + { + for(var i:int=0; i < _lists.length; i++) { + var otherList:List = _lists[i] as List; + otherList.rollOverIndex = -1; + } + + IEventDispatcher(_strand).dispatchEvent(new Event('rollOver')); + } + + /** + * @private + */ + private function createLists():void { - IEventDispatcher(_strand).dispatchEvent(event); + var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel; + var presentationModel:DataGridPresentationModel = _strand.getBeadByType(DataGridPresentationModel) as DataGridPresentationModel; + var listWidth:Number = host.width / sharedModel.columns.length; + + _lists = new Array(); + + for (var i:int=0; i < sharedModel.columns.length; i++) { + + var listModel:ISelectionModel = new ArraySelectionModel(); + listModel.dataProvider = sharedModel.dataProvider; + + var dataGridColumn:DataGridColumn = sharedModel.columns[i] as DataGridColumn; + + var list:List = new List(); + list.id = "dataGridColumn"+String(i); + list.className = "DataGridColumn"; + list.addBead(listModel); + list.addBead(new Viewport()); // do not want lists to scroll independently + list.addBead(new VerticalLayout()); + list.itemRenderer = dataGridColumn.itemRenderer; + list.labelField = dataGridColumn.dataField; + list.addEventListener('change',handleColumnListChange); + list.addEventListener('rollover',handleColumnListRollOver); + list.addEventListener('rollout',handleColumnListRollOut); + list.addBead(presentationModel); + + // do not want lists to have their own sizes + var style:SimpleCSSStyles = new SimpleCSSStyles(); + style.borderWidth = 0; + style.backgroundColor = 0xFFFFFF; + list.style = style; + + var colWidth:Number = dataGridColumn.columnWidth; + if (!isNaN(colWidth)) list.width = colWidth - 1; + else list.width = listWidth - 1; + + _listArea.addElement(list); + _lists.push(list); + } + + _listArea.dispatchEvent(new Event("layoutNeeded")); } - } } + http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/IDataGridView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/IDataGridView.as b/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/IDataGridView.as deleted file mode 100644 index 8f04d11..0000000 --- a/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/IDataGridView.as +++ /dev/null @@ -1,36 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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 org.apache.flex.core.IBeadView; - - /** - * The IDataGridView interface marks as a component as being the bead that - * can create the visual pieces for a org.apache.flex.html.DataGrid. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public interface IDataGridView extends IBeadView - { - - } -} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/layouts/DataGridLayout.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/layouts/DataGridLayout.as b/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/layouts/DataGridLayout.as deleted file mode 100644 index f6849ce..0000000 --- a/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/layouts/DataGridLayout.as +++ /dev/null @@ -1,157 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// 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.ButtonBar; - 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; - } - - 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; - } - - /** - * @copy org.apache.flex.core.IBeadLayout#layout - */ - public function layout():Boolean - { - var sw:Number = UIBase(_strand).width; - var sh:Number = UIBase(_strand).height; - - var columnHeight:Number = Math.floor(sh - header.height); - var columnWidth:Number = Math.floor(sw / columns.length); - - var xpos:Number = 0; - var ypos:Number = Math.floor(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; - - var buttonWidths:Array = new Array(); - - 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; - - buttonWidths.push(column.width); - } - - var bar:ButtonBar = header as ButtonBar; - var barLayout:ButtonBarLayout = bar.getBeadByType(ButtonBarLayout) as ButtonBarLayout; - barLayout.buttonWidths = buttonWidths; - - header.x = 0; - header.y = 0; - header.width = sw; - header.dispatchEvent(new Event("layoutNeeded")); - - return true; - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/models/DataGridPresentationModel.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/models/DataGridPresentationModel.as b/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/models/DataGridPresentationModel.as index 2959aad..0a00edb 100644 --- a/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/models/DataGridPresentationModel.as +++ b/frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/models/DataGridPresentationModel.as @@ -44,6 +44,8 @@ package org.apache.flex.html.beads.models public function DataGridPresentationModel() { super(); + + separatorThickness = 1; } private var _columnLabels:Array; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/basic-manifest.xml ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/basic-manifest.xml b/frameworks/projects/HTML/basic-manifest.xml index 5ddd403..71a4049 100644 --- a/frameworks/projects/HTML/basic-manifest.xml +++ b/frameworks/projects/HTML/basic-manifest.xml @@ -81,7 +81,6 @@ <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="DateChooser" class="org.apache.flex.html.DateChooser"/> <component id="DateField" class="org.apache.flex.html.DateField"/> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/js/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js index 73fe84e..4971449 100644 --- a/frameworks/projects/HTML/js/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js +++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/beads/DataItemRendererFactoryForArrayData.js @@ -129,7 +129,10 @@ org.apache.flex.html.beads.DataItemRendererFactoryForArrayData. ir.index = i; ir.labelField = this.model.labelField; ir.data = dp[i]; - if (presModel) ir.height = presModel.rowHeight; + if (presModel) { + ir.element.style['margin-bottom'] = presModel.separatorThickness; + ir.height = presModel.rowHeight; + } } var newEvent = new org.apache.flex.events.Event('itemsCreated'); http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/657ce8bd/frameworks/projects/HTML/js/src/org/apache/flex/html/beads/models/ListPresentationModel.js ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/js/src/org/apache/flex/html/beads/models/ListPresentationModel.js b/frameworks/projects/HTML/js/src/org/apache/flex/html/beads/models/ListPresentationModel.js index 9b9bfeb..91d4371 100644 --- a/frameworks/projects/HTML/js/src/org/apache/flex/html/beads/models/ListPresentationModel.js +++ b/frameworks/projects/HTML/js/src/org/apache/flex/html/beads/models/ListPresentationModel.js @@ -42,6 +42,13 @@ org.apache.flex.html.beads.models.ListPresentationModel.prototype.rowHeight_ = 3 /** + * @private + * @type {number} + */ +org.apache.flex.html.beads.models.ListPresentationModel.prototype.separatorThickness_ = 0; + + +/** * Metadata * * @type {Object.<string, Array.<Object>>} @@ -71,5 +78,17 @@ Object.defineProperties(org.apache.flex.html.beads.models.ListPresentationModel. this.rowHeight_ = value; this.dispatchEvent('rowHeightChanged'); } + }, + /** @export */ + separatorThickness: { + /** @this {org.apache.flex.html.beads.models.ListPresentationModel} */ + get: function() { + return this.separatorThickness_; + }, + /** @this {org.apache.flex.html.beads.models.ListPresentationModel} */ + set: function(value) { + this.separatorThickness_ = value; + this.dispatchEvent('separatorThicknessChanged'); + } } });
