1 11 12 package org.eclipse.ui.internal.navigator.filters; 13 14 import org.eclipse.core.runtime.Assert; 15 import org.eclipse.jface.action.Action; 16 import org.eclipse.jface.action.IAction; 17 import org.eclipse.jface.viewers.StructuredSelection; 18 import org.eclipse.jface.viewers.ViewerFilter; 19 import org.eclipse.ui.internal.navigator.NavigatorFilterService; 20 import org.eclipse.ui.navigator.CommonViewer; 21 import org.eclipse.ui.navigator.ICommonFilterDescriptor; 22 23 27 public class ToggleFilterAction extends Action implements IAction { 28 29 private ICommonFilterDescriptor descriptor; 30 31 private NavigatorFilterService filterService; 32 33 private CommonViewer commonViewer; 34 35 protected ToggleFilterAction(CommonViewer aCommonViewer, 36 NavigatorFilterService aFilterService, 37 ICommonFilterDescriptor aFilterDescriptor) { 38 Assert.isNotNull(aCommonViewer); 39 Assert.isNotNull(aFilterService); 40 Assert.isNotNull(aFilterDescriptor); 41 42 commonViewer = aCommonViewer; 43 filterService = aFilterService; 44 descriptor = aFilterDescriptor; 45 46 setChecked(filterService.isActive(descriptor.getId())); 47 setText(descriptor.getName()); 48 } 49 50 55 public void run() { 56 57 boolean toMakeActive = !isChecked(); 58 59 filterService.setActive(descriptor.getId(), toMakeActive); 60 filterService.persistFilterActivationState(); 61 62 ViewerFilter viewerFilter = filterService.getViewerFilter(descriptor); 63 if (toMakeActive) { 64 commonViewer.addFilter(viewerFilter); 65 } else { 66 commonViewer.removeFilter(viewerFilter); 67 } 68 69 commonViewer.setSelection(StructuredSelection.EMPTY); 72 73 setChecked(toMakeActive); 74 75 } 76 } 77 | Popular Tags |