1 19 20 package org.netbeans.modules.xml.text.navigator; 21 22 import java.awt.event.ActionEvent ; 23 import java.util.ArrayList ; 24 import javax.swing.AbstractAction ; 25 import javax.swing.Action ; 26 import javax.swing.JCheckBoxMenuItem ; 27 import javax.swing.JMenu ; 28 import javax.swing.JMenuItem ; 29 import org.openide.util.NbBundle; 30 import org.openide.util.actions.Presenter; 31 32 36 public final class FilterActions extends AbstractAction { 37 38 private static final String PROP_FILTER_NAME = "nbFilterName"; 39 40 private FiltersManager filters; 41 42 43 public FilterActions(FiltersManager filters) { 44 this.filters = filters; 45 } 46 47 public void actionPerformed(ActionEvent ev) { 48 Object source = ev.getSource(); 49 if (source instanceof JCheckBoxMenuItem ) { 51 JCheckBoxMenuItem menuItem = (JCheckBoxMenuItem )source; 52 String filterName = (String )(menuItem.getClientProperty(PROP_FILTER_NAME)); 53 filters.setSelected(filterName, menuItem.isSelected()); 54 } 55 } 56 57 public JMenuItem [] createMenuItems () { 58 FiltersDescription filtersDesc = filters.getDescription(); 59 ArrayList menuItems = new ArrayList (); 60 for (int i = 0; i < filtersDesc.getFilterCount(); i++) { 61 String filterName = filtersDesc.getName(i); 62 JMenuItem menuItem = new JCheckBoxMenuItem ( 63 filtersDesc.getDisplayName(i), filters.isSelected(filterName)); 64 menuItem.addActionListener(this); 65 menuItem.putClientProperty(PROP_FILTER_NAME, filterName); 66 menuItems.add(menuItem); 67 } 68 return (JMenuItem [])menuItems.toArray(new JMenuItem []{}); 69 } 70 71 72 } 73 | Popular Tags |