<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0">
			<channel>
			<title>Stretch Media - Adobe Flex RIA Blog - Code Snippets</title>
			<link>http://www.stretchmedia.ca/blog/index.cfm</link>
			<description>Stretch Media Group&apos;s blog for the RIA community!</description>
			<language>en-us</language>
			<pubDate>Tue, 07 Sep 2010 13:31:20 -0500</pubDate>
			<lastBuildDate>Sat, 20 Sep 2008 16:10:00 -0500</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>partners@stretchmedia.ca</managingEditor>
			<webMaster>partners@stretchmedia.ca</webMaster>
			
			<item>
				<title>Double click to edit DataGrid/List</title>
				<link>http://www.stretchmedia.ca/blog/index.cfm/2008/9/20/Double-click-to-edit-DataGridList</link>
				<description>
				
				After some brief searching on this topic I pulled up an entry from FlexCoders back in August of 2007 where &lt;a href=&quot;http://www.huyler.net&quot; target=&quot;_blank&quot;&gt;Chris Huyler&lt;/a&gt; had figured out and put together a custom DataGrid to listen for a double click event rather than the default single click for itemEditor instances.

I needed both DataGrid and List support using this feature, so using Chris&apos; example for DG, I modified for List as well.

All credit goes to Chris for figuring this out, and my thanks... here&apos;s an example of each below:

&lt;b&gt;DataGrid&lt;/b&gt;

&lt;pre&gt;
package com.bm.custom_components&lt;br&gt;
{&lt;br&gt;
import flash.events.MouseEvent;&lt;br&gt;
import flash.geom.Point;&lt;br&gt;
&lt;br&gt;
import mx.controls.DataGrid;&lt;br&gt;
import mx.controls.listClasses.IListItemRenderer;&lt;br&gt;
import mx.events.DataGridEvent;&lt;br&gt;
&lt;br&gt;
public class DoubleClickEditDataGrid extends DataGrid&lt;br&gt;
{&lt;br&gt;
public function DoubleClickEditDataGrid() {&lt;br&gt;
	super();&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
private var triggeredEditable:Boolean = false;&lt;br&gt;
&lt;br&gt;
public function triggerItemEditor(event:MouseEvent):void&lt;br&gt;
{&lt;br&gt;
	var r:IListItemRenderer = mouseEventToItemRenderer(event);&lt;br&gt;
	var p:Point = itemRendererToIndices(r);&lt;br&gt;
	if ( columns[p.x].editable != false )&lt;br&gt;
	{&lt;br&gt;
		if (!editable)&lt;br&gt;
		{&lt;br&gt;
			editable=true;&lt;br&gt;
			triggeredEditable = true;&lt;br&gt;
			addEventListener(DataGridEvent.ITEM_EDIT_END,&lt;br&gt; triggeredEditorEnd);&lt;br&gt;
		}&lt;br&gt;
		var dEvent:DataGridEvent = new DataGridEvent(DataGridEvent.ITEM_EDIT_BEGINNING, &lt;br&gt;false, &lt;br&gt;false, &lt;br&gt;p.x, &lt;br&gt;null, &lt;br&gt;p.y, &lt;br&gt;null, &lt;br&gt;r, &lt;br&gt;p.y);&lt;br&gt;
		dispatchEvent(dEvent);&lt;br&gt;
	}&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
private function triggeredEditorEnd(event:DataGridEvent):void&lt;br&gt;
{&lt;br&gt;
	if ( triggeredEditable )&lt;br&gt;
	{&lt;br&gt;
		editable = false;&lt;br&gt;
		triggeredEditable = false;&lt;br&gt;
		removeEventListener( DataGridEvent.ITEM_EDIT_END, triggeredEditorEnd);&lt;br&gt;
	}&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
}&lt;br&gt;
&lt;/pre&gt;


&lt;b&gt;List&lt;/b&gt;

&lt;pre&gt;
package com.bm.custom_components&lt;br&gt;
{&lt;br&gt;
import flash.events.MouseEvent;&lt;br&gt;
import flash.geom.Point;&lt;br&gt;
	
import mx.controls.List;&lt;br&gt;
import mx.controls.listClasses.IListItemRenderer;&lt;br&gt;
import mx.events.ListEvent;&lt;br&gt;
	
public class DoubleClickEnabledList extends List&lt;br&gt;
{&lt;br&gt;
	public function DoubleClickEnabledList(){}&lt;br&gt;
		&lt;br&gt;
	private var triggeredEditable:Boolean = false;&lt;br&gt;
&lt;br&gt;
	public function triggerItemEditor(event:MouseEvent):void&lt;br&gt;
	{&lt;br&gt;
		var r:IListItemRenderer = mouseEventToItemRenderer(event);&lt;br&gt;
		var p:Point = itemRendererToIndices(r);&lt;br&gt;
		if (!editable)&lt;br&gt;
		{&lt;br&gt;
			editable=true;&lt;br&gt;
			triggeredEditable = true;&lt;br&gt;
			addEventListener(ListEvent.ITEM_EDIT_END, triggeredEditorEnd);&lt;br&gt;
		}&lt;br&gt;
		var dEvent:ListEvent = new ListEvent(ListEvent.ITEM_EDIT_BEGINNING,&lt;br&gt;false,&lt;br&gt; false, &lt;br&gt;-1, &lt;br&gt;p.y, &lt;br&gt;null, &lt;br&gt;null);
		dispatchEvent(dEvent);&lt;br&gt;
	}&lt;br&gt;
		&lt;br&gt;
	private function triggeredEditorEnd(event:ListEvent):void&lt;br&gt;
	{&lt;br&gt;
		if ( triggeredEditable )&lt;br&gt;
		{&lt;br&gt;
			editable = false;&lt;br&gt;
			triggeredEditable = false;&lt;br&gt;
			removeEventListener( ListEvent.ITEM_EDIT_END, triggeredEditorEnd);&lt;br&gt;
		}&lt;br&gt;
	}&lt;br&gt;
}&lt;br&gt;
}
&lt;/pre&gt; 
				</description>
				
				<category>Flex 3</category>				
				
				<category>Code Snippets</category>				
				
				<pubDate>Sat, 20 Sep 2008 16:10:00 -0500</pubDate>
				<guid>http://www.stretchmedia.ca/blog/index.cfm/2008/9/20/Double-click-to-edit-DataGridList</guid>
				
			</item>
			</channel></rss>