View Javadoc
1   package org.argeo.documents.e4.parts;
2   
3   import java.util.Date;
4   import java.util.List;
5   
6   import org.eclipse.e4.ui.di.AboutToHide;
7   import org.eclipse.e4.ui.di.AboutToShow;
8   import org.eclipse.e4.ui.model.application.MApplication;
9   import org.eclipse.e4.ui.model.application.commands.MCommand;
10  import org.eclipse.e4.ui.model.application.ui.menu.MDirectMenuItem;
11  import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
12  import org.eclipse.e4.ui.model.application.ui.menu.MMenuElement;
13  import org.eclipse.e4.ui.workbench.modeling.EModelService;
14  
15  public class FolderMenu {
16  
17  	@AboutToShow
18  	public void aboutToShow(List<MMenuElement> items, MApplication app, EModelService modelService) {
19  		System.out.println("aboutToShow: " + items);
20  
21  		// Direct menu item
22  		MDirectMenuItem dynamicItem = modelService.createModelElement(MDirectMenuItem.class);
23  		dynamicItem.setLabel("Dynamic Menu Item (" + new Date() + ")");
24  		// dynamicItem.setContributorURI("platform:/plugin/org.argeo.suite.e4");
25  		dynamicItem.setContributorURI("platform:/plugin/org.argeo.connect.e4");
26  		dynamicItem.setContributionURI(
27  				"bundleclass://org.argeo.connect.e4/org.argeo.documents.e4.parts.TestDirectMenuItem");
28  		dynamicItem.setIconURI("platform:/plugin/org.argeo.theme.argeo2/icons/types/folder.png");
29  		// dynamicItem.setObject(new TestDirectMenuItem());
30  		items.add(dynamicItem);
31  
32  		// Handled menu item
33  		MHandledMenuItem handledItem = modelService.createModelElement(MHandledMenuItem.class);
34  		handledItem.setContributorURI("platform:/plugin/org.argeo.suite.e4");
35  		List<MCommand> cmds = modelService.findElements(app, null, MCommand.class, null);
36  		for (MCommand cmd : cmds) {
37  			if (cmd.getElementId().equals("org.argeo.suite.e4.command.closeAll")) {
38  				handledItem.setCommand(cmd);
39  				break;
40  			}
41  		}
42  		items.add(handledItem);
43  	}
44  
45  	@AboutToHide
46  	public void aboutToHide() {
47  
48  	}
49  }