class DataModelerScreenPresenter extends KieEditor<String> {

    @Override
    protected Promise<Void> makeMenuBar() {
        if (!workbenchContext.getActiveWorkspaceProject().isPresent()) {
            return promises.resolve();
        }

        final WorkspaceProject activeProject = workbenchContext.getActiveWorkspaceProject().get();

        return projectController.canUpdateProject(activeProject).then(canUpdateProject -> {
            if (canUpdateProject) {
                final ParameterizedCommand<Boolean> onSave = withComments -> {
                    saveWithComments = withComments;
                    saveAction();
                };
                fileMenuBuilder.addSave(versionRecordManager.newSaveMenuItem(onSave))
                               .addCopy(() -> onCopy())
                               .addRename(() -> onSafeRename())
                               .addDelete(() -> onSafeDelete());
            }

            addDownloadMenuItem(fileMenuBuilder);

            fileMenuBuilder.addValidate(getValidateCommand())
                           .addNewTopLevelMenu(versionRecordManager.buildMenu())
                           .addNewTopLevelMenu(alertsButtonMenuItemBuilder.build());

            return promises.resolve();
        });
    }

    @Inject public  DataModelerScreenPresenter(DataModelerScreenView baseView,
                                      SessionInfo sessionInfo);

}