1 11 12 package org.eclipse.ui.internal.navigator.filters; 13 14 import org.eclipse.jface.viewers.CheckboxTableViewer; 15 import org.eclipse.jface.viewers.ITreeContentProvider; 16 import org.eclipse.jface.viewers.Viewer; 17 import org.eclipse.swt.widgets.TableItem; 18 import org.eclipse.ui.navigator.INavigatorContentDescriptor; 19 import org.eclipse.ui.navigator.INavigatorContentService; 20 21 class ContentDescriptorContentProvider implements ITreeContentProvider { 22 23 private static final Object [] NO_CHILDREN = new Object [0]; 24 25 private INavigatorContentService contentService; 26 27 private CheckboxTableViewer talbleViewer; 28 29 public void inputChanged(Viewer aViewer, Object anOldInput, Object aNewInput) { 30 31 if (aNewInput != null) { 32 33 if (aNewInput instanceof INavigatorContentService) { 34 contentService = (INavigatorContentService) aNewInput; 35 } 36 37 if (aViewer instanceof CheckboxTableViewer) { 38 talbleViewer = (CheckboxTableViewer) aViewer; 39 } 40 41 updateCheckState(); 42 } else { 43 contentService = null; 44 talbleViewer = null; 45 } 46 47 } 48 49 54 public Object [] getChildren(Object aParentElement) { 55 return NO_CHILDREN; 56 } 57 58 63 public Object getParent(Object anElement) { 64 return null; 65 } 66 67 72 public boolean hasChildren(Object anElement) { 73 return getChildren(anElement).length != 0; 74 } 75 76 81 public Object [] getElements(Object anInputElement) { 82 return contentService != null ? contentService.getVisibleExtensions() 83 : NO_CHILDREN; 84 } 85 86 91 public void dispose() { 92 93 } 94 95 private void updateCheckState() { 96 if (talbleViewer == null || contentService == null) { 97 return; 98 } 99 100 INavigatorContentDescriptor descriptor; 101 boolean enabled; 102 103 TableItem[] descriptorTableItems = talbleViewer.getTable().getItems(); 104 for (int i = 0; i < descriptorTableItems.length; i++) { 105 if (descriptorTableItems[i].getData() instanceof INavigatorContentDescriptor) { 106 descriptor = (INavigatorContentDescriptor) descriptorTableItems[i] 107 .getData(); 108 enabled = contentService.getActivationService() 109 .isNavigatorExtensionActive(descriptor.getId()); 110 talbleViewer.setChecked(descriptor, enabled); 111 } 112 } 113 } 114 115 } | Popular Tags |