KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > editor > ImplementationProvider


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.editor;
21
22 import java.util.ResourceBundle JavaDoc;
23 import javax.swing.Action JavaDoc;
24 import javax.swing.text.JTextComponent JavaDoc;
25 import org.netbeans.modules.editor.lib2.EditorImplementation;
26 import org.netbeans.spi.editor.EditorImplementationProvider;
27
28 /** This is provider of implementation. This package (org.netbeans.editor)
29  * represent editor core which can be used independently on the rest of NetBeans.
30  * However this core needs access to higher level functionality like access
31  * to localized bundles, access to settings storage, etc. which can be implemented
32  * differently by the applications which uses this editor core. For this purpose
33  * was created this abstract class and it can be extended with any other methods which
34  * are more and more often required by core editor. Example implementation
35  * of this provider can be found in org.netbeans.modules.editor package
36  *
37  * @author David Konecny
38  * @since 10/2001
39  * @deprecated See org.netbeans.spi.editor.lib2.EditorImplementationProvider
40  */

41
42 public abstract class ImplementationProvider {
43
44     private static final ImplementationProvider PROVIDER = new ProviderBridge();
45
46     /** Returns currently registered provider */
47     public static ImplementationProvider getDefault() {
48         return PROVIDER;
49     }
50
51     /** Register your own provider through this method */
52     public static void registerDefault(ImplementationProvider prov) {
53         EditorImplementation.getDefault().setExternalProvider(new Wrapper(prov));
54     }
55
56     /** Returns ResourceBundle for the given class.*/
57     public abstract ResourceBundle JavaDoc getResourceBundle(String JavaDoc localizer);
58
59     /** This is temporary method which allows core editor to access
60      * glyph gutter action. These actions are then used when user clicks
61      * on glyph gutter. In next version this should be removed and redesigned
62      * as suggested in issue #16762 */

63     public abstract Action JavaDoc[] getGlyphGutterActions(JTextComponent JavaDoc target);
64
65     /** Activates the given component or one of its ancestors.
66      * @return whether the component or one of its ancestors was succesfuly activated
67      * */

68     public boolean activateComponent(JTextComponent JavaDoc c) {
69         return false;
70     }
71
72     private static final class ProviderBridge extends ImplementationProvider {
73         
74         public ResourceBundle JavaDoc getResourceBundle(String JavaDoc localizer) {
75             return EditorImplementation.getDefault().getResourceBundle(localizer);
76         }
77         
78         public Action JavaDoc[] getGlyphGutterActions(JTextComponent JavaDoc target) {
79             return EditorImplementation.getDefault().getGlyphGutterActions(target);
80         }
81         
82         public boolean activateComponent(JTextComponent JavaDoc c) {
83             return EditorImplementation.getDefault().activateComponent(c);
84         }
85     } // End of ProviderBridge class
86

87     private static final class Wrapper implements EditorImplementationProvider {
88         
89         private ImplementationProvider origProvider;
90         
91         public Wrapper(ImplementationProvider origProvider) {
92             this.origProvider = origProvider;
93         }
94         
95         public ResourceBundle JavaDoc getResourceBundle(String JavaDoc localizer) {
96             return origProvider.getResourceBundle(localizer);
97         }
98
99         public Action JavaDoc[] getGlyphGutterActions(JTextComponent JavaDoc target) {
100             return origProvider.getGlyphGutterActions(target);
101         }
102
103         public boolean activateComponent(JTextComponent JavaDoc c) {
104             return origProvider.activateComponent(c);
105         }
106         
107     } // End of Wrapper class
108
}
109
Popular Tags