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
22 MDirectMenuItem dynamicItem = modelService.createModelElement(MDirectMenuItem.class);
23 dynamicItem.setLabel("Dynamic Menu Item (" + new Date() + ")");
24
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
30 items.add(dynamicItem);
31
32
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 }