Changeset 4753 in josm for trunk/src/org/openstreetmap
- Timestamp:
- 2011-12-30T20:24:38+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/tools/MultikeyActionsHandler.java
r4615 r4753 18 18 import javax.swing.JPopupMenu; 19 19 import javax.swing.KeyStroke; 20 import javax.swing.SwingUtilities; 20 21 import javax.swing.event.PopupMenuEvent; 21 22 import javax.swing.event.PopupMenuListener; … … 131 132 132 133 private void showLayersPopup(final MyAction action) { 133 JPopupMenu layers = new JPopupMenu(); 134 135 JMenuItem lbTitle = new JMenuItem((String) action.action.getValue(Action.SHORT_DESCRIPTION)); 136 lbTitle.setEnabled(false); 137 JPanel pnTitle = new JPanel(); 138 pnTitle.add(lbTitle); 139 layers.add(pnTitle); 140 141 char repeatKey = (char) action.shortcut.getKeyCode(); 142 boolean repeatKeyUsed = false; 143 144 145 for (final MultikeyInfo info: action.action.getMultikeyCombinations()) { 146 147 if (info.getShortcut() == repeatKey) { 148 repeatKeyUsed = true; 134 SwingUtilities.invokeLater(new Runnable() { 135 @Override 136 public void run() { 137 JPopupMenu layers = new JPopupMenu(); 138 139 JMenuItem lbTitle = new JMenuItem((String) action.action.getValue(Action.SHORT_DESCRIPTION)); 140 lbTitle.setEnabled(false); 141 JPanel pnTitle = new JPanel(); 142 pnTitle.add(lbTitle); 143 layers.add(pnTitle); 144 145 char repeatKey = (char) action.shortcut.getKeyCode(); 146 boolean repeatKeyUsed = false; 147 148 149 for (final MultikeyInfo info: action.action.getMultikeyCombinations()) { 150 151 if (info.getShortcut() == repeatKey) { 152 repeatKeyUsed = true; 153 } 154 155 JMenuItem item = new JMenuItem(formatMenuText(action.shortcut, String.valueOf(info.getShortcut()), info.getDescription())); 156 item.setMnemonic(info.getShortcut()); 157 item.addActionListener(new ActionListener() { 158 @Override 159 public void actionPerformed(ActionEvent e) { 160 action.action.executeMultikeyAction(info.getIndex(), false); 161 } 162 }); 163 layers.add(item); 164 } 165 166 if (!repeatKeyUsed) { 167 MultikeyInfo lastLayer = action.action.getLastMultikeyAction(); 168 if (lastLayer != null) { 169 JMenuItem repeateItem = new JMenuItem(formatMenuText(action.shortcut, 170 KeyEvent.getKeyText(action.shortcut.getKeyCode()), 171 "Repeat " + lastLayer.getDescription())); 172 repeateItem.setMnemonic(action.shortcut.getKeyCode()); 173 repeateItem.addActionListener(new ActionListener() { 174 @Override 175 public void actionPerformed(ActionEvent e) { 176 action.action.executeMultikeyAction(-1, true); 177 } 178 }); 179 layers.add(repeateItem); 180 } 181 } 182 layers.addPopupMenuListener(new PopupMenuListener() { 183 184 @Override 185 public void popupMenuWillBecomeVisible(PopupMenuEvent e) {} 186 187 @Override 188 public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { 189 Main.map.statusLine.resetHelpText(STATUS_BAR_ID); 190 } 191 192 @Override 193 public void popupMenuCanceled(PopupMenuEvent e) {} 194 }); 195 196 layers.show(Main.parent, Integer.MAX_VALUE, Integer.MAX_VALUE); 197 layers.setLocation(Main.parent.getX() + Main.parent.getWidth() - layers.getWidth(), Main.parent.getY() + Main.parent.getHeight() - layers.getHeight()); 149 198 } 150 151 JMenuItem item = new JMenuItem(formatMenuText(action.shortcut, String.valueOf(info.getShortcut()), info.getDescription()));152 item.setMnemonic(info.getShortcut());153 item.addActionListener(new ActionListener() {154 @Override155 public void actionPerformed(ActionEvent e) {156 action.action.executeMultikeyAction(info.getIndex(), false);157 }158 });159 layers.add(item);160 }161 162 if (!repeatKeyUsed) {163 MultikeyInfo lastLayer = action.action.getLastMultikeyAction();164 if (lastLayer != null) {165 JMenuItem repeateItem = new JMenuItem(formatMenuText(action.shortcut,166 KeyEvent.getKeyText(action.shortcut.getKeyCode()),167 "Repeat " + lastLayer.getDescription()));168 repeateItem.setMnemonic(action.shortcut.getKeyCode());169 repeateItem.addActionListener(new ActionListener() {170 @Override171 public void actionPerformed(ActionEvent e) {172 action.action.executeMultikeyAction(-1, true);173 }174 });175 layers.add(repeateItem);176 }177 }178 layers.addPopupMenuListener(new PopupMenuListener() {179 180 @Override181 public void popupMenuWillBecomeVisible(PopupMenuEvent e) {}182 183 @Override184 public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {185 Main.map.statusLine.resetHelpText(STATUS_BAR_ID);186 }187 188 @Override189 public void popupMenuCanceled(PopupMenuEvent e) {}190 199 }); 191 192 layers.show(Main.parent, Integer.MAX_VALUE, Integer.MAX_VALUE);193 layers.setLocation(Main.parent.getX() + Main.parent.getWidth() - layers.getWidth(), Main.parent.getY() + Main.parent.getHeight() - layers.getHeight());194 200 } 195 201
Note:
See TracChangeset
for help on using the changeset viewer.