1 11 package org.eclipse.ui.views.navigator; 12 13 import java.util.ArrayList ; 14 import java.util.List ; 15 16 import org.eclipse.core.runtime.IConfigurationElement; 17 import org.eclipse.core.runtime.IExtension; 18 import org.eclipse.core.runtime.IExtensionPoint; 19 import org.eclipse.core.runtime.Platform; 20 import org.eclipse.jface.viewers.IStructuredContentProvider; 21 import org.eclipse.jface.viewers.Viewer; 22 23 27 class FiltersContentProvider implements 28 IStructuredContentProvider { 29 30 private static List definedFilters; 31 32 private static List defaultFilters; 33 34 private ResourcePatternFilter resourceFilter; 35 36 40 public FiltersContentProvider(ResourcePatternFilter filter) { 41 this.resourceFilter = filter; 42 } 43 44 47 public void dispose() { 48 } 49 50 55 public static List getDefaultFilters() { 56 if (defaultFilters == null) { 57 readFilters(); 58 } 59 return defaultFilters; 60 } 61 62 67 public static List getDefinedFilters() { 68 if (definedFilters == null) { 69 readFilters(); 70 } 71 return definedFilters; 72 } 73 74 77 public Object [] getElements(Object inputElement) { 78 return getDefinedFilters().toArray(); 79 } 80 81 84 public String [] getInitialSelections() { 85 return this.resourceFilter.getPatterns(); 86 } 87 88 91 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { 92 } 93 94 97 private static void readFilters() { 98 definedFilters = new ArrayList (); 99 defaultFilters = new ArrayList (); 100 IExtensionPoint extension = Platform.getExtensionRegistry() 101 .getExtensionPoint(ResourcePatternFilter.FILTERS_TAG); 102 if (extension != null) { 103 IExtension[] extensions = extension.getExtensions(); 104 for (int i = 0; i < extensions.length; i++) { 105 IConfigurationElement[] configElements = extensions[i] 106 .getConfigurationElements(); 107 for (int j = 0; j < configElements.length; j++) { 108 String pattern = configElements[j].getAttribute("pattern"); if (pattern != null) { 110 definedFilters.add(pattern); 111 } 112 String selected = configElements[j] 113 .getAttribute("selected"); if (selected != null && selected.equalsIgnoreCase("true")) { defaultFilters.add(pattern); 116 } 117 } 118 119 } 120 } 121 } 122 } 123 | Popular Tags |