Creé el elemento de menú en el menú "Archivo" como un comando. Para este comando, hay un controlador que implementa la interfaz IHandler
. Este controlador contiene el método isEnabled
. Estoy intentando usar este método para habilitar/deshabilitar mi elemento de menú, pero ese método se llama solo una vez cuando hago clic en el menú "Archivo". Cuando se hace clic en la segunda, en la tercera, etc. veces, el método isEnabled
no se vuelve a llamar aunque cambie el estado de la página (abrir/cerrar editores) anteriormente.Actualizar estado habilitado del elemento de menú Eclipse
¿Qué debo hacer? ¿Tal vez este método no está destinado a los elementos del menú de control?
¿Qué pasa si tengo el mango para el MenuManager, cómo puedo habilitar/deshabilitar el elemento de menú mediante programación? – Neel
@Neel Bueno, (en el ejemplo mencionado) debe llamar a CommandState.setNotLoaded() que cambiará el valor de la variable "myapp.commands.sourceprovider.active" a NOT_LOADED, que a su vez será detectado por la condición en el controlador . La condición en el manejador indica que si "myapp.commands.sourceprovider.active" no es igual a PLAYING o PAUSED, el botón debería estar inactivo (tan desactivado). En resumen, use la clase de proveedor (aquí, CommandState) para cambiar el valor de la variable que desencadena el controlador. –