1 11 package org.eclipse.jdt.internal.debug.ui.launcher; 12 13 import java.util.Arrays ; 14 import java.util.List ; 15 16 import org.eclipse.core.resources.IContainer; 17 import org.eclipse.core.resources.IFile; 18 import org.eclipse.core.resources.IResource; 19 import org.eclipse.core.runtime.CoreException; 20 import org.eclipse.core.runtime.IPath; 21 import org.eclipse.jdt.internal.debug.ui.JDIDebugUIPlugin; 22 import org.eclipse.jface.viewers.Viewer; 23 import org.eclipse.jface.viewers.ViewerFilter; 24 25 30 public class ArchiveFileFilter extends ViewerFilter { 31 32 private static final String [] fgArchiveExtensions= { "jar", "zip" }; 34 private List fExcludes; 35 36 40 public ArchiveFileFilter(IFile[] excludedFiles) { 41 if (excludedFiles != null) { 42 fExcludes= Arrays.asList(excludedFiles); 43 } else { 44 fExcludes= null; 45 } 46 } 47 48 51 public boolean select(Viewer viewer, Object parent, Object element) { 52 if (element instanceof IFile) { 53 if (fExcludes != null && fExcludes.contains(element)) { 54 return false; 55 } 56 return isArchivePath(((IFile)element).getFullPath()); 57 } else if (element instanceof IContainer) { try { 59 IResource[] resources= ((IContainer)element).members(); 60 for (int i= 0; i < resources.length; i++) { 61 if (select(viewer, parent, resources[i])) { 63 return true; 64 } 65 } 66 } catch (CoreException e) { 67 JDIDebugUIPlugin.log(e.getStatus()); 68 } 69 } 70 return false; 71 } 72 73 public static boolean isArchivePath(IPath path) { 74 String ext= path.getFileExtension(); 75 if (ext != null && ext.length() != 0) { 76 for (int i= 0; i < fgArchiveExtensions.length; i++) { 77 if (ext.equalsIgnoreCase(fgArchiveExtensions[i])) { 78 return true; 79 } 80 } 81 } 82 return false; 83 } 84 85 86 } 87 | Popular Tags |