01: /*
02: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
03: *
04: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
05: *
06: * The contents of this file are subject to the terms of either the GNU
07: * General Public License Version 2 only ("GPL") or the Common
08: * Development and Distribution License("CDDL") (collectively, the
09: * "License"). You may not use this file except in compliance with the
10: * License. You can obtain a copy of the License at
11: * http://www.netbeans.org/cddl-gplv2.html
12: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
13: * specific language governing permissions and limitations under the
14: * License. When distributing the software, include this License Header
15: * Notice in each file and include the License file at
16: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
17: * particular file as subject to the "Classpath" exception as provided
18: * by Sun in the GPL Version 2 section of the License file that
19: * accompanied this code. If applicable, add the following below the
20: * License Header, with the fields enclosed by brackets [] replaced by
21: * your own identifying information:
22: * "Portions Copyrighted [year] [name of copyright owner]"
23: *
24: * Contributor(s):
25: *
26: * The Original Software is NetBeans. The Initial Developer of the Original
27: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
28: * Microsystems, Inc. All Rights Reserved.
29: *
30: * If you wish your version of this file to be governed by only the CDDL
31: * or only the GPL Version 2, indicate your decision by adding
32: * "[Contributor] elects to include this software in this distribution
33: * under the [CDDL or GPL Version 2] license." If you do not indicate a
34: * single choice of license, a recipient has the option to distribute
35: * your version of this file under either the CDDL, the GPL Version 2 or
36: * to extend the choice of license to its licensees as provided above.
37: * However, if you add GPL Version 2 code and therefore, elected the GPL
38: * Version 2 license, then the option applies only if the new code is
39: * made subject to such option by the copyright holder.
40: */
41:
42: package org.netbeans.core.options.keymap.api;
43:
44: /**
45: * A special object for representing the action to which the shortcut
46: * is bound. As we are able to represent different kinds of actions (
47: * (e.g. represented by javax.swing.Action or javax.swing.text.TextAction)
48: * the instances of this interface wrap the original action and provide
49: * methods contained in this interface.
50: *
51: * @author David Strupl
52: */
53: public interface ShortcutAction {
54:
55: /**
56: * The display name is what the user can see when the shortcut
57: * is displayed in the configuration dialogs.
58: * @return the display name
59: */
60: public String getDisplayName();
61:
62: /**
63: * The ID of the shortcut action. It is the action class name or some
64: * other unique identification of the action ("cut-to-clipboard" or
65: * "org.openide.actions.CutAction").
66: * @return
67: */
68: public String getId();
69:
70: /**
71: * If the same action is supplied by more KeymapManagers they can "know"
72: * about each other. If the action "knows" what the ID of the action
73: * is coming from the other provider it can supply it by returning a non-null
74: * value from this method. An example: actions coming from the editor
75: * can supply the class name of the corresponding openide action, e.g.
76: * org.openide.actions.CutAction.
77: * @return
78: */
79: public String getDelegatingActionId();
80:
81: /**
82: * If the action is "compound" action (delegating to different actions
83: * for different keymapManagers) this method returns the instance registered
84: * in the given manager. If the action is not composed of more actions
85: * this method should simply return <code>this</code>.
86: *
87: * @param keymapManagerName
88: * @return
89: */
90: public ShortcutAction getKeymapManagerInstance(
91: String keymapManagerName);
92: }
|