[Bindable] public var MainMap:Map [Bindable] public var layerROVGraphics:GraphicsLayer;In my main application, I set up a variable for the popup window and pass in the variables
private var popData:DataPopup = new DataPopup; PopUpManager.addPopUp(popData,this,false,PopUpManagerChildList.POPUP); popData.MainMap = MainMap; 'MainMap is the <esri:Map> id popData.layerROVGraphics = layerROVGraphics; 'this is a graphics layer with a MouseEvent.ROLL_OVER event listener attached to each graphicThis is the MouseEvent.ROLL_OVER function for the graphics
private function onMouseOver(event:MouseEvent):void
{
var graphic:Graphic = Graphic(event.target);
for each (var attributes:Object in popData.dataGrid.dataProvider)
{
if (attributes["OBJECTID"] == graphic.attributes["OBJECTID"])
{
popData.dataGrid.selectedIndex = (popData.dataGrid.dataProvider as ArrayCollection).getItemIndex(attributes)
}
}
popData.dataGrid.scrollToIndex(dataGrid.selectedIndex)
And finally, in the datagrid in the floating window, this is the itemRollOver event
private function onItemRollOver(event:ListEvent): void
{
highlightedGraphic = findGraphicByAttribute(event.itemRenderer.data, layerROVGraphics);
// code to make the graphic glow
}
private function findGraphicByAttribute(attributes:Object, graphicLayer:GraphicsLayer):Graphic
{
for each (var graphic:Graphic in graphicLayer.graphicProvider)
{
if (graphic.attributes["OBJECTID"] == attributes["OBJECTID"])
{
return graphic;
}
}
return null;
}
private function showGridResults(event:MouseEvent):void{
if(!myfloatdg){
var myfloatdg:QueryBuilderWidgetFloatDG;
myfloatdg = QueryBuilderWidgetFloatDG(PopUpManager.createPopUp(map,QueryBuilderWidgetFloatDG,false));
PopUpManager.centerPopUp(myfloatdg);
myfloatdg.dProvider = QBData.dataProvider;
}else{
PopUpManager.addPopUp(myfloatdg,map,false);
PopUpManager.centerPopUp(myfloatdg);
}
}private function onItemRollOver(event:ListEvent):void
{
var gr:Graphic = findGraphicByAttribute(event.itemRenderer.data)
gr.symbol = highlightSymbol;
QBData.selectedIndex = findInList(gr);
// gr.symbol = sfs;
if (myfloatdg){
if(myfloatdg.datagrid.dataProvider)
myfloatdg.datagrid.dataProvider.removeAll();
myfloatdg.csvName = _csvName;
myfloatdg.dgColumns = gridFields;
myfloatdg.dProvider = fset.attributes;
myfloatdg.graphicslayer = mqGraphicsLayer;
// myfloatdg.zoomScale = zoomScale;
myfloatdg.ownerWidget = QBWidget;
}
} private function onMouseOver(event:MouseEvent):void
{
var graphic:Graphic = Graphic(event.target);
for each (var attributes:Object in myfloatdg.datagrid.dataProvider)
{
if (attributes["ID"] == graphic.attributes["ID"])
{
myfloatdg.datagrid.selectedIndex = (myfloatdg.datagrid.dataProvider as ArrayCollection).getItemIndex(attributes)
}
}
myfloatdg.resultsGrid.scrollToIndex(QBData.selectedIndex)
}
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Function/oitt/private:onQueryResult/runQuery()
at oitt/onQueryResult()
at mx.rpc::AsyncResponder/result()
at com.esri.ags.tasks::QueryTask/handleExecute()
at Function/http://adobe.com/AS3/2006/builtin::call()
at com.esri.ags.tasks::BaseTask/handleResult()
at Function/com.esri.ags.tasks:BaseTask/esri_internal:sendURLVariables2/com.esri.ags.tasks:result()
at mx.rpc::Responder/result()
at mx.rpc::AsyncToken/http://www.adobe.com/2006/flex/mx/internal::applyResult()
at mx.rpc.events::ResultEvent/http://www.adobe.com/2006/flex/mx/internal::callTokenResponders()
at HTTPOperation/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()
at mx.rpc::Responder/result()
at mx.rpc::AsyncRequest/acknowledge()
at DirectHTTPMessageResponder/completeHandler()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
Error: Find criteria must contain at least one sort field value.
at mx.collections::Sort/findItem()
at mx.collections::ListCollectionView/getItemIndex()
at oitt/pointMouseOver()