Solved! Go to Solution.
<viewer:WidgetTemplate open="{this.graphicsLayer.visible = true; map.infoWindowRenderersEnabled = false;}" closed="{this.graphicsLayer.visible = false; map.infoWindowRenderersEnabled = true;}" id="wTemplate" width="400" height="235">
private function onMapMouseClick(e:MouseEvent):void
{
btnCopy.enabled = true;
this.mapPoint = this.map.toMapFromStage(e.stageX,e.stageY);
txtX.text = this.mapPoint.x.toFixed(helper.precision);
txtY.text = this.mapPoint.y.toFixed(helper.precision);
this.graphicsLayer.clear()
var graphic:Graphic = new Graphic(this.mapPoint);
this.graphicsLayer.add(graphic);
glow.play([graphic]);
<?xml version="1.0" encoding="utf-8"?>
<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:viewer="com.esri.viewer.*"
x="150" y="150" layout="absolute"
widgetConfigLoaded="init()"
>
<fx:Declarations>
<mx:Glow id="glow" duration="1500" blurXTo="40" blurYTo="40" color="0xFF0000"/>
</fx:Declarations>
<fx:Script>
<![CDATA[
import com.esri.ags.Graphic;
import com.esri.ags.geometry.MapPoint;
import com.esri.ags.geometry.Polyline;
import com.esri.ags.layers.GraphicsLayer;
import com.esri.ags.symbols.MarkerSymbol;
import com.esri.ags.symbols.SimpleLineSymbol;
import com.esri.ags.symbols.SimpleMarkerSymbol;
import com.esri.ags.webmap.supportClasses.PopUpInfo;
import com.google.analytics.debug._Style;
import widgets.CoordinateMenu.ExtentGrabber.ExtentGrabberDialog;
import widgets.CoordinateMenu.GoToCoordinate.GoToCoordinateDialog;
import widgets.CoordinateMenu.ProjectCoordinate.ProjectCoordinateDialog;
[Bindable]
private var graphicsLayer:GraphicsLayer = new GraphicsLayer();
[Bindable]
private var mouseMoveMapPoint:MapPoint;
[Bindable]
private var mapPoint:MapPoint;
[Bindable]
private var helper:CoordinateMenuWidgetHelper;
private var project:ProjectCoordinateDialog = new ProjectCoordinateDialog();
private var goToCoordinate:GoToCoordinateDialog = new GoToCoordinateDialog();
private var extentGrabber:ExtentGrabberDialog = new ExtentGrabberDialog();
private function init():void
{
//Set Helper
this.helper = new CoordinateMenuWidgetHelper(configXML,map);
//SET Mouse Event Handlers
this.map.addEventListener(MouseEvent.MOUSE_MOVE, onMapMouseMove);
this.map.addEventListener(MouseEvent.CLICK, onMapMouseClick);
//Add GraphicsLayer to map
this.graphicsLayer.symbol = new SimpleMarkerSymbol("circle",10,0xFF0000);;
this.map.addLayer(this.graphicsLayer);
// add additional contex menu for projected coords.
if (this.helper.coordinateSystems.length == 0)
{
btnProject.visible = false;
btnProject.includeInLayout = false;
}
}
private function onMapMouseClick(e:MouseEvent):void
{
btnCopy.enabled = true;
this.mapPoint = this.map.toMapFromStage(e.stageX,e.stageY);
txtX.text = this.mapPoint.x.toFixed(helper.precision);
txtY.text = this.mapPoint.y.toFixed(helper.precision);
this.graphicsLayer.clear()
var graphic:Graphic = new Graphic(this.mapPoint);
this.graphicsLayer.add(graphic);
glow.play([graphic]);
}
private function onMapMouseMove(e:MouseEvent):void
{
this.mouseMoveMapPoint = this.map.toMapFromStage(e.stageX,e.stageY);
}
protected function btnProject_clickHandler(event:MouseEvent):void
{
project.show(mapPoint, configXML,map);
}
protected function btnGoToXY_clickHandler(event:MouseEvent):void
{
goToCoordinate.show(configXML,map)
}
protected function btnGetExtent_clickHandler(event:MouseEvent):void
{
extentGrabber.show(configXML,map);
}
private function copy():void
{
glow.play([bdrCoordinates]);
var str:String = helper.format(this.mapPoint);
System.setClipboard(str); // Flash system clipboard function
}
]]>
</fx:Script>
<viewer:WidgetTemplate open="{this.graphicsLayer.visible = true; }" closed="{this.graphicsLayer.visible = false; }" id="wTemplate" skinClass="com.esri.viewer.skins.WidgetTemplateSkinCOORD" width="380" height="235">
<viewer:layout>
<s:VerticalLayout paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5"/>
</viewer:layout>
<s:Label fontWeight="bold" text="Live Coordinates"/>
<s:HGroup width="100%" color="#C4C4C4" fontSize="10">
<mx:Label fontWeight="bold" text="X:"/><mx:Label width="100%"
text="{this.mouseMoveMapPoint.x.toFixed(helper.precision)}"/>
<mx:Label fontWeight="bold" text="Y:"/>
<mx:Label width="100%" text="{this.mouseMoveMapPoint.y.toFixed(helper.precision)}"/>
</s:HGroup>
<s:Label fontWeight="bold" text="Selected Coordinates"/>
<s:BorderContainer id="bdrCoordinates" width="100%" minWidth="0" minHeight="0" backgroundAlpha="0.0"
borderAlpha="0.5" borderColor="#B9B9B9" contentBackgroundAlpha="0.0"
cornerRadius="3">
<s:layout>
<s:VerticalLayout gap="2" paddingBottom="5" paddingLeft="5" paddingRight="5"
paddingTop="5"/>
</s:layout>
<s:HGroup width="100%">
<mx:Label fontWeight="bold" text="X:"/>
<mx:Label id="txtX" width="100%" selectable="true" text="( waiting...)"/>
<mx:Label fontWeight="bold" text="Y:"/>
<mx:Label id="txtY" width="100%" selectable="true" text="( waiting...)"/>
</s:HGroup>
<s:HGroup width="100%">
</s:HGroup>
<s:HGroup width="100%" horizontalAlign="right" verticalAlign="justify">
<mx:Button enabled="false" click="copy()" id="btnCopy" x="116" width="100%" label="Copy Coordinate"
icon="@Embed('widgets/CoordinateMenu/images/copy.png')"/>
</s:HGroup>
</s:BorderContainer>
<s:Label fontWeight="bold" text="Other XY Tools"/>
<mx:HRule width="100%" height="1"/>
<s:HGroup width="100%">
<mx:Button enabled="{btnCopy.enabled}" id="btnProject" width="100%" label="Project"
click="btnProject_clickHandler(event)"
icon="@Embed('widgets/CoordinateMenu/images/map_go.png')"/>
<mx:Button id="btnGoToXY" width="100%" label="Go To XY"
click="btnGoToXY_clickHandler(event)"
icon="@Embed('widgets/CoordinateMenu/images/asterisk.png')"/>
<!--mx:Button id="btnGetExtent" width="100%" label="Get Extent"
click="btnGetExtent_clickHandler(event)" visible="false"
icon="@Embed('widgets/CoordinateMenu/images/shape_square.png')"/-->
</s:HGroup>
</viewer:WidgetTemplate>
</viewer:BaseWidget>
<viewer:WidgetTemplate open="{this.graphicsLayer.visible = true; map.infoWindowRenderersEnabled = false;}" closed="{this.graphicsLayer.visible = false; map.infoWindowRenderersEnabled = true;}" id="wTemplate" width="400" height="235">