cbeda16b5d33b3b348aeaea3cd7735a935268557
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / filters / NonSharedProjectFilter.java
1 /*******************************************************************************
2  * Copyright (c) 2000, 2004 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials 
4  * are made available under the terms of the Common Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/cpl-v10.html
7  * 
8  * Contributors:
9  *     IBM Corporation - initial API and implementation
10  *******************************************************************************/
11 package net.sourceforge.phpdt.internal.ui.filters;
12
13
14 import org.eclipse.core.resources.IProject;
15
16 import org.eclipse.team.core.RepositoryProvider;
17
18 import org.eclipse.jface.viewers.Viewer;
19 import org.eclipse.jface.viewers.ViewerFilter;
20
21 import net.sourceforge.phpdt.core.IJavaProject;
22
23 /**
24  * Filters non-shared projects and Java projects. Non-shared projects are
25  * projects that are not controlled by a team provider.
26  * 
27  * @since 2.1
28  */
29 public class NonSharedProjectFilter extends ViewerFilter {
30
31         /*
32          * @see ViewerFilter
33          */
34         public boolean select(Viewer viewer, Object parent, Object element) {
35                 if (element instanceof IProject)
36                         return isSharedProject((IProject)element);
37                 
38                 if (element instanceof IJavaProject)
39                         return isSharedProject(((IJavaProject)element).getProject());
40
41                 return true;
42         }
43         
44         private boolean isSharedProject(IProject project) {
45                 return !project.isAccessible() || RepositoryProvider.isShared(project);
46         }
47 }