com.adobe.mosaic.layouts

# SmartGridLayout - AS3 ADEP Composite Application

Package | com.adobe.mosaic.layouts
Class | public class SmartGridLayout
Inheritance | SmartGridLayout MosaicLayoutBase LayoutBase OnDemandEventDispatcher Object

Language Version: | ActionScript 3.0

Product Version: | Adobe Digital Enterprise Platform Experience Services - Composite Application Framework 10

Runtime Versions: | AIR 2.6, Flash Player 10.2

The SmartGridLayout places its target Group's children into a grid pattern, but with a twist. Most grid layout have uniform cells with the size of the cell either determined by the size of the largest child or by explicit row and column sizes.

The SmartGridLayout is different: it tries to maximimze the space in order to present as much of the child components as possible. If there is only one child, that child takes up 100% of the space, filling the area of the target Group. If there are two children, the SmartGrid divides the space in half, but gives each child 100% of the height. The children are separated into columns up to the `maxNumColumns` number of columns is reached.

Once the first row is filled out, the space is divided evenly amoung the children, shrinking the children in height, but maintaining the `maxNumColumns` number of columns. Once the child-height reaches `minRowHeight` the children stop shrinking and continue to fill the space vertically. If the target Group is contained within a Scroller, scrollbars should appear.

This layout does not support virtual layouts.

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | animationDuration : int The amount of time to give any annimation to run its course. | MosaicLayoutBase
|  | clipAndEnableScrolling : Boolean If true, specifies to clip the children to the boundaries of the viewport. | LayoutBase
|  | constructor : Object A reference to the class object or constructor function for a given object instance. | Object
|  | dropIndicator : DisplayObject The DisplayObject that this layout uses for the drop indicator during a drag-and-drop operation. | LayoutBase
|  | effectEndHandler : Function The function used to handle EffectEvent events. | MosaicLayoutBase
|  | horizontalGap : int The spacing between the columns. | MosaicLayoutBase
|  | horizontalScrollPosition : Number The x coordinate of the origin of the viewport in the component's coordinate system, where the default value is (0,0) corresponding to the upper-left corner of the component. | LayoutBase
|  | maxNumColumns : int The maximum number of columns the grid should display when orientation is set to "columns". | SmartGridLayout
|  | maxNumRows : int The maximum number of rows the grid should display with orientation is set to "rows". | SmartGridLayout
|  | minColumnWidth : Number The minimum size a column may become. | SmartGridLayout
|  | minRowHeight : Number The minimum size a row may become. | SmartGridLayout
|  | orientation : String The grid can be filled either column-wise (default) or row-wise. | SmartGridLayout
|  | paddingBottom : int The space between the container edge and the bottom row of items. | MosaicLayoutBase
|  | paddingLeft : int The space between the container edge and the left column of items. | MosaicLayoutBase
|  | paddingRight : int The space between the container edge and the right column of items. | MosaicLayoutBase
|  | paddingTop : int The space between the container edge and the top row of items. | MosaicLayoutBase
|  | target : GroupBase [override] Called when the target group is set for this layout. | MosaicLayoutBase
|  | typicalLayoutElement : ILayoutElement Used by layouts when fixed row/column sizes are requested but a specific size isn't specified. | LayoutBase
|  | useVirtualLayout : Boolean A container can hold any number of children. | LayoutBase
|  | verticalGap : int The spacing between the rows. | MosaicLayoutBase
|  | verticalScrollPosition : Number The y coordinate of the origin of the viewport in the component's coordinate system, where the default value is (0,0) corresponding to the upper-left corner of the component. | LayoutBase

Protected Properties
Hide Inherited Protected Properties
Show Inherited Protected Properties

