1 11 package org.eclipse.jdt.internal.ui.filters; 12 13 import org.eclipse.core.runtime.IAdaptable; 14 15 import org.eclipse.core.resources.IResource; 16 import org.eclipse.core.resources.IStorage; 17 18 import org.eclipse.jface.viewers.Viewer; 19 import org.eclipse.jface.viewers.ViewerFilter; 20 21 import org.eclipse.ui.IWorkingSet; 22 import org.eclipse.ui.model.IWorkbenchAdapter; 23 24 import org.eclipse.jdt.core.IJavaElement; 25 26 import org.eclipse.jdt.internal.ui.util.StringMatcher; 27 28 39 public class NamePatternFilter extends ViewerFilter { 40 private String [] fPatterns; 41 private StringMatcher[] fMatchers; 42 43 47 private StringMatcher[] getMatchers() { 48 return fMatchers; 49 } 50 51 55 public String [] getPatterns() { 56 return fPatterns; 57 } 58 59 60 63 public boolean select(Viewer viewer, Object parentElement, Object element) { 64 if (fMatchers.length == 0) { 65 return true; 66 } 67 String matchName= null; 68 if (element instanceof IJavaElement) { 69 matchName= ((IJavaElement) element).getElementName(); 70 } else if (element instanceof IResource) { 71 matchName= ((IResource) element).getName(); 72 } else if (element instanceof IStorage) { 73 matchName= ((IStorage) element).getName(); 74 } else if (element instanceof IWorkingSet) { 75 matchName= ((IWorkingSet) element).getLabel(); 76 } else if (element instanceof IAdaptable) { 77 IWorkbenchAdapter wbadapter= (IWorkbenchAdapter) ((IAdaptable)element).getAdapter(IWorkbenchAdapter.class); 78 if (wbadapter != null) { 79 matchName= wbadapter.getLabel(element); 80 } 81 } 82 if (matchName != null && matchName.length() > 0) { 83 StringMatcher[] testMatchers= getMatchers(); 84 for (int i = 0; i < testMatchers.length; i++) { 85 if (testMatchers[i].match(matchName)) 86 return false; 87 } 88 return true; 89 } 90 return true; 91 } 92 93 102 public void setPatterns(String [] newPatterns) { 103 fPatterns = newPatterns; 104 fMatchers = new StringMatcher[newPatterns.length]; 105 for (int i = 0; i < newPatterns.length; i++) { 106 fMatchers[i]= new StringMatcher(newPatterns[i], true, false); 108 } 109 } 110 } 111 | Popular Tags |