use of org.jboss.tools.hibernate.ui.diagram.editors.model.Shape in project jbosstools-hibernate by jbosstools.
the class PopupMenuProvider method buildContextMenu.
public void buildContextMenu(IMenuManager menu) {
menu.add(new Separator(GROUP_OPEN_SOURCE));
menu.add(new Separator(GROUP_EDIT));
menu.add(new Separator(GROUP_ADDITIONAL_ACTIONS));
// Add standard action groups to the menu
// GEFActionConstants.addStandardActionGroups(menu);
IAction action = null;
if (getViewer().getSelection() instanceof StructuredSelection) {
Shape selectedShape = null;
IStructuredSelection selection = (IStructuredSelection) getViewer().getSelection();
if (selection != null) {
Object firstElement = selection.getFirstElement();
Object obj = null;
if (firstElement instanceof OrmEditPart) {
obj = ((OrmEditPart) firstElement).getModel();
} else if (firstElement instanceof AbstractTreeEditPart) {
obj = ((AbstractTreeEditPart) firstElement).getModel();
}
if (null != obj && obj instanceof Shape) {
selectedShape = (Shape) obj;
}
}
if (selectedShape != null && selection.size() == 1) {
Object first = selectedShape.getOrmElement();
if (first instanceof IPersistentClass || (first instanceof IProperty && ((IProperty) first).classIsPropertyClass()) || first instanceof ITable || first instanceof IColumn) {
action = getActionRegistry().getAction(OpenSourceAction.ACTION_ID);
appendToGroup(GROUP_OPEN_SOURCE, action);
createMenuItem(getMenu(), action);
action = getActionRegistry().getAction(OpenMappingAction.ACTION_ID);
appendToGroup(GROUP_OPEN_SOURCE, action);
createMenuItem(getMenu(), action);
}
}
boolean addToggleVisibleStateMenu = false;
boolean addToggleExpandStateMenu = false;
Iterator<?> it = selection.iterator();
while (it.hasNext() && (!addToggleVisibleStateMenu || !addToggleExpandStateMenu)) {
Object element = it.next();
Object obj = null;
if (element instanceof OrmEditPart) {
obj = ((OrmEditPart) element).getModel();
} else if (element instanceof AbstractTreeEditPart) {
obj = ((AbstractTreeEditPart) element).getModel();
}
if (null != obj && obj instanceof OrmShape) {
selectedShape = (Shape) obj;
Object first = selectedShape.getOrmElement();
if (first instanceof IPersistentClass || first instanceof ITable) {
addToggleVisibleStateMenu = true;
}
}
if (null != obj && obj instanceof ExpandableShape) {
addToggleExpandStateMenu = true;
}
}
if (addToggleVisibleStateMenu) {
action = getActionRegistry().getAction(ToggleShapeVisibleStateAction.ACTION_ID);
appendToGroup(GROUP_EDIT, action);
createMenuItem(getMenu(), action);
}
if (addToggleExpandStateMenu) {
action = getActionRegistry().getAction(ToggleShapeExpandStateAction.ACTION_ID);
appendToGroup(GROUP_EDIT, action);
createMenuItem(getMenu(), action);
}
}
action = getActionRegistry().getAction(ToggleConnectionsAction.ACTION_ID);
appendToGroup(GROUP_EDIT, action);
createMenuItem(getMenu(), action);
action = getActionRegistry().getAction(AutoLayoutAction.ACTION_ID);
appendToGroup(GROUP_ADDITIONAL_ACTIONS, action);
createMenuItem(getMenu(), action);
// action = getActionRegistry().getAction(CollapseAllAction.ACTION_ID);
// appendToGroup(GROUP_EDIT, action);
// createMenuItem(getMenu(), action);
// action = getActionRegistry().getAction(ExpandAllAction.ACTION_ID);
// appendToGroup(GROUP_EDIT, action);
// createMenuItem(getMenu(), action);
action = getActionRegistry().getAction(ExportImageAction.ACTION_ID);
appendToGroup(GROUP_ADDITIONAL_ACTIONS, action);
createMenuItem(getMenu(), action);
// Add actions to the menu
/**
* /
* // is undo/redo operation so necessary for popup menu?
* menu.appendToGroup(
* GEFActionConstants.GROUP_UNDO, // target group id
* getAction(ActionFactory.UNDO.getId())); // action to add
* menu.appendToGroup(
* GEFActionConstants.GROUP_UNDO,
* getAction(ActionFactory.REDO.getId()));
* /*
*/
menu.appendToGroup(// target group id
GROUP_EDIT, // action to add
getAction(ActionFactory.SELECT_ALL.getId()));
}
Aggregations