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 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 Shortcut getMultikeyShortcut(); 038 039 void executeMultikeyAction(int index, boolean repeatLastAction); 040 041 List<MultikeyInfo> getMultikeyCombinations(); 042 043 MultikeyInfo getLastMultikeyAction(); 044 045}