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();
}