Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to listen to a custom event dispatched by a renderer in Flex?
    primarykey
    data
    text
    <p>I'm having the following problem: I've implemented a custom headRenderer for my DataGridColumn. The idea is to have a dropdown menu when clicked on the column header. The problem is I don't know how to add a listener or pass a variable to the renderer since the renderer class is instantiated by the ClassFactory.</p> <p>The renderer class:</p> <pre><code>&lt;?xml version="1.0"?&gt; &lt;!-- itemRenderers\dataGrid\myComponents\RendererDGHeader.mxml --&gt; &lt;mx:HBox xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:fx="http://ns.adobe.com/mxml/2009" width = "100%" &gt; &lt;fx:Script&gt; // ... // Event handler for the Menu control's change event. private function menuHandler(evt:MenuEvent):void { //Alert.show("Label: " + evt.item.@label, "Clicked menu item"); if (evt.item.@eventName == "typeLat"){ typeIcon.load("assets/type_location.jpg"); evt.item.toggled=true; //variable.setColumnType(myLabel.text, "type"); // how can I pass "variable" to this renderer? } else if (evt.item.@eventName == "typeLng"){ typeIcon.load("assets/type_location.jpg"); evt.item.toggled=true; } else if (evt.item.@eventName == "typeTime"){ typeIcon.load("assets/type_time.png"); evt.item.toggled=true; } else if (evt.item.@eventName == "similarity"){ dispatchEvent(new SimilarityEvent("selectSimilarity", null, null)); // how to listen to this event? } } &lt;/fx:Script&gt; &lt;fx:Declarations&gt; &lt;fx:XML id="myMenuData"&gt; &lt;root&gt; &lt;menuitem label="Select type..." eventName="copy"&gt; &lt;menuitem label="Other..." eventName="typeOther"/&gt; &lt;menuitem type="separator"/&gt; &lt;menuitem label="Order" type="check" eventName="typeOther"/&gt; &lt;menuitem label="Range" type="check" eventName="typeOther"/&gt; &lt;menuitem label="Date/Time" type="check" eventName="typeTime"/&gt; &lt;menuitem label="Latitude" type="check" eventName="typeLat"/&gt; &lt;menuitem label="Longitude" type="check" eventName="typeLng"/&gt; &lt;/menuitem&gt; &lt;menuitem label="Define similarity..." eventName="similarity"/&gt; &lt;menuitem type="separator"/&gt; &lt;menuitem label="Filter objects..." eventName="similarity"/&gt; &lt;menuitem label="Order" eventName="similarity"&gt; &lt;menuitem label="Ascending" eventName="typeOther"/&gt; &lt;menuitem label="Descending" eventName="typeOther"/&gt; &lt;/menuitem&gt; &lt;menuitem type="separator"/&gt; &lt;menuitem label="Remove" eventName="paste"/&gt; &lt;/root&gt; &lt;/fx:XML&gt; &lt;/fx:Declarations&gt; &lt;mx:Label id="myLabel" click="showMenu();"/&gt; &lt;mx:Image height="20" id = "typeIcon"/&gt; &lt;/mx:HBox&gt; </code></pre> <p>Here is how I instantiate the renderer:</p> <pre><code> var newColumn:DataGridColumn = new DataGridColumn(); newColumn.dataField = attr; newColumn.headerText = attr; newColumn.sortable = false; newColumn.editable = false; newColumn.draggable = false; newColumn.headerRenderer = new ClassFactory(newviews.RendererDataHeader); cols.push(newColumn); </code></pre> <p>any help will be highly appreciated</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload