KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > pde > internal > ui > util > FileExtensionFilter


1 /*******************************************************************************
2  * Copyright (c) 2005 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - initial API and implementation
10  *******************************************************************************/

11 package org.eclipse.pde.internal.ui.util;
12
13 import java.util.Locale JavaDoc;
14
15 import org.eclipse.core.resources.IContainer;
16 import org.eclipse.core.resources.IFile;
17 import org.eclipse.core.resources.IProject;
18 import org.eclipse.core.resources.IResource;
19 import org.eclipse.core.runtime.CoreException;
20 import org.eclipse.jface.viewers.Viewer;
21 import org.eclipse.jface.viewers.ViewerFilter;
22
23 public class FileExtensionFilter extends ViewerFilter {
24
25     private String JavaDoc fTargetExtension;
26
27     public FileExtensionFilter(String JavaDoc targetExtension) {
28         fTargetExtension = targetExtension;
29     }
30
31     public boolean select(Viewer viewer, Object JavaDoc parent, Object JavaDoc element) {
32         if (element instanceof IFile) {
33             return ((IFile)element).getName().toLowerCase(Locale.ENGLISH).endsWith("." + fTargetExtension); //$NON-NLS-1$
34
}
35
36         if (element instanceof IProject && !((IProject)element).isOpen())
37             return false;
38         
39         if (element instanceof IContainer){ // i.e. IProject, IFolder
40
try {
41                 IResource[] resources = ((IContainer)element).members();
42                 for (int i = 0; i < resources.length; i++){
43                     if (select(viewer, parent, resources[i]))
44                         return true;
45                 }
46             } catch (CoreException e) {
47             }
48         }
49         return false;
50     }
51
52 }
53
Popular Tags