use of org.jowidgets.api.model.item.IMenuItemModel in project jo-client-platform by jo-source.
the class CapWorkbenchMenuFactoryImpl method dataMenu.
@Override
public IMenuModel dataMenu() {
IMenuModel result = new MenuModel(Messages.getString("CapWorkbenchMenuFactoryImpl.data"));
final IDataModelAction loadAction = CapWorkbenchActionsProvider.loadAction();
boolean separator = false;
if (loadAction != null) {
result.addAction(loadAction);
separator = true;
}
final IDataModelAction cancelAction = CapWorkbenchActionsProvider.cancelAction();
if (cancelAction != null) {
result.addAction(cancelAction);
separator = true;
}
if (separator) {
result.addSeparator();
separator = false;
}
final IDataModelAction undoAction = CapWorkbenchActionsProvider.undoAction();
if (undoAction != null) {
result.addAction(undoAction);
separator = true;
}
final IDataModelAction saveAction = CapWorkbenchActionsProvider.saveAction();
if (saveAction != null) {
result.addAction(saveAction);
separator = true;
}
if (separator) {
result.addSeparator();
}
final IAction refreshLookUpsAction = CapWorkbenchActionsProvider.refreshLookUpsAction();
if (refreshLookUpsAction != null) {
result.addAction(refreshLookUpsAction);
}
final int size = result.getChildren().size();
if (size > 0) {
final IMenuItemModel itemModel = result.getChildren().get(size - 1);
if (itemModel instanceof ISeparatorItemModel) {
result.removeItem(itemModel);
}
}
// Modify with plugins
for (final IWorkbenchMenuInterceptorPlugin plugin : PluginProvider.getPlugins(IWorkbenchMenuInterceptorPlugin.ID)) {
result = plugin.getMenuInterceptor().dataMenuModel(result);
if (result == null) {
break;
}
}
return result;
}
use of org.jowidgets.api.model.item.IMenuItemModel in project jo-client-platform by jo-source.
the class BeanRelationTreeImpl method createNodeMenus.
private IMenuModel createNodeMenus(final IBeanRelationNodeModel<Object, Object> relationNodeModel, final IMenuModel relationMenu, final IAction createAction) {
final IMenuModel result = new MenuModel();
boolean needSeparator = false;
final IAction copyAction = createCopyAction(relationNodeModel);
if (copyAction != null && createAction == null) {
result.addAction(copyAction);
needSeparator = true;
}
if (relationMenu.getChildren().size() > 0) {
for (final IMenuItemModel item : relationMenu.getChildren()) {
result.addItem(item);
if (copyAction != null && createAction != null && item instanceof IActionItemModel) {
final IAction action = ((IActionItemModel) item).getAction();
if (NullCompatibleEquivalence.equals(createAction, action)) {
result.addAction(copyAction);
}
}
}
needSeparator = true;
}
final IEntityService entityService = ServiceProvider.getService(IEntityService.ID);
if (entityService != null) {
final Object childEntityId = relationNodeModel.getChildEntityId();
if (relationNodeModel.getParentEntityId() != null && relationNodeModel.getParentBean() != null) {
final List<IEntityLinkDescriptor> links = entityService.getEntityLinks(relationNodeModel.getParentEntityId());
for (final IEntityLinkDescriptor link : links) {
if (childEntityId.equals(link.getLinkedEntityId())) {
final IAction linkDeleterAction = createLinkDeleterAction(relationNodeModel, link);
if (linkDeleterAction != null) {
if (needSeparator) {
result.addSeparator();
needSeparator = false;
}
result.addAction(linkDeleterAction);
}
}
}
}
final IAction deleterAction = createDeleterAction(relationNodeModel);
if (deleterAction != null) {
if (needSeparator) {
result.addSeparator();
needSeparator = false;
}
result.addAction(deleterAction);
}
}
if (menuInterceptor != null) {
return menuInterceptor.nodeMenu(relationNodeModel, result);
} else {
return result;
}
}
Aggregations