| Property | Defined By
--- | --- | ---
|  | effectList : Parallel A collection of effects to play in parallel. | MosaicLayoutBase
|  | elementBeingRemoved : int = -1 The index of the element being removed, referenced to generate the special effects to display the removal, and then reset to -1 (default). | MosaicLayoutBase
|  | layoutUndefined : Boolean = true Default is true. | MosaicLayoutBase
|  | maximized : Boolean = false Default is false. | MosaicLayoutBase
|  | maximizedElement : IVisualElement The IVisualElement being maximized. | MosaicLayoutBase
|  | measuredMaxHeight : Number The measured maximum height of an element. | MosaicLayoutBase
|  | measuredMaxWidth : Number The measured maximum width of an element. | MosaicLayoutBase
|  | minimizedElements : Array The Array of IVisualElement elements currently minimized. | MosaicLayoutBase
|  | restoreCellHeight : Number The height to restore a minimized element to. | MosaicLayoutBase
|  | restoreCellWidth : Number The width to restore a minimized element to. | MosaicLayoutBase

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | SmartGridLayout() Constructor | SmartGridLayout
|  | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event. | OnDemandEventDispatcher
|  | calculateDropLocation(dragEvent:DragEvent):DropLocation [override] Determines the location of the drop (should it happen) and returns that information in the form of a DropLocation. | SmartGridLayout
|  | clearVirtualLayoutCache():void When useVirtualLayout is true, this method can be used by the layout target to clear cached layout information when the target changes. | LayoutBase
|  | dispatchEvent(event:Event):Boolean Dispatches an event into the event flow. | OnDemandEventDispatcher
|  | elementAdded(index:int):void [override] Called whenever an element is added to the target. | MosaicLayoutBase
|  | elementRemoved(index:int):void [override] Called whenever an element is removed. | MosaicLayoutBase
|  | getElementBounds(index:int):Rectangle Returns the specified element's layout bounds as a Rectangle or null if the index is invalid, the corresponding element is null, includeInLayout=false, or if this layout's target property is null. | LayoutBase
|  | getHorizontalScrollPositionDelta(navigationUnit:uint):Number Returns the change to the horizontal scroll position to handle different scrolling options. | LayoutBase
|  | getLayoutChildAt(index:int):ILayoutChild Returns the ILayoutChild that occupies the given display list index. | MosaicLayoutBase
|  | getNavigationDestinationIndex(currentIndex:int, navigationUnit:uint, arrowKeysWrapFocus:Boolean):int Delegation method that determines which item to navigate to based on the current item in focus and user input in terms of NavigationUnit. | LayoutBase
|  | getScrollPositionDeltaToElement(index:int):Point Computes the verticalScrollPosition and horizontalScrollPosition deltas needed to scroll the element at the specified index into view. | LayoutBase
|  | getVerticalScrollPositionDelta(navigationUnit:uint):Number Returns the change to the vertical scroll position to handle different scrolling options. | LayoutBase
|  | hasEventListener(type:String):Boolean Checks whether the EventDispatcher object has any listeners registered for a specific type of event. | OnDemandEventDispatcher
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | hideDropIndicator():void Hides the previously shown drop indicator, created by the showDropIndicator() method, removes it from the display list and also stops the drag scrolling. | LayoutBase
|  | isMaximized():Boolean When a value of true is return, this layout is currently showing a maximized child element. | MosaicLayoutBase
|  | isPrototypeOf(theClass:Object):Boolean Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter. | Object
|  | maximizeElement(element:IVisualElement):void Maximizes the given element to take up entire target space (minus padding, of course). | MosaicLayoutBase
|  | measure():void [override] Called when the target requires measurement. | SmartGridLayout
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void Removes a listener from the EventDispatcher object. | OnDemandEventDispatcher
|  | restoreMaximizedElement(element:IVisualElement):void Restores an element that has been maximized. | MosaicLayoutBase
|  | restoreVanishedElement(element:IVisualElement):void Handles the layout side of restoring a previously minimized element by making it appear. | MosaicLayoutBase
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | showDropIndicator(dropLocation:DropLocation):void Sizes, positions and parents the drop indicator based on the specified drop location. | LayoutBase
|  | toLocaleString():String Returns the string representation of this object, formatted according to locale-specific conventions. | Object
|  | toString():String Returns the string representation of the specified object. | Object
|  | updateDisplayList(width:Number, height:Number):void Sizes and positions the target's elements. | LayoutBase
|  | updateScrollRect(w:Number, h:Number):void Called by the target at the end of its updateDisplayList to have the layout update its scrollRect. | LayoutBase
|  | valueOf():Object Returns the primitive value of the specified object. | Object
|  | vanishElement(element:IVisualElement):void Handles the layout side of a minimized element by making it disappear. | MosaicLayoutBase
|  | willTrigger(type:String):Boolean Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type. | OnDemandEventDispatcher

Protected Methods
Hide Inherited Protected Methods
Show Inherited Protected Methods

| Method | Defined By
--- | --- | ---
|  | calculateDragScrollDelta(dropLocation:DropLocation, elapsedTime:Number):Point Calculates how much to scroll for the specified dropLocation during a drag and drop gesture. | LayoutBase
|  | calculateDropIndex(x:Number, y:Number):int [override] Locates the item under the point using a simple look-up, accounting for horizontal and vertical gaps. | MosaicLayoutBase
|  | calculateDropIndicatorBounds(dropLocation:DropLocation):Rectangle [override] Determines the size and position of the drop indicator, returning an Rectangle with the proper boundaries. | SmartGridLayout
|  | calculateLayoutPositions(width:Number, height:Number, updateInPlace:Boolean, returnArray:Boolean):Array [override] Sizes and positions the target's elements in the normal fashion for this layout. | SmartGridLayout
|  | calculateSizes():void Called to calculate key variables. | SmartGridLayout
|  | displayRemovedElements():void Generates a series of Move and Resize effects for item being placing them into their new positions. | MosaicLayoutBase
|  | getElementBoundsAboveScrollRect(scrollRect:Rectangle):Rectangle Returns the bounds of the first layout element that either spans or is above the scrollRect's top edge. | LayoutBase
|  | getElementBoundsBelowScrollRect(scrollRect:Rectangle):Rectangle Returns the bounds of the first layout element that either spans or is below the scrollRect's bottom edge. | LayoutBase
|  | getElementBoundsLeftOfScrollRect(scrollRect:Rectangle):Rectangle Returns the bounds of the first layout element that either spans or is to the left of the scrollRect's left edge. | LayoutBase
|  | getElementBoundsRightOfScrollRect(scrollRect:Rectangle):Rectangle Returns the bounds of the first layout element that either spans or is to the right of the scrollRect's right edge. | LayoutBase
|  | getScrollRect():Rectangle Returns the bounds of the target's scroll rectangle in layout coordinates. | LayoutBase
|  | maximizedLayout(width:Number, height:Number):void Sizes and positions the maximized element. | MosaicLayoutBase
|  | normalLayout(width:Number, height:Number):void The layout to use when operating in a non-maximized mode. | MosaicLayoutBase
|  | numValidElements():int Returns the number of elements that can be seen. | SmartGridLayout
|  | onEffectEnd(event:EffectEvent):void Called when the effects are over to reset the elementBeingMoved value. | MosaicLayoutBase
|  | scrollPositionChanged():void Called when the verticalScrollPosition or horizontalScrollPosition properties change. | LayoutBase

Property Detail

### maxNumColumns

property

`maxNumColumns:int`

Language Version: | ActionScript 3.0

Product Version: | Adobe Digital Enterprise Platform Experience Services - Composite Application Framework 10

Runtime Versions: | AIR 2.6, Flash Player 10.2

The maximum number of columns the grid should display when orientation is set to "columns". The grid may show less columns but never any more than this number.

This property can be used as the source for data binding. When this property is modified, it dispatches the `propertyChange` event.

Implementation
`public function get maxNumColumns():int`
`public function set maxNumColumns(value:int):void`

### maxNumRows

property

`maxNumRows:int`

Language Version: | ActionScript 3.0

Product Version: | Adobe Digital Enterprise Platform Experience Services - Composite Application Framework 10

Runtime Versions: | AIR 2.6, Flash Player 10.2

The maximum number of rows the grid should display with orientation is set to "rows". The grid may show less rows but never more than this number.

This property can be used as the source for data binding. When this property is modified, it dispatches the `propertyChange` event.

Implementation
`public function get maxNumRows():int`
`public function set maxNumRows(value:int):void`

### minColumnWidth

property

`minColumnWidth:Number`

Language Version: | ActionScript 3.0

Product Version: | Adobe Digital Enterprise Platform Experience Services - Composite Application Framework 10

Runtime Versions: | AIR 2.6, Flash Player 10.2

The minimum size a column may become. Adding more items to the target may shrink the item but never less than this amount. The target may acquire scrollbars if the item will not fit in the target's visible space. This property applies only when orientation is set to "rows".

This property can be used as the source for data binding. When this property is modified, it dispatches the `propertyChange` event.

Implementation
`public function get minColumnWidth():Number`
`public function set minColumnWidth(value:Number):void`

### minRowHeight

property

`minRowHeight:Number`

Language Version: | ActionScript 3.0

Product Version: | Adobe Digital Enterprise Platform Experience Services - Composite Application Framework 10

Runtime Versions: | AIR 2.6, Flash Player 10.2

The minimum size a row may become. Adding more items to the target may shrink the item but never less than this amount. The target may acquire scrollbars if the item will not fit in the target's visible space. This property applies only when orientation is set to "columns".

This property can be used as the source for data binding. When this property is modified, it dispatches the `propertyChange` event.

Implementation
`public function get minRowHeight():Number`
`public function set minRowHeight(value:Number):void`

### orientation

property

`orientation:String`

Language Version: | ActionScript 3.0

Product Version: | Adobe Digital Enterprise Platform Experience Services - Composite Application Framework 10

Runtime Versions: | AIR 2.6, Flash Player 10.2

The grid can be filled either column-wise (default) or row-wise. When the grid is being filled column-wise, the items flow from left to right, top to bottom. When the grid is filled row-wise, the items flow from top to bottom, left to right.

This property can be used as the source for data binding. When this property is modified, it dispatches the `propertyChange` event.

Implementation
`public function get orientation():String`
`public function set orientation(value:String):void`
Constructor Detail

### SmartGridLayout

()
Constructor

`public function SmartGridLayout()`

Language Version: | ActionScript 3.0

Product Version: | Adobe Digital Enterprise Platform Experience Services - Composite Application Framework 10

Runtime Versions: | AIR 2.6, Flash Player 10.2

Constructor

Method Detail

### calculateDropIndicatorBounds

()
method

`override protected function calculateDropIndicatorBounds(dropLocation:DropLocation):Rectangle`

Language Version: | ActionScript 3.0

Product Version: | Adobe Digital Enterprise Platform Experience Services - Composite Application Framework 10

Runtime Versions: | AIR 2.6, Flash Player 10.2

Determines the size and position of the drop indicator, returning an Rectangle with the proper boundaries. The dropLocation always points to the item being moved, so the indicator is almost always drawn to its left (column orientation) or top (row orientation). If the location points to the last item (the index is equal to the number of items in the target), then the indicator is drawn to its right (column) or bottom (row).

Parameters

| `dropLocation:DropLocation` — The position within the layout where the drop can be expected.

Returns

| `Rectangle` — A rectangle the describes the area of the drop.

### calculateDropLocation

()
method

`override public function calculateDropLocation(dragEvent:DragEvent):DropLocation`

Language Version: | ActionScript 3.0

Product Version: | Adobe Digital Enterprise Platform Experience Services - Composite Application Framework 10

Runtime Versions: | AIR 2.6, Flash Player 10.2

Determines the location of the drop (should it happen) and returns that information in the form of a DropLocation. However, since this layout is row,column based and index may not be meaningful, the object returned is an instance of MosaicDropLocation that contains row and column index information.

Parameters

| `dragEvent:DragEvent` — The event that contains the position of the mouse.

Returns

| `DropLocation` — The location where the drop could happen.

### calculateLayoutPositions

()
method

`override protected function calculateLayoutPositions(width:Number, height:Number, updateInPlace:Boolean, returnArray:Boolean):Array`

Language Version: | ActionScript 3.0

Product Version: | Adobe Digital Enterprise Platform Experience Services - Composite Application Framework 10

Runtime Versions: | AIR 2.6, Flash Player 10.2

Sizes and positions the target's elements in the normal fashion for this layout.

Parameters

| `width:Number` — The width of the target Group's area.
| `height:Number` — The height of the target Group's area.
| `updateInPlace:Boolean` — If true, the children are changed, if false, they are left as-is.
| `returnArray:Boolean` — If true, an array of row and column positions is returned.

Returns

| `Array` — An array of row and column positions for each child or an empty array if returnArray is false.

### calculateSizes

()
method

`protected function calculateSizes():void`

Language Version: | ActionScript 3.0

Product Version: | Adobe Digital Enterprise Platform Experience Services - Composite Application Framework 10

Runtime Versions: | AIR 2.6, Flash Player 10.2

Called to calculate key variables.

### measure

()
method

`override public function measure():void`

Language Version: | ActionScript 3.0

Product Version: | Adobe Digital Enterprise Platform Experience Services - Composite Application Framework 10

Runtime Versions: | AIR 2.6, Flash Player 10.2

Called when the target requires measurement.

### numValidElements

()
method

`protected function numValidElements():int`

Language Version: | ActionScript 3.0

Product Version: | Adobe Digital Enterprise Platform Experience Services - Composite Application Framework 10

Runtime Versions: | AIR 2.6, Flash Player 10.2

Returns the number of elements that can be seen.

Returns

| `int` — Number of elements that can be seen.

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00