= basemapCount; i--)
{
var layer:Layer = map.getLayer(map.layerIds[i]);
if (!(layer is GraphicsLayer))
layerArray.push(layer);
}
return layerArray;
}
private function showStateVisibility(event:MouseEvent):void
{
WidgetEffects.flipWidget(this, viewStack, "selectedIndex", 0, 400);
}
private function showStateOptions(event:MouseEvent):void
{
WidgetEffects.flipWidget(this, viewStack, "selectedIndex", 1, 400);
}
private function onDragStart(event:DragEvent):void{
//Close the dragged item
_draggedLayer=toc.selectedItem as TocMapLayerItem;
var openItems:Array = toc.openItems as Array;
for each(var o:Object in openItems){
toc.expandItem(o,false);
}
//setInfoText(resourceManager.getString("resource","toc-layer-reorder"));
}
private function onDragComplete(event:DragEvent):void{
var arItems:Array;
if (event.dragSource.hasFormat("treeItems")){
handleTreeDrag(event);
}
toc.selectedItem = _draggedLayer;
_draggedLayer=null;
}
private function handleTreeDrag(event:DragEvent):void{
if (event.action!="move")
return;
var _roots:ArrayCollection = toc.dataProvider as ArrayCollection;
//Unclear why I have to do this....but I need the selectedIndex later
toc.selectedItem = _draggedLayer;
var dropIndex:uint=toc.calculateDropIndex(event);
// I've seen thie calculated drop index be > than the number of
// services. This usually happens when a service node is expanded,
// but let's just make sure. We'll put it at the bottom of the list
// in this cse.
if (dropIndex>_roots.length)
dropIndex=_roots.length;
var ind:int=0;
// Set in onDragStart....if it's null, get outta dogdge
if (_draggedLayer==null)
return;
var delta:int = _roots.length-dropIndex;
ind = delta + 1;//We have two base layers....HACK...THIS IS BAD, MAKE IT BETTER
// If the selected item is dragged down, then the index needs to account for that
if (toc.selectedIndex>dropIndex)
ind=ind-1;
toc.map.reorderLayer(_draggedLayer.layer.id,ind);
}
private var _draggedLayer:TocMapLayerItem;
private function onDragEnter(event:DragEvent):void{
DragManager.acceptDragDrop(event.currentTarget as TOC);
if ((event.currentTarget as TOC)==null)
{
DragManager.showFeedback(DragManager.NONE);
event.preventDefault();
}
}
]]>