This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 226877
Collapse All | Expand All

(-)a/editor.lib/apichanges.xml (+15 lines)
Lines 107-112 Link Here
107
    <!-- ACTUAL CHANGES BEGIN HERE: -->
107
    <!-- ACTUAL CHANGES BEGIN HERE: -->
108
108
109
    <changes>
109
    <changes>
110
        <change id="EditorLibDeprecation.SidebarFactory">
111
            <summary>SidebarFactory interface moved to editor.lib2</summary>
112
            <version major="3" minor="37"/>
113
            <date day="5" month="3" year="2013"/>
114
            <author login="sdedic"/>
115
            <compatibility binary="compatible" source="compatible" semantic="compatible" deprecation="yes"/>
116
            <description>
117
                <p>The interface <code>org.netbeans.editor.SideBarFactory</code> was
118
                adopted to <code>editor.lib2</code>. The original interface was
119
                deprecated. Clients should start using the moved interface.
120
                </p>
121
            </description>
122
            <class name="SideBarFactory" package="org.netbeans.spi.editor"/>
123
            <issue number="226877"/>
124
        </change>
110
        <change id="moving-find">
125
        <change id="moving-find">
111
            <summary>Moving find implementations to module editor.search</summary>
126
            <summary>Moving find implementations to module editor.search</summary>
112
            <version major="3" minor="36"/>
127
            <version major="3" minor="36"/>
(-)a/editor.lib/nbproject/project.properties (-1 / +1 lines)
Lines 42-48 Link Here
42
42
43
javac.compilerargs=-Xlint:unchecked
43
javac.compilerargs=-Xlint:unchecked
44
javac.source=1.6
44
javac.source=1.6
45
spec.version.base=3.36.0
45
spec.version.base=3.37.0
46
is.autoload=true
46
is.autoload=true
47
47
48
javadoc.arch=${basedir}/arch.xml
48
javadoc.arch=${basedir}/arch.xml
(-)a/editor.lib2/apichanges.xml (+15 lines)
Lines 107-112 Link Here
107
    <!-- ACTUAL CHANGES BEGIN HERE: -->
107
    <!-- ACTUAL CHANGES BEGIN HERE: -->
108
108
109
    <changes>
109
    <changes>
110
        <change id="EditorLibDeprecation.SidebarFactory">
111
            <summary>SidebarFactory interface adopted</summary>
112
            <version major="1" minor="76"/>
113
            <date day="5" month="3" year="2013"/>
114
            <author login="sdedic"/>
115
            <compatibility binary="compatible" source="compatible" semantic="compatible" addition="yes"/>
116
            <description>
117
                <p>The interface <code>org.netbeans.spi.editor.SideBarFactory</code> was
118
                adopted from the legacy <code>editor.lib</code> module, with unchanged semantic.
119
                The original interface was deprecated.
120
                </p>
121
            </description>
122
            <class name="SideBarFactory" package="org.netbeans.spi.editor"/>
123
            <issue number="226877"/>
124
        </change>
110
        <change id="EditorActionRegistration.noKeyBinding.noIconInMenu">
125
        <change id="EditorActionRegistration.noKeyBinding.noIconInMenu">
111
            <summary>Added EditorActionRegistration.noKeyBinding and EditorActionRegistration.noIconInMenu</summary>
126
            <summary>Added EditorActionRegistration.noKeyBinding and EditorActionRegistration.noIconInMenu</summary>
112
            <version major="1" minor="75"/>
127
            <version major="1" minor="75"/>
(-)a/editor.lib2/nbproject/project.properties (-1 / +1 lines)
Lines 43-49 Link Here
43
is.autoload=true
43
is.autoload=true
44
javac.source=1.6
44
javac.source=1.6
45
javac.compilerargs=-Xlint:unchecked
45
javac.compilerargs=-Xlint:unchecked
46
spec.version.base=1.75.0
46
spec.version.base=1.76.0
47
47
48
javadoc.arch=${basedir}/arch.xml
48
javadoc.arch=${basedir}/arch.xml
49
javadoc.apichanges=${basedir}/apichanges.xml
49
javadoc.apichanges=${basedir}/apichanges.xml
(-)a/editor.lib2/nbproject/project.xml (+1 lines)
Lines 194-199 Link Here
194
            <public-packages>
