Crear una herramienta
Las herramientas ofrecen una manera sencilla de mostrar la lógica de ArcGIS Viewer for Silverlight que debería iniciar el usuario. Si tiene sentido que la funcionalidad que está implementando se inicie al hacer clic en un botón en la barra de herramientas, entonces debería encapsular la funcionalidad en una herramienta.
Consulte más información en Mejores prácticas: Introducción y en Extender ArcGIS Viewer for Silverlight.
El Visor permite sacar a la superficie objetos que implementan la interfaz ICommand como herramientas. Esta interfaz proporciona algunos miembros simples. En el contexto del Visor, estos miembros se utilizan como sigue:
- Ejecutar—Se convoca cuando se hace clic en el botón en la barra de herramientas correspondiente a la herramienta.
- CanExecute—El Visor lo convoca con frecuencia para comprobar si la herramienta está en un estado en el que se puede ejecutar. Cuando este método devuelve verdadero, se habilitará el botón correspondiente en la barra de herramientas. Cuando el método devuelve falso, el botón se deshabilitará.
- CanExecuteChanged: evento que puede ocurrir cuando cambia la ejecutabilidad del comando. Cuando este evento se ha planteado, el Visor invocará el método CanExecute, permitiendo que el add-in actualice el estado del botón de la herramienta en la barra de herramientas.
Además de implementar esos miembros, debe agregar dos atributos a la clase que implementa ICommand. La primera es System.ComponentModel.Composición.ExportAttribute, que se incluye en el ensamblado System.ComponentModel.Composición que se proporciona como parte del Marco de extensibilidad administrado (MEF). Este atributo informa al Visor que la herramienta debería estar disponible para agregarla a la barra de herramientas. Cuando la incluyen en una herramienta que implementa, siempre adoptará la forma siguiente:
[Export(typeof(ICommand))]
public class MyCommand : ICommand
El otro atributo requerido para agregar es ESRI.ArcGIS.Client.Extensibility.DisplayNameAttribute. Esto determina el nombre de la herramienta como le aparece al diseñador al agregarlo al Visor. Los atributos adicionales opcionales que puede especificar desde el ensamblado ESRI.ArcGIS.Client.Extensibility incluyen CategoryAttribute, DefaultIconAttribute y DescriptionAttribute. Los atributos se deben especificar como sigue:
[Export(typeof(ICommand))]
[DisplayName("Simple Command")]
[Category("My Tools")]
[Description("Simple tool with MessageBox")]
[DefaultIcon("Path to icon, ex: "/Viewer.Addins;component/Images/SimpleTool.png"")]
public class MyCommand : ICommand
Un ejemplo de un comando simple se muestra a continuación. La herramienta muestra un cuadro de mensaje y se habilita cuando el mapa no es nulo. En este caso, no se utiliza el evento CanExecuteChanged.
[Export(typeof(ICommand))]
[DisplayName("Simple Command")]
[Category("My Tools")]
[Description("Simple tool with MessageBox")]
[DefaultIcon("Path to icon, ex: "/Viewer.Addins;component/Images/SimpleTool.png"")]
public class MyCommand : ICommand
{
public void Execute(object parameter)
{
// Show a message box when the tool's button is clicked.
MessageBox.Show("Simple tool executed");
}
public bool CanExecute(object parameter)
{
// Show as executable (i.e., enable the button on the toolbar) unless the map is null.
return MapApplication.Current.Map != null;
}
public event EventHandler CanExecuteChanged;
}