KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > ui > views > navigator > FilterSelectionAction


1 /*******************************************************************************
2  * Copyright (c) 2000, 2005 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - initial API and implementation
10  *******************************************************************************/

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 /**
22  * The FilterSelectionAction opens the filters dialog.
23  */

24 public class FilterSelectionAction extends ResourceNavigatorAction {
25     private static final String JavaDoc FILTER_TOOL_TIP = ResourceNavigatorMessages.FilterSelection_toolTip;
26
27     private static final String JavaDoc FILTER_SELECTION_MESSAGE = ResourceNavigatorMessages.FilterSelection_message;
28
29     private static final String JavaDoc FILTER_TITLE_MESSAGE = ResourceNavigatorMessages.FilterSelection_title;
30
31     /**
32      * Creates the action.
33      *
34      * @param navigator the resource navigator
35      * @param label the label for the action
36      */

37     public FilterSelectionAction(IResourceNavigator navigator, String JavaDoc 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     /*
46      * Implementation of method defined on <code>IAction</code>.
47      */

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 JavaDoc[] results = dialog.getResult();
63             String JavaDoc[] selectedPatterns = new String JavaDoc[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