1 19 20 package org.netbeans.modules.java.navigation.actions; 21 22 import java.awt.event.ActionEvent ; 23 import javax.swing.AbstractAction ; 24 import javax.swing.Action ; 25 import javax.swing.JCheckBoxMenuItem ; 26 import javax.swing.JMenu ; 27 import javax.swing.JMenuItem ; 28 import org.netbeans.modules.java.navigation.base.FiltersDescription; 29 import org.netbeans.modules.java.navigation.base.FiltersManager; 30 import org.openide.util.NbBundle; 31 import org.openide.util.actions.Presenter; 32 33 37 public final class FilterSubmenuAction extends AbstractAction implements Presenter.Popup { 38 39 private static final String PROP_FILTER_NAME = "nbFilterName"; 40 41 private FiltersManager filters; 42 43 44 public FilterSubmenuAction(FiltersManager filters) { 45 this.filters = filters; 46 } 47 48 public void actionPerformed(ActionEvent ev) { 49 Object source = ev.getSource(); 50 if (source instanceof JCheckBoxMenuItem ) { 52 JCheckBoxMenuItem menuItem = (JCheckBoxMenuItem )source; 53 String filterName = (String )(menuItem.getClientProperty(PROP_FILTER_NAME)); 54 filters.setSelected(filterName, menuItem.isSelected()); 55 } 56 } 57 58 public final JMenuItem getPopupPresenter() { 59 return createSubmenu(); 60 } 61 62 private JMenuItem createSubmenu () { 63 FiltersDescription filtersDesc = filters.getDescription(); 64 JMenuItem menu = new JMenu (NbBundle.getMessage(FilterSubmenuAction.class, "LBL_FilterSubmenu")); JMenuItem menuItem = null; 66 String filterName = null; 67 for (int i = 0; i < filtersDesc.getFilterCount(); i++) { 68 filterName = filtersDesc.getName(i); 69 menuItem = new JCheckBoxMenuItem ( 70 filtersDesc.getDisplayName(i), filters.isSelected(filterName)); 71 menuItem.addActionListener(this); 72 menuItem.putClientProperty(PROP_FILTER_NAME, filterName); 73 menu.add(menuItem); 74 } 75 return menu; 76 } 77 78 79 } 80 | Popular Tags |