Solved! Go to Solution.
   }
                map.addEventListener(MapEvent.LAYER_ADD, mapLayerAddHandler, false);
                map.addEventListener(MapEvent.LAYER_REMOVE, mapLayerRemoveHandler, false);
                map.addEventListener(MapEvent.LAYER_REORDER, mapLayerReorderHandler, false);
                mapLayers = map.layers as ArrayCollection;
                layersUsedInAttributeTable = getLayers(mapLayers);
                for each (var layer:Layer in nonMappedLayers)
                {
                    layersUsedInAttributeTable.push(layer);
                }
                populateAttributeTableTabBar(layersUsedInAttributeTable);
    startWidgetTimer();
            }
   private function startWidgetTimer():void
   {                
    if (queryRefreshRate)
    {
     var seconds:Number = Number(queryRefreshRate);
     var rate:Number = seconds * 1000;
     stopWidgetTimer();
     timer = new Timer(rate);
     timer.addEventListener(TimerEvent.TIMER, timerTick);
     timer.start();
    }
   }
   
   private function stopWidgetTimer():void
   {
    if (timer != null)
    {
     if (timer.running)
     {
      timer.stop();
     }
    }
   }
   
   private function timerTick(event:TimerEvent):void
   {
   
    AttributeTable(featureLayerToAttributeTable[featureLayer]).refresh();
   }
   
            private function configureAttachmentInspectorLabels():void
            {
                AttributeTableWidgetAttachmentInspectorSkin.noAttachmentsText = getDefaultString("noAttachmentsText");
                AttributeTableWidgetAttachmentInspectorSkin.chooseFileText = getDefaultString("chooseFileText");
                AttributeTableWidgetAttachmentInspectorSkin.attachmentSubmitLabel = getDefaultString("attachmentSubmitLabel");
                AttributeTableWidgetAttachmentInspectorSkin.attachmentCancelLabel = getDefaultString("attachmentCancelLabel");
            }
 private var featureLayerToNavigatorContent:Dictionary = new Dictionary;
            private var featureLayerToAttributeTable:Dictionary = new Dictionary;
            private var featureLayerToDynamicMapService:Dictionary = new Dictionary;
            private var featureLayerToSettings:Dictionary = new Dictionary;
            private var hiddenFeatureLayerToSettingsName:Dictionary = new Dictionary;
   private var timer:Timer;
   private var querySource:String
   private var queryRefreshRate:String;
   private var featureLayer:FeatureLayer
            private function basewidget_initializeHandler():void
            {
                if (isPartOfPanel) // if widget is part of "left", "right" or "bottom" panel
                {
                    this.percentWidth = this.percentHeight = 100;
                    wTemplate.percentWidth = wTemplate.percentHeight = 100;
                }
                else
                {
                    wTemplate.width = map.width - map.width / 100 - Number(this.left);
                    wTemplate.minWidth = 800;
                    wTemplate.height = wTemplate.minHeight = 300;
                }
            }
            private function basewidget_widgetConfigLoaded():void
            {
                if (configXML)
                {
     querySource = configXML.source; 
     queryRefreshRate = configXML.refreshrate;
                    // non-mapped layers
                    var nonMappedLayers:Array = [];
                    var players:XMLList = configXML.layer as XMLList;
                    for (var p:Number = 0; p < players.length(); p++)
                    {
                        const layerXML:XML = players
 as XML;
                        nonMappedLayers.push(createNonMappedLayer(layerXML));
                    }
                    //excludeLayers
                    excludeLayers = [];
                    var elayers:XMLList = configXML.excludelayer as XMLList;
                    for (var n:Number = 0; n < elayers.length(); n++)
                    {
                        excludeLayers.push(elayers.toString());
                    }
                    // layerSettings, overriding default settings  
                    configureLayerSettings(configXML.layersettings.layer);
                    // attachment inspector labels
                    configureAttachmentInspectorLabels();
                }
                map.addEventListener(MapEvent.LAYER_ADD, mapLayerAddHandler, false);
                map.addEventListener(MapEvent.LAYER_REMOVE, mapLayerRemoveHandler, false);
                map.addEventListener(MapEvent.LAYER_REORDER, mapLayerReorderHandler, false);
                mapLayers = map.layers as ArrayCollection;
                layersUsedInAttributeTable = getLayers(mapLayers);
                for each (var layer:Layer in nonMappedLayers)
                {
                    layersUsedInAttributeTable.push(layer);
                }
                populateAttributeTableTabBar(layersUsedInAttributeTable);
    startWidgetTimer();
            }
   private function startWidgetTimer():void
   {                
    if (queryRefreshRate)
    {
     var seconds:Number = Number(queryRefreshRate);
     var rate:Number = seconds * 1000;
     stopWidgetTimer();
     timer = new Timer(rate);
     timer.addEventListener(TimerEvent.TIMER, timerTick);     
     timer.start();
    }
   }
   
   private function stopWidgetTimer():void
   {
    if (timer != null)
    {
     if (timer.running)
     {
      timer.stop();
     }
    }
   }
   
   private function timerTick(event:TimerEvent):void
   {    
    var layer:Layer = layersUsedInAttributeTable.getItemAt(0) as Layer;
    createFeatureLayersFromDynamicMapService(ArcGISDynamicMapServiceLayer(layer), 0);
    AttributeTable(featureLayerToAttributeTable[featureLayers]).refresh();    
   }