Search code examples
eclipseeclipse-plugineclipse-rcpmenuitempopupmenu

Enable/disable menu item in Eclipse plugin


I've made a pop-up menu with one menu item, I want to enable it only when I do a right click on a tree item of a certain class type otherwise disable it.

How can I achieve this?


Solution

  • You can add a handler that uses activeWhen and associate it with that menu's command id.

    Here is a handler that makes a command active only when the current selection is not empty, and the selection is an item that can be adapted to an object of type Widget:

    <extension point="org.eclipse.ui.handlers">
      <handler class="com.myproject.handlers.ExportWidgetHandler"
               commandId="com.myproject.commands.exportWidget">
         <activeWhen>
            <with variable="selection">
               <iterate ifEmpty="false" operator="and">
                  <adapt type="com.myproject.objects.Widget"/>
               </iterate>
            </with>
         </activeWhen>
      </handler>
    </extension>