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    }