// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.dataprofiler.core.ui.wizard.analysis.provider; import java.util.ArrayList; import java.util.List; import org.talend.core.model.repository.ERepositoryObjectType; import org.talend.dq.nodes.DBTableRepNode; import org.talend.dq.nodes.DBViewRepNode; import org.talend.dq.nodes.DFTableRepNode; import org.talend.repository.model.IRepositoryNode; import org.talend.repository.model.RepositoryNode; /** * created by qiongli on 2013-11-7 Detailled comment * */ public class MatchAnaColumnContentProvider extends ColumnContentProvider { private boolean unfoldNodeToColumn = false; /** * * DOC qiongli MatchAnaColumnContentProvider constructor comment. * * @param unfoldToColumn,if it is true,means will unfold tableNode and display columnNodes */ public MatchAnaColumnContentProvider(boolean unfoldToColumn) { this.unfoldNodeToColumn = unfoldToColumn; } /* * (non-Javadoc) * * @see org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider#getChildren(java.lang.Object) */ @Override public Object[] getChildren(Object parentElement) { if (parentElement instanceof IRepositoryNode) { IRepositoryNode node = (IRepositoryNode) parentElement; // filter MDM folder node for Match analysis. if (node.getContentType() == ERepositoryObjectType.METADATA) { List<IRepositoryNode> children = new ArrayList<IRepositoryNode>(); for (IRepositoryNode childNode : node.getChildren()) { children.add(childNode); } return children.toArray(); } } return super.getChildren(parentElement); } @Override public Object getParent(Object element) { if (element instanceof RepositoryNode) { RepositoryNode repoNode = (RepositoryNode) element; return repoNode.getParent(); } return super.getParent(element); } @Override public boolean hasChildren(Object element) { if (!unfoldNodeToColumn) { if (element instanceof RepositoryNode) { RepositoryNode repoNode = (RepositoryNode) element; if (repoNode instanceof DBTableRepNode || repoNode instanceof DBViewRepNode || repoNode instanceof DFTableRepNode) { return Boolean.FALSE; } return repoNode.hasChildren(); } } return super.hasChildren(element); } }