194
            <public-packages>
195
                <package>org.netbeans.api.editor</package>
195
                <package>org.netbeans.api.editor</package>
196
                <package>org.netbeans.api.editor.document</package>
196
                <package>org.netbeans.api.editor.document</package>
197
                <package>org.netbeans.spi.editor</package>
197
                <package>org.netbeans.spi.editor.codegen</package>
198
                <package>org.netbeans.spi.editor.codegen</package>
198
                <package>org.netbeans.spi.editor.document</package>
199
                <package>org.netbeans.spi.editor.document</package>
199
                <package>org.netbeans.spi.editor.highlighting</package>
200
                <package>org.netbeans.spi.editor.highlighting</package>
(-)a/editor.lib/src/org/netbeans/editor/SideBarFactory.java (-3 / +2 lines)
Lines 42-48 Link Here
42
 * made subject to such option by the copyright holder.
42
 * made subject to such option by the copyright holder.
43
 */
43
 */
44
44
45
package org.netbeans.editor;
45
package org.netbeans.spi.editor;
46
46
47
import javax.swing.JComponent;
47
import javax.swing.JComponent;
48
import javax.swing.text.JTextComponent;
48
import javax.swing.text.JTextComponent;
Lines 51-62 Link Here
51
/**
51
/**
52
 *  This interface should implement all components that need to be added
52
 *  This interface should implement all components that need to be added
53
 *  in the editor sidebar. Known implementing class is i.e GlyphGutter.
53
 *  in the editor sidebar. Known implementing class is i.e GlyphGutter.
54
 *
54
 *  
55
 *  @author  Martin Roskanin
55
 *  @author  Martin Roskanin
56
 */
56
 */
57
@MimeLocation(subfolderName="SideBar")
57
@MimeLocation(subfolderName="SideBar")
58
public interface SideBarFactory {
58
public interface SideBarFactory {
59
60
    public JComponent createSideBar(JTextComponent target);
59
    public JComponent createSideBar(JTextComponent target);
61
60
62
}
61
}
(-)a/editor/src/org/netbeans/modules/editor/NbEditorKit.java (-3 / +3 lines)
Lines 950-959 Link Here
950
950
951
    @Override
951
    @Override
952
    public Object call() {
952
    public Object call() {
953
        Map<SideBarPosition, List<SideBarFactory>> factoriesMap = CustomizableSideBar.getFactoriesMap(getContentType());
953
        Map<SideBarPosition, List> factoriesMap = CustomizableSideBar.getFactoriesMap(getContentType());
954
        //initialize all factories
954
        //initialize all factories
955
        for (Entry<SideBarPosition, List<SideBarFactory>> e : factoriesMap.entrySet()) {
955
        for (Entry<SideBarPosition, List> e : factoriesMap.entrySet()) {
956
            for (SideBarFactory f : e.getValue()) {
956
            for (Object f : e.getValue()) {
957
                if (f instanceof MimeTypeInitializer) { //TODO: SideBarFactory should probably implement MimeTypeInitializer
957
                if (f instanceof MimeTypeInitializer) { //TODO: SideBarFactory should probably implement MimeTypeInitializer
958
                    try {
958
                    try {
959
                        ((MimeTypeInitializer) f).init(getContentType());
959
                        ((MimeTypeInitializer) f).init(getContentType());
(-)a/editor/src/org/netbeans/modules/editor/impl/CustomizableSideBar.java (-5 / +13 lines)
Lines 214-220 Link Here
214
    
214
    
215
    private static Map<SideBarPosition, List<JComponent>> createSideBarsMap(JTextComponent target) {
215
    private static Map<SideBarPosition, List<JComponent>> createSideBarsMap(JTextComponent target) {
216
        String mimeType = NbEditorUtilities.getMimeType(target);
216
        String mimeType = NbEditorUtilities.getMimeType(target);
217
        Map<SideBarPosition, List<SideBarFactory>> factoriesMap = getFactoriesMap(mimeType);
217
        Map<SideBarPosition, List> factoriesMap = getFactoriesMap(mimeType);
218
        Map<SideBarPosition, List<JComponent>> sideBarsMap = new HashMap<SideBarPosition, List<JComponent>>(factoriesMap.size());
218
        Map<SideBarPosition, List<JComponent>> sideBarsMap = new HashMap<SideBarPosition, List<JComponent>>(factoriesMap.size());
219
        
219
        
220
        Collection<String> locations = null;
220
        Collection<String> locations = null;
Lines 232-238 Link Here
232
                !locations.contains(pos.getPositionName())) {
232
                !locations.contains(pos.getPositionName())) {
233
                continue;
233
                continue;
234
            }
234
            }
235
            List<SideBarFactory> factoriesList = factoriesMap.get(pos);
235
            List factoriesList = factoriesMap.get(pos);
236
            
236
            
237
            // Get sideBars list
237
            // Get sideBars list
238
            List<JComponent> sideBars = sideBarsMap.get(pos);
238
            List<JComponent> sideBars = sideBarsMap.get(pos);
Lines 242-249 Link Here
242
            }
242
            }
243
            
243
            
244
            // Create side bars from the factories for this position
244
            // Create side bars from the factories for this position
245
            for(SideBarFactory f : factoriesList) {
245
            for(Object f : factoriesList) {
246
                JComponent sideBar = f.createSideBar(target);
246
                final JComponent sideBar;
247
                if (f instanceof SideBarFactory) {
248
                    sideBar = ((SideBarFactory)f).createSideBar(target);
249
                } else if (f instanceof org.netbeans.spi.editor.SideBarFactory) {
250
                    sideBar = ((org.netbeans.spi.editor.SideBarFactory)f).createSideBar(target);
251
                } else {
252
                    LOG.fine("Unexpected sidebar instance: " + f);
253
                    continue;
254
                }
247
                if (sideBar == null) {
255
                if (sideBar == null) {
248
                    LOG.fine("Ignoring null side bar created by the factory: " + f); //NOI18N
256
                    LOG.fine("Ignoring null side bar created by the factory: " + f); //NOI18N
249
                    continue;
257
                    continue;
Lines 265-271 Link Here
265
        return sideBarsMap;
273
        return sideBarsMap;
266
    }
274
    }
267
275
268
    public static Map<SideBarPosition, List<SideBarFactory>> getFactoriesMap(String mimeType) {
276
    public static Map<SideBarPosition, List> getFactoriesMap(String mimeType) {
269
        MimePath mimePath = MimePath.parse(mimeType);
277
        MimePath mimePath = MimePath.parse(mimeType);
270
        
278
        
271
        Lookup.Result<SideBarFactoriesProvider> lR = LR.get(mimePath);
279
        Lookup.Result<SideBarFactoriesProvider> lR = LR.get(mimePath);
(-)a/editor/src/org/netbeans/modules/editor/impl/SideBarFactoriesProvider.java (-12 / +20 lines)
Lines 72-78 Link Here
72
    public static final String SIDEBAR_COMPONENTS_FOLDER_NAME = "SideBar"; //NOI18N
72
    public static final String SIDEBAR_COMPONENTS_FOLDER_NAME = "SideBar"; //NOI18N
73
    
73
    
74
    private final List<FileObject> instanceFiles;
74
    private final List<FileObject> instanceFiles;
75
    private Map<CustomizableSideBar.SideBarPosition, List<SideBarFactory>> factories;
75
    private Map<CustomizableSideBar.SideBarPosition, List> factories;
76
76
77
    public SideBarFactoriesProvider() {
77
    public SideBarFactoriesProvider() {
78
        this(Collections.<FileObject>emptyList());
78
        this(Collections.<FileObject>emptyList());
Lines 82-88 Link Here
82
        this.instanceFiles = instanceFiles;
82
        this.instanceFiles = instanceFiles;
83
    }
83
    }
84
    
84
    
85
    public Map<CustomizableSideBar.SideBarPosition, List<SideBarFactory>> getFactories() {
85
    public Map<CustomizableSideBar.SideBarPosition, List> getFactories() {
86
        if (factories == null) {
86
        if (factories == null) {
87
            factories = computeInstances();
87
            factories = computeInstances();
88
        }
88
        }
Lines 93-103 Link Here
93
        return new SideBarFactoriesProvider(fileObjectList);
93
        return new SideBarFactoriesProvider(fileObjectList);
94
    }
94
    }
95
    
95
    
96
    private Map<CustomizableSideBar.SideBarPosition, List<SideBarFactory>> computeInstances() {
96
    private Map<CustomizableSideBar.SideBarPosition, List> computeInstances() {
97
        Map <CustomizableSideBar.SideBarPosition, List<SideBarFactory>> factoriesMap = new HashMap<CustomizableSideBar.SideBarPosition, List<SideBarFactory>>();
97
        Map <CustomizableSideBar.SideBarPosition, List> factoriesMap = new HashMap<CustomizableSideBar.SideBarPosition, List>();
98
        
98
        
99
        for(FileObject f : instanceFiles) {
99
        for(FileObject f : instanceFiles) {
100
            SideBarFactory factory = null;
100
            SideBarFactory factory = null;
101
            org.netbeans.spi.editor.SideBarFactory factory2 = null;
101
            
102
            
102
            if (!f.isValid() || !f.isData()) {
103
            if (!f.isValid() || !f.isData()) {
103
                continue;
104
                continue;
Lines 105-113 Link Here
105
            
106
            
106
            try {
107
            try {
107
                DataObject dob = DataObject.find(f);
108
                DataObject dob = DataObject.find(f);
108
                InstanceCookie ic = dob.getCookie(InstanceCookie.class);
109
                InstanceCookie.Of ic = dob.getCookie(InstanceCookie.Of.class);
109
                if (ic != null && SideBarFactory.class.isAssignableFrom(ic.instanceClass())) {
110
                if (ic != null) {
110
                    factory = (SideBarFactory) ic.instanceCreate();
111
                    if (ic.instanceOf(SideBarFactory.class)) {
112
                        factory = (SideBarFactory) ic.instanceCreate();
113
                    } else if (ic.instanceOf(org.netbeans.spi.editor.SideBarFactory.class)) {
114
                        factory2 = (org.netbeans.spi.editor.SideBarFactory) ic.instanceCreate();
115
                    }
111
                }
116
                }
112
            } catch (ClassNotFoundException cnfe) {
117
            } catch (ClassNotFoundException cnfe) {
113
                LOG.log(Level.INFO, null, cnfe);
118
                LOG.log(Level.INFO, null, cnfe);
Lines 117-132 Link Here
117
                continue;
122
                continue;
118
            }
123
            }
119
124
120
            if (factory != null) {
125
            if (factory != null || factory2 != null) {
121
                SideBarPosition position = new SideBarPosition(f);
126
                SideBarPosition position = new SideBarPosition(f);
122
                List<SideBarFactory> factoriesList = factoriesMap.get(position);
127
                List factoriesList = factoriesMap.get(position);
123
128
124
                if (factoriesList == null) {
129
                if (factoriesList == null) {
125
                    factoriesList = new ArrayList<SideBarFactory>();
130
                    factoriesList = new ArrayList();
126
                    factoriesMap.put(position, factoriesList);
131
                    factoriesMap.put(position, factoriesList);
127
                }
132
                }
128
133
                if (factory != null) {
129
                factoriesList.add(factory);
134
                    factoriesList.add(factory);
135
                } else {
136
                    factoriesList.add(factory2);
137
                }
130
            }
138
            }
131
        }
139
        }
132
        
140
        
(-)a/editor/test/unit/src/org/netbeans/modules/editor/impl/KitsTracker-test-layer.xml (-18 / +31 lines)
Lines 5-28 Link Here
5
    <folder name="Editors">
5
    <folder name="Editors">
6
        <folder name="text">
6
        <folder name="text">
7
            <folder name="x-type-A">
7
            <folder name="x-type-A">
8
                <file name="EditorKit.instance">
8
                <folder name="SideBar">
9
                    <attr name="instanceClass" stringvalue="org.netbeans.modules.editor.impl.KitsTrackerTest$TestAKit"/>
9
                    <file name="sidebar1.instance">
10
                    <attr name="instanceOf" stringvalue="javax.swing.text.EditorKit,org.netbeans.modules.editor.impl.KitsTrackerTest$TestAKit"/>
10
                        <attr name="instanceClass" stringvalue="org.netbeans.modules.editor.impl.SideBarFactoriesProviderTest$SBF1"/>
11
                </file>
11
                        <attr name="instanceCreate" methodvalue="org.netbeans.modules.editor.impl.SideBarFactoriesProviderTest.c1"/>
12
            </folder>
12
                        
13
            <folder name="x-type-B-1">
13
                        <attr name="location" stringvalue="West"/>
14
                <file name="EditorKit.instance">
14
                        <attr name="position" intvalue="200"/>
15
                    <attr name="instanceClass" stringvalue="org.netbeans.modules.editor.impl.KitsTrackerTest$SharedKit"/>
15
                    </file>
16
                    <attr name="instanceCreate" methodvalue="org.netbeans.modules.editor.impl.KitsTrackerTest.sharedKit"/>
16
                    <file name="sidebar2.instance">
17
                    <attr name="instanceOf" stringvalue="javax.swing.text.EditorKit,org.netbeans.modules.editor.impl.KitsTrackerTest$SharedKit"/>
17
                        <attr name="instanceClass" stringvalue="org.netbeans.modules.editor.impl.SideBarFactoriesProviderTest$SBF2"/>
18
                </file>
18
                        <attr name="instanceCreate" methodvalue="org.netbeans.modules.editor.impl.SideBarFactoriesProviderTest.c2"/>
19
            </folder>
19
20
            <folder name="x-type-B-2">
20
                        <attr name="location" stringvalue="North"/>
21
                <file name="EditorKit.instance">
21
                        <attr name="position" intvalue="100"/>
22
                    <attr name="instanceClass" stringvalue="org.netbeans.modules.editor.impl.KitsTrackerTest$SharedKit"/>
22
                    </file>
23
                    <attr name="instanceCreate" methodvalue="org.netbeans.modules.editor.impl.KitsTrackerTest.sharedKit"/>
23
                    <file name="sidebar3.instance">
24
                    <attr name="instanceOf" stringvalue="javax.swing.text.EditorKit,org.netbeans.modules.editor.impl.KitsTrackerTest$SharedKit"/>
24
                        <attr name="instanceCreate" methodvalue="org.netbeans.modules.editor.impl.SideBarFactoriesProviderTest.c3"/>
25
                </file>
25
                        <attr name="instanceOf" stringvalue="org.netbeans.editor.SideBarFactory"/>
26
27
                        <attr name="location" stringvalue="South"/>
28
                        <attr name="position" intvalue="200"/>
29
                    </file>
30
                    <file name="sidebar4.instance">
31
                        <attr name="instanceCreate" methodvalue="org.netbeans.modules.editor.impl.SideBarFactoriesProviderTest.c4"/>
32
                        <attr name="instanceOf" stringvalue="org.netbeans.spi.editor.SideBarFactory"/>
33
34
                        <attr name="location" stringvalue="West"/>
35
                        <attr name="position" intvalue="100"/>
36
                    </file>
37
                    
38
                </folder>
26
            </folder>
39
            </folder>
27
        </folder>
40
        </folder>
28
    </folder>
41
    </folder>

Return to bug 226877