001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.tools;
003
004import java.util.List;
005
006import javax.swing.Action;
007
008public 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}