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 }