001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.tools;
003
004 import java.util.List;
005
006 import javax.swing.Action;
007
008 public interface MultikeyShortcutAction extends Action {
009
010 public static class MultikeyInfo {
011 private final int index;
012 private final String description;
013
014 public MultikeyInfo(int index, String description) {
015 this.index = index;
016 this.description = description;
017 }
018
019 public int getIndex() {
020 return index;
021 }
022
023 public char getShortcut() {
024 if (index < 9)
025 return (char)('1' + index);
026 else if (index == 9)
027 return '0';
028 else
029 return (char)('A' + index - 10);
030 }
031
032 public String getDescription() {
033 return description;
034 }
035 }
036
037 public Shortcut getMultikeyShortcut();
038
039 void executeMultikeyAction(int index, boolean repeatLastAction);
040 List<MultikeyInfo> getMultikeyCombinations();
041 MultikeyInfo getLastMultikeyAction();
042
043 }