KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > spi > debugger > ActionsProvider


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.spi.debugger;
21
22 import java.util.Set JavaDoc;
23 import org.openide.util.RequestProcessor;
24
25 /**
26  * Represents implementation of one or more actions.
27  *
28  * @author Jan Jancura
29  */

30 public abstract class ActionsProvider {
31
32     /**
33      * Returns set of actions supported by this ActionsProvider.
34      *
35      * @return set of actions supported by this ActionsProvider
36      */

37     public abstract Set JavaDoc getActions ();
38
39     /**
40      * Called when the action is called (action button is pressed).
41      *
42      * @param action an action which has been called
43      */

44     public abstract void doAction (Object JavaDoc action);
45     
46     /**
47      * Should return a state of given action.
48      *
49      * @param action action
50      */

51     public abstract boolean isEnabled (Object JavaDoc action);
52     
53     /**
54      * Adds property change listener.
55      *
56      * @param l new listener.
57      */

58     public abstract void addActionsProviderListener (ActionsProviderListener l);
59     
60
61     /**
62      * Removes property change listener.
63      *
64      * @param l removed listener.
65      */

66     public abstract void removeActionsProviderListener (ActionsProviderListener l);
67     
68     /**
69      * Post the action and let it process asynchronously.
70      * The default implementation just delegates to {@link #doAction}
71      * in a separate thread and returns immediately.
72      *
73      * @param action The action to post
74      * @param actionPerformedNotifier run this notifier after the action is
75      * done.
76      * @since 1.5
77      */

78     public void postAction (final Object JavaDoc action,
79                             final Runnable JavaDoc actionPerformedNotifier) {
80         RequestProcessor.getDefault().post(new Runnable JavaDoc() {
81             public void run() {
82                 try {
83                     doAction(action);
84                 } finally {
85                     actionPerformedNotifier.run();
86                 }
87             }
88         });
89     }
90     
91 }
92
93
Popular Tags