private void addMenuEntry(IMenuManager manager, XmlSeeAlso annotation, final Object object) {
for (final Class<?> extended : annotation.value()) {
if (Modifier.isAbstract(extended.getModifiers())) {
XmlSeeAlso innerAnnotation = extended.getAnnotation(XmlSeeAlso.class);
if (innerAnnotation != null) {
MenuManager subMenu = new MenuManager(extended.getSimpleName(), extended.getCanonicalName());
manager.add(subMenu);
addMenuEntry(subMenu, innerAnnotation, object);
}
} else {
manager.add(new Action() {
@Override
public void run() {
try {
if (object instanceof Nested) {
((Nested) object).getChildElements().add((BaseChildEditorElement) extended.newInstance());
} else if (object instanceof Namespace) {
((Namespace) object).getComponents().add((EditorElement) extended.newInstance());
} else if (object instanceof Group) {
((Group) object).getChilds().add((BaseFieldEditorElement) extended.newInstance());
} else if (object instanceof Horizontal) {
((Horizontal) object).getChilds().add((BaseFieldEditorElement) extended.newInstance());
} else if (object instanceof AttributeCategory) {
((AttributeCategory) object).getChilds().add((BaseFieldEditorElement) extended.newInstance());
}
viewer.refresh();
} catch (InstantiationException | IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public String getText() {
return "Add " + extended.getSimpleName();
}
});
}
}
}
MenuOptionsProvider.java 文件源码
java
阅读 25
收藏 0
点赞 0
评论 0
项目:mule-tooling-incubator
作者:
评论列表
文章目录