Search code examples
javarcpperspectivee4

e4 RCP: Manipulating Menu when switching between perspectives


I am looking for a way how to manipulate the main menu of an e4 RCP application. The menu should have different items enabled, depending on the current Perspective.

So far, I came up with the solution to use the @CanExecute annotation for each menu handler to check for the active perspective like so:

@CanExecute
public boolean canExecute(MPerspective activePerspective) {
    return (activePerspective.getElementId().equals("somePerspectiveName"));
}

Is there any better way how to do this?


Solution

  • If you just want to control if the menu item is enabled/disabled what you have is OK.

    You can control the visibility of the menu item by specifying a 'Visible-When Expression' in the 'Handled Menu Item' entry in the Application.e4xmi. Here you specify the id of a 'core expression' defined using the org.eclipse.core.expressions.definitions extension point.