1 /*
2 * XNap Commons
3 *
4 * Copyright (C) 2005 Felix Berger
5 * Copyright (C) 2005 Steffen Pingel
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21 package org.xnap.commons.gui.shortcut;
22
23 import java.beans.PropertyChangeListener;
24 import javax.swing.KeyStroke;
25
26 /***
27 * Defines the requirements for classes that provide shortcuts.
28 */
29 public interface Shortcut
30 {
31 public static final String DESCRIPTION = "XNapDescription";
32
33 public static final String CATEGORY = "XNapCategory";
34
35 public static final String KEYSTROKE = "XNapKeyStroke";
36
37 void putValue(String key, Object value);
38
39 Object getValue(String key);
40
41 void addPropertyChangeListener(PropertyChangeListener l);
42
43 void removePropertyChangeListener(PropertyChangeListener l);
44
45 /***
46 * Returns the keystroke.
47 */
48 KeyStroke getKeyStroke();
49
50 /***
51 *
52 */
53 void setKeyStroke(KeyStroke stroke);
54
55 }
56