es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuál es la mejor práctica para rastrear si un usuario ha realizado cambios en un modelo de Enterprise Architect en un complemento EA?

Comportamiento deseado:

Una vez que un usuario realiza un cambio en el modelo, se supone que mi complemento de EA debe marcar el modelo como ‘sucio’. Esto permite exportar condicionalmente a otro formato al cerrar el archivo como en <code>if dirty then do export</code>.

Un cambio puede ser cualquier tipo de modificación en la apariencia o estructura lógica del modelo.

Hasta ahora, estoy estableciendo un valor booleano <code>dirty</code> en <code>true</code> en el evento <code>EA_OnNotifyContextItemModified</code> y parece funcionar en algunas pruebas simples. Sin embargo, encuentro la documentación en ese evento un poco confusa. ¿Qué es exactamente un ‘elemento de contexto’? ¿Es simplemente cualquier elemento del modelo que está seleccionado en la interfaz gráfica de EA?

¿Existen mejores opciones para detectar los cambios realizados por el usuario?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Solución

    Para marcar el modelo como “sucio” cuando un usuario realiza cambios en la apariencia o estructura lógica del modelo, puedes establecer un valor booleano “dirty” como “true” en el evento “EA_OnNotifyContextItemModified”. Sin embargo, no estás seguro del significado exacto de “context item”.

    “Context item” se refiere al elemento actualmente seleccionado en la interfaz gráfica de Enterprise Architect. Esto puede ser cualquier elemento del modelo, paquete, diagrama u otro elemento. El evento se activa cada vez que se modifica ese elemento.

    Si deseas ser más específico sobre qué cambios marcan el modelo como “sucio”, puedes utilizar otros eventos como “EA_OnNotifyDiagramObjectModified”, que se activa cuando se modifica un objeto en un diagrama, o “EA_OnPreNewElement”, que se activa antes de agregar un nuevo elemento al modelo.

    En general, establecer la bandera “dirty” como “true” cada vez que se realiza un cambio debería funcionar para tus necesidades de exportar condicionalmente a otro formato al cerrar el archivo.

Comments are closed.