// ============================================================================
//
// 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.filters;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourceAttributes;
import org.eclipse.jface.viewers.Viewer;
import org.talend.dq.nodes.UserDefIndicatorSubFolderRepNode;
import org.talend.resource.EResourceConstant;
import org.talend.resource.ResourceManager;
/**
* DOC rli class global comment. Detailled comment
*/
public class FolderObjFilter extends AbstractViewerFilter {
public static final int FILTER_ID = 3;
/*
* (non-Javadoc)
*
* @see org.talend.dataprofiler.core.ui.views.filters.AbstractViewerFilter#getId()
*/
@Override
public int getId() {
return FILTER_ID;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object,
* java.lang.Object)
*/
@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
if (element instanceof IResource) {
IResource res = (IResource) element;
if (IResource.FOLDER == res.getType()) {
IFolder folder = (IFolder) element;
// MOD mzhao 2010-08-12 14891: use same repository API with TOS to persistent metadata
if (folder.getProjectRelativePath().toString().startsWith(EResourceConstant.METADATA.getPath())) {
String folderName = folder.getName();
if (folderName.equals("bin")) {//$NON-NLS-1$
return false;
}
if (folderName.equals(EResourceConstant.METADATA.getPath())) {
return true;
} else if (ResourceManager.getConnectionFolder().getFullPath().isPrefixOf(folder.getFullPath())) {
return true;
}
return false;
}
// MOD zshen 2011-1-16 18724: Java UDI enhancements to hide lib folder.
else if (folder.getProjectRelativePath().toString()
.startsWith(EResourceConstant.USER_DEFINED_INDICATORS.getPath())
&& (folder.getName().equals("lib"))) { //$NON-NLS-1$
return false;
}
// ~18724
ResourceAttributes resourceAttributes = folder.getResourceAttributes();
if (resourceAttributes == null) {
return true;
}
if (resourceAttributes.isHidden()) {
return false;
}
} else {
return true;
}
} else if (element instanceof UserDefIndicatorSubFolderRepNode) {
if (EResourceConstant.USER_DEFINED_INDICATORS_LIB.getName().equalsIgnoreCase(
((UserDefIndicatorSubFolderRepNode) element).getObject().getLabel())) {
return false;
}
}
return true;
}
}