blob: 360620a34c769b77dded6744def29c76b9c70f73 [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
//
// 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 spark.components
{
import flash.events.Event;
import spark.layouts.TileLayout;
import spark.layouts.supportClasses.LayoutBase;
[IconFile("TileGroup.png")]
[Exclude(name="layout", kind="property")]
/**
* The TileGroup container is an instance of the Group container
* that uses the TileLayout class.
* Do not modify the <code>layout</code> property.
* Instead, use the properties of the TileGroup class to modify the
* characteristics of the TileLayout class.
*
* <p>The TileGroup container has the following default characteristics:</p>
* <table class="innertable">
* <tr><th>Characteristic</th><th>Description</th></tr>
* <tr><td>Default size</td><td>Large enough to display its children</td></tr>
* <tr><td>Minimum size</td><td>0 pixels</td></tr>
* <tr><td>Maximum size</td><td>10000 pixels wide and 10000 pixels high</td></tr>
* </table>
*
* @mxml
*
* <p>The <code>&lt;s:TileGroup&gt;</code> tag inherits all of the tag
* attributes of its superclass and adds the following tag attributes:</p>
*
* <pre>
* &lt;s:TileGroup
* <strong>Properties</strong>
* columnAlign="left"
* columnCount="-1"
* columnWidth="0"
* horizontalAlign="justify"
* horizontalGap="6"
* orientation="rows"
* paddingBottom="0"
* paddingLeft="0"
* paddingRight="0"
* paddingTop="0"
* requestedColumnCount"-1"
* requestedRowCount="-1"
* rowAlign="top"
* rowCount="-1"
* rowHeight="0"
* verticalAlign="justify"
* verticalGap="6"
* /&gt;
* </pre>
*
* @see spark.layouts.TileLayout
* @includeExample examples/TileGroupExample.mxml
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public class TileGroup extends Group
{
include "../core/Version.as";
/**
* Constructor.
* Initializes the <code>layout</code> property to an instance of
* the TileLayout class.
*
* @see spark.layouts.TileLayout
* @see spark.components.HGroup
* @see spark.components.VGroup
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function TileGroup():void
{
super();
super.layout = new TileLayout();
}
private function get tileLayout():TileLayout
{
return TileLayout(layout);
}
//--------------------------------------------------------------------------
//
// Properties
//
//--------------------------------------------------------------------------
//----------------------------------
// columnAlign
//----------------------------------
[Inspectable(category="General", enumeration="left,justifyUsingGap,justifyUsingWidth", defaultValue="left")]
/**
* @copy spark.layouts.TileLayout#columnAlign
*
* @default "left"
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get columnAlign():String
{
return tileLayout.columnAlign;
}
/**
* @private
*/
public function set columnAlign(value:String):void
{
tileLayout.columnAlign = value;
}
//----------------------------------
// columnCount
//----------------------------------
[Bindable("propertyChange")]
[Inspectable(category="General")]
/**
* @copy spark.layouts.TileLayout#columnCount
*
* @default -1
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get columnCount():int
{
return tileLayout.columnCount;
}
//----------------------------------
// columnWidth
//----------------------------------
[Bindable("propertyChange")]
[Inspectable(category="General", minValue="0.0")]
/**
* @copy spark.layouts.TileLayout#columnWidth
*
* @default 0
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get columnWidth():int
{
return tileLayout.columnWidth;
}
/**
* @private
*/
public function set columnWidth(value:int):void
{
tileLayout.columnWidth = value;
}
//----------------------------------
// horizontalAlign
//----------------------------------
[Inspectable(category="General", enumeration="left,right,center,justify", defaultValue="justify")]
/**
* @copy spark.layouts.TileLayout#horizontalAlign
*
* @default "justify"
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get horizontalAlign():String
{
return tileLayout.horizontalAlign;
}
/**
* @private
*/
public function set horizontalAlign(value:String):void
{
tileLayout.horizontalAlign = value;
}
//----------------------------------
// horizontalGap
//----------------------------------
[Bindable("propertyChange")]
[Inspectable(category="General", defaultValue="6")]
/**
* @copy spark.layouts.TileLayout#horizontalGap
*
* @default 6
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get horizontalGap():int
{
return tileLayout.horizontalGap;
}
/**
* @private
*/
public function set horizontalGap(value:int):void
{
tileLayout.horizontalGap = value;
}
//----------------------------------
// orientation
//----------------------------------
[Inspectable(category="General", enumeration="rows,columns", defaultValue="rows")]
/**
* @copy spark.layouts.TileLayout#orientation
*
* @default "rows"
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get orientation():String
{
return tileLayout.orientation;
}
/**
* @private
*/
public function set orientation(value:String):void
{
tileLayout.orientation = value;
}
//----------------------------------
// paddingLeft
//----------------------------------
[Inspectable(category="General", defaultValue="0.0")]
/**
* @copy spark.layouts.TileLayout#paddingLeft
*
* @default 0
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get paddingLeft():Number
{
return tileLayout.paddingLeft;
}
/**
* @private
*/
public function set paddingLeft(value:Number):void
{
tileLayout.paddingLeft = value;
}
//----------------------------------
// paddingRight
//----------------------------------
[Inspectable(category="General", defaultValue="0.0")]
/**
* @copy spark.layouts.TileLayout#paddingRight
*
* @default 0
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get paddingRight():Number
{
return tileLayout.paddingRight;
}
/**
* @private
*/
public function set paddingRight(value:Number):void
{
tileLayout.paddingRight = value;
}
//----------------------------------
// paddingTop
//----------------------------------
[Inspectable(category="General", defaultValue="0.0")]
/**
* @copy spark.layouts.TileLayout#paddingTop
*
* @default 0
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get paddingTop():Number
{
return tileLayout.paddingTop;
}
/**
* @private
*/
public function set paddingTop(value:Number):void
{
tileLayout.paddingTop = value;
}
//----------------------------------
// paddingBottom
//----------------------------------
[Inspectable(category="General", defaultValue="0.0")]
/**
* @copy spark.layouts.TileLayout#paddingBottom
*
* @default 0
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get paddingBottom():Number
{
return tileLayout.paddingBottom;
}
/**
* @private
*/
public function set paddingBottom(value:Number):void
{
tileLayout.paddingBottom = value;
}
//----------------------------------
// requestedColumnCount
//----------------------------------
[Inspectable(category="General", minValue="-1")]
/**
* @copy spark.layouts.TileLayout#requestedColumnCount
*
* @default -1
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get requestedColumnCount():int
{
return tileLayout.requestedColumnCount;
}
/**
* @private
*/
public function set requestedColumnCount(value:int):void
{
tileLayout.requestedColumnCount = value;
}
//----------------------------------
// requestedRowCount
//----------------------------------
[Inspectable(category="General", minValue="-1")]
/**
* @copy spark.layouts.TileLayout#requestedRowCount
*
* @default -1
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get requestedRowCount():int
{
return tileLayout.requestedRowCount;
}
/**
* @private
*/
public function set requestedRowCount(value:int):void
{
tileLayout.requestedRowCount = value;
}
//----------------------------------
// rowAlign
//----------------------------------
[Inspectable(category="General", enumeration="top,justifyUsingGap,justifyUsingHeight", defaultValue="top")]
/**
* @copy spark.layouts.TileLayout#rowAlign
*
* @default "top"
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get rowAlign():String
{
return tileLayout.rowAlign;
}
/**
* @private
*/
public function set rowAlign(value:String):void
{
tileLayout.rowAlign = value;
}
//----------------------------------
// rowCount
//----------------------------------
[Bindable("propertyChange")]
[Inspectable(category="General")]
/**
* @copy spark.layouts.TileLayout#rowCount
*
* @default -1
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get rowCount():int
{
return tileLayout.rowCount;
}
//----------------------------------
// rowHeight
//----------------------------------
[Bindable("propertyChange")]
[Inspectable(category="General", minValue="0.0")]
/**
* @copy spark.layouts.TileLayout#rowHeight
*
* @default 0
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get rowHeight():int
{
return tileLayout.rowHeight;
}
/**
* @private
*/
public function set rowHeight(value:int):void
{
tileLayout.rowHeight = value;
}
//----------------------------------
// verticalAlign
//----------------------------------
[Inspectable(category="General", enumeration="top,bottom,middle,justify", defaultValue="justify")]
/**
* @copy spark.layouts.TileLayout#verticalAlign
*
* @default "justify"
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get verticalAlign():String
{
return tileLayout.verticalAlign;
}
/**
* @private
*/
public function set verticalAlign(value:String):void
{
tileLayout.verticalAlign = value;
}
//----------------------------------
// verticalGap
//----------------------------------
[Bindable("propertyChange")]
[Inspectable(category="General", defaultValue="6")]
/**
* @copy spark.layouts.TileLayout#verticalGap
*
* @default 6
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 1.5
* @productversion Flex 4
*/
public function get verticalGap():int
{
return tileLayout.verticalGap;
}
/**
* @private
*/
public function set verticalGap(value:int):void
{
tileLayout.verticalGap = value;
}
//--------------------------------------------------------------------------
//
// Overridden Properties
//
//--------------------------------------------------------------------------
//----------------------------------
// layout
//----------------------------------
/**
* @private
*/
override public function set layout(value:LayoutBase):void
{
throw(new Error(resourceManager.getString("components", "layoutReadOnly")));
}
//--------------------------------------------------------------------------
//
// Event Handlers
//
//--------------------------------------------------------------------------
/**
* @private
*/
override public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
{
if (type == "propertyChange")
{
if (!hasEventListener(type))
tileLayout.addEventListener(type, redispatchHandler);
}
super.addEventListener(type, listener, useCapture, priority, useWeakReference)
}
/**
* @private
*/
override public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
{
super.removeEventListener(type, listener, useCapture);
if (type == "propertyChange")
{
if (!hasEventListener(type))
tileLayout.removeEventListener(type, redispatchHandler);
}
}
private function redispatchHandler(event:Event):void
{
dispatchEvent(event);
}
}
}