12/12/2007 13:27
El Bruno
[DSL] Como agregar un menu personalizado (2da parte)
Buenas
hace un tiempo escribí unas pocas líneas en un post, donde explicaba como agregar un menú personalizado a un proyecto de Domain Specific Language Tools. Una característica añadida a esta funcionalidad puede consistir en mostrar el elemento del menú contextual, dependiendo del tipo de elemento seleccionado.
Si partimos del ejemplo del post anterior y definimos que solamente necesitamos activar nuestro menu "Display Information" cuando el tipo de elemento seleccionado sea un UserShape, debemos modificar la implementación de la función OnPopUpMenuDisplayAction y agregar una validación dentro de la misma, por ejemplo:
1 internal void OnPopUpMenuDisplayAction(object sender, EventArgs e)
2 {
3 MenuCommand command = sender as MenuCommand;
4
5 // The popmenu command is by default disabled
6 command.Visible = false;
7 command.Enabled = false;
8
9 foreach (object selectedObject in this.CurrentSelection)
10 {
11 // validate if the selected element is a User Shape
12 if (selectedObject is ElBruno.Dsl15.UserShape)
13 {
14 command.Visible = true;
15 command.Enabled = true;
16 break;
17 }
18 }
19 }
Como se ve en la rutina de código, entre las líneas 9 y 18, verificamos el tipo de objeto seleccionado y a partir de esta verificación habilitamos el comando para que se accesible.
De esta forma, cuando seleccionemos cualquier tipo de elemento dentro de nuestro diagrama y despleguemos el menú contextual veremos que la opcion "Display Information" está deshabilitada
Si en cambio seleccionamos un elemento del tipo User y desplegamos el menú contextual veremos que podremos acceder a la misma y hacer click sobre el elemento del menú
El ejemplo se puede descargar desde http://geeks.ms/files/folders/elbruno/entry56705.aspx (thanks Geeks !!!)
Saludos @ La Finca
El Bruno
Crossposting from
ElBruno.com
Comparte este post: