/******************************************************************************
* Copyright (c) 2010-2013, Linagora
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Linagora - initial API and implementation
*******************************************************************************/
package com.ebmwebsourcing.petals.services.su.projectscnf;
import org.eclipse.core.resources.IProject;
import org.eclipse.jface.viewers.TreePath;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import com.ebmwebsourcing.petals.common.internal.provisional.projectscnf.PetalsProjectCategory;
import com.ebmwebsourcing.petals.services.utils.ServiceProjectRelationUtils;
/**
* @author Vincent Zurczak - EBM WebSourcing
*/
public class AttachedSuProjectsFilter extends ViewerFilter {
/**
* Constructor.
*/
public AttachedSuProjectsFilter() {
// nothing
}
/* (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 ) {
boolean result = true;
PetalsProjectCategory category = null;
if( parentElement instanceof PetalsProjectCategory ) {
category = (PetalsProjectCategory) parentElement;
}
else if( parentElement instanceof TreePath ) {
Object o = ((TreePath) parentElement).getFirstSegment();
if( o instanceof PetalsProjectCategory )
category = (PetalsProjectCategory) o;
}
boolean isInSuCategory = false;
if( category != null
&& category.getId().equals( SuProjectCategory.SU_CATEGORY_ID ))
isInSuCategory = true;
if( element instanceof IProject && isInSuCategory ) {
IProject p = (IProject) element;
result = p.isAccessible() && ServiceProjectRelationUtils.getOrphanSuProjects().contains( p );
}
return result;
}
}