public static Object createTreeData() { List<AnalysisTypeNode> returnList = new ArrayList<AnalysisTypeNode>(); // use CategoryHandler AnalysisCategories analysisCategories = CategoryHandler.getAnalysisCategories(); // use this tree (use label attribute of each Category instance) EList<AnalysisCategory> categories = analysisCategories.getCategories(); for (AnalysisCategory category : categories) { AnalysisTypeNode typeNode = new AnalysisTypeNode(category.getLabel(), category.getAnalysisType().getLiteral(), null); if (category.getSubCategories() != null) { List<AnalysisTypeNode> subCategories = new ArrayList<AnalysisTypeNode>(); for (AnalysisCategory subCategory : category.getSubCategories()) { // the Semantic analysis must not appear in TOS DQ. String label = subCategory.getLabel(); if (org.talend.commons.utils.platform.PluginChecker.isOnlyTopLoaded()) { if (label.equals("Semantic Discovery Analysis")) { // $NON-NLS-1$ continue; } } subCategories.add(new AnalysisTypeNode(label, label, typeNode)); } typeNode.setChildren(subCategories.toArray()); } returnList.add(typeNode); } return returnList; }