Mejores prácticas: Crear configurables agregar-in

Hacer de herramientas y comportamientos que se puede configurar

La API Extensibilidad de proporciona la capacidad de hacer que sus herramientas y comportamientos configurables. Si una herramienta se puede configurar o el comportamiento, puede configurar el componente de la Parte Web de mapas. Para exponer de configuración en una herramienta o un comportamiento, debe aplicar la ESRI.ArcGIS.Cliente.Extensibilidad de.Interfaz de ISupportsConfiguration. Esto requiere que implemente la interfaz de los siguientes métodos:

Para ver un ejemplo de una herramienta configurables, supongamos que hemos aplicado un simple UserControl que contiene el código predeterminado, y un cuadro de texto. La Aplicación de Lenguaje de marcado extensible (XAML) para este control puede aparecer de la siguiente manera:

<UserControl x:Class="MyExtension.ConfigurationDialog"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     mc:Ignorable="d"
     d:DesignHeight="300" d:DesignWidth="400">
    <Grid x:Name="LayoutRoot" Background="Transparent">
        <StackPanel Margin="10" Background="Transparent">
            <TextBlock Text="Configuration Input:" Margin="0,0,0,5" />
            <TextBox Name="InputTextBox" Width="200" />
        </StackPanel>
    </Grid>
</UserControl>

Este control se puede utilizar en una simple herramienta configurable como sigue:

[Export(typeof(ICommand))]
[DisplayName("Configurable Command")]
[Category("My Tools")]
[Description("Example of a configurable command")]
[DefaultIcon(Path to icon, ex: "/Viewer.Addins;component/Images/Identify.png")]
public class ConfigurableCommand: ICommand, ISupportsConfiguration
    {
        private ConfigurationDialog configDialog = new ConfigurationDialog();

        #region ISupportsConfiguration Members

        public void Configure()
        {
            // When the dialog box opens, it shows the information saved from the last 
												//time the command was configured.
            MapApplication.Current.ShowWindow("Configuration", configDialog);
        }

        public void LoadConfiguration(string configData)
        {
            // If the saved configuration is not null, apply it to the configuration dialog box.
            configDialog.InputTextBox.Text = configData ?? "";
        }

        public string SaveConfiguration()
        {
            // Save the information from the dialog box, and 
            return configDialog.InputTextBox.Text;
     
        }

        #endregion

        #region ICommand Members

        public bool CanExecute(object parameter)
        {
            // Return true so that the command can always be executed.
            return true;
        }

        public event EventHandler CanExecuteChanged;

        public void Execute(object parameter)
        {
            // Show the configuration data. 
            MapApplication.Current.ShowWindow("Configuration", new TextBlock()
            {
                Text = configDialog.InputTextBox.Text,
                TextWrapping = TextWrapping.Wrap,
                Margin = new Thickness(30),
                MaxWidth = 480
            });
        }

        #endregion
    }

Con este comando agrega a la Parte Web de mapas web, diseñadores editar la configuración de parte inicia seleccionando Configurar desde el menú del comando.

Configurar el botón de comando configurable-hacia abajo

NotaNota:
La opción Configurar sólo está disponible al editar la parte Web. Cuando la web parte no está en modo de edición, un comando que se pueden configurar está representada en la cinta como un botón. Al hacer clic en el botón invoca el método de Ejecutar del comando.

Al hacer clic en Configurar invoca el método Configurar del comando. Con la aplicación dado anteriormente, esto muestra el siguiente cuadro de diálogo:

Cuadro de diálogo de configuración

Cuando la Parte Web de mapas se guarda, el texto en el cuadro de texto se almacena como una cadena de caracteres. Cuando la Parte Web de mapas carga, esta cadena de caracteres se pasa al método LoadConfiguration y se utilizan para inicializar la cadena de caracteres de configuración de variable. Ejecutando la command—by haciendo clic en el comando button—displays un cuadro de mensaje que muestra la cadena de caracteres de configuración que se guardó:

con el cuadro de diálogo de cadena de caracteres de configuración que se guardó

6/8/2012