MenuOptionsProvider.java 文件源码

java
阅读 25 收藏 0 点赞 0 评论 0

项目:mule-tooling-incubator 作者:
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();
                }

            });
        }
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号