blob: 86dbabb870148766b38dc649750fa95ca3e6641b [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.events
{
import flash.display.InteractiveObject;
import flash.events.Event;
import flash.events.MouseEvent;
import spark.components.Grid;
import spark.components.gridClasses.GridColumn;
import spark.components.gridClasses.IDataGridElement;
import spark.components.gridClasses.IGridItemRenderer;
/**
* The GridEvent class extends the MouseEvent class to includes additional
* grid specific information based on the event's location relative to a grid cell.
* This information includes the following:
*
* <ul>
* <li>The row and column index of the cell.</li>
* <li>The GridColumn object of the cell.</li>
* <li>The data provider item that corresponds to the row of the cell.</li>
* <li>The item renderer.</li>
* </ul>
*
* <p>Grid events have a one-to-one correspondence with mouse events.
* They are dispatched in response to mouse events that have "bubbled"
* from some Grid descendant to the Grid itself.
* One significant difference is that event listeners for grid events
* are guaranteed to see an entire down-drag-up mouse gesture,
* even if the drag and up parts of the gesture do not occur over the grid.
* The <code>gridMouseDrag</code> event corresponds to a
* mouse move event with the button held down.</p>
*
* @see spark.components.DataGrid
* @see spark.components.Grid
* @see spark.components.gridClasses.GridSelectionMode
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public class GridEvent extends MouseEvent
{
include "../core/Version.as";
//--------------------------------------------------------------------------
//
// Class constants
//
//--------------------------------------------------------------------------
/**
* The value of the <code>type</code> property for a <code>gridMouseDown</code> GridEvent.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.GRID_MOUSE_DOWN</td></tr>
* </table>
*
* @eventType gridMouseDown
*
* @see flash.display.InteractiveObject#event:mouseDown
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const GRID_MOUSE_DOWN:String = "gridMouseDown";
/**
* The value of the <code>type</code> property for a <code>gridMouseDrag</code> GridEvent.
* This event is only dispatched when a listener has handled a <code>mouseDown</code> event,
* and then only while the mouse moves with the button held down.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.GRID_MOUSE_DRAG</td></tr>
* </table>
*
* @eventType gridMouseDrag
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const GRID_MOUSE_DRAG:String = "gridMouseDrag";
/**
* The value of the <code>type</code> property for a <code>gridMouseUp</code> GridEvent.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.GRID_MOUSE_UP</td></tr>
* </table>
*
* @eventType gridMouseUp
*
* @see flash.display.InteractiveObject#event:mouseUp
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const GRID_MOUSE_UP:String = "gridMouseUp";
/**
* The value of the <code>type</code> property for a <code>gridClick</code> GridEvent.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.GRID_CLICK</td></tr>
* </table>
*
* @eventType gridClick
*
* @see flash.display.InteractiveObject#event:click
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const GRID_CLICK:String = "gridClick";
/**
* The value of the <code>type</code> property for a <code>gridDoubleClick</code> GridEvent.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.GRID_DOUBLE_CLICK</td></tr>
* </table>
*
* @eventType gridDoubleClick
*
* @see flash.display.InteractiveObject#event:doubleClick
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const GRID_DOUBLE_CLICK:String = "gridDoubleClick";
/**
* The value of the <code>type</code> property for a <code>gridRollOver</code> GridEvent.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.GRID_ROLL_OVER</td></tr>
* </table>
*
* @eventType gridRollOver
*
* @see flash.display.InteractiveObject#event:rollOver
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const GRID_ROLL_OVER:String = "gridRollOver";
/**
* The value of the <code>type</code> property for a <code>gridRollOut</code> GridEvent.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.GRID_ROLL_OUT</td></tr>
* </table>
*
* @eventType gridRollOut
*
* @see flash.display.InteractiveObject#event:rollOut
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const GRID_ROLL_OUT:String = "gridRollOut";
/**
* The value of the <code>type</code> property for a <code>separatorMouseDrag</code> GridEvent.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.SEPARATOR_MOUSE_DRAG</td></tr>
* </table>
*
* @eventType separatorMouseDrag
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const SEPARATOR_MOUSE_DRAG:String = "separatorMouseDrag";
/**
* The value of the <code>type</code> property for a <code>separatorClick</code> GridEvent.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.SEPARATOR_CLICK</td></tr>
* </table>
*
* @eventType separatorClick
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const SEPARATOR_CLICK:String = "separatorClick";
/**
* The value of the <code>type</code> property for a <code>separatorDoubleClick</code> GridEvent.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.SEPARATOR_DOUBLE_CLICK</td></tr>
* </table>
*
* @eventType separatorDoubleClick
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const SEPARATOR_DOUBLE_CLICK:String = "separatorDoubleClick";
/**
* The value of the <code>type</code> property for a <code>separatorMouseDown</code> GridEvent.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.SEPARATOR_MOUSE_DOWN</td></tr>
* </table>
*
* @eventType separatorMouseDown
*
* @see flash.display.InteractiveObject#event:rollOut
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const SEPARATOR_MOUSE_DOWN:String = "separatorMouseDown";
/**
* The value of the <code>type</code> property for a <code>separatorMouseUp</code> GridEvent.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.SEPARATOR_MOUSE_UP</td></tr>
* </table>
*
* @eventType separatorMouseUp
*
* @see flash.display.InteractiveObject#event:rollOut
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const SEPARATOR_MOUSE_UP:String = "separatorMouseUp";
/**
* The value of the <code>type</code> property for a <code>separatorRollOut</code> GridEvent.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.SEPARATOR_ROLL_OUT</td></tr>
* </table>
*
* @eventType separatorRollOut
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const SEPARATOR_ROLL_OUT:String = "separatorRollOut";
/**
* The value of the <code>type</code> property for a <code>separatorRollOver</code> GridEvent.
*
* <p>The properties of the event object have the following values:</p>
* <table class="innertable">
* <tr><th>Property</th><th>Value</th></tr>
* <tr><td><code>bubbles</code></td><td>false</td></tr>
* <tr><td><code>cancelable</code></td><td>false</td></tr>
* <tr><td><code>currentTarget</code></td><td>The Object that defines the
* event listener that handles the event. For example, if you use
* <code>myButton.addEventListener()</code> to register an event listener,
* myButton is the value of the <code>currentTarget</code>. </td></tr>
* <tr><td><code>column</code></td><td>The column where the event occurred,
* or null if the event did not occur over a column.</td></tr>
* <tr><td><code>columnIndex</code></td><td>The index of the column where
* the event occurred, or -1 if the event did not occur over a grid column.</td></tr>
* <tr><td><code>grid</code></td><td>The Grid associated with this event.</td></tr>
* <tr><td><code>item</code></td><td>The data provider item for this row,
* or null if the event did not occur over a grid row.</td></tr>
* <tr><td><code>itemRenderer</code></td><td>The The item renderer that displayed
* this cell, or null if the event did not occur over a visible cell.</td></tr>
* <tr><td><code>rowIndex</code></td><td>The index of the row where the event occurred,
* or -1 if the event did not occur over a grid row.</td></tr>
* <tr><td><code>target</code></td><td>The Object that dispatched the event;
* it is not always the Object listening for the event.
* Use the <code>currentTarget</code> property to always access the
* Object listening for the event.</td></tr>
* <tr><td><code>type</code></td><td>GirdEvent.SEPARATOR_ROLL_OVER</td></tr>
* </table>
*
* @eventType separatorRollOver
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public static const SEPARATOR_ROLL_OVER:String = "separatorRollOver";
//--------------------------------------------------------------------------
//
// Constructor
//
//--------------------------------------------------------------------------
/**
* GridEvents dispatched by the Grid class in response to mouse event are constructed with
* the incoming mouse event's properties.
* The grid event's x,y location, meaning the value of
* its <code>localX</code> and <code>localY</code> properties,
* is defined relative to the entire grid, not just the
* part of the grid that has been scrolled into view.
* Similarly, the event's row and column
* indices might correspond to a cell that has not been scrolled into view.
*
* @param type Distinguishes the mouse gesture that caused this event to be dispatched.
*
* @param bubbles Specifies whether the event can bubble up the display list hierarchy.
*
* @param cancelable Specifies whether the behavior associated with the event can be prevented.
*
* @param localX The event's x coordinate relative to grid.
*
* @param localY The event's y coordinate relative to grid.
*
* @param rowIndex The index of the row where the event occurred, or -1.
*
* @param columnIndex The index of the column where the event occurred, or -1.
*
* @param column The column where the event occurred, or null.
*
* @param item The data provider item at <code>rowIndex</code>.
*
* @param relatedObject The <code>relatedObject</code> property of the
* MouseEvent that triggered this GridEvent.
*
* @param itemRenderer The visible item renderer where the event occurred, or null.
*
* @param ctrlKey Whether the Control key is down.
*
* @param altKey Whether the Alt key is down.
*
* @param shiftKey Whether the Shift key is down.
*
* @param buttonDown Whether the Control key is down.
*
* @param delta Not used.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public function GridEvent(
type:String,
bubbles:Boolean = false,
cancelable:Boolean = false,
localX:Number = NaN,
localY:Number = NaN,
relatedObject:InteractiveObject = null,
ctrlKey:Boolean = false,
altKey:Boolean = false,
shiftKey:Boolean = false,
buttonDown:Boolean = false,
delta:int = 0,
rowIndex:int = -1,
columnIndex:int = -1,
column:GridColumn = null,
item:Object = null,
itemRenderer:IGridItemRenderer = null)
{
super(type, bubbles, cancelable, localX, localY,
relatedObject, ctrlKey, altKey, shiftKey, buttonDown, delta);
this.rowIndex = rowIndex;
this.columnIndex = columnIndex;
this.column = column;
this.item = item;
this.itemRenderer = itemRenderer;
}
//--------------------------------------------------------------------------
//
// Properties
//
//--------------------------------------------------------------------------
//----------------------------------
// rowIndex
//----------------------------------
/**
* The index of the row where the event occurred, or -1 if the event
* did not occur over a grid row.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public var rowIndex:int;
//----------------------------------
// columnIndex
//----------------------------------
/**
* The index of the column where the event occurred, or -1 if the event
* did not occur over a grid column.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public var columnIndex:int;
//----------------------------------
// column
//----------------------------------
/**
* The column where the event occurred, or null if the event
* did not occur over a column.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public var column:GridColumn;
//----------------------------------
// grid
//----------------------------------
/**
* The Grid associated with this event.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public function get grid():Grid
{
if (column)
return column.grid;
if (target is Grid)
return Grid(target);
const elt:IDataGridElement = target as IDataGridElement;
if (elt && elt.dataGrid)
return elt.dataGrid.grid;
return null;
}
//----------------------------------
// item
//----------------------------------
/**
* The data provider item for this row, or null if the event
* did not occur over a grid row.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public var item:Object;
//----------------------------------
// itemRenderer
//----------------------------------
/**
* The item renderer that displayed this cell, or null if the event
* did not occur over a visible cell.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public var itemRenderer:IGridItemRenderer;
//--------------------------------------------------------------------------
//
// Overridden methods: Event
//
//--------------------------------------------------------------------------
/**
* @private
*/
override public function clone():Event
{
var cloneEvent:GridEvent = new GridEvent(
type, bubbles, cancelable,
localX, localY,
relatedObject, ctrlKey, altKey, shiftKey, buttonDown, delta,
rowIndex, columnIndex, column, item, itemRenderer);
cloneEvent.relatedObject = this.relatedObject;
return cloneEvent;
}
/**
* @private
*/
override public function toString():String
{
return "GridEvent{" +
"type=\"" + type + "\"" +
" localX,Y=" + localX + "," + localY +
" rowIndex,columnIndex=" + rowIndex + "," + columnIndex +
"}";
}
}
}