public Object createWidget(final MUIElement element, Object parent) {
if (!(element instanceof MDirectMenuItem) || !(parent instanceof Menu))
return null;
MDirectMenuItem itemModel = (MDirectMenuItem) element;
if (itemModel.getVisibleWhen() != null) {
processVisible(itemModel);
}
if (!itemModel.isVisible()) {
return null;
}
int addIndex = calcVisibleIndex(element);
int flags = 0;
if (itemModel.getType() == ItemType.PUSH)
flags = SWT.PUSH;
else if (itemModel.getType() == ItemType.CHECK)
flags = SWT.CHECK;
else if (itemModel.getType() == ItemType.RADIO)
flags = SWT.RADIO;
MenuItem newItem = new MenuItem((Menu) parent, flags, addIndex);
setItemText(itemModel, newItem);
newItem.setImage(getImage(itemModel));
setEnabled(itemModel, newItem);
newItem.setEnabled(itemModel.isEnabled());
newItem.setSelection(itemModel.isSelected());
return newItem;
}