Administrar el estado de tipos de complementos de Python

La comunicación y coordinación entre tipos de complementos

En algunos casos, un medio para la comunicación entre tipos de complementos es necesario para que una personalización pueda activar u obtener el estado de otro. Por ejemplo, un botón de complemento particular, al hacer clic en él, puede alterar el estado del complemento de una herramienta de deshabilitado a habilitado.

El siguiente código de Python muestra cómo administrar la comunicación de complementos. En la función onClick () del botón, de la herramienta Id. (nombre de la variable) se utiliza para cambiar su estado de deshabilitado a habilitado. No es necesario especificar el prefijo del espacio de nombre como parte del Id.

class ButtonClass(object):     def __init__(self):         self.enabled = True         self.checked = False     def onClick(self):         # tool1 is the tool ID         tool1.enabled = True

El Id. (nombre de la variable) de la herramienta se especifica durante la creación del tipo de complemento que utiliza el Asistente de complementos de Python y se almacena en el archivoconfig.xml. El Id. es el prefijo por el espacio de nombre del complemento. Esto se hace para evitar los conflictos de nombre entre los complementos. Sin embargo, no es necesario el prefijo del espacio de nombre con el Id. cuando lo utiliza dentro de la secuencia de comandos. Vea el ejemplo a continuación.

En la mayoría de los casos, el estado del tipo de complementos se administra por la extensión de los complementos, en donde se puede actualizar y almacenar en respuesta a varios acontecimientos de la aplicación. Por ejemplo, es posible que solo desee habilitar una herramienta o conjunto de herramientas cuando un documento de mapa esté en la vista de datos.

El siguiente código de Python muestra cómo una clase de extensión se utiliza para deshabilitar una herramienta cuando la vista activa se cambia a la vista de composición de mapa. No incluya el prefijo del espacio de nombre.

class AVExtension(object):      def activeViewChanged(self):         mxd = arcpy.mapping.MapDocument('current')         active_view = mxd.activeView         # tool1 is the tool ID (without the namespace prefix)         if active_view == 'PAGE_LAYOUT':             tool1.enabled = False         else:             tool1.enabled = True         arcpy.RefreshActiveView()         return

Propiedades habilitadas y marcadas

Los tipos de complementos (botones, herramientas y cuadros combinados) se notifican periódicamente para actualizar su estado habilitado y marcado. En Python, los tipos de complementos contienen propiedades booleanas para habilitar y marcar. Por ejemplo, puede establecer que los complementos estén habilitados o deshabilitados y activados o desactivados durante su inicialización.

El siguiente código de Python muestra cómo establecer el estado habilitado o activado de un tipo de complemento.

class MyButton(object):   def __init__(self):     self.checked = False     self.enabled = True

La propiedad marcada solo está disponible para los tipos de botón. La propiedad habilitada está disponible para los botones, herramientas y cuadros combinados.

9/11/2013