Changeset 878 in josm for trunk/src/org


Ignore:
Timestamp:
2008-08-28T13:44:27+02:00 (16 years ago)
Author:
stoecker
Message:

added ToolBar popup menus. Closes #1087.

Location:
trunk/src/org/openstreetmap/josm/gui
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/preferences/TaggingPresetPreference.java

    r839 r878  
    138138                                {
    139139                                        JMenu submenu = new JMenu(p);
     140                                        ((TaggingPresetMenu)p).menu = submenu;
    140141                                        submenus.put((TaggingPresetMenu)p, submenu);
    141142                                        m.add(submenu);
  • trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetMenu.java

    r839 r878  
    44import static org.openstreetmap.josm.tools.I18n.tr;
    55
     6import java.awt.event.ActionEvent;
     7import java.awt.Component;
     8
    69import javax.swing.Action;
     10import javax.swing.JMenu;
     11import javax.swing.JMenuItem;
     12import javax.swing.JPopupMenu;
     13import javax.swing.JSeparator;
    714
    815import org.openstreetmap.josm.gui.tagging.TaggingPreset;
    916
    1017public class TaggingPresetMenu extends TaggingPreset {
     18        public JMenu menu = null; // set by TaggingPresetPreferences
    1119        public void setDisplayName() {
    1220                String n = getName();
     
    1826                super.setIcon(iconName);
    1927        }
     28        public void actionPerformed(ActionEvent e) {
     29                Object s = e.getSource();
     30                if(menu != null && s instanceof Component)
     31                {
     32                        Component co = (Component)s;
     33                        JPopupMenu pm = new JPopupMenu(getName());
     34                        for(Component c : menu.getMenuComponents())
     35                        {
     36                                if(c instanceof JMenuItem)
     37                                {
     38                                        JMenuItem j = new JMenuItem(((JMenuItem)c).getAction());
     39                                        j.setText(((JMenuItem)c).getText());
     40                                        pm.add(j);
     41                                }
     42                                else if(c instanceof JSeparator)
     43                                        pm.addSeparator();
     44                        }
     45                        pm.show(co, co.getWidth()/2, co.getHeight()/2);
     46                }
     47        }
    2048}
Note: See TracChangeset for help on using the changeset viewer.