com.adobe.mosaic.layouts

# SmartRowLayout - AS3 ADEP Composite Application

Package | com.adobe.mosaic.layouts
Class | public class SmartRowLayout
Inheritance | SmartRowLayout 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 SmartRowLayout place's its target Group's children into a fixed set of rows determined by `numRows` which defaults to 3.

Each child's height is changed so that all of the rows maintain the same height. Each child's width is retained, however, unless the child is less than `minColumnWidth`.

This pattern means that the rows will be of differing width. Whenever a new child is added to the end of the target Group's display list, it is added to the shortest row.

When a child is deleted, the children to its right are moved to the left, the other rows are not affected.

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
|  | minColumnWidth : Number The minimum width an element in a row may become. | SmartRowLayout
|  | numRows : int Number of rows | SmartRowLayout
|  | 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
--- | --- | ---
|  | SmartRowLayout() Constructor | SmartRowLayout
|  | 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. | SmartRowLayout
|  | 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 when a new element is added. | SmartRowLayout
|  | elementRemoved(index:int):void [override] Called when an element is removed. | SmartRowLayout
|  | 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 should be measured. | SmartRowLayout
|  | 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
--- | --- | ---
|  | addAtEnd(child:ILayoutChild):Object Adds the item, given by its index, to either the end of the matrix or into the first vacant cell. | SmartRowLayout
|  | addAtRowCol(index:int):Object Adds the item using the item's column and row properties to place the item. | SmartRowLayout
|  | addToShortestRow(index:int):Object Adds the item, given by its index, to the row that is visually the shortest. | SmartRowLayout
|  | calculateChildWidths(row:Array, width:Number):Array Calculates the sizes of the children in a row. | SmartRowLayout
|  | 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] Creates the bounding rectangle for the drop indicator. | SmartRowLayout
|  | calculateLayoutPositions(width:Number, height:Number, updateInPlace:Boolean, returnArray:Boolean):Array [override] Calculates the positions and sizes of all of the layout target's children. | SmartRowLayout
|  | calculateSizes():void Calculates key size variables. | SmartRowLayout
|  | displayRemovedElements():void Generates a series of Move and Resize effects for item being placing them into their new positions. | MosaicLayoutBase
|  | findCell(index:int):Object Find a cell position given the child's display index. | SmartRowLayout
|  | 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 [override] Sizes and positions the target's elements in row fashion. | SmartRowLayout
|  | onEffectEnd(event:EffectEvent):void Called when the effects are over to reset the elementBeingMoved value. | MosaicLayoutBase
|  | rebuildLayout():void Reconstructs the layout from scratch. | SmartRowLayout
|  | scrollPositionChanged():void Called when the verticalScrollPosition or horizontalScrollPosition properties change. | LayoutBase

Property Detail

### 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 width an element in a row may become.

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`

### numRows

property

`numRows: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

Number of 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 numRows():int`
`public function set numRows(value:int):void`
Constructor Detail

### SmartRowLayout

()
Constructor

`public function SmartRowLayout()`

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

### addAtEnd

()
method

`protected function addAtEnd(child:ILayoutChild):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

Adds the item, given by its index, to either the end of the matrix or into the first vacant cell.

Parameters

| `child:ILayoutChild` — The child to be added to the last position of the layout.

Returns

| `Object` — the {col, row} Object with the position information.

### addAtRowCol

()
method

`protected function addAtRowCol(index:int):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

Adds the item using the item's column and row properties to place the item. If an element is already there, that element is moved down 1 row in the same column.

Parameters

| `index:int` — The child's index within the display list of the group target.

Returns

| `Object` — The {col,row} object with the position information.

### addToShortestRow

()
method

`protected function addToShortestRow(index:int):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

Adds the item, given by its index, to the row that is visually the shortest.

Parameters

| `index:int` — The index of the child with the target group.

Returns

| `Object` — The {col,row} position information.

### calculateChildWidths

()
method

`protected function calculateChildWidths(row:Array, width:Number):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

Calculates the sizes of the children in a row.

Each child in a row may have an explicit width or a percent width.

Parameters

| `row:Array` — All of the child elements in a row.
| `width:Number` — The total width of the target space.

Returns

| `Array` — Array of actual widths to use

### 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

Creates the bounding rectangle for the drop indicator. This will either appear left of the item at the drop location or to its right, depending on the position of the mouse within the item.

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

Calculates the positions and sizes of all of the layout target's children.

Parameters

| `width:Number` — The horizontal space in which to work.
| `height:Number` — The vertical space in which to work.
| `updateInPlace:Boolean` — If true, the children's size and position are updated immediately.
| `returnArray:Boolean` — If true, an Array of new sizes and positions is returned.

Returns

| `Array` — An Array of new sizes and positions or null if returnArray parameter 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

Calculates key size variables.

### elementAdded

()
method

`override public function elementAdded(index:int):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 a new element is added.

Parameters

| `index:int` — The index of the child within the target display list.

### elementRemoved

()
method

`override public function elementRemoved(index:int):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 an element is removed. The cells structure is updated to reflect the item removed from a specific row.

Parameters

| `index:int` — The index of the child within the target display list.

### findCell

()
method

`protected function findCell(index:int):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

Find a cell position given the child's display index.

Parameters

| `index:int` — The position of the child within the target group.

Returns

| `Object` — The {col,row} position of the child.

### 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 should be measured.

### normalLayout

()
method

`override protected function normalLayout(width:Number, height:Number):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

Sizes and positions the target's elements in row fashion.

Parameters

| `width:Number` — The size of the target area.
| `height:Number` — The size of the target area.

### rebuildLayout

()
method

`protected function rebuildLayout():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

Reconstructs the layout from scratch. Some property changes require a total reset of the layout.

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