@ExecuteBefore(State.INITIALIZED)
    public void install(@WithState(State.INITIALIZED) MenuBarComponent menuBar,
                 @WithState(State.INITIALIZED) UserInterfaceComponent ui,
                 @WithState(State.INITIALIZED) InjectionLoader loader) {
        menuBar.forTab(MenuBarTab.FILE)
            .addMenuItem("_New", SpeedmentIcon.NEW_PROJECT, ev -> ui.newProject())
            .addMenuItem("_Open", SpeedmentIcon.OPEN_PROJECT, ev -> ui.openProject())
            .addSeparator()
            .addMenuItem("_Save", SpeedmentIcon.DISK, ev -> ui.saveProject())
            .addMenuItem("Save _As", SpeedmentIcon.DISK_MULTIPLE, ev -> ui.saveProjectAs())
            .addSeparator()
            .addMenuItem("_Quit", SpeedmentIcon.DOOR_IN, ev -> ui.quit());

        menuBar.forTab(MenuBarTab.EDIT)
            .addMenuItem("_Generate", SpeedmentIcon.RUN_PROJECT, ev -> ui.generate());

        menuBar.forTab(MenuBarTab.WINDOW)
            .set("project-tree", () -> {
                final CheckMenuItem mi = new CheckMenuItem("_Project Tree");
                mi.setGraphic(SpeedmentIcon.APPLICATION_SIDE_TREE.view());
                mi.selectedProperty().bindBidirectional(ui.projectTreeVisibleProperty());
                return mi;
            })
            .set("workspace", () -> {
                final CheckMenuItem mi = new CheckMenuItem("_Workspace");
                mi.setGraphic(SpeedmentIcon.APPLICATION_FORM.view());
                mi.selectedProperty().bindBidirectional(ui.workspaceVisibleProperty());
                return mi;
            })
            .set("output", () -> {
                final CheckMenuItem mi = new CheckMenuItem("_Output");
                mi.setGraphic(SpeedmentIcon.APPLICATION_XP_TERMINAL.view());
                mi.selectedProperty().bindBidirectional(ui.outputVisibleProperty());
                return mi;
            });

        menuBar.forTab(MenuBarTab.HELP)
            .addMenuItem("Online _Manual", SpeedmentIcon.BOOK, ev -> ui.showManual())
            .addMenuItem("Online Help Chat on _Gitter", SpeedmentIcon.USER_COMMENT, ev -> ui.showGitter())
            .addMenuItem("Report an _Issue", SpeedmentIcon.USER_COMMENT, ev -> ui.reportIssue())
            .addMenuItem("Open the Git_Hub page", SpeedmentIcon.USER_COMMENT, ev -> ui.showGithub())
            .addSeparator()
            .addMenuItem("_Components", SpeedmentIcon.BRICKS, ev -> loader.loadAsModal("Components"))
            .addSeparator()
            .addMenuItem("_About", SpeedmentIcon.INFORMATION, ev -> loader.loadAsModal("About"));
    }
Installs the default menu item factories used by the Speedment Tool.

@author Emil Forslund
@since  3.1.5
tool-parent/tool-core/src/main/java/com/speedment/tool/core/internal/menubar/DefaultMenuItemFactories.java