blob: 0850308f6e7fdf14a680d73615fb4b5305aae41b [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.gridClasses
{
import mx.core.IDataRenderer;
import mx.core.IIMESupport;
import mx.core.IVisualElement;
import mx.managers.IFocusManagerComponent;
import spark.components.gridClasses.GridItemRenderer;
import spark.components.gridClasses.GridColumn;
import spark.components.DataGrid;
/**
* The IGridItemEditor interface defines the interface that item editors for
* the Spark DataGrid and Spark Grid controls must implement.
* The DataGrid and Grid controls are referred to as the item renderer owner,
* or as the host component of the item editor.
*
* <p>All of the item editor's properties are set by the owner during
* the start of the editor session.
* The <code>data</code> property is the last property set.
* When the <code>data</code> property is set, an item editor should
* set the value of the editor's controls.
* Next, the editor's <code>prepare()</code> method is called.
* IGridItemEditor implementations should override the <code>prepare()</code> method
* to make any final adjustments to its properties or any aspect of its visual elements.
* When the editor is closing, the <code>discard()</code> method is called.</p>
*
* <p>When the editor is closed, the input value can be saved or canceled.
* If saving, the <code>save()</code> function is called by the editor
* to write new values to the data provider element corresponding to the
* row of the edited cell. </p>
*
* @see spark.components.DataGrid
* @see spark.components.Grid
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
public interface IGridItemEditor extends IDataRenderer, IVisualElement,
IFocusManagerComponent, IIMESupport
{
//--------------------------------------------------------------------------
//
// Properties
//
//--------------------------------------------------------------------------
//----------------------------------
// dataGrid
//----------------------------------
/**
* The control that owns this item editor.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
function get dataGrid():DataGrid;
//----------------------------------
// column
//----------------------------------
/**
* The column of the cell being edited.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
function get column():GridColumn;
function set column(value:GridColumn):void;
//----------------------------------
// columnIndex
//----------------------------------
/**
* The zero-based index of the column being edited.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
function get columnIndex():int;
//----------------------------------
// rowIndex
//----------------------------------
/**
* The zero-based index of the row of the cell being edited.
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
function get rowIndex():int;
function set rowIndex(value:int):void;
//--------------------------------------------------------------------------
//
// Methods
//
//--------------------------------------------------------------------------
/**
* Called after the editor has been created and sized but before the
* editor is visible.
* Use this method to adjust the appearance of the editor,
* add event listeners, or perform any other initializations
* before it becomes visible.
*
* <p>Do not call this method directly.
* It should only be called by the control hosting the item editor.</p>
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
function prepare():void;
/**
* Called just before the editor is closed.
* Use this method to perform any final cleanup,
* such as cleaning up anything that was set in the
* <code>prepare()</code> method.
*
* <p>Do not call this method directly.
* It should only be called by the control hosting the item editor.</p>
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
function discard():void;
/**
* Saves the value in the editor to the data provider of the
* item renderer's owner.
* This method updates the data provider element corresponding to the
* row of the edited cell.
* This function calls <code>GridItemEditor.validate()</code> to verify
* the data may be saved.
* If the data is not valid, then the data is not saved
* and the editor is not closed.
*
* <p>Do not call this method directly.
* It should only be called by the control hosting the item editor.
* To save and close the editor, call the <code>endItemEditorSession()</code>
* method of the item renderer owner.</p>
*
* @return <code>true</code> if the save operation succeeded,
* and <code>false</code> if not.
*
* @see spark.components.DataGrid
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
function save():Boolean;
/**
* Called by the DataGrid when an open editor is being closed without
* saving the data in the editor. Closing the editor may be
* prevented by returning <code>false</code>
* .
* <p>Do not call this method directly.
* It should only be called by the control hosting the item editor.
* To close the editor without saving its data, call the
* <code>endItemEditorSession()</code> method with the <code>cancel</code>
* parameter set to <code>true</code>.</p>
*
* @return <code>true</code> to close the editor without saving its data.
* Return <code>false</code> to prevent the editor from closing.
*
* @see spark.components.DataGrid
*
* @langversion 3.0
* @playerversion Flash 10
* @playerversion AIR 2.5
* @productversion Flex 4.5
*/
function cancel():Boolean;
}
}