1 11 12 package org.eclipse.ui.views.navigator; 13 14 import org.eclipse.jface.viewers.LabelProvider; 15 import org.eclipse.jface.viewers.Viewer; 16 import org.eclipse.jface.window.Window; 17 import org.eclipse.ui.PlatformUI; 18 import org.eclipse.ui.dialogs.ListSelectionDialog; 19 import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages; 20 21 24 public class FilterSelectionAction extends ResourceNavigatorAction { 25 private static final String FILTER_TOOL_TIP = ResourceNavigatorMessages.FilterSelection_toolTip; 26 27 private static final String FILTER_SELECTION_MESSAGE = ResourceNavigatorMessages.FilterSelection_message; 28 29 private static final String FILTER_TITLE_MESSAGE = ResourceNavigatorMessages.FilterSelection_title; 30 31 37 public FilterSelectionAction(IResourceNavigator navigator, String label) { 38 super(navigator, label); 39 setToolTipText(FILTER_TOOL_TIP); 40 PlatformUI.getWorkbench().getHelpSystem().setHelp(this, 41 INavigatorHelpContextIds.FILTER_SELECTION_ACTION); 42 setEnabled(true); 43 } 44 45 48 public void run() { 49 IResourceNavigator navigator = getNavigator(); 50 ResourcePatternFilter filter = navigator.getPatternFilter(); 51 FiltersContentProvider contentProvider = new FiltersContentProvider( 52 filter); 53 54 ListSelectionDialog dialog = new ListSelectionDialog(getShell(), 55 getViewer(), contentProvider, new LabelProvider(), 56 FILTER_SELECTION_MESSAGE); 57 58 dialog.setTitle(FILTER_TITLE_MESSAGE); 59 dialog.setInitialSelections(contentProvider.getInitialSelections()); 60 dialog.open(); 61 if (dialog.getReturnCode() == Window.OK) { 62 Object [] results = dialog.getResult(); 63 String [] selectedPatterns = new String [results.length]; 64 System.arraycopy(results, 0, selectedPatterns, 0, results.length); 65 filter.setPatterns(selectedPatterns); 66 navigator.setFiltersPreference(selectedPatterns); 67 Viewer viewer = getViewer(); 68 viewer.getControl().setRedraw(false); 69 viewer.refresh(); 70 viewer.getControl().setRedraw(true); 71 } 72 } 73 74 } 75 | Popular Tags |