Fixed DateChooser and DataContainer. Updates to some layouts.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/f8a71b2e Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/f8a71b2e Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/f8a71b2e Branch: refs/heads/tlf Commit: f8a71b2eca2bfec4d5736328ddaa598ce51298a1 Parents: 679eccb Author: Peter Ent <[email protected]> Authored: Tue Mar 21 17:34:58 2017 -0400 Committer: Peter Ent <[email protected]> Committed: Tue Mar 21 17:34:58 2017 -0400 ---------------------------------------------------------------------- .../flex/org/apache/flex/html/DataContainer.as | 123 ++++++++++++++++--- .../flex/org/apache/flex/html/DateChooser.as | 4 +- .../apache/flex/html/beads/DataContainerView.as | 106 +++++++++------- .../apache/flex/html/beads/DateChooserView.as | 120 ++++++++++-------- .../flex/org/apache/flex/html/beads/ListView.as | 15 --- .../html/beads/layouts/HorizontalFlexLayout.as | 3 + .../html/beads/layouts/VerticalFlexLayout.as | 3 + .../html/supportClasses/DateChooserHeader.as | 10 +- .../HTML/src/main/resources/defaults.css | 13 +- 9 files changed, 262 insertions(+), 135 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f8a71b2e/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataContainer.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataContainer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataContainer.as index 5d33d55..948a953 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataContainer.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataContainer.as @@ -20,10 +20,14 @@ package org.apache.flex.html { import org.apache.flex.core.ContainerBaseStrandChildren; import org.apache.flex.core.IContentViewHost; + import org.apache.flex.core.IChild; import org.apache.flex.core.IDataProviderItemRendererMapper; import org.apache.flex.core.IFactory; import org.apache.flex.core.IItemRendererClassFactory; - import org.apache.flex.core.IItemRendererProvider; + import org.apache.flex.core.IItemRenderer; + import org.apache.flex.core.IItemRendererParent; + import org.apache.flex.core.ILayoutObject; + import org.apache.flex.core.IList; import org.apache.flex.core.IListPresentationModel; import org.apache.flex.core.IRollOverModel; import org.apache.flex.core.IDataProviderModel; @@ -38,7 +42,11 @@ package org.apache.flex.html } import org.apache.flex.events.Event; import org.apache.flex.events.IEventDispatcher; + import org.apache.flex.events.ItemAddedEvent; + import org.apache.flex.events.ItemClickedEvent; + import org.apache.flex.events.ItemRemovedEvent; import org.apache.flex.html.beads.models.ListPresentationModel; + import org.apache.flex.html.supportClasses.DataItemRenderer; /** * Indicates that the initialization of the list is complete. @@ -51,7 +59,7 @@ package org.apache.flex.html [Event(name="initComplete", type="org.apache.flex.events.Event")] /** - * The List class is a component that displays multiple data items. The List uses + * The DataContainer class is a component that displays multiple data items. The DataContainer uses * the following bead types: * * org.apache.flex.core.IBeadModel: the data model, which includes the dataProvider. @@ -66,7 +74,7 @@ package org.apache.flex.html * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class DataContainer extends ListBase implements IItemRendererProvider + public class DataContainer extends ListBase implements IList, IItemRendererParent, ILayoutObject { /** * constructor. @@ -116,6 +124,14 @@ package org.apache.flex.html { IDataProviderModel(model).dataProvider = value; } + + /** + * Returns the sub-component that parents all of the item renderers. + */ + public function get dataGroup():IItemRendererParent + { + return this; + } /** @@ -198,6 +214,90 @@ package org.apache.flex.html return result; } + /* + * IItemRendererParent + */ + + /** + * @copy org.apache.flex.core.IItemRendererParent#getItemRendererForIndex() + * @private + */ + public function addItemRenderer(renderer:IItemRenderer):void + { + addElement(renderer, true); + + var newEvent:ItemAddedEvent = new ItemAddedEvent("itemAdded"); + newEvent.item = renderer; + + dispatchEvent(newEvent); + } + + /** + * @copy org.apache.flex.core.IItemRendererParent#getItemRendererForIndex() + * @private + */ + public function removeItemRenderer(renderer:IItemRenderer):void + { + removeElement(renderer, true); + + var newEvent:ItemRemovedEvent = new ItemRemovedEvent("itemRemoved"); + newEvent.item = renderer; + + dispatchEvent(newEvent); + } + + /** + * @copy org.apache.flex.core.IItemRendererParent#getItemRendererForIndex() + * @private + */ + public function removeAllItemRenderers():void + { + while (numElements > 0) { + var child:IChild = getElementAt(0); + removeElement(child); + } + } + + /** + * @copy org.apache.flex.core.IItemRendererParent#getItemRendererForIndex() + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function getItemRendererForIndex(index:int):IItemRenderer + { + if (index < 0 || index >= numElements) return null; + return getElementAt(index) as IItemRenderer; + } + + /** + * Refreshes the itemRenderers. Useful after a size change by the data group. + * + * @copy org.apache.flex.core.IItemRendererParent#getItemRendererForIndex() + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function updateAllItemRenderers():void + { + var n:Number = numElements; + for (var i:Number = 0; i < n; i++) + { + var renderer:DataItemRenderer = getItemRendererForIndex(i) as DataItemRenderer; + if (renderer) { + renderer.setWidth(this.width,true); + renderer.adjustSize(); + } + } + } + + /* + * UIBase + */ + /** * @private @@ -234,22 +334,9 @@ package org.apache.flex.html override protected function createElement():WrappedHTMLElement { super.createElement(); - className = 'List'; + className = 'DataContainer'; return element; - } - - /** - * @flexjsignorecoercion org.apache.flex.html.beads.ListView - * @flexjsignorecoercion org.apache.flex.html.supportClasses.DataGroup - */ - COMPILE::JS - override public function internalChildren():Array - { - var listView:ListView = getBeadByType(ListView) as ListView; - var dg:DataGroup = listView.dataGroup as DataGroup; - var renderers:Array = dg.internalChildren(); - return renderers; - }; + } } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f8a71b2e/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateChooser.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateChooser.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateChooser.as index 6bf910a..460cd33 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateChooser.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateChooser.as @@ -19,7 +19,7 @@ package org.apache.flex.html { import org.apache.flex.core.IDateChooserModel; - import org.apache.flex.core.UIBase; + import org.apache.flex.html.Group; /** * The change event is dispatched when the selectedDate is changed. @@ -35,7 +35,7 @@ package org.apache.flex.html * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - public class DateChooser extends UIBase + public class DateChooser extends Group { /** * constructor. http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f8a71b2e/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as index 73986c0..5036b6b 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as @@ -24,12 +24,14 @@ package org.apache.flex.html.beads import org.apache.flex.core.IBeadLayout; import org.apache.flex.core.IBeadModel; import org.apache.flex.core.IBeadView; + import org.apache.flex.core.IList; import org.apache.flex.core.ISelectableItemRenderer; import org.apache.flex.core.IItemRenderer; import org.apache.flex.core.IItemRendererParent; import org.apache.flex.core.IParent; import org.apache.flex.core.IParentIUIBase; import org.apache.flex.core.IDataProviderModel; + import org.apache.flex.core.ISelectionModel; import org.apache.flex.core.IStrand; import org.apache.flex.core.IUIBase; import org.apache.flex.core.Strand; @@ -44,76 +46,81 @@ package org.apache.flex.html.beads import org.apache.flex.html.supportClasses.ScrollBar; /** - * The List class creates the visual elements of the org.apache.flex.html.List - * component. A List consists of the area to display the data (in the dataGroup), any - * scrollbars, and so forth. + * The DataContainerView provides the visual elements for the DataContainer. * * @viewbead * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ + COMPILE::JS public class DataContainerView extends ContainerView implements IListView { public function DataContainerView() { + super(); } - + protected var listModel:IDataProviderModel; - private var _border:Border; + public function get dataGroup():IItemRendererParent + { + return (_strand as IList).dataGroup; + } + + override protected function beadsAddedHandler(event:Event):void + { + + listModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel; + host.addEventListener("itemsCreated", itemsCreatedHandler); + listModel.addEventListener("dataProviderChanged", dataProviderChangeHandler); + + super.beadsAddedHandler(event); + } /** - * The border surrounding the org.apache.flex.html.List. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @private */ - public function get border():Border - { - return _border; - } + protected function itemsCreatedHandler(event:Event):void + { + performLayout(event); + } /** - * The area holding the itemRenderers. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @private */ - public function get dataGroup():IItemRendererParent + protected function dataProviderChangeHandler(event:Event):void { - (contentView as UIBase).className = "ListDataGroup"; - return contentView as IItemRendererParent; + performLayout(event); } - + } + + COMPILE::SWF + public class DataContainerView extends ContainerView implements IListView + { + public function DataContainerView() + { + super(); + } + + protected var listModel:IDataProviderModel; + /** * @private */ - override public function get resizableView():IUIBase + override public function get host():IUIBase { return _strand as IUIBase; } - - /** - * @private - */ - override public function get host():IUIBase - { - return _strand as IUIBase; - } - + /** * @copy org.apache.flex.core.IBead#strand * * @langversion 3.0 * @playerversion Flash 10.2 * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 + * @productversion FlexJS 0.8 */ override public function set strand(value:IStrand):void { @@ -127,22 +134,38 @@ package org.apache.flex.html.beads // list is not interested in UI children, it wants to know when new items // have been added or the dataProvider has changed. - COMPILE::SWF { host.removeEventListener("childrenAdded", childrenChangedHandler); host.removeEventListener("childrenAdded", performLayout); host.addEventListener("itemsCreated", itemsCreatedHandler); - } listModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel; listModel.addEventListener("dataProviderChanged", dataProviderChangeHandler); } - protected var lastSelectedIndex:int = -1; + /** + * The area holding the itemRenderers. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.8 + */ + public function get dataGroup():IItemRendererParent + { + return (_strand as IList).dataGroup; + } + + /** + * @private + */ + override public function get resizableView():IUIBase + { + return _strand as IUIBase; + } /** * @private */ - COMPILE::SWF protected function itemsCreatedHandler(event:Event):void { performLayout(event); @@ -164,7 +187,6 @@ package org.apache.flex.html.beads * @playerversion AIR 2.6 * @productversion FlexJS 0.0 */ - COMPILE::SWF override protected function resizeHandler(event:Event):void { super.resizeHandler(event); http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f8a71b2e/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as index d663a32..89877ab 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as @@ -23,13 +23,16 @@ package org.apache.flex.html.beads import org.apache.flex.core.IBeadModel; import org.apache.flex.core.IBeadView; import org.apache.flex.core.IStrand; + 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; import org.apache.flex.html.Container; + import org.apache.flex.html.Group; import org.apache.flex.html.List; import org.apache.flex.html.TextButton; + import org.apache.flex.html.beads.GroupView; import org.apache.flex.html.beads.layouts.HorizontalLayout; import org.apache.flex.html.beads.layouts.TileLayout; import org.apache.flex.html.beads.models.DateChooserModel; @@ -44,7 +47,7 @@ package org.apache.flex.html.beads * of the month. * @viewbead */ - public class DateChooserView extends BeadViewBase implements IBeadView + public class DateChooserView extends GroupView implements IBeadView { /** * constructor @@ -56,6 +59,7 @@ package org.apache.flex.html.beads */ public function DateChooserView() { + super(); } override public function set strand(value:IStrand):void @@ -69,12 +73,8 @@ package org.apache.flex.html.beads model.addEventListener("displayedMonthChanged",handleModelChange); model.addEventListener("displayedYearChanged",handleModelChange); - var host:UIBase = value as UIBase; - host.addEventListener("widthChanged", handleSizeChange); - host.addEventListener("heightChanged", handleSizeChange); - createChildren(); - layoutContents(); + updateDisplay(); } private var model:DateChooserModel; @@ -82,6 +82,7 @@ package org.apache.flex.html.beads private var _prevMonthButton:DateHeaderButton; private var _nextMonthButton:DateHeaderButton; private var monthLabel:DateHeaderButton; + private var monthButtonsContainer:Group; private var dayNamesContainer:DateChooserHeader; private var daysContainer:DateChooserList; @@ -116,79 +117,100 @@ package org.apache.flex.html.beads return daysContainer; } - private function handleSizeChange(event:Event):void - { - layoutContents(); - } - /** * @private */ private function createChildren():void { + // HEADER BUTTONS + + monthButtonsContainer = new Group(); + monthButtonsContainer.id = "DateChooserMonthButtons"; + monthButtonsContainer.className = "DateChooserMonthButtons"; + monthButtonsContainer.style = new SimpleCSSStyles(); + monthButtonsContainer.style.flexGrow = 0; + COMPILE::JS { + monthButtonsContainer.element.style["flex-grow"] = "0"; + } + _prevMonthButton = new DateHeaderButton(); _prevMonthButton.width = 40; - _prevMonthButton.height = 20; _prevMonthButton.text = "<"; - UIBase(_strand).addElement(_prevMonthButton); + if (_prevMonthButton.style == null) { + _prevMonthButton.style = new SimpleCSSStyles(); + } + _prevMonthButton.style.flexGrow = 0; + COMPILE::JS { + _prevMonthButton.element.style["flex-grow"] = "0"; + } + monthButtonsContainer.addElement(_prevMonthButton); + + monthLabel = new DateHeaderButton(); + monthLabel.text = "Month Here"; + if (monthLabel.style == null) { + monthLabel.style = new SimpleCSSStyles(); + } + monthLabel.style.flexGrow = 1; + COMPILE::JS { + monthLabel.element.style["flex-grow"] = "1"; + } + monthButtonsContainer.addElement(monthLabel); _nextMonthButton = new DateHeaderButton(); _nextMonthButton.width = 40; - _nextMonthButton.height = 20; _nextMonthButton.text = ">"; - UIBase(_strand).addElement(_nextMonthButton); + if (_nextMonthButton.style == null) { + _nextMonthButton.style = new SimpleCSSStyles(); + } + COMPILE::JS { + _nextMonthButton.element.style["flex-grow"] = "0"; + } + _nextMonthButton.style.flexGrow = 0; + monthButtonsContainer.addElement(_nextMonthButton); - monthLabel = new DateHeaderButton(); - monthLabel.text = "Month Here"; - monthLabel.width = 100; - monthLabel.height = 20; - UIBase(_strand).addElement(monthLabel); + UIBase(_strand).addElement(monthButtonsContainer, false); + + // DAY NAMES dayNamesContainer = new DateChooserHeader(); + dayNamesContainer.id = "DateChooserDayNames"; + dayNamesContainer.percentWidth = 100; + dayNamesContainer.style = new SimpleCSSStyles(); + dayNamesContainer.style.flexGrow = 0; + COMPILE::JS { + dayNamesContainer.element.style["flex-grow"] = "0"; + } UIBase(_strand).addElement(dayNamesContainer, false); + // DAYS + daysContainer = new DateChooserList(); + daysContainer.id = "DateChooserList"; + daysContainer.percentWidth = 100; + daysContainer.style = new SimpleCSSStyles(); + daysContainer.style.flexGrow = 1; + COMPILE::JS { + daysContainer.element.style["flex-grow"] = "1"; + } UIBase(_strand).addElement(daysContainer, false); - IEventDispatcher(daysContainer).dispatchEvent( new Event("itemsCreated") ); + IEventDispatcher(daysContainer).dispatchEvent( new Event("itemsCreated") ); model.addEventListener("selectedDateChanged", selectionChangeHandler); } - private function layoutContents():void + /** + * @private + */ + private function updateDisplay():void { - var sw:Number = UIBase(_strand).width; - var sh:Number = UIBase(_strand).height; - - _prevMonthButton.x = 0; - _prevMonthButton.y = 0; - - _nextMonthButton.x = sw - _nextMonthButton.width; - _nextMonthButton.y = 0; - - monthLabel.x = _prevMonthButton.x + _prevMonthButton.width; - monthLabel.y = 0; - monthLabel.width = sw - _prevMonthButton.width - _nextMonthButton.width; monthLabel.text = model.monthNames[model.displayedMonth] + " " + String(model.displayedYear); - dayNamesContainer.x = 0; - dayNamesContainer.y = monthLabel.y + monthLabel.height; - dayNamesContainer.width = sw; - dayNamesContainer.height = monthLabel.height; - dayNamesContainer.dataProvider = model.dayNames; - daysContainer.x = 0; - daysContainer.y = dayNamesContainer.y + dayNamesContainer.height; - daysContainer.width = sw; - daysContainer.height = sh - monthLabel.height - dayNamesContainer.height; - daysContainer.dataProvider = model.days; - - IEventDispatcher(_strand).dispatchEvent( new Event("layoutNeeded") ); - IEventDispatcher(daysContainer).dispatchEvent( new Event("layoutNeeded") ); } /** @@ -196,7 +218,7 @@ package org.apache.flex.html.beads */ private function selectionChangeHandler(event:Event):void { - layoutContents(); + updateDisplay(); var index:Number = model.getIndexForSelectedDate(); daysContainer.selectedIndex = index; @@ -207,7 +229,7 @@ package org.apache.flex.html.beads */ private function handleModelChange(event:Event):void { - layoutContents(); + updateDisplay(); } } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f8a71b2e/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ListView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ListView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ListView.as index 6f7a1bc..f27d388 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ListView.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ListView.as @@ -126,21 +126,6 @@ package org.apache.flex.html.beads } protected var listModel:ISelectionModel; - - private var _border:Border; - - /** - * The border surrounding the org.apache.flex.html.List. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion FlexJS 0.0 - */ - public function get border():Border - { - return _border; - } /** * @private http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f8a71b2e/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as index 03a34a7..227a720 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as @@ -140,6 +140,8 @@ package org.apache.flex.html.beads.layouts var marginBottom:Object; var margin:Object; + trace("HorizontalFlexLayout for "+UIBase(host).id+" with remainingWidth: "+remainingWidth); + // First pass determines the data about the child. for(var i:int=0; i < n; i++) { @@ -173,6 +175,7 @@ package org.apache.flex.html.beads.layouts else if (!isNaN(ilc.percentWidth)) useWidth = contentView.width * (ilc.percentWidth/100.0); else useWidth = ilc.width; } + if (growValue == 0 && useWidth > 0) remainingWidth -= useWidth; margin = ValuesManager.valuesImpl.getValue(child, "margin"); marginLeft = ValuesManager.valuesImpl.getValue(child, "margin-left"); http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f8a71b2e/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as index f80ddf7..574b9b8 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as @@ -139,6 +139,8 @@ package org.apache.flex.html.beads.layouts var marginBottom:Object; var margin:Object; + trace("VerticalFlexLayout for "+UIBase(host).id+" with remainingHeight: "+remainingHeight); + // First pass determines the data about the child. for(var i:int=0; i < n; i++) { @@ -172,6 +174,7 @@ package org.apache.flex.html.beads.layouts else if (!isNaN(ilc.percentHeight)) useHeight = contentView.height * (ilc.percentHeight/100.0); else useHeight = ilc.height; } + if (growValue == 0 && useHeight > 0) remainingHeight -= useHeight; margin = ValuesManager.valuesImpl.getValue(child, "margin"); marginLeft = ValuesManager.valuesImpl.getValue(child, "margin-left"); http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f8a71b2e/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DateChooserHeader.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DateChooserHeader.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DateChooserHeader.as index 775a140..0fde1c9 100644 --- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DateChooserHeader.as +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DateChooserHeader.as @@ -19,7 +19,7 @@ package org.apache.flex.html.supportClasses { import org.apache.flex.html.DataContainer; - import org.apache.flex.html.beads.layouts.TileLayout; + import org.apache.flex.html.beads.layouts.HorizontalFlexLayout; /** * The DateChooserHeader is the container for the days of the week labels @@ -44,15 +44,14 @@ package org.apache.flex.html.supportClasses { super(); - tileLayout = new TileLayout(); - tileLayout.numColumns = 7; - addBead(tileLayout); + myLayout = new HorizontalFlexLayout(); + addBead(myLayout); } /** * @private */ - private var tileLayout:TileLayout; + private var myLayout:HorizontalFlexLayout; /** * @private @@ -60,7 +59,6 @@ package org.apache.flex.html.supportClasses override public function set height(value:Number):void { super.height = value; - tileLayout.rowHeight = value; } } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f8a71b2e/frameworks/projects/HTML/src/main/resources/defaults.css ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/resources/defaults.css b/frameworks/projects/HTML/src/main/resources/defaults.css index fecb548..81face4 100644 --- a/frameworks/projects/HTML/src/main/resources/defaults.css +++ b/frameworks/projects/HTML/src/main/resources/defaults.css @@ -214,10 +214,11 @@ DataGridColumnList { DateChooser { IBeadView: ClassReference("org.apache.flex.html.beads.DateChooserView"); - IBeadModel: ClassReference("org.apache.flex.html.beads.models.DateChooserModel"); + IBeadModel: ClassReference("org.apache.flex.html.beads.models.DateChooserModel"); + IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalFlexLayout"); IBeadController: ClassReference("org.apache.flex.html.beads.controllers.DateChooserMouseController"); width: 280px; - height: 230px; + height: 240px; } DateChooserList { @@ -231,13 +232,19 @@ DateChooserList { } DateChooserHeader { - IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.DayNameItemRenderer"); + IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.DayNameItemRenderer"); + height: 20px; border-style: solid; border-color: #000000; border-width: 1px; background-color: #FFFFFF; } +.DateChooserMonthButtons { + IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.HorizontalFlexLayout"); + height: 20px; +} + DateItemRenderer { IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ItemRendererMouseController